<?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>168586</bug_id>
          
          <creation_ts>2017-02-19 23:21:45 -0800</creation_ts>
          <short_desc>Make all the SVGElements&apos; attributes be RefCounted objects</short_desc>
          <delta_ts>2019-03-04 18:46:59 -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>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>191237</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>182901</dependson>
    
    <dependson>183017</dependson>
    
    <dependson>184670</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278858</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-02-19 23:21:45 -0800</bug_when>
    <thetext>This is a step towards changing the raw pointers which is held by SVGAnimatedType and the SVGAnimatedPropertyTearOff object to be RefCounted pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278859</commentid>
    <comment_count>1</comment_count>
      <attachid>302119</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-02-19 23:27:45 -0800</bug_when>
    <thetext>Created attachment 302119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278997</commentid>
    <comment_count>2</comment_count>
      <attachid>302119</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-20 10:51:29 -0800</bug_when>
    <thetext>Comment on attachment 302119
Patch

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

&gt; Source/WebCore/svg/SVGAnimatedType.h:33
&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(SVGPropertyTraits&lt;PropertyType&gt;::initialValue()));

Can this use make_unique to avoid the redundant type name.

&gt; Source/WebCore/svg/SVGAnimatedType.h:39
&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(WTFMove(property)));

make_unique?

&gt; Source/WebCore/svg/SVGAnimatedType.h:50
&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(SVGPropertyTraits&lt;std::pair&lt;PropertyType1, PropertyType2&gt;&gt;::initialValue()));

make_unique? (I&apos;ll stop repeating now).

&gt; Source/WebCore/svg/SVGAnimatedType.h:79
&gt; +        return std::pair&lt;PropertyType1&amp;, PropertyType2&amp;&gt;(m_values[0]-&gt;property&lt;PropertyType1&gt;(), m_values[1]-&gt;property&lt;PropertyType2&gt;());

Would be good to have some assertion that m_values[1] is not null.

&gt; Source/WebCore/svg/SVGAnimatedType.h:112
&gt; +    RefPtr&lt;SVGAnimatedValue&gt; m_values[2];

What&apos;s the value of making this an array rather than just m_value1, and m_value2?

&gt; Source/WebCore/svg/SVGAnimatedValue.h:41
&gt; +#include &quot;SVGTransformListValues.h&quot;
&gt; +
&gt; +#include &lt;wtf/Variant.h&gt;

No reason to separate these.

&gt; Source/WebCore/svg/SVGAnimatedValue.h:64
&gt; +    public WTF::RefCounted&lt;SVGAnimatedValue&gt;,

WTF:: not needed. Should all be on one line.

&gt; Source/WebCore/svg/SVGAnimatedValue.h:68
&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(const PropertyType&amp; value)

Can this return a Ref&lt;&gt;?

&gt; Source/WebCore/svg/SVGAnimatedValue.h:74
&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(PropertyType&amp;&amp; value)

Ditto.

&gt; Source/WebCore/svg/SVGAnimatedValue.h:80
&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(const SVGAnimatedValue&amp; value)

Ditto.

&gt; Source/WebCore/svg/SVGAnimatedValue.h:86
&gt; +    template&lt;typename PropertyType&gt;
&gt; +    bool holdsAlternative() const

Despite it being the name chosen by the variant class, I don&apos;t think holdsAlternative is that great a name.  Perhaps just good old is&lt;&gt;?

&gt; Source/WebCore/svg/SVGPathByteStream.h:26
&gt; +#include &quot;SVGPropertyTraits.h&quot;
&gt; +
&gt;  #include &lt;wtf/Noncopyable.h&gt;

No need to separate these.

&gt; Source/WebCore/svg/SVGPathByteStream.h:49
&gt; +class SVGPathByteStream final : public Vector&lt;unsigned char, 1&gt; {
&gt;      WTF_MAKE_FAST_ALLOCATED;
&gt;  public:

I&apos;m generally not a fan of using inheritance for things like this, as it tends to expose much more API surface area than necessary.  I&apos;d prefer to see this as kept as composition.

&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:29
&gt; +#include &quot;SVGParserUtilities.h&quot;
&gt; +
&gt; +#include &lt;wtf/text/StringBuilder.h&gt;

No need to separate these.

&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:78
&gt; +        return std::pair&lt;int, int&gt;(static_cast&lt;int&gt;(roundf(firstNumber)), static_cast&lt;int&gt;(roundf(secondNumber)));

Will make_pair work here?

&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:146
&gt; +    static bool parse(String&amp; type, const QualifiedName&amp;, const String&amp; string)
&gt; +    {
&gt; +        type = string;
&gt; +        return true;
&gt; +    }

These parse methods should be converted to return optional&lt;Foo&gt; at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279574</commentid>
    <comment_count>3</comment_count>
      <attachid>302319</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-02-21 15:21:43 -0800</bug_when>
    <thetext>Created attachment 302319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279588</commentid>
    <comment_count>4</comment_count>
      <attachid>302119</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-02-21 15:35:59 -0800</bug_when>
    <thetext>Comment on attachment 302119
Patch

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

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:33
&gt;&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(SVGPropertyTraits&lt;PropertyType&gt;::initialValue()));
&gt; 
&gt; Can this use make_unique to avoid the redundant type name.

Done.

What made me use unique_ptr is I wanted to have the constructors to be private. make_unique requires the constructor to be public or it is declared to be a friend to the class. Since there are many create() functions it was not worthy adding these friend functions.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:39
&gt;&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(WTFMove(property)));
&gt; 
&gt; make_unique?

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:50
&gt;&gt; +        return std::unique_ptr&lt;SVGAnimatedType&gt;(new SVGAnimatedType(SVGPropertyTraits&lt;std::pair&lt;PropertyType1, PropertyType2&gt;&gt;::initialValue()));
&gt; 
&gt; make_unique? (I&apos;ll stop repeating now).

Done. All the constructors were changed to be public and all the create() functions were changed to use make_unique.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:79
&gt;&gt; +        return std::pair&lt;PropertyType1&amp;, PropertyType2&amp;&gt;(m_values[0]-&gt;property&lt;PropertyType1&gt;(), m_values[1]-&gt;property&lt;PropertyType2&gt;());
&gt; 
&gt; Would be good to have some assertion that m_values[1] is not null.

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:112
&gt;&gt; +    RefPtr&lt;SVGAnimatedValue&gt; m_values[2];
&gt; 
&gt; What&apos;s the value of making this an array rather than just m_value1, and m_value2?

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:41
&gt;&gt; +#include &lt;wtf/Variant.h&gt;
&gt; 
&gt; No reason to separate these.

Empty line was removed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:64
&gt;&gt; +    public WTF::RefCounted&lt;SVGAnimatedValue&gt;,
&gt; 
&gt; WTF:: not needed. Should all be on one line.

WTF:: was removed and all were made on one line.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:68
&gt;&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(const PropertyType&amp; value)
&gt; 
&gt; Can this return a Ref&lt;&gt;?

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:74
&gt;&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(PropertyType&amp;&amp; value)
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:80
&gt;&gt; +    static RefPtr&lt;SVGAnimatedValue&gt; create(const SVGAnimatedValue&amp; value)
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/svg/SVGAnimatedValue.h:86
&gt;&gt; +    bool holdsAlternative() const
&gt; 
&gt; Despite it being the name chosen by the variant class, I don&apos;t think holdsAlternative is that great a name.  Perhaps just good old is&lt;&gt;?

Function was renamed to be is&lt;&gt;().

&gt;&gt; Source/WebCore/svg/SVGPathByteStream.h:26
&gt;&gt;  #include &lt;wtf/Noncopyable.h&gt;
&gt; 
&gt; No need to separate these.

Empty line was removed.

&gt;&gt; Source/WebCore/svg/SVGPathByteStream.h:49
&gt;&gt;  public:
&gt; 
&gt; I&apos;m generally not a fan of using inheritance for things like this, as it tends to expose much more API surface area than necessary.  I&apos;d prefer to see this as kept as composition.

Done.

What convince me to do it this way was SVGLengthListValues is derived from Vector&lt;SVGLengthValue&gt; and SVGPointListValues is derived Vector&lt;FloatPoint&gt;.

&gt;&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:29
&gt;&gt; +#include &lt;wtf/text/StringBuilder.h&gt;
&gt; 
&gt; No need to separate these.

Empty line was removed.

&gt;&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:78
&gt;&gt; +        return std::pair&lt;int, int&gt;(static_cast&lt;int&gt;(roundf(firstNumber)), static_cast&lt;int&gt;(roundf(secondNumber)));
&gt; 
&gt; Will make_pair work here?

Done.

&gt;&gt; Source/WebCore/svg/properties/SVGPropertyTraits.h:146
&gt;&gt; +    }
&gt; 
&gt; These parse methods should be converted to return optional&lt;Foo&gt; at some point.

All SVGPropertyTraits&lt;Foo&gt;::parse() functions were changed to return std::optional&lt;Foo&gt;. SVGAnimatedValue::parse() was changed to check the returned std::optional&lt;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279618</commentid>
    <comment_count>5</comment_count>
      <attachid>302332</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-02-21 16:17:43 -0800</bug_when>
    <thetext>Created attachment 302332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398420</commentid>
    <comment_count>6</comment_count>
      <attachid>333616</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-12 12:26:24 -0800</bug_when>
    <thetext>Created attachment 333616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398440</commentid>
    <comment_count>7</comment_count>
      <attachid>333621</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-12 12:58:18 -0800</bug_when>
    <thetext>Created attachment 333621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398441</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-12 12:59:29 -0800</bug_when>
    <thetext>Attachment 333621 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 110 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398454</commentid>
    <comment_count>9</comment_count>
      <attachid>333629</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-12 13:48:43 -0800</bug_when>
    <thetext>Created attachment 333629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398457</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-12 13:52:50 -0800</bug_when>
    <thetext>Attachment 333629 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 110 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398503</commentid>
    <comment_count>11</comment_count>
      <attachid>333638</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-12 15:19:05 -0800</bug_when>
    <thetext>Created attachment 333638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398504</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-12 15:22:21 -0800</bug_when>
    <thetext>Attachment 333638 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 110 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398543</commentid>
    <comment_count>13</comment_count>
      <attachid>333646</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-12 16:48:53 -0800</bug_when>
    <thetext>Created attachment 333646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398545</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-12 16:51:10 -0800</bug_when>
    <thetext>Attachment 333646 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 110 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398793</commentid>
    <comment_count>15</comment_count>
      <attachid>333728</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-13 14:45:24 -0800</bug_when>
    <thetext>Created attachment 333728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398796</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-13 14:49:02 -0800</bug_when>
    <thetext>Attachment 333728 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 111 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399145</commentid>
    <comment_count>17</comment_count>
      <attachid>333814</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-14 10:37:23 -0800</bug_when>
    <thetext>Created attachment 333814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399149</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-14 10:39:15 -0800</bug_when>
    <thetext>Attachment 333814 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 111 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399299</commentid>
    <comment_count>19</comment_count>
      <attachid>333814</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-14 15:46:28 -0800</bug_when>
    <thetext>Comment on attachment 333814
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Make all the SVGElements&apos; attributes be RefCounted objects

This is a crazy big patch. I wonder if you can factor out *at least* the “fix header dependency problems” bits, and maybe the toString/setValueAsString renames?

&gt; Source/WebCore/ChangeLog:26
&gt; +        Creating different classes for every data type an SVG attribute does not
&gt; +        look the cleanest solution. Besides, there are cases where the union

First sentence here has a grammar problem.

&gt; Source/WebCore/ChangeLog:35
&gt; +        -- Change SVGAnimatedType to hold two SVGValues. The second one is optional
&gt; +        and only used for animated types which requires two data types.

Still not 100% sure why we don’t just make a new type (it can probably even be an alias for std::pair) for the two types that need two values, and just use SVGValue for everything?

&gt; Source/WebCore/svg/SVGNumberListValues.h:35
&gt; +    

:)

&gt; Source/WebCore/svg/SVGParserUtilities.cpp:243
&gt; +    // disallow anything except spaces at the end

Comments should be sentences with capitals and punctuation.

&gt; Source/WebCore/svg/SVGValue.h:153
&gt; +        return adoptRef(*new SVGValue(reinterpret_cast&lt;const unsigned&amp;&gt;(property)));

What if the enum is bigger than unsigned? Can we make everyone use enum class and use the real type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399571</commentid>
    <comment_count>20</comment_count>
      <attachid>333931</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-15 12:37:56 -0800</bug_when>
    <thetext>Created attachment 333931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399572</commentid>
    <comment_count>21</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-15 12:39:36 -0800</bug_when>
    <thetext>Attachment 333931 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 108 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399596</commentid>
    <comment_count>22</comment_count>
      <attachid>333814</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-15 13:36:54 -0800</bug_when>
    <thetext>Comment on attachment 333814
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Make all the SVGElements&apos; attributes be RefCounted objects
&gt; 
&gt; This is a crazy big patch. I wonder if you can factor out *at least* the “fix header dependency problems” bits, and maybe the toString/setValueAsString renames?

I tried by reming some of the re-factoring but I do not think this helped much reducing the size of the patch.

&gt;&gt; Source/WebCore/ChangeLog:26
&gt;&gt; +        look the cleanest solution. Besides, there are cases where the union
&gt; 
&gt; First sentence here has a grammar problem.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:35
&gt;&gt; +        and only used for animated types which requires two data types.
&gt; 
&gt; Still not 100% sure why we don’t just make a new type (it can probably even be an alias for std::pair) for the two types that need two values, and just use SVGValue for everything?

Please have a look at SVGAnimatedTypeAnimator::constructFromBaseValues() and notice that we have to call executeAction(StartAnimationAction, ...) twice one for each type. Every time we have to pass a separate SVGValue since this is going to be attached to a separate tear-off object. If the SVGValue has an alternative like std::pair&lt;SVGAngleValue,SVGMarkerOrientType&gt; for example, we will not be able to split it into RefCounted object each is referenced by a tear-off object.

&gt;&gt; Source/WebCore/svg/SVGNumberListValues.h:35
&gt;&gt; +    
&gt; 
&gt; :)

Space was removed.

&gt;&gt; Source/WebCore/svg/SVGParserUtilities.cpp:243
&gt;&gt; +    // disallow anything except spaces at the end
&gt; 
&gt; Comments should be sentences with capitals and punctuation.

Fixed.

&gt;&gt; Source/WebCore/svg/SVGValue.h:153
&gt;&gt; +        return adoptRef(*new SVGValue(reinterpret_cast&lt;const unsigned&amp;&gt;(property)));
&gt; 
&gt; What if the enum is bigger than unsigned? Can we make everyone use enum class and use the real type?

Please look at SVGAnimatedEnumerationPropertyTearOff and search the code for highestEnumValue() and you will see that we already have the assumption that highestEnumValue() of any SVG enum has to fit inside unsigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399598</commentid>
    <comment_count>23</comment_count>
      <attachid>333938</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-15 13:38:38 -0800</bug_when>
    <thetext>Created attachment 333938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399599</commentid>
    <comment_count>24</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-15 13:41:39 -0800</bug_when>
    <thetext>Attachment 333938 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGValue.h:49:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:50:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:51:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:52:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:53:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:54:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:55:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:56:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:57:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:59:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:60:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:61:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:62:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:64:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:65:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:66:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:67:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:68:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:69:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebCore/svg/SVGValue.h:81:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/svg/SVGValue.h:108:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:16:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: use-after-free, use-after-free  [changelog/unwantedsecurityterms] [3]
Total errors found: 24 in 108 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399658</commentid>
    <comment_count>25</comment_count>
      <attachid>333961</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-15 15:55:00 -0800</bug_when>
    <thetext>Created attachment 333961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399684</commentid>
    <comment_count>26</comment_count>
      <attachid>333814</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-02-15 16:53:38 -0800</bug_when>
    <thetext>Comment on attachment 333814
Patch

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

Can you add SVGType in a separate patch, without hooking it up to anything?

Some early comments.

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Make all the SVGElements&apos; attributes be RefCounted objects
&gt; 
&gt; This is a crazy big patch. I wonder if you can factor out *at least* the “fix header dependency problems” bits, and maybe the toString/setValueAsString renames?

Yeah. It would be nice to split out the robotic changes from the real code changes.

&gt; Source/WebCore/ChangeLog:16
&gt; +        was relaxed by using WeakPtr or raw pointer from one side to the other, a
&gt; +        use-after-free bugs were happening. A more subtle problem can happen when

s/a/some/

&gt; Source/WebCore/ChangeLog:46
&gt; +        Add new files for SVGValue and SVGListVlaues. Move definitions from

Typo: SVGListValues

&gt; Source/WebCore/ChangeLog:81
&gt; +        Don&apos;t pass SVGAnimatedType getter to resetFromBaseValues(). The PropertyTYpe

Typo: PropertyType

&gt; Source/WebCore/svg/SVGAnimatedAngle.cpp:69
&gt; +    const auto&amp; fromAngle = static_cast&lt;SVGAngleValue&amp;&gt;(*from-&gt;values[0]);
&gt; +    const auto&amp; fromEnumeration = static_cast&lt;unsigned&amp;&gt;(*from-&gt;values[1]);

I don&apos;t like static_cast from SVGValue to underlying types of variants. It isn&apos;t really just a cast, since it is calling into a function that is checking the type and ASSERTing, etc.

I&apos;d prefer .asSVGAngleValue() or something, or maybe even a new asVariantType&lt;SVGAngleValue&gt; helper.

&gt; Source/WebCore/svg/SVGAnimatedAngle.cpp:86
&gt; +    auto&amp; toAngle = static_cast&lt;SVGAngleValue&amp;&gt;(*to-&gt;values[0]);
&gt; +    auto&amp; toEnumeration = static_cast&lt;unsigned&amp;&gt;(*to-&gt;values[1]);

Aren&apos;t these const too?

&gt; Source/WebCore/svg/SVGAnimatedColor.cpp:48
&gt; +    auto&amp; fromColor = static_cast&lt;Color&amp;&gt;(*from-&gt;values[0]);
&gt; +    auto&amp; toColor = static_cast&lt;Color&amp;&gt;(*to-&gt;values[0]);

Yeah, I think we need a better way to convert from SVGValue to the underlying types.

&gt; Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp:79
&gt; +    const auto&amp; formFirst = m_animationElement-&gt;animationMode() == ToAnimation ? static_cast&lt;float&amp;&gt;(*animated-&gt;values[0]) : static_cast&lt;float&amp;&gt;(*from-&gt;values[0]);
&gt; +    const auto&amp; formSecond = m_animationElement-&gt;animationMode() == ToAnimation ? static_cast&lt;float&amp;&gt;(*animated-&gt;values[1]) : static_cast&lt;float&amp;&gt;(*from-&gt;values[1]);

Typo: from

&gt; Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp:88
&gt; +    m_animationElement-&gt;animateAdditiveNumber(percentage, repeatCount, formFirst, toFirst, toAtEndOfDurationFirst, animatedFirst);
&gt; +    m_animationElement-&gt;animateAdditiveNumber(percentage, repeatCount, formSecond, toSecond, toAtEndOfDurationSecond, animatedSecond);

Typo: from

&gt; Source/WebCore/svg/SVGAnimatedType.h:57
&gt; +    template&lt;typename PropertyType&gt;
&gt; +    static std::unique_ptr&lt;SVGAnimatedType&gt; create(PropertyType&amp;&amp; property)

I don&apos;t understand why these are public but the constructor is also public. Which should people use? Can the actual constructor be private?

&gt; Source/WebCore/svg/SVGAnimatedType.h:107
&gt; +        ASSERT(values[0] &amp;&amp; !values[1]);

Why is it an error to call toString on something with two values?

&gt; Source/WebCore/svg/SVGAnimatedType.h:141
&gt; +            [](const SVGAngleValue&amp;)                { return AnimatedAngle; },
&gt; +            [](const bool&amp;)                         { return AnimatedBoolean; },
&gt; +            [](const Color&amp;)                        { return AnimatedColor; },
&gt; +            [](const unsigned&amp;)                     { return AnimatedEnumeration; },
&gt; +            [](const int&amp;)                          { return AnimatedInteger; },
&gt; +            [](const SVGLengthValue&amp;)               { return AnimatedLength; },
&gt; +            [](const SVGLengthListValues&amp;)          { return AnimatedLengthList; },
&gt; +            [](const float)                         { return AnimatedNumber; },
&gt; +            [](const SVGNumberListValues&amp;)          { return AnimatedNumberList; },
&gt; +            [](const SVGPathByteStream&amp;)            { return AnimatedPath; },
&gt; +            [](const SVGPreserveAspectRatioValue&amp;)  { return AnimatedPreserveAspectRatio; },
&gt; +            [](const SVGPointListValues&amp;)           { return AnimatedPoints; },
&gt; +            [](const FloatRect&amp;)                    { return AnimatedRect; },
&gt; +            [](const String&amp;)                       { return AnimatedString; },
&gt; +            [](const SVGTransformListValues&amp;)       { return AnimatedTransformList; },
&gt; +            [](const auto&amp;)                         { return AnimatedUnknown; }

I don&apos;t think we usually indent things this way.

&gt; Source/WebCore/svg/SVGAnimatedType.h:145
&gt; +    RefPtr&lt;SVGValue&gt; values[2];

Rather than have an array, why not separate first and second members?

RefPtr&lt;SVGValue&gt; first;
RefPtr&lt;SVGValue&gt; second;

&gt; Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp:285
&gt;          for (int i = 0; i &lt; kernelMatrixSize; ++i)
&gt; -            divisorValue += kernelMatrix.at(i);
&gt; +            divisorValue += kernelMatrix.propertyAt(i);

Can you use a for : loop here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399981</commentid>
    <comment_count>27</comment_count>
      <attachid>334060</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-16 12:41:13 -0800</bug_when>
    <thetext>Created attachment 334060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399993</commentid>
    <comment_count>28</comment_count>
      <attachid>333814</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-02-16 13:20:46 -0800</bug_when>
    <thetext>Comment on attachment 333814
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:16
&gt;&gt; +        use-after-free bugs were happening. A more subtle problem can happen when
&gt; 
&gt; s/a/some/

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:46
&gt;&gt; +        Add new files for SVGValue and SVGListVlaues. Move definitions from
&gt; 
&gt; Typo: SVGListValues

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:81
&gt;&gt; +        Don&apos;t pass SVGAnimatedType getter to resetFromBaseValues(). The PropertyTYpe
&gt; 
&gt; Typo: PropertyType

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedAngle.cpp:69
&gt;&gt; +    const auto&amp; fromEnumeration = static_cast&lt;unsigned&amp;&gt;(*from-&gt;values[1]);
&gt; 
&gt; I don&apos;t like static_cast from SVGValue to underlying types of variants. It isn&apos;t really just a cast, since it is calling into a function that is checking the type and ASSERTing, etc.
&gt; 
&gt; I&apos;d prefer .asSVGAngleValue() or something, or maybe even a new asVariantType&lt;SVGAngleValue&gt; helper.

I added a template function SVGValue::as() and I replaced all the casting by calls to as&lt;PropertyType&gt;().

&gt;&gt; Source/WebCore/svg/SVGAnimatedAngle.cpp:86
&gt;&gt; +    auto&amp; toEnumeration = static_cast&lt;unsigned&amp;&gt;(*to-&gt;values[1]);
&gt; 
&gt; Aren&apos;t these const too?

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedColor.cpp:48
&gt;&gt; +    auto&amp; toColor = static_cast&lt;Color&amp;&gt;(*to-&gt;values[0]);
&gt; 
&gt; Yeah, I think we need a better way to convert from SVGValue to the underlying types.

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp:79
&gt;&gt; +    const auto&amp; formSecond = m_animationElement-&gt;animationMode() == ToAnimation ? static_cast&lt;float&amp;&gt;(*animated-&gt;values[1]) : static_cast&lt;float&amp;&gt;(*from-&gt;values[1]);
&gt; 
&gt; Typo: from

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.cpp:88
&gt;&gt; +    m_animationElement-&gt;animateAdditiveNumber(percentage, repeatCount, formSecond, toSecond, toAtEndOfDurationSecond, animatedSecond);
&gt; 
&gt; Typo: from

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:57
&gt;&gt; +    static std::unique_ptr&lt;SVGAnimatedType&gt; create(PropertyType&amp;&amp; property)
&gt; 
&gt; I don&apos;t understand why these are public but the constructor is also public. Which should people use? Can the actual constructor be private?

The constructors were private :). But Sam wanted to use std::make_unique, so I had to make them public. See https://bugs.webkit.org/show_bug.cgi?id=168586#c2.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:107
&gt;&gt; +        ASSERT(values[0] &amp;&amp; !values[1]);
&gt; 
&gt; Why is it an error to call toString on something with two values?

The deleted functions SVGAnimatedType::valueAsString() and SVGAnimatedType::setValueAsString() were expecting only six single value SVGAnimatedType. And we were asserting that only these six types are the ones that we allow calling these two functions. With this patch, we are asserting here that this two functions will not be called for double value SVGAnimatedType. And SVGValue::toString() and SVGValue::parse() will assert if the SVGPropertyTraits does not implement toString or parse() functions. Besides we do not have a SVGPropertyTraits for a double valued SVGAnimatedType.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:141
&gt;&gt; +            [](const auto&amp;)                         { return AnimatedUnknown; }
&gt; 
&gt; I don&apos;t think we usually indent things this way.

Fixed.

&gt;&gt; Source/WebCore/svg/SVGAnimatedType.h:145
&gt;&gt; +    RefPtr&lt;SVGValue&gt; values[2];
&gt; 
&gt; Rather than have an array, why not separate first and second members?
&gt; 
&gt; RefPtr&lt;SVGValue&gt; first;
&gt; RefPtr&lt;SVGValue&gt; second;

Fixed,

&gt;&gt; Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp:285
&gt;&gt; +            divisorValue += kernelMatrix.propertyAt(i);
&gt; 
&gt; Can you use a for : loop here?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409237</commentid>
    <comment_count>29</comment_count>
      <attachid>336505</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-03-25 22:26:39 -0700</bug_when>
    <thetext>Created attachment 336505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409253</commentid>
    <comment_count>30</comment_count>
      <attachid>336508</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-03-25 23:37:00 -0700</bug_when>
    <thetext>Created attachment 336508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409307</commentid>
    <comment_count>31</comment_count>
      <attachid>336521</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-03-26 09:58:44 -0700</bug_when>
    <thetext>Created attachment 336521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414572</commentid>
    <comment_count>32</comment_count>
      <attachid>337942</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-04-13 19:01:10 -0700</bug_when>
    <thetext>Created attachment 337942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414593</commentid>
    <comment_count>33</comment_count>
      <attachid>337942</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-13 20:03:57 -0700</bug_when>
    <thetext>Comment on attachment 337942
Patch

Attachment 337942 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/7311818

New failing tests:
animations/needs-layout.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414594</commentid>
    <comment_count>34</comment_count>
      <attachid>337952</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-13 20:03:59 -0700</bug_when>
    <thetext>Created attachment 337952
Archive of layout-test-results from ews101 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-sierra  Platform: Mac OS X 10.12.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435143</commentid>
    <comment_count>35</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-21 10:16:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/41333684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512448</commentid>
    <comment_count>36</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-04 18:46:59 -0800</bug_when>
    <thetext>The approach of 191237 is better than the one taken by the attached patch.

*** This bug has been marked as a duplicate of bug 191237 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302119</attachid>
            <date>2017-02-19 23:27:45 -0800</date>
            <delta_ts>2017-02-21 15:21:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20170219232502.patch</filename>
            <type>text/plain</type>
            <size>157078</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA2NmM2NWUyNmNmNTZl
YmU0NzhiZDc4NWNjZDBjMjBmNGVhZjMwYS4uYTcxYWI4ZDZmOWZhOGMyZWI4ZjQxMjYxNDNhNWJk
NDAxMWQ1YWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0NCBAQAorMjAxNy0wMi0xOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
U1ZHQW5pbWF0ZWRUeXBlIGhvbGRzIFJlZkNvdW50ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGhvbGRp
bmcgYSB1bmlvbiBvZiByYXcgcG9pbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgY2hhbmdpbmcgdGhlIHJh
dyBwb2ludGVycyB3aGljaCBpcyBoZWxkIGJ5CisgICAgICAgIFNWR0FuaW1hdGVkVHlwZSBhbmQg
dGhlIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmIG9iamVjdCB0byBiZSBSZWZDb3VudGVkCisg
ICAgICAgIHBvaW50ZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBTVkdBbmltYXRl
ZFR5cGUgd2hpY2ggaG9sZHMgYSB1bmlvbiBvZiByYXcgcG9pbnRlcnMgdG8KKyAgICAgICAgaG9s
ZCBSZWZDb3VudGVkIFZhcmlhbnQgb2JqZWN0cy4gSXQgbWFrZXMgdGhlIFNWR0FuaW1hdGVkVHlw
ZSBob2xkcyBhIHBhaXIKKyAgICAgICAgU1ZHQW5pbWF0ZWRWYWx1ZS4gVGhlIFNWR0FuaW1hdGVk
VmFsdWUgaXMgYSBSZWZDb3VudGVkIFZhcmlhbnQgd2hpY2ggaG9sZHMKKyAgICAgICAgYSBzaW5n
bGUgZGF0YSB0eXBlLiBTVkdBbmltYXRlZFR5cGUgY2FuIGhvbGQgb25lIG9yIHR3byBTVkdBbmlt
YXRlZFZhbHVlcy4KKyAgICAgICAgVGhlIGRhdGEgcGFpciBoYXZlIHRvIGJlIHN0b3JlZCBpbiBz
ZXBhcmF0ZSBvYmplY3RzIG5vdCBpbiB0aGUgc2FtZSBWYXJpYW50CisgICAgICAgIGJlY2F1c2Ug
dGhleSBhcmUgaGVsZCBieSB0d28gZGlmZmVyZW50IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
IG9iamVjdHMuCisKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0eSBy
YXcgcG9pbnRlciBpbiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZgorICAgICAgICB0byBiZSBi
ZSBhIFNWR0FuaW1hdGVkVmFsdWUgd2hpY2ggaXMgYSBSZWZDb3VudGVkIHBvaW50ZXIgaW5pdGlh
dGVkIGluIAorICAgICAgICBTVkdBbmltYXRlZFR5cGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBTVkdNYXJrZXJUeXBlcy5oIGFuZCBTVkdBbmlt
YXRlZFZhbHVlLmgKKyAgICAgICAgYW5kIGRlbGV0ZSBTVkdSZWN0VHJhaXRzLmggZnJvbSB0aGUg
cHJvamVjdC4gTWFrZSBQYXJzZXJVdGlsaXRpZXMuaCBwcml2YXRlIGJlY2F1c2UKKyAgICAgICAg
aXQgaXMgaW5jbHVkZWQgaW4gU1ZHUHJvcGVydHlUcmFpdHMuaC4KKworICAgICAgICAqIGNzcy9C
YXNpY1NoYXBlRnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yQmFzaWNT
aGFwZSk6IFJlcGxhY2UgdGhlIGNhbGwgdG8gcGF0aFNoYXBlLnBhdGhEYXRhKCktPmNvcHkoKQor
ICAgICAgICBieSB0aGUgc3RhdGljIGZ1bmN0aW9uIFNWR1BhdGhCeXRlU3RyZWFtOjpjcmVhdGUo
KS4KKyAgICAgICAgKFdlYkNvcmU6OmJhc2ljU2hhcGVGb3JWYWx1ZSk6IERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKTogUmVwbGFjZSB0aGUgY2Fs
bCB0bworICAgICAgICBTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoKSBieSBTVkdB
bmltYXRlZFR5cGU6OnBhcnNlKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVu
dEJhc2U6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KTogIFJlcGxhY2UgdGhlIGNhbGwKKyAgICAgICAg
dG8gU1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkgYnkgU1ZHQW5pbWF0ZWRUeXBlOjp0
b1N0cmluZygpLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KTpVc2UgCisgICAgICAgIFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVl
LCB1bnNpZ25lZD4+Ojpmcm9tU3RyaW5nKCkgdG8gZ2V0CisgICAgICAgIHRoZSBhbmdsZSB2YWx1
ZSBmb3JtIGEgc3RyaW5nLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOiBEb24ndCBjb25zdHJ1Y3QKKyAgICAgICAgYW4g
U1ZHQW5pbWF0ZWRUeXBlIGZyb20gdGhlIHJldHVybiBvZiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
cygpIHNpbmNlIGl0IG5vdworICAgICAgICByZXR1cm5zIGFuIFNWR0FuaW1hdGVkVHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKTogRG9uJ3QgcGFzcyBhIGdldHRlcgorICAgICAgICB0byByZXNldEZyb21CYXNlVmFs
dWVzIHNpbmNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVz
ZWQKKyAgICAgICAgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOiBSZXBsYWNlIHRoZSBjYWxsIHRvIAorICAgICAgICBTVkdBbmltYXRlZFR5cGU6OmFu
Z2xlQW5kRW51bWVyYXRpb24oKSBieSBTVkdBbmltYXRlZFR5cGU6OnByb3BlcnRpZXM8PigpLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKTogRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRk
QW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBE
aXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAg
ICAgICAgRGl0dG8KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0
b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5n
dGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0
b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpwYXJzZU51bWJlckZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TnVtYmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRv
cjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6
OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAg
ICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdGFydEFuaW1W
YWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJl
Y3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRv
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmlu
Z0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjp0eXBlKTogVGhlIHR5cGUgb2YgdGhlIFNWR0FuaW1hdGVkVHlwZSBjYW4g
YmUKKyAgICAgICAgZGVkdWNlZCBmcm9tIHRoZSB0eXBlIG9mIHRoZSBTVkdBbmltYXRlZFZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dG9TdHJpbmcpOiBSZW5hbWUg
dmFsdWVBc1N0cmluZygpIHRvIHRvU3RyaW5nKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OnBhcnNlKTogUmVuYW1lIHNldFZhbHVlQXNTdHJpbmcoKSB0byBwYXJzZSgpLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5n
bGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVDb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5n
dGhMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
VHJhbnNmb3JtTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVw
bGFjZWQgYnkgdGhlIHRlbXBsYXRlIGZ1bmN0aW9uIGNyZWF0ZSgpLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyk6IERlbGV0ZWQuCisKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZSk6IFRlbXBsYXRlIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBTVkdBbmlt
YXRlZFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByb3BlcnR5KTog
VGVtcGxhdGUgZnVuY3Rpb25zIHRvIHJldHVybiB0aGUgc3RvcmVkIHByb3BlcnR5LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwcm9wZXJ0aWVzKTogVGVtcGxhdGUgZnVuY3Rp
b25zIHRvIHJldHVybiB0aGUgc3RvcmVkIHBhaXIgcHJvcGVydGllcy4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKTogVGVtcGxhdGUgY29uc3RydWN0
b3JzIHRvIGNvbnN0cnVjdCBhIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6dHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmFuZ2xlQW5kRW51bWVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6Y29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjplbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjppbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlckxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJPcHRpb25hbE51bWJlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBhdGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnN0cmluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOiBEZWxldGVkLgor
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZSk6IENy
ZWF0ZSBhIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiBmcm9tCisgICAgICAgIHRoZSBjdXJyZW50
QmFzZVZhbHVlIGFuZCB1c2UgdGhpcyBwb2ludGVyIHRvIGNyZWF0ZSBhbiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFu
aW1hdG9yOjpyZXNldEZyb21CYXNlVmFsdWUpOiBObyBuZWVkIGZvciB0aGUgU1ZHQW5pbWF0ZWRU
eXBlIGdldHRlcgorICAgICAgICBiZWNhdXNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9m
ZiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmlt
YXRlZFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29u
c3RydWN0RnJvbUJhc2VWYWx1ZXMpOiBDcmVhdGUgdHdvICBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1
ZT4gCisgICAgICAgIGZyb20gdGhlIGN1cnJlbnRCYXNlVmFsdWVzIGFuZCB1c2UgdGhlc2UgcGFp
ciBwb2ludGVycyB0byBjcmVhdGUgYW4gc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4u
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFz
ZVZhbHVlcyk6ICBObyBuZWVkIGZvciB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlcgorICAgICAg
ICBiZWNhdXNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVz
ZWQgdG8gZ2V0IHRoZSBwcm9wZXJ0aWVzIGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0aW9uKTogUmVu
YW1lIHRoZSBhcmd1bWVudCBuYW1lLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVmFsdWUu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlOjpjcmVhdGUpOiBU
ZW1wbGF0ZSBmdW5jdGlvbnMgdG8gY3JlYXRlIGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZTo6aG9sZHNBbHRlcm5hdGl2ZSk6IEEgdGVtcGxh
dGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBkYXRhIHR5cGUgb2YgYW4gU1ZHQW5pbWF0ZWRWYWx1
ZS4gCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlOjpwcm9wZXJ0eSk6IFRlbXBs
YXRlIGZ1bmN0aW9ucyB0byByZXR1cm4gdGhlIGRhdGEgb2YgYW4gU1ZHQW5pbWF0ZWRWYWx1ZS4g
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlOjp0b1N0cmluZyk6IEEgdGVtcGxh
dGUgZnVuY3Rpb24gdG8gcmV0dXJuIHZhbHVlIGFuIFNWR0FuaW1hdGVkVmFsdWUgYXMgYW4gU3Ry
aW5nLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZTo6cGFyc2UpOiBBIHRlbXBs
YXRlIGZ1bmN0aW9uIHRvIGNoYW5nZSB2YWx1ZSBhbiBTVkdBbmltYXRlZFZhbHVlLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZTo6U1ZHQW5pbWF0ZWRWYWx1ZSk6IFRlbXBsYXRl
IGNvbnN0cnVjdG9ycyB0byBjb25zdHJ1Y3QgYW4gU1ZHQW5pbWF0ZWRWYWx1ZS4KKworICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6cGFyc2UpOgor
ICAgICAgICBBZGQgZnVuY3Rpb25zIHRvIFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RW
YWx1ZXM+LgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46OnBhcnNlKTogRGl0dG8uCisK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0
c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hl
c3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5
cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyVHlwZXMu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJV
bml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46
OmhpZ2hlc3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFs
dWUpOgorICAgICAgICBNb3ZlIHRoZXNlIFNWR1Byb3BlcnR5VHJhaXRzIHRvIGEgc2VwYXJhdGUg
ZmlsZSBiZWNhdXNlIHdlIHdhbnQgdG8gYWRkIGEgbmV3CisgICAgICAgIFNWR1Byb3BlcnR5VHJh
aXRzIGZvciB0aGUgcGFpciA8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+LgorCisgICAgICAgICog
c3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojp0b1N0cmluZyk6Cisg
ICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4uCisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojppbml0
aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5
dGVTdHJlYW0+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3Ry
ZWFtOjpTVkdQYXRoQnl0ZVN0cmVhbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoQnl0ZVN0cmVhbTo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoQnl0ZVN0cmVhbTo6Y29weSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoQnl0ZVN0cmVhbTo6YmVnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEJ5dGVTdHJlYW06OmVuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhC
eXRlU3RyZWFtOjpjbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6aXNFbXB0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6cmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAgTWFrZSBTVkdQYXRoQnl0ZVN0cmVhbSBp
bmhlcml0cyBmcm9tIFZlY3Rvcjx1bnNpZ25lZCBjaGFyLCAxPi4gR2V0IHJpZCBvZiBtb3N0Cisg
ICAgICAgIG9mIHRoZSBjbGFzcyBmdW5jdGlvbnMgc2luY2UgdGhleSB3ZXJlIGp1c3Qgd3JhcHBl
cnMgYXJvdW5kIHRoZSBWZWN0b3IgbWVtYmVyLgorICAgICAgICBNYWtlIFNWR1BhdGhCeXRlU3Ry
ZWFtIHN1cHBvcnRzIGNvcHkgYW5kIG1vdmUgc2VtYW50aWNzLgorCisgICAgICAgICogc3ZnL1NW
R1BhdGhCeXRlU3RyZWFtU291cmNlLmg6IFJlcGxhY2UgU1ZHUGF0aEJ5dGVTdHJlYW06OkRhdGFJ
dGVyYXRvciBieQorICAgICAgICBTVkdQYXRoQnl0ZVN0cmVhbTo6Y29uc3RfaXRlcmF0b3IuCisK
KyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKTogUmVwbGFjZSB0aGUgY2FsbCB0
byAKKyAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCBieSBTVkdQYXRoQnl0ZVN0cmVh
bTo6YXBwZW5kVmVjdG9yKCkuCisgICAgICAgIChXZWJDb3JlOjphZGRUb1NWR1BhdGhCeXRlU3Ry
ZWFtKTogVXNlIFNWR1BhdGhCeXRlU3RyZWFtIG1vdmUgc2VtYW50aWNzLgorCisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5j
dGlvbnMgdG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPi4KKworICAgICAg
ICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUpOgorICAgICAgICBBZGQgYSBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIHN0cmluZyB0byBi
ZSB1c2VkIGJ5IAorICAgICAgICBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+LgorCisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPi4KKworICAgICAgICAqIHN2
Zy9TVkdSZWN0Lmg6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgTW92ZSBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IGZyb20gU1ZHUmVjdFRyYWl0
cy5oIHRvIFNWR1Byb3BlcnR5VHJhaXRzLmggCisgICAgICAgIHNpbmNlIGl0IGluY2x1ZGVzIHRo
ZSBTVkdQcm9wZXJ0eVRyYWl0cyBmb3IgdGhlIG5vbiBTVkcgdHlwZXMuCisKKyAgICAgICAgKiBz
dmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICBB
ZGQgZnVuY3Rpb25zIHRvIFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+
LgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6aW5pdGlhbFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6cGFyc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+OjpwYXJzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojppbml0aWFsVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+OjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+Ojpmcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OnBhcnNl
KToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byB0aGUgU1ZHUHJvcGVydHlUcmFpdHMgZm9yIG5v
biBTVkcgdHlwZXMuCisKIDIwMTctMDItMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBJbXByb3ZlIGhhbmRsaW5n
IG9mIGxpdmUgYnJvYWRjYXN0IHZpZGVvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTQ4NzU0M2RiZDRlNWI3YzZjMzMxMmY5NjYy
YjcyZmFkNzZiNmRhNy4uNDRiMWU5NzIyZWNiMjkwYTRmY2M5MTFlMTRmN2VmMGRlNjhmNDU0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjMyMCwxMiArMjMyMCwxNCBAQAogCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTVCODdFQzFDQUFG
MEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdl
RGVjb2RlckNHLmNwcCAqLzsgfTsKIAkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdl
RGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJ
NTU3NTA1NkQxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTc1MDU2QzFFNTNCMzBDMDA4REUz
MEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLzsgfTsKIAkJNTU3NkE1NjQxRDg4QTcwODAwQ0NDMDRD
IC8qIEltYWdlRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovOyB9
OwogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0ND
MDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1NTk3RjgyNjFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1OTdG
ODI0MUQ5MUMzMTMwMDY2QkMyMSAvKiBJbWFnZUZyYW1lQ2FjaGUuY3BwICovOyB9OwogCQk1NTk3
RjgyNzFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTk3RjgyNTFEOTFDMzEzMDA2NkJDMjEg
LyogSW1hZ2VGcmFtZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTVBMzM2RjcxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFE
ODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLzsgfTsKIAkJNTVBMzM2RjkxRDgyMUUz
QzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VC
YWNraW5nU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1NUU0NEFFMTFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHQW5pbWF0ZWRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFNDRBRTAxRTRC
RkJDNTAwOTI0NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCAqLzsgfTsKIAkJNTcwNkE2OTYxRERF
NUM5NTAwQTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk1MURERTVDOTUwMEEw
M0IxNCAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi87IH07CiAJCTU3MDZBNjk4
MURERTVFNDYwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk3MURERTVFNDYwMEEwM0IxNCAvKiBK
U1JzYU9hZXBQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OUExRERFNUU4NTAwQTAzQjE0IC8qIEpT
UnNhT2FlcFBhcmFtcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzA2QTY5OTFEREU1RTg1MDBBMDNCMTQgLyogSlNSc2FPYWVwUGFyYW1zLmNwcCAq
LzsgfTsKQEAgLTI5NjQsNyArMjk2Niw2IEBACiAJCTdDRDQ5NENDMUE4NkVCMUQwMDBBODdFQyAv
KiBSZW5kZXJBdHRhY2htZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRDQ5NENBMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50
LmNwcCAqLzsgfTsKIAkJN0NENDk0Q0QxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDQ5
NENCMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNThENEExREQ2NEE1QjAwMTI4
NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAqLzsgfTsKLQkJ
N0NFNThENEUxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDREMURENjk0RkUwMDEyODU1
MiAvKiBTVkdSZWN0VHJhaXRzLmggKi87IH07CiAJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAv
KiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCAqLzsgfTsKIAkJN0NF
NThENTQxREQ3RDZFMjAwMTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDUyMUREN0IwOTMwMDEyODU1
MiAvKiBTVkdMZW5ndGhWYWx1ZS5jcHAgKi87IH07CiAJCTdDRTU4RDU3MUREN0Q5NkQwMDEyODU1
MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1NTFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3Jt
VmFsdWUuY3BwICovOyB9OwpAQCAtNDc1OSw3ICs0NzYwLDcgQEAKIAkJQjIyMjdBNEUwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01QYXRo
RWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIy
Mjc4QkIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1NjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMwMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJV
dGlsaXRpZXMuY3BwICovOyB9OwotCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFy
c2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87
IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMxMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1ODBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUGF0aEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4QzIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmNw
cCAqLzsgfTsKIAkJQjIyMjdBNTkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMzBE
MDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNUIwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2Vn
LmggKi87IH07CkBAIC01NDI4LDcgKzU0MjksNyBAQAogCQlCQzZENkUyNjA5QUY5NDM1MDBGNTk3
NTkgLyogU2Nyb2xsVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc0REEzNzEwMTNG
M0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNzREQTM1MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzREQTM4
MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc0REEzNjEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29s
b3IuY3BwICovOyB9OwotCQlCQzc2QUMxMzBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc2
QUMxMTBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggKi87IH07CisJCUJDNzZB
QzEzMEREN0FENUMwMDQxNUYzNCAvKiBQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzZBQzExMEREN0FENUMwMDQxNUYzNCAv
KiBQYXJzZXJVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBDNEVB
OTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDYwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBS
ZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNzcyQzQ0MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi87IH07CiAJ
CUJDNzcyQzQ3MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJDNDUwQzRFQjJDNjAwODMy
ODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi87IH07CkBAIC05Njc1LDYgKzk2NzYsNyBAQAogCQk1
NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1
NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNv
ZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBB
IC8qIFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R01hcmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYyMUQ4
OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEltYWdlRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1OTdGODI0MUQ5MUMzMTMwMDY2QkMyMSAvKiBJbWFnZUZyYW1lQ2FjaGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VGcmFtZUNhY2hlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk2ODIsNiArOTY4NCw3IEBACiAJCTU1QTMz
NkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCYWNraW5nU3RvcmUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUwIC8qIFNWR0ltYWdl
Q2xpZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNsaWVu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0
NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA2
QTY5NDFEREU1QkY4MDBBMDNCMTQgLyogUnNhT2FlcFBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhT2FlcFBh
cmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDZBNjk1MURERTVDOTUw
MEEwM0IxNCAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNkE2OTcxRERFNUU0NjAwQTAzQjE0IC8qIEpTUnNh
T2FlcFBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JzYU9hZXBQ
YXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjA3LDcgKzEwNjEwLDYg
QEAKIAkJN0NENDk0Q0ExQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDQ5NENCMUE4NkVCMUQwMDBBODdFQyAv
KiBSZW5kZXJBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlckF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENDkx
REQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDRTU4RDRE
MURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0xlbmd0aFZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNDcyLDYgKzIxNDc0LDcgQEAKIAkJCQk0
MzlEMzM0MDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlLmggKi8sCiAJCQkJODM2
RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLywK
IAkJCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
aCAqLywKKwkJCQk1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHQW5pbWF0ZWRWYWx1ZS5o
ICovLAogCQkJCUIyMjI3N0Y5MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5j
cHAgKi8sCiAJCQkJQjIyMjc3RkEwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50
LmggKi8sCiAJCQkJQjIyMjc3RkIwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50
LmlkbCAqLywKQEAgLTIxODEwLDcgKzIxODEzLDYgQEAKIAkJCQlCMjIyNzkwNzBEMDBCRjIxMDA3
MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTA4MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdSZWN0RWxlbWVudC5oICovLAogCQkJCUIyMjI3OTA5MEQwMEJGMjEwMDcxQjc4
MiAvKiBTVkdSZWN0RWxlbWVudC5pZGwgKi8sCi0JCQkJN0NFNThENEQxREQ2OTRGRTAwMTI4NTUy
IC8qIFNWR1JlY3RUcmFpdHMuaCAqLywKIAkJCQlCMjIyNzkwQTBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHUmVuZGVyaW5nSW50ZW50LmggKi8sCiAJCQkJQjIyMjc5MEIwRDAwQkYyMTAwNzFCNzgyIC8q
IFNWR1JlbmRlcmluZ0ludGVudC5pZGwgKi8sCiAJCQkJQjIyMjc5MEMwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMjE5MDIsNiArMjE5MDQsNyBAQAogCQkJ
CUIyRTRFQzk1MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuaCAqLywKIAkJCQlCMkU0
RUM5NjBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmlkbCAqLywKIAkJCQlCMjhDNkEy
NjBEMDBDNDQ4MDAzMzRBQTQgLyogeGxpbmthdHRycy5pbiAqLywKKwkJCQk1NTc1MDU2QzFFNTNC
MzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gc3Zn
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1NTM0LDYgKzI1NTM3LDcgQEAKIAkJ
CQlBNTg0RkUyNjE4NjM3REFCMDA4NDNCMTAgLyogQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3NTE4NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9u
Q3J5cHRvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NTc1MDU2RDFFNTNCMzBDMDA4
REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjBGMzJCMURG
QkIxMDcwMDQxNkQ2QyAvKiBDb21tb25WTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEEx
QUE2QkE1RTAwQTk4QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzJGNEU3OEMxRTQ1QzNFRjAwNkQ3MTA1IC8qIENvbXBsZXhUZXh0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Miw3ICsyODM5Niw2IEBACiAJCQkJQjIyMjdBOUEw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNWR1JlY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJN0NFNThENEUxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFp
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdS
ZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBMDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzQ3
OTBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjg2MDcsNiArMjg2MTAsNyBAQAogCQkJCUJDQTJCMDYxMTA1MDQ3NjAwMDQzQkQxQyAvKiBVc2Vy
U2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EyQjA4QjEwNTA1QkNEMDA0M0JEMUMgLyog
VXNlclNjcmlwdFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCRjE1MTEwNTgxM0JGMDBB
NDBBMDcgLyogVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1RTQ0QUUxMUU0
QkZCQzUwMDkyNDU3QiAvKiBTVkdBbmltYXRlZFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzhCRjE1QTEwNTgxNDE4MDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJl
SW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAg
LyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNp
Y1NoYXBlRnVuY3Rpb25zLmNwcAppbmRleCA1ZjIyNWY3NGFiYjU1MjkwYWNmMTE2OTJjNjZjZmI4
M2I3YmIzNTk3Li43N2VmZGM4MWVkODJiMWI1ZGE2ZDcxYmY4OGZmMmMwNDMxNzUyZWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCkBAIC0xMDgsNyArMTA4
LDcgQEAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckJhc2ljU2hhcGUoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBCYXNpY1MKICAgICB9CiAgICAgY2FzZSBCYXNpY1NoYXBl
OjpCYXNpY1NoYXBlUGF0aFR5cGU6IHsKICAgICAgICAgYXV0byYgcGF0aFNoYXBlID0gZG93bmNh
c3Q8QmFzaWNTaGFwZVBhdGg+KGJhc2ljU2hhcGUpOwotICAgICAgICBhdXRvIHBhdGhTaGFwZVZh
bHVlID0gQ1NTQmFzaWNTaGFwZVBhdGg6OmNyZWF0ZShwYXRoU2hhcGUucGF0aERhdGEoKS0+Y29w
eSgpKTsKKyAgICAgICAgYXV0byBwYXRoU2hhcGVWYWx1ZSA9IENTU0Jhc2ljU2hhcGVQYXRoOjpj
cmVhdGUoU1ZHUGF0aEJ5dGVTdHJlYW06OmNyZWF0ZSgqcGF0aFNoYXBlLnBhdGhEYXRhKCkpKTsK
ICAgICAgICAgcGF0aFNoYXBlVmFsdWUtPnNldFdpbmRSdWxlKHBhdGhTaGFwZS53aW5kUnVsZSgp
KTsKIAogICAgICAgICBiYXNpY1NoYXBlVmFsdWUgPSBXVEZNb3ZlKHBhdGhTaGFwZVZhbHVlKTsK
QEAgLTI2Nyw3ICsyNjcsNyBAQCBSZWY8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNv
bnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYQogICAgIH0KICAgICBj
YXNlIENTU0Jhc2ljU2hhcGU6OkNTU0Jhc2ljU2hhcGVQYXRoVHlwZTogewogICAgICAgICBhdXRv
JiBwYXRoVmFsdWUgPSBkb3duY2FzdDxDU1NCYXNpY1NoYXBlUGF0aD4oYmFzaWNTaGFwZVZhbHVl
KTsKLSAgICAgICAgYXV0byBwYXRoID0gQmFzaWNTaGFwZVBhdGg6OmNyZWF0ZShwYXRoVmFsdWUu
cGF0aERhdGEoKS5jb3B5KCkpOworICAgICAgICBhdXRvIHBhdGggPSBCYXNpY1NoYXBlUGF0aDo6
Y3JlYXRlKFNWR1BhdGhCeXRlU3RyZWFtOjpjcmVhdGUocGF0aFZhbHVlLnBhdGhEYXRhKCkpKTsK
ICAgICAgICAgcGF0aC0+c2V0V2luZFJ1bGUocGF0aFZhbHVlLndpbmRSdWxlKCkpOwogCiAgICAg
ICAgIGJhc2ljU2hhcGUgPSBXVEZNb3ZlKHBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAppbmRleCAxMWFlN2E5ODEyYjlhNDJhN2FkY2NiMjIzZjhi
Mjk0Yzk4MDFmZjMwLi40ZmY4ZDhjMjRmNmY0YmU1OTA5NWM5ZjFjZjllZTlmYWY5YWNlYmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcApAQCAtMjI5
LDcgKzIyOSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGVkVHlw
ZSgpCiAgICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKICAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBh
bmltYXRvci0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlVmFsdWUpOwogICAgIGVsc2UKLSAgICAg
ICAgbV9hbmltYXRlZFR5cGUtPnNldFZhbHVlQXNTdHJpbmcoYXR0cmlidXRlTmFtZSwgYmFzZVZh
bHVlKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUtPnBhcnNlKGF0dHJpYnV0ZU5hbWUsIGJhc2VW
YWx1ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQo
U1ZHRWxlbWVudCYgdGFyZ2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkKQEAgLTM0OSwxNCArMzQ5LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
OjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlz
RW1wdHkoKSkgewogICAgICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRo
LgogICAgICAgICAvLyBDb252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0
cmluZyBhbmQgYXBwbHkgaXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5z
dGFuY2VzLgotICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRh
cmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5n
KCkpOworICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdl
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5k
IHRoZSBhbmltYXRpb24gcHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KICAgICBT
aG91bGRBcHBseUFuaW1hdGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRh
cmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBs
eVhNTGFuZENTU0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5k
SW5zdGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+
dmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5z
dGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dG9T
dHJpbmcoKSk7CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4K
ICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZhbHVlcyBhcmUgYWxyZWFkeSBjaGFu
Z2VkLCB1bmxpa2UgZm9yIENTUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNw
cAppbmRleCBjNTczMjU1ZWMwMWQ0M2UzNDIwYzQ2MWM2MjEzMTEwNmYzZDUyMzAxLi4wZDgyNTlk
MzI1YTIxY2EwNDNmYmVhODc4OTY2MDc1OGJlMjk2OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuY3BwCkBAIC0zMiwyMiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFu
aW1hdG9yOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5p
bWF0aW8KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmds
ZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVu
dW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2ln
bmVkPj4oKSk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQYWlyID0gYW5pbWF0ZWRUeXBlLT5hbmdsZUFu
ZEVudW1lcmF0aW9uKCk7Ci0KLSAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOwotICAgIFNWR01hcmtl
ck9yaWVudFR5cGUgb3JpZW50VHlwZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVu
dFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmluZywgYW5nbGUpOwotICAgIGlmIChvcmllbnRUeXBlID4g
MCkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLnNlY29uZCA9IG9yaWVudFR5cGU7Ci0gICAgaWYgKG9y
aWVudFR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCi0gICAgICAgIGFuaW1hdGVkUGFpci5m
aXJzdCA9IGFuZ2xlOwotCi0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xl
VmFsdWUsIHVuc2lnbmVkPj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVu
dW1lcmF0aW9uKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4o
YW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC01Nyw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmlt
YXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFu
Z2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5p
bWF0ZWRUeXBlOjphbmdsZUFuZEVudW1lcmF0aW9uKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YW5pbVZhbFdpbGxD
aGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNzUsOCArNjUsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRkQW5p
bWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdAogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9u
ID0gZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVBbmRFbnVt
ZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29uc3QgYXV0byBmcm9t
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IGZyb20tPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5z
aWduZWQ+KCk7CisgICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+cHJvcGVydGll
czxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oKTsKICAgICAvLyBPbmx5IHJlc3BlY3QgYnkgYW5p
bWF0aW9ucywgaWYgZnJvbSBhbmQgYnkgYXJlIGJvdGggc3BlY2lmaWVkIGluIGFuZ2xlcyAoYW5k
IG5vdCBlZy4gJ2F1dG8nKS4KICAgICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25k
ICE9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgfHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQogICAgICAgICByZXR1cm47CkBAIC05
MCwxMCArODAsMTAgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZUFu
aW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQKICAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25z
dCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRp
b24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5k
RW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hbmds
ZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9u
ID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25zdCBhdXRvIGZyb21B
bmdsZUFuZEVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydGllczxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4oKSA6IGZyb20tPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7Cisg
ICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+cHJvcGVydGllczxTVkdBbmdsZVZh
bHVlLCB1bnNpZ25lZD4oKTsKKyAgICBhdXRvIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVt
ZXJhdGlvbiA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0aWVzPFNWR0FuZ2xlVmFsdWUsIHVu
c2lnbmVkPigpOworICAgIGF1dG8gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0
ZWQtPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAKICAgICBpZiAoZnJv
bUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNv
bmQpIHsKICAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIC0gbm8gbGluZWFyIGludGVycG9s
YXRpb24gcG9zc2libGUgYmV0d2VlbiB2YWx1ZXMgKGUuZy4gYXV0byB0byBhbmdsZSkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCmluZGV4IGVjMDg0MmE3M2NlMzZi
N2MxNGNkYjVkMWQ5OTdmODE2Y2U1NDViMTguLjMyOWQ2ZmI5NmY3MzAyYTA2YjY4ZDA5MGZhYmRj
ODYzOWZmYTRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJv
b2xlYW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3Bw
CkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OlNWR0FuaW1h
dGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oc3RkOjptYWtlX3VuaXF1ZTxi
b29sPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmJvb2xlYW4oKSA9IChzdHJpbmcgPT0gInRydWUi
KTsgLy8gd2F0PwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5nKHN0cmlu
ZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEJv
b2xlYW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVCb29sZWFuKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRC
b29sZWFuPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDYsNyBAQCB2
b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcgogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9y
OjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRC
b29sZWFuQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJj
ZW50YWdlLCB1bnNpZ24KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBib29sIGZyb21Cb29sZWFuID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Ym9v
bGVhbigpIDogZnJvbS0+Ym9vbGVhbigpOwotICAgIGJvb2wgdG9Cb29sZWFuID0gdG8tPmJvb2xl
YW4oKTsKLSAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRlZC0+Ym9vbGVhbigpOwor
ICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTxib29sPigpIDogZnJvbS0+cHJv
cGVydHk8Ym9vbD4oKTsKKyAgICBib29sIHRvQm9vbGVhbiA9IHRvLT5wcm9wZXJ0eTxib29sPigp
OworICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxib29sPigp
OwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVUeXBlPGJvb2w+KHBl
cmNlbnRhZ2UsIGZyb21Cb29sZWFuLCB0b0Jvb2xlYW4sIGFuaW1hdGVkQm9vbGVhbik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAKaW5kZXggMTY3MGZmYmFiMzU2NmNm
OTFjOWVhNWY5YmNjNDA1MzRhMzRhMzc5YS4uNjUyODQ2N2FhY2JiZGU2YmMyZmU1OTlmOWMyMjU3
ZTYwMGZhMTZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29s
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcApAQCAt
MzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OlNWR0FuaW1hdGVkQ29sb3JB
bmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50JiBhbmltYXRpbwogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlQ29sb3Ioc3RkOjptYWtlX3VuaXF1ZTxDb2xvcj4oQ1NTUGFyc2VyOjpwYXJzZUNv
bG9yKHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSkpKTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9tU3RyaW5nKHN0cmluZykp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8pCkBAIC00NCw4ICs0NCw4
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0Fu
aW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0CiAgICAgQVNTRVJUKHRvLT50eXBlKCkgPT0gQW5p
bWF0ZWRDb2xvcik7CiAKICAgICAvLyBJZ25vcmVzIGFueSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBv
biByZXN1bHQgdG8gMTAwJSBvcGFxdWUuCi0gICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+Y29s
b3IoKTsKLSAgICBhdXRvJiB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgYXV0byYgZnJvbUNv
bG9yID0gZnJvbS0+cHJvcGVydHk8Q29sb3I+KCk7CisgICAgYXV0byYgdG9Db2xvciA9IHRvLT5w
cm9wZXJ0eTxDb2xvcj4oKTsKICAgICB0b0NvbG9yID0geyByb3VuZEFuZENsYW1wQ29sb3JDaGFu
bmVsKHRvQ29sb3IucmVkKCkgKyBmcm9tQ29sb3IucmVkKCkpLAogICAgICAgICByb3VuZEFuZENs
YW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuZ3JlZW4oKSArIGZyb21Db2xvci5ncmVlbigpKSwKICAg
ICAgICAgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmJsdWUoKSArIGZyb21Db2xv
ci5ibHVlKCkpIH07CkBAIC02OSw4ICs2OSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkCiAg
ICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1l
bnQpOwogCi0gICAgQ29sb3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Y29sb3IoKSA6IGZyb20tPmNvbG9y
KCk7Ci0gICAgQ29sb3IgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIENvbG9yIGZyb21Db2xv
ciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPnByb3BlcnR5PENvbG9yPigpIDogZnJvbS0+cHJvcGVydHk8Q29sb3I+KCk7Cisg
ICAgQ29sb3IgdG9Db2xvciA9IHRvLT5wcm9wZXJ0eTxDb2xvcj4oKTsKIAogICAgIC8vIEFwcGx5
IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZv
ckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9yRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVt
ZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUNvbG9yLCBtX2NvbnRleHRFbGVtZW50
KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQKICAgICBpZiAobV9h
bmltYXRpb25FbGVtZW50LT50b1Byb3BlcnR5VmFsdWVUeXBlKCkgPT0gQ3VycmVudENvbG9yVmFs
dWUpCiAgICAgICAgIHRvQ29sb3IgPSBjdXJyZW50Q29sb3IoKm1fY29udGV4dEVsZW1lbnQpOwog
Ci0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Db2xvciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5j
b2xvcigpOwotICAgIGF1dG8mIGFuaW1hdGVkQ29sb3IgPSBhbmltYXRlZC0+Y29sb3IoKTsKKyAg
ICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3Bl
cnR5PENvbG9yPigpOworICAgIGF1dG8mIGFuaW1hdGVkQ29sb3IgPSBhbmltYXRlZC0+cHJvcGVy
dHk8Q29sb3I+KCk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xvciAtIHRoaXMgd2lsbCBu
ZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBkaWZmZXJlbnQgY29sb3Ig
c3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBbMC0yNTVdIENvbG9ycy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAppbmRleCA4
MTlkMjU3ZTY0NTljNjFmZWFmODI0OTg2MDE5NDE3MmRiMjViMjJkLi44NDcxOWU1ZWVhNDEzMzYy
NjBjMzdkMzRmNTYwNzY5MzVlYTNkYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkRW51bWVyYXRpb24uY3BwCkBAIC0xMDksMTQgKzEwOSwxMiBAQCBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uQW5pbWF0b3I6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcihTVkdBbmlt
YXRpb25FbGVtZQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5p
cXVlPHVuc2lnbmVkPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmVudW1lcmF0aW9uKCkgPSBlbnVt
ZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0
RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVu
dC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwg
c3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0b3BBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTEyNiw3ICsxMjQsNyBAQCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Bbmlt
YXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdAogCiB2b2lk
IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVu
dW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJh
dGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFu
aW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Bbmlt
YXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRh
Z2UsIHVuCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOwogCi0gICAgdW5zaWduZWQgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+ZW51
bWVyYXRpb24oKSA6IGZyb20tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQgdG9FbnVtZXJh
dGlvbiA9IHRvLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkJiBhbmltYXRlZEVudW1lcmF0
aW9uID0gYW5pbWF0ZWQtPmVudW1lcmF0aW9uKCk7CisgICAgdW5zaWduZWQgZnJvbUVudW1lcmF0
aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+cHJvcGVydHk8dW5zaWduZWQ+KCkgOiBmcm9tLT5wcm9wZXJ0eTx1bnNpZ25l
ZD4oKTsKKyAgICB1bnNpZ25lZCB0b0VudW1lcmF0aW9uID0gdG8tPnByb3BlcnR5PHVuc2lnbmVk
PigpOworICAgIHVuc2lnbmVkJiBhbmltYXRlZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPnByb3Bl
cnR5PHVuc2lnbmVkPigpOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3Jl
dGVUeXBlPHVuc2lnbmVkPihwZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24sIHRvRW51bWVyYXRp
b24sIGFuaW1hdGVkRW51bWVyYXRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRJbnRlZ2VyLmNwcAppbmRleCBjM2Y4YzhlNzgxNTgxY2EwNWQ2OGU0ZjBiYTMwNjkwZDhhMjQ1
MTE3Li5iMTRiMTk3ZTJkOGI5NTQ2NmQ3ZTZiMTY2ODNiY2IwMmFhN2FiOWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcApAQCAtMzMsMTQgKzMzLDEyIEBAIFNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcihTVkdB
bmltYXRpb25FbGVtZW50KiBhbmltCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8aW50PigpKTsKLSAgICBhbmltYXRlZFR5
cGUtPmludGVnZXIoKSA9IHN0cmluZy50b0ludFN0cmljdCgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJh
aXRzPGludD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICBy
ZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVk
VHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByCiAKIHZvaWQg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVk
VHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2Vy
PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBl
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbQogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09
IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPmludGVnZXIoKSArPSBmcm9tLT5pbnRlZ2VyKCk7Cisg
ICAgdG8tPnByb3BlcnR5PGludD4oKSArPSBmcm9tLT5wcm9wZXJ0eTxpbnQ+KCk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihT
VkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1
bnNpZ25lZCByZXBlYXRDb3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQgdG9JbnRlZ2VyLCBpbnQg
dG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50ZWdlcikKQEAgLTgzLDEw
ICs4MSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbgogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9t
SW50ZWdlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0
aW9uID8gYW5pbWF0ZWQtPmludGVnZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9J
bnRlZ2VyID0gdG8tPmludGVnZXIoKTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2Vy
ID0gdG9BdEVuZE9mRHVyYXRpb24tPmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdl
ciA9IGFuaW1hdGVkLT5pbnRlZ2VyKCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJv
cGVydHk8aW50PigpIDogZnJvbS0+cHJvcGVydHk8aW50PigpOworICAgIGludCB0b0ludGVnZXIg
PSB0by0+cHJvcGVydHk8aW50PigpOworICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIg
PSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8aW50PigpOworICAgIGludCYgYW5pbWF0ZWRJ
bnRlZ2VyID0gYW5pbWF0ZWQtPnByb3BlcnR5PGludD4oKTsKIAogICAgIGNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBm
cm9tSW50ZWdlciwgdG9JbnRlZ2VyLCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGFuaW1hdGVk
SW50ZWdlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCmluZGV4IDViNTY3ZWQyYTk5ZTFmZDgxMzIwY2Ni
Zjk0OWQ0ZmVlMzM4NzJkNjQuLjIxMGRjZTUwY2FkNjk1ZjdjNGNkMTJlYmM3MzhhMzlkY2EwYzMx
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXIuY3BwCkBAIC0zMywyMyArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBh
aXI8aW50LCBpbnQ+PigpKTsKLSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBhbmltYXRlZEludGVn
ZXIgPSBhbmltYXRlZFR5cGUtPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBmbG9hdCBm
aXJzdE51bWJlciA9IDA7Ci0gICAgZmxvYXQgc2Vjb25kTnVtYmVyID0gMDsKLSAgICBpZiAoIXBh
cnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVy
KSkgewotICAgICAgICBhbmltYXRlZEludGVnZXIuZmlyc3QgPSAwOwotICAgICAgICBhbmltYXRl
ZEludGVnZXIuc2Vjb25kID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICBhbmltYXRlZEludGVn
ZXIuZmlyc3QgPSBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikpOwotICAgICAg
ICBhbmltYXRlZEludGVnZXIuc2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vjb25k
TnVtYmVyKSk7Ci0gICAgfQotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIGlu
dD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50ZWdl
ciwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTksNyArNDgsNyBAQCB2b2lkIFNW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbAogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50
ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlv
bmFsSW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIs
IFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdl
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTc3LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmlt
YXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGlu
dD4mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAg
ICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25h
bEludGVnZXIoKTsKKyAgICBjb25zdCBzdGQ6OnBhaXI8aW50JiwgaW50Jj4gZnJvbUludGVnZXJQ
YWlyID0gZnJvbS0+cHJvcGVydGllczxpbnQsIGludD4oKTsKKyAgICBzdGQ6OnBhaXI8aW50Jiwg
aW50Jj4gdG9JbnRlZ2VyUGFpciA9IHRvLT5wcm9wZXJ0aWVzPGludCwgaW50PigpOwogCiAgICAg
dG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7CiAgICAgdG9JbnRl
Z2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29uZDsKQEAgLTg5LDEwICs3OCwx
MCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFp
cjxpbnQsIGludD4mIGZyb21JbnRlZ2VyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmludGVnZXJPcHRpb25hbEludGVn
ZXIoKSA6IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBh
aXI8aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIo
KTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0F0RW5kT2ZEdXJhdGlvbkludGVn
ZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAg
ICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmlu
dGVnZXJPcHRpb25hbEludGVnZXIoKTsKKyAgICBjb25zdCBzdGQ6OnBhaXI8aW50JiwgaW50Jj4g
ZnJvbUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydGllczxpbnQsIGludD4oKSA6IGZyb20tPnBy
b3BlcnRpZXM8aW50LCBpbnQ+KCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGludCYsIGludCY+IHRv
SW50ZWdlclBhaXIgPSB0by0+cHJvcGVydGllczxpbnQsIGludD4oKTsKKyAgICBjb25zdCBzdGQ6
OnBhaXI8aW50JiwgaW50Jj4gdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRP
ZkR1cmF0aW9uLT5wcm9wZXJ0aWVzPGludCwgaW50PigpOworICAgIHN0ZDo6cGFpcjxpbnQmLCBp
bnQmPiBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPnByb3BlcnRpZXM8aW50LCBpbnQ+
KCk7CiAKICAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJ
bnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21J
bnRlZ2VyUGFpci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25J
bnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFpci5maXJzdCk7CiAgICAgU1ZHQW5p
bWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlv
bkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIuc2Vjb25k
LCB0b0ludGVnZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5zZWNv
bmQsIGFuaW1hdGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGguY3BwCmluZGV4IGFiNThmMTgzMTQ1MTUzMTVlMzBjNzc5YjcwODA3Y2MxOGIw
YTQyMGUuLjAzNzViYWE1MTcwMzJjNTVhYmI1ZWJjMTZiMzcyYjQyODIwYTZiMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcApAQCAtMzQsMTIgKzM0LDEyIEBAIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3IoU1ZHQW5p
bWF0aW9uRWxlbWVudCogYW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3Ro
KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZhbHVlKG1fbGVu
Z3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDksNyAr
NDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBybwogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3Ro
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMsIHR5
cGUsICZTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw4ICs2OCw4IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgp
KTsKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50
KTsKLSAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gZnJvbS0+bGVuZ3RoKCk7Ci0gICAgYXV0
byYgdG9MZW5ndGggPSB0by0+bGVuZ3RoKCk7CisgICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aCA9
IGZyb20tPnByb3BlcnR5PFNWR0xlbmd0aFZhbHVlPigpOworICAgIGF1dG8mIHRvTGVuZ3RoID0g
dG8tPnByb3BlcnR5PFNWR0xlbmd0aFZhbHVlPigpOwogCiAgICAgdG9MZW5ndGguc2V0VmFsdWUo
dG9MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoLnZhbHVlKGxlbmd0aENv
bnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KQEAgLTg2LDEwICs4NiwxMCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2Vu
dGFnZSwgdW5zaWduZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VS
VChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbVNWR0xlbmd0aCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmxl
bmd0aCgpIDogZnJvbS0+bGVuZ3RoKCk7Ci0gICAgYXV0byB0b1NWR0xlbmd0aCA9IHRvLT5sZW5n
dGgoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0aCA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5sZW5ndGgoKTsKLSAgICBhdXRvJiBhbmltYXRlZFNWR0xlbmd0aCA9IGFu
aW1hdGVkLT5sZW5ndGgoKTsKKyAgICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0
eTxTVkdMZW5ndGhWYWx1ZT4oKSA6IGZyb20tPnByb3BlcnR5PFNWR0xlbmd0aFZhbHVlPigpOwor
ICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRTVkdM
ZW5ndGggPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CiAKICAgICAvLyBB
cHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1
c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5ndGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5nLCBt
X2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVuZ3Ro
LCBtX2NvbnRleHRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5jcHAKaW5kZXggOTVmZmI2YTgxYzA0M2Q0NWQwZWFhZDA5NWM1YTIyMzdlZjgwM2Vk
Yy4uZWIwOGVmZjgxODRkMTY2N2Y0NDdmNWQ1MWQwNjUxMmE0MWNlZGIwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKQEAgLTMzLDE0ICszMywxMiBA
QCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5p
bWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aExpc3RW
YWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNlKHN0cmluZywg
bV9sZW5ndGhNb2RlKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVz
Pjo6ZnJvbVN0cmluZyhzdHJpbmcsIG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhM
aXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRl
ZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRM
ZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExp
c3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDggKzY2LDggQEAgdm9p
ZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0EKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
TGVuZ3RoTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAot
ICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gZnJvbS0+bGVuZ3RoTGlzdCgpOwotICAg
IGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0KCk7CisgICAgY29uc3QgYXV0byYg
ZnJvbUxlbmd0aExpc3QgPSBmcm9tLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwor
ICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0VmFsdWVz
PigpOwogCiAgICAgdW5zaWduZWQgZnJvbUxlbmd0aExpc3RTaXplID0gZnJvbUxlbmd0aExpc3Qu
c2l6ZSgpOwogICAgIGlmICghZnJvbUxlbmd0aExpc3RTaXplIHx8IGZyb21MZW5ndGhMaXN0U2l6
ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgpKQpAQCAtOTIsMTAgKzkwLDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVy
Y2VudGFnZSwgdW5zCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJU
KG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmxl
bmd0aExpc3QoKSA6IGZyb20tPmxlbmd0aExpc3QoKTsKLSAgICBhdXRvIHRvTGVuZ3RoTGlzdCA9
IHRvLT5sZW5ndGhMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25MZW5n
dGhMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aExpc3QoKTsKLSAgICBhdXRvJiBhbmlt
YXRlZExlbmd0aExpc3QgPSBhbmltYXRlZC0+bGVuZ3RoTGlzdCgpOworICAgIGF1dG8gZnJvbUxl
bmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1h
dGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpIDogZnJvbS0+
cHJvcGVydHk8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlzdCA9
IHRvLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxT
VkdMZW5ndGhMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFu
aW1hdGVkLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwogCiAgICAgLy8gQXBwbHkg
Q1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9y
SW5oZXJpdGFuY2U8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4ocGFyc2VMZW5ndGhMaXN0RnJvbVN0cmlu
ZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0
aExpc3QsIG1fY29udGV4dEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51
bWJlci5jcHAKaW5kZXggNGYxZWE5YThkNGUwOTBkZmMwMjFjMTA4ZWNiY2ZkYWM4NzQ4MTRmMy4u
ZGU0YzA3NzEwZGQ2NjkyN2IzOTJhYTM4MDAyNTdlNTlhZDcyMDI0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCkBAIC0zMiwxNiArMzIsMTIgQEAgU1ZHQW5pbWF0
ZWROdW1iZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcihTVkdBbmltYXRpb25F
bGVtZW50KiBhbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
TnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8ZmxvYXQ+KCkpOwotICAgIGZsb2F0JiBhbmltYXRlZE51
bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJzZU51bWJlckZyb21T
dHJpbmcoc3RyaW5nLCBhbmltYXRlZE51bWJlcikpCi0gICAgICAgIGFuaW1hdGVkTnVtYmVyID0g
MDsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTnVtYmVyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFu
aW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJB
bmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFBybwogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6
Om51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmlt
YXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWEK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyKTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPm51bWJlcigpICs9IGZyb20t
Pm51bWJlcigpOworICAgIHRvLT5wcm9wZXJ0eTxmbG9hdD4oKSArPSBmcm9tLT5wcm9wZXJ0eTxm
bG9hdD4oKTsKIH0KIAogc3RhdGljIGZsb2F0IHBhcnNlTnVtYmVyRnJvbVN0cmluZyhTVkdBbmlt
YXRpb25FbGVtZW50KiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgZmxvYXQgbnVtYmVy
ID0gMDsKLSAgICBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpOwotICAgIHJl
dHVybiBudW1iZXI7CisgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0
cmluZyhzdHJpbmcpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQs
IFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRU
eXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0
LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFu
aW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZQogICAgIEFTU0VSVChtX2FuaW1h
dGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGZsb2F0
IGZyb21OdW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0Fu
aW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXIoKSA6IGZyb20tPm51bWJlcigpOwotICAgIGZsb2F0
IHRvTnVtYmVyID0gdG8tPm51bWJlcigpOwotICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9uTnVt
YmVyID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlcigpOwotICAgIGZsb2F0JiBhbmltYXRlZE51
bWJlciA9IGFuaW1hdGVkLT5udW1iZXIoKTsKKyAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+
cHJvcGVydHk8ZmxvYXQ+KCkgOiBmcm9tLT5wcm9wZXJ0eTxmbG9hdD4oKTsKKyAgICBmbG9hdCB0
b051bWJlciA9IHRvLT5wcm9wZXJ0eTxmbG9hdD4oKTsKKyAgICBmbG9hdCB0b0F0RW5kT2ZEdXJh
dGlvbk51bWJlciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxmbG9hdD4oKTsKKyAgICBm
bG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZC0+cHJvcGVydHk8ZmxvYXQ+KCk7CiAKICAg
ICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50
LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2Nv
bnRleHRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZE51bWJlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlz
dC5jcHAKaW5kZXggODdmOTczYTFiYTJkMzQ5MmIxZjJkYjBkMDczY2MzNTlkNjZjYjU3ZC4uMWEy
YzdiNTc5NGIzMjAyNDZiNTJlMmI4M2U5NDJiMWZiNjJlNjVkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKQEAgLTMyLDE0ICszMiwxMiBAQCBTVkdB
bmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3Io
U1ZHQW5pbWF0aW9uRWxlbWVudAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR051bWJlckxpc3RWYWx1ZXM+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bnVtYmVyTGlzdCgpLnBhcnNlKHN0cmluZyk7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUo
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5n
KSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00
OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0b3BBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlCiAKIHZvaWQgU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlw
ZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0Pihhbmlt
YXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBl
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxD
aGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNjcsOCArNjUsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQQogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlw
ZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBm
cm9tLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxp
c3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IGZyb20tPnByb3BlcnR5PFNW
R051bWJlckxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPnByb3Bl
cnR5PFNWR051bWJlckxpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlz
dFNpemUgPSBmcm9tTnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNp
emUgfHwgZnJvbU51bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCkBAIC04Miwx
MCArODAsMTAgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnMKIHsKICAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+
bnVtYmVyTGlzdCgpIDogZnJvbS0+bnVtYmVyTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvTnVt
YmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVy
YXRpb25OdW1iZXJMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlckxpc3QoKTsKLSAgICBh
dXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBhbmltYXRlZC0+bnVtYmVyTGlzdCgpOworICAgIGNv
bnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oKSA6IGZyb20tPnByb3BlcnR5PFNWR051bWJlckxpc3RWYWx1ZXM+KCk7CisgICAgY29u
c3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPnByb3BlcnR5PFNWR051bWJlckxpc3RWYWx1ZXM+
KCk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0ID0gdG9BdEVu
ZE9mRHVyYXRpb24tPnByb3BlcnR5PFNWR051bWJlckxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYg
YW5pbWF0ZWROdW1iZXJMaXN0ID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR051bWJlckxpc3RWYWx1
ZXM+KCk7CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1
ZXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVyTGlzdCwgYW5p
bWF0ZWROdW1iZXJMaXN0LCBwZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAKaW5kZXggM2M0Y2E4NjRkMjMyY2QzOGQ3NDFiMzM0ZTU0OWE4OTJjODgxZDA4ZS4uODk3NmYy
M2MxNGVhMzI4ODViNDFiOWQ0YmI3ZTk5NWYyNjA2ZjViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcApAQCAtMzMs
MTggKzMzLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6U1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yCiAKIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIo
c3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKSk7Ci0gICAgc3RkOjpw
YWlyPGZsb2F0LCBmbG9hdD4mIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBlLT5udW1iZXJP
cHRpb25hbE51bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJp
bmcsIGFuaW1hdGVkTnVtYmVyLmZpcnN0LCBhbmltYXRlZE51bWJlci5zZWNvbmQpKSB7Ci0gICAg
ICAgIGFuaW1hdGVkTnVtYmVyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIuc2Vj
b25kID0gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVy
T3B0aW9uYWxOdW1iZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIs
IFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFu
aW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01NCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRG
cm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1h
dGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51
bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03Miw4ICs2Niw4IEBAIHZv
aWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKFNWR0FuaW1hdGVkVHlwZSoKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5
cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBh
aXIgPSBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBj
b25zdCBzdGQ6OnBhaXI8ZmxvYXQmLCBmbG9hdCY+IGZyb21OdW1iZXJQYWlyID0gZnJvbS0+cHJv
cGVydGllczxmbG9hdCwgZmxvYXQ+KCk7CisgICAgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiB0
b051bWJlclBhaXIgPSB0by0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAgICB0b051
bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7CiAgICAgdG9OdW1iZXJQYWly
LnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CkBAIC04NCwxMCArNzgsMTAgQEAgdm9p
ZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUoZmxvYXQgcGVyY2UKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAg
ICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1v
ZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJPcHRpb25hbE51bWJlcigpIDog
IGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0
LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAg
IGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBh
aXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6
OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPm51bWJl
ck9wdGlvbmFsTnVtYmVyKCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiBm
cm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpIDogIGZyb20t
PnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOworICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCYs
IGZsb2F0Jj4gdG9OdW1iZXJQYWlyID0gdG8tPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOwor
ICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0Jj4gdG9BdEVuZE9mRHVyYXRpb25OdW1i
ZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOwor
ICAgIHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0Jj4gYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0
ZWQtPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1i
ZXJQYWlyLmZpcnN0LCB0b051bWJlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVy
UGFpci5maXJzdCwgYW5pbWF0ZWROdW1iZXJQYWlyLmZpcnN0KTsKICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bU51bWJlclBhaXIuc2Vjb25kLCB0b051bWJlclBhaXIuc2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlclBhaXIuc2Vjb25kLCBhbmltYXRlZE51bWJlclBhaXIuc2Vjb25kKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKaW5kZXggMjllMjQ5YmM4MWFkMjE1ZjY0NmZjMTI5
YTQ1NzE2N2ZlMDliYjc2Ny4uNzhjYjUzMDk1NjEyOTU3MGM0OTY1YTcyYTY5NmU2YjEwNmE2YzUw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKQEAgLTIyLDcgKzIyLDYg
QEAKIAogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKLSNpbmNsdWRlICJTVkdQYXRoVXRp
bGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMsOSArMzIsNyBAQCBTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3IoU1ZHQW5pbWF0aW9u
RWxlbWVudCogYW5pbWF0aW9uRQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1Bh
dGhCeXRlU3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0
cmluZywgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFt
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00Myw5
ICs0MCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oCiAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXMuc2l6ZSgpID49IDEpOwogCiAgICAgLy8gQnVpbGQgaW5pdGlhbCBwYXRoIGJ5dGUgc3RyZWFt
LgotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVTdHJl
YW0+KCk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIGJ5dGVTdHJl
YW0uZ2V0KCkpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGTW92
ZShieXRlU3RyZWFtKSk7CisgICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwo
YW5pbWF0ZWRUeXBlcywgKmFuaW1hdGVkVHlwZSk7CisgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
ODAsNyArNzcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcAogewogICAgIEFTU0VSVChhbmlt
YXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBl
KTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgdHlwZS5wYXRoKCkp
OworICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAmdHlwZS5wcm9wZXJ0
eTxTVkdQYXRoQnl0ZVN0cmVhbT4oKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTk4LDEyICs5NSwxMiBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5p
bWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQYXRoKTsKICAgICBBU1NF
UlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0q
IGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGgg
PSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21QYXRoU2l6ZSA9IGZyb21QYXRoLT5zaXpl
KCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC0+c2l6
ZSgpKQorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0gZnJvbS0+cHJvcGVydHk8U1ZHUGF0aEJ5
dGVTdHJlYW0+KCk7CisgICAgYXV0byYgdG9QYXRoID0gdG8tPnByb3BlcnR5PFNWR1BhdGhCeXRl
U3RyZWFtPigpOworICAgIHVuc2lnbmVkIGZyb21QYXRoU2l6ZSA9IGZyb21QYXRoLnNpemUoKTsK
KyAgICBpZiAoIWZyb21QYXRoU2l6ZSB8fCBmcm9tUGF0aFNpemUgIT0gdG9QYXRoLnNpemUoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKnRvUGF0aCwgKmZy
b21QYXRoKTsKKyAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKHRvUGF0aCwgZnJvbVBhdGgpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUq
IGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVy
YXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC0xMTEsMzYgKzEwOCwzMyBAQCB2
b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbmVkCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZy
b21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0
by0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b0F0RW5kT2ZEdXJhdGlvblBhdGgg
PSB0b0F0RW5kT2ZEdXJhdGlvbi0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmlt
YXRlZFBhdGggPSBhbmltYXRlZC0+cGF0aCgpOworICAgIGF1dG8mIGZyb21QYXRoID0gZnJvbS0+
cHJvcGVydHk8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgYXV0byYgdG9QYXRoID0gdG8tPnBy
b3BlcnR5PFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9u
UGF0aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsK
KyAgICBhdXRvJiBhbmltYXRlZFBhdGggPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZHUGF0aEJ5dGVT
dHJlYW0+KCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHVuZGVy
bHlpbmdQYXRoOwogICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1RvQW5pbWF0aW9uKSB7
Ci0gICAgICAgIHVuZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7Ci0gICAgICAg
IGZyb21QYXRoID0gdW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAgIGlmIChpc1RvQW5p
bWF0aW9uKQorICAgICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIENhY2hl
IHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1Bh
dGhCeXRlU3RyZWFtKCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHUGF0aEJ5dGVTdHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+
c2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1h
dGlvbikpCi0gICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsK
KyAgICBTVkdQYXRoQnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBh
dGguc2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0Fu
aW1hdGlvbikpCisgICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAg
ICAvLyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMg
dGhlIHBhdGggYW5pbWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwg
YnV0IGEgU1ZHUGF0aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYg
KCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVT
dHJlYW0+KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFs
c2UpKQorICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVz
PFNWR1BhdGhCeXRlU3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNl
bnRhZ2UsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1Bh
dGhCeXRlU3RyZWFtKCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFn
ZSk7CisgICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgs
IGFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1
bScuCi0gICAgaWYgKGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVT
dHJlYW0oKmFuaW1hdGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFu
aW1hdGVkUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5p
bWF0ZWRQYXRoLCBsYXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRl
PSdzdW0nLgogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiBy
ZXBlYXRDb3VudCkKLSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRo
LCAqdG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZH
UGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVh
dENvdW50KTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURp
c3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAppbmRleCA1ZjA3ODBkNTJjNTQ2MmFkNDkwYzhmMjFl
ZmIyNGNhZmI1OGJmMTYzLi40ZTZkMGUzNjNlMDZjNzNkYzY4ODNjNmIyYjJhYWQyZTljNzQ5MWZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAKQEAgLTM0
LDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqCiAKIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1Bv
aW50TGlzdFZhbHVlcz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFuaW1hdGVkVHlw
ZS0+cG9pbnRMaXN0KCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRM
aXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QoY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcykp
OworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0
PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9y
OjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkCiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6
cG9pbnRMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+
KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY5LDggKzY3LDggQEAgdm9pZCBTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwg
U1ZHQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUG9pbnRzKTsKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJv
bVBvaW50TGlzdCA9IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0g
dG8tPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBmcm9tLT5w
cm9wZXJ0eTxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9Qb2ludExpc3QgPSB0
by0+cHJvcGVydHk8U1ZHUG9pbnRMaXN0VmFsdWVzPigpOwogCiAgICAgdW5zaWduZWQgZnJvbVBv
aW50TGlzdFNpemUgPSBmcm9tUG9pbnRMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21Qb2ludExp
c3RTaXplIHx8IGZyb21Qb2ludExpc3RTaXplICE9IHRvUG9pbnRMaXN0LnNpemUoKSkKQEAgLTg0
LDEwICs4MiwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaQogewogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQt
PnBvaW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9Qb2lu
dExpc3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYg
YW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0
byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKSA6
IGZyb20tPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKKyAgICBjb25zdCBhdXRvJiB0
b1BvaW50TGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CisgICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+
cHJvcGVydHk8U1ZHUG9pbnRMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRM
aXN0ID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKICAgICBpZiAo
IW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQb2ludExpc3RW
YWx1ZXM+KGZyb21Qb2ludExpc3QsIHRvUG9pbnRMaXN0LCBhbmltYXRlZFBvaW50TGlzdCwgcGVy
Y2VudGFnZSkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAppbmRleCA4MDEwMjViNDVmYTYx
YjdlZWI1MDU5MGIzYWU4NTdhOWE5YjY5ZTkxLi4zM2Q4MDlhYmUxZDFhYmNkNTU3NGMxMTEyNTFh
ODliMmU4NjJkZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcApAQCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW9BbmltYXRvcihTCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6bWFrZV91bmlxdWU8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnByZXNlcnZlQXNwZWN0
UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVk
VHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9y
OjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lCiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJlc2V0
QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBl
LCAmU1ZHQW5pbWF0ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNzEsOSArNjksOSBAQCB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbgog
ICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVt
ZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+
cHJlc2VydmVBc3BlY3RSYXRpbygpIDogZnJvbS0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAg
IGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHRvLT5wcmVzZXJ2ZUFzcGVjdFJh
dGlvKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQt
PnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3Bl
Y3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0
aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSA6
IGZyb20tPnByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsKKyAgICBjb25z
dCBhdXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJvcGVydHk8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlPigpOworICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
byA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7CiAK
ICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlPihwZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9Q
cmVzZXJ2ZUFzcGVjdFJhdGlvLCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAppbmRleCBiOTRhYmY1OWM3MDg0OGE2YmFj
YjdiODA1Yjk4ZDk1ZjJiOWVmN2YyLi5hOWQwNWU3YWFiMTM4ZjlhZjFjY2YxZjUyYzVhMDcyNTQy
M2NmMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcApAQCAtMzIsMTQg
KzMyLDEyIEBAIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpTVkdBbmltYXRlZFJlY3RBbmltYXRv
cihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRSZWN0PigpKTsKLSAg
ICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJlY3QoKSk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRU
eXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGUKIAogdm9pZCBTVkdB
bmltYXRlZFJlY3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnJlY3QpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw3ICs2NSw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRl
ZFJlY3QpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0
by0+cmVjdCgpICs9IGZyb20tPnJlY3QoKTsKKyAgICB0by0+cHJvcGVydHk8RmxvYXRSZWN0Pigp
ICs9IGZyb20tPnByb3BlcnR5PEZsb2F0UmVjdD4oKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFJl
Y3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUq
IHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUq
IGFuaW1hdGVkKQpAQCAtNzUsMTAgKzczLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQKICAg
ICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVu
dCk7CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cmVjdCgpIDogZnJv
bS0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0ID0gdG8tPnJlY3QoKTsKLSAg
ICBjb25zdCBGbG9hdFJlY3QmIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRPZkR1cmF0
aW9uLT5yZWN0KCk7Ci0gICAgRmxvYXRSZWN0JiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+cmVj
dCgpOworICAgIGNvbnN0IEZsb2F0UmVjdCYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTxGbG9h
dFJlY3Q+KCkgOiBmcm9tLT5wcm9wZXJ0eTxGbG9hdFJlY3Q+KCk7CisgICAgY29uc3QgRmxvYXRS
ZWN0JiB0b1JlY3QgPSB0by0+cHJvcGVydHk8RmxvYXRSZWN0PigpOworICAgIGNvbnN0IEZsb2F0
UmVjdCYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnR5
PEZsb2F0UmVjdD4oKTsKKyAgICBGbG9hdFJlY3QmIGFuaW1hdGVkUmVjdCA9IGFuaW1hdGVkLT5w
cm9wZXJ0eTxGbG9hdFJlY3Q+KCk7CiAKICAgICBmbG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFJl
Y3QueCgpOwogICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUmVjdC55KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcAppbmRleCA2OTg1ZWNiZWRhZDFlZmVkOGQ3
NDI4MTU1YTc5MDdmYmEzNzkwZDcwLi4zNTliMWEzYzdkZjliZGFmNzI5ZjY0NmY5MjBlMDE1N2Fl
ZjM0MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKQEAgLTMx
LDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpTVkdBbmltYXRlZFN0cmlu
Z0FuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCkp
OwotICAgIGFuaW1hdGVkVHlwZS0+c3RyaW5nKCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlU
cmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvCiAKIHZvaWQg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4o
YW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc2
LDkgKzc0LDkgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmUKICAgICBBU1NFUlQobV9hbmltYXRp
b25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBTdHJpbmcg
ZnJvbVN0cmluZyA9IGZyb20tPnN0cmluZygpOwotICAgIFN0cmluZyB0b1N0cmluZyA9IHRvLT5z
dHJpbmcoKTsKLSAgICBTdHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gYW5pbWF0ZWQtPnN0cmluZygp
OworICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+cHJvcGVydHk8U3RyaW5nPigpOworICAg
IFN0cmluZyB0b1N0cmluZyA9IHRvLT5wcm9wZXJ0eTxTdHJpbmc+KCk7CisgICAgU3RyaW5nJiBh
bmltYXRlZFN0cmluZyA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTdHJpbmc+KCk7CiAKICAgICAvLyBB
cHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1
c3RGb3JJbmhlcml0YW5jZTxTdHJpbmc+KHBhcnNlU3RyaW5nRnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbVN0cmluZywgbV9jb250ZXh0
RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuY3BwCmluZGV4IDIwMzU2ZTBiYjZjNTIzMTM2N2I2YjZiOTI0YzUxY2ZiNGVmNzI0MjkuLmEw
NmI0MGE1OTVhYTZiZDA4ZGRjMjZjZmJjZmEwMDU1N2U4ZGZjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCkBAIC00MSwxNSArNDEsMTIg
QEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yKFNWR0FuaW1hdGlvbkUKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5w
YXJzZShtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScpOwotICAgIEFTU0VSVChh
bmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5zaXplKCkgPD0gMSk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcobV90cmFuc2Zvcm1U
eXBlU3RyaW5nICsgc3RyaW5nICsgJyknKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qo
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVk
VHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs1Niw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0
eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0KTsKKyAgICByZXNldEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNzcsOCArNzQsOCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgUwogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlw
ZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3Qg
PSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8t
PnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZy
b20tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9UcmFu
c2Zvcm1MaXN0ID0gdG8tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CiAgICAg
YXV0byBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAg
ICAgaWYgKCFmcm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9
IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk4LDEwICs5NSwx
MCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsCiAgICAgLy8gU3BlYzogVG8gYW5pbWF0aW9ucyBw
cm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5nZSBmcm9t
IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8vIOKAmHRv4oCZIGF0dHJpYnV0ZSB2
YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5IHdpdGggdGhlIHJlcXVpcmVtZW50
IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwogICAgIC8vIHRvIGJlIHBvc3QtbXVs
dGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Igb2YgdG8g
YW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKAmSBpcyB1bmRlZmluZWQuCi0gICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0g
ICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlz
dCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBmcm9tLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOworICAg
IGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3Jt
TGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
PigpOworICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT5wcm9wZXJ0
eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOwogCiAgICAgLy8gUGFzcyBmYWxzZSB0byAncmVz
aXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFzIHRoZSBzcGVjaWFsIHBvc3QtbXVsdGlw
bGljYXRpb24gYmVoYXZpb3Igb2YgPGFuaW1hdGVUcmFuc2Zvcm0+IG5lZWRzIHRvIGJlIHJlc3Bl
Y3RlZCBiZWxvdy4KICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlz
dFZhbHVlczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihmcm9tVHJhbnNmb3JtTGlzdCwgdG9UcmFu
c2Zvcm1MaXN0LCBhbmltYXRlZFRyYW5zZm9ybUxpc3QsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKQEAg
LTEzMSw4ICsxMjgsOCBAQCBmbG9hdCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaQogICAgIGF1dG8gZnJvbSA9
IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CiAgICAgYXV0byB0byA9IGNvbnN0cnVj
dEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0gICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBm
cm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRy
YW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnByb3Bl
cnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0
ID0gdG8tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CiAgICAgdW5zaWduZWQg
aXRlbXNDb3VudCA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUoKTsKICAgICBpZiAoIWl0ZW1zQ291
bnQgfHwgaXRlbXNDb3VudCAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6ZSgpKQogICAgICAgICByZXR1
cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCmluZGV4IDk2M2YyMjhh
MDdjOWRiNGQyMDA1OTY5NTJjYjIwNGVjYWRhMmFjNTcuLjQxYzExMjU4MjU1YmYyM2M1MjY2NDY4
MWE3YTBjYmRhOWQ2OWNjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yNiwyMjkgKzI3LDczIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHQW5pbWF0ZWRU
eXBlOjpTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLSAgICA6IG1f
dHlwZSh0eXBlKQorQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgU1ZHQW5pbWF0ZWRUeXBlOjp0eXBlKCkg
Y29uc3QKIHsKLX0KLQotU1ZHQW5pbWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKLXsKLSAg
ICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICAgICAgZGVs
ZXRlIG1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkQm9vbGVhbjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5ib29sZWFuOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEu
Y29sb3I7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5lbnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBbmltYXRlZEludGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlcjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBk
ZWxldGUgbV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0
ZWROdW1iZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1i
ZXJMaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRh
LnBhdGg7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgICAg
IGRlbGV0ZSBtX2RhdGEucG9pbnRMaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wcmVzZXJ2ZUFz
cGVjdFJhdGlvOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAg
ICAgZGVsZXRlIG1fZGF0YS5yZWN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVk
U3RyaW5nOgotICAgICAgICBkZWxldGUgbV9kYXRhLnN0cmluZzsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEudHJh
bnNmb3JtTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKKyAgICBpZiAobV92
YWx1ZXNbMF0tPmhvbGRzQWx0ZXJuYXRpdmU8U1ZHQW5nbGVWYWx1ZT4oKSkgeworICAgICAgICBB
U1NFUlQobV92YWx1ZXNbMV0gJiYgbV92YWx1ZXNbMV0tPmhvbGRzQWx0ZXJuYXRpdmU8dW5zaWdu
ZWQ+KCkpOworICAgICAgICByZXR1cm4gQW5pbWF0ZWRBbmdsZTsKICAgICB9Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVB
bmRFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVu
c2lnbmVkPj4gYW5nbGVBbmRFbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVt
ZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oQW5pbWF0ZWRBbmdsZSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5n
bGVBbmRFbnVtZXJhdGlvbiA9IGFuZ2xlQW5kRW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9v
bGVhbikKLXsKLSAgICBBU1NFUlQoYm9vbGVhbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBh
bmltYXRlZFR5cGUtPm1fZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9y
KQotewotICAgIEFTU0VSVChjb2xvcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEuY29sb3IgPSBjb2xvci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKLX0KKyAgICAKKyAgICBpZiAobV92YWx1ZXNbMF0tPmhvbGRzQWx0ZXJuYXRpdmU8Ym9v
bD4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkQm9vbGVhbjsKKyAgICAKKyAgICBpZiAobV92
YWx1ZXNbMF0tPmhvbGRzQWx0ZXJuYXRpdmU8Q29sb3I+KCkpCisgICAgICAgIHJldHVybiBBbmlt
YXRlZENvbG9yOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4gZW51bWVy
YXRpb24pCi17Ci0gICAgQVNTRVJUKGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVudW1lcmF0aW9u
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjp1bmlx
dWVfcHRyPGludD4gaW50ZWdlcikKLXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0gICAgYXV0byBh
bmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJ
bnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKQotewotICAgIEFTU0VSVChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhdXRv
IGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVn
ZXJPcHRpb25hbEludGVnZXIgPSBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVhc2UoKTsKLSAg
ICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVu
Z3RoVmFsdWU+IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0
aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlc1swXS0+aG9sZHNB
bHRlcm5hdGl2ZTx1bnNpZ25lZD4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkRW51bWVyYXRp
b247CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gbGVu
Z3RoTGlzdCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGhMaXN0
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5sZW5ndGhMaXN0ID0gbGVuZ3RoTGlzdC5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZXNbMF0t
PmhvbGRzQWx0ZXJuYXRpdmU8aW50PigpKQorICAgICAgICByZXR1cm4gbV92YWx1ZXNbMV0gJiYg
bV92YWx1ZXNbMV0tPmhvbGRzQWx0ZXJuYXRpdmU8aW50PigpID8gQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyIDogQW5pbWF0ZWRJbnRlZ2VyOworICAgIAorICAgIGlmIChtX3ZhbHVlc1sw
XS0+aG9sZHNBbHRlcm5hdGl2ZTxTVkdMZW5ndGhWYWx1ZT4oKSkKKyAgICAgICAgcmV0dXJuIEFu
aW1hdGVkTGVuZ3RoOworICAgIAorICAgIGlmIChtX3ZhbHVlc1swXS0+aG9sZHNBbHRlcm5hdGl2
ZTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRMZW5ndGhM
aXN0OwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZU51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+IG51bWJlcikKLXsKLSAgICBBU1NF
UlQobnVtYmVyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihBbmltYXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEu
bnVtYmVyID0gbnVtYmVyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQor
ICAgIGlmIChtX3ZhbHVlc1swXS0+aG9sZHNBbHRlcm5hdGl2ZTxmbG9hdD4oKSkKKyAgICAgICAg
cmV0dXJuIG1fdmFsdWVzWzFdICYmIG1fdmFsdWVzWzFdLT5ob2xkc0FsdGVybmF0aXZlPGZsb2F0
PigpID8gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlciA6IEFuaW1hdGVkTnVtYmVyOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlckxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3Qp
Ci17Ci0gICAgQVNTRVJUKG51bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWVzWzBdLT5ob2xkc0Fs
dGVybmF0aXZlPFNWR051bWJlckxpc3RWYWx1ZXM+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRl
ZE51bWJlckxpc3Q7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+PiBudW1iZXJPcHRpb25hbE51bWJlcikKLXsKLSAgICBBU1NFUlQo
bnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwot
ICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0gbnVtYmVyT3B0
aW9uYWxOdW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAg
aWYgKG1fdmFsdWVzWzBdLT5ob2xkc0FsdGVybmF0aXZlPFNWR1BhdGhCeXRlU3RyZWFtPigpKQor
ICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoc3RkOjp1bmlxdWVfcHRyPFNWR1Bh
dGhCeXRlU3RyZWFtPiBwYXRoKQotewotICAgIEFTU0VSVChwYXRoKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBhdGgp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBhdGggPSBwYXRoLnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlc1swXS0+aG9sZHNBbHRlcm5h
dGl2ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFBvaW50
czsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRM
aXN0KQotewotICAgIEFTU0VSVChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBh
bmltYXRlZFR5cGUtPm1fZGF0YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWVzWzBdLT5ob2xkc0FsdGVy
bmF0aXZlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSkKKyAgICAgICAgcmV0dXJuIEFu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5p
cXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHByZXNlcnZlQXNwZWN0UmF0aW8p
Ci17Ci0gICAgQVNTRVJUKHByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucHJlc2VydmVBc3BlY3RSYXRp
byA9IHByZXNlcnZlQXNwZWN0UmF0aW8ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7Ci19CisgICAgaWYgKG1fdmFsdWVzWzBdLT5ob2xkc0FsdGVybmF0aXZlPEZsb2F0UmVjdD4o
KSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkUmVjdDsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxG
bG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJUKHJlY3QpOwotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUmVjdCk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9IHJlY3QucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWVzWzBdLT5ob2xkc0FsdGVybmF0aXZl
PFN0cmluZz4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOwogCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6
OnVuaXF1ZV9wdHI8U3RyaW5nPiBzdHJpbmcpCi17Ci0gICAgQVNTRVJUKHN0cmluZyk7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRTdHJpbmcpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnN0cmluZyA9IHN0cmluZy5y
ZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZXNb
MF0tPmhvbGRzQWx0ZXJuYXRpdmU8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSkKKyAgICAgICAg
cmV0dXJuIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6dW5pcXVl
X3B0cjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB0cmFuc2Zvcm1MaXN0KQotewotICAgIEFTU0VS
VCh0cmFuc2Zvcm1MaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgIGFuaW1hdGVk
VHlwZS0+bV9kYXRhLnRyYW5zZm9ybUxpc3QgPSB0cmFuc2Zvcm1MaXN0LnJlbGVhc2UoKTsKLSAg
ICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBBbmltYXRlZFVua25vd247CiB9CiAK
LVN0cmluZyBTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcoKQorU3RyaW5nIFNWR0FuaW1h
dGVkVHlwZTo6dG9TdHJpbmcoKQogewotICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgc3dpdGNo
ICh0eXBlKCkpIHsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2Rh
dGEuY29sb3IpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmNvbG9yLT5zZXJpYWxpemVkKCk7Cisg
ICAgICAgIHJldHVybiBtX3ZhbHVlc1swXS0+dG9TdHJpbmc8Q29sb3I+KCk7CiAgICAgY2FzZSBB
bmltYXRlZExlbmd0aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICBy
ZXR1cm4gbV9kYXRhLmxlbmd0aC0+dmFsdWVBc1N0cmluZygpOworICAgICAgICByZXR1cm4gbV92
YWx1ZXNbMF0tPnRvU3RyaW5nPFNWR0xlbmd0aFZhbHVlPigpOwogICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICBy
ZXR1cm4gbV9kYXRhLmxlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
IG1fdmFsdWVzWzBdLT50b1N0cmluZzxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwogICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXI6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAg
cmV0dXJuIFN0cmluZzo6bnVtYmVyKCptX2RhdGEubnVtYmVyKTsKKyAgICAgICAgcmV0dXJuIG1f
dmFsdWVzWzBdLT50b1N0cmluZzxmbG9hdD4oKTsKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAg
ICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVy
KG1fZGF0YS5yZWN0LT54KCkpICsgJyAnICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPnko
KSkgKyAnICcKLSAgICAgICAgICAgICArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT53aWR0
aCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT5oZWlnaHQoKSk7CisgICAg
ICAgIHJldHVybiBtX3ZhbHVlc1swXS0+dG9TdHJpbmc8RmxvYXRSZWN0PigpOwogICAgIGNhc2Ug
QW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEuc3RyaW5nOworICAgICAgICByZXR1cm4gbV92YWx1ZXNbMF0tPnRvU3Ry
aW5nPFN0cmluZz4oKTsKIAogICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUg
dGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24n
dCBuZWVkIHZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LgogICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToK
QEAgLTI3MSwzMiArMTE2LDIxIEBAIFN0cmluZyBTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJp
bmcoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnNl
dFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCitib29sIFNWR0FuaW1hdGVkVHlwZTo6cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHN3aXRjaCAobV90eXBl
KSB7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAg
ICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICAqbV9kYXRhLmNvbG9yID0gQ1NTUGFy
c2VyOjpwYXJzZUNvbG9yKHZhbHVlLnN0cmlwV2hpdGVTcGFjZSgpKTsKLSAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIHJldHVybiBtX3ZhbHVlc1swXS0+cGFyc2U8Q29sb3I+KGF0dHJOYW1l
LCBzdHJpbmcpOwogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAgIEFTU0VSVChtX2Rh
dGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICFtX2RhdGEubGVuZ3RoLT5zZXRWYWx1ZUFzU3Ry
aW5nKHZhbHVlLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0
cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVl
c1swXS0+cGFyc2U8U1ZHTGVuZ3RoVmFsdWU+KGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIGNhc2Ug
QW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwot
ICAgICAgICBtX2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjps
ZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX3ZhbHVlc1swXS0+cGFyc2U8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
LSAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICBwYXJzZU51bWJlckZyb21T
dHJpbmcodmFsdWUsICptX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIHJldHVybiBtX3ZhbHVlc1swXS0+cGFyc2U8ZmxvYXQ+KGF0dHJOYW1lLCBzdHJpbmcpOwog
ICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwotICAg
ICAgICBwYXJzZVJlY3QodmFsdWUsICptX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICByZXR1cm4gbV92YWx1ZXNbMF0tPnBhcnNlPEZsb2F0UmVjdD4oYXR0ck5hbWUs
IHN0cmluZyk7CiAgICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgQVNTRVJUKG1fZGF0
YS5zdHJpbmcpOwotICAgICAgICAqbV9kYXRhLnN0cmluZyA9IHZhbHVlOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzWzBdLT5wYXJzZTxTdHJpbmc+KGF0dHJO
YW1lLCBzdHJpbmcpOwogCiAgICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0
YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0
IG5lZWQgc2V0VmFsdWVBc1N0cmluZygpIHN1cHBvcnQuIAogICAgIGNhc2UgQW5pbWF0ZWRBbmds
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAppbmRleCBhMGMxMWFkMWU0YzJhNGQ0
ZTMxYzdlNDZjZTI4ZjYyOGFhOTkyMjc0Li4wNmVjNjc2Mjk4ZjVlNjdlZjllNzUzYTE2MDQ4ZTlh
YmQzZDc0YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwyODQgKzIw
LDk2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSAi
U1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgot
I2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1By
b3BlcnR5SW5mby5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNs
dWRlICJTVkdBbmltYXRlZFZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
U1ZHUGF0aEJ5dGVTdHJlYW07Ci0KIGNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVk
UHJvcGVydHlUeXBlKTsKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1l
cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJv
b2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0
aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsK
LSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdl
ck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgo
c3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNW
R0xlbmd0aExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gY3JlYXRlTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6
dW5pcXVlX3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5p
cXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRo
Qnl0ZVN0cmVhbT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2
ZUFzcGVjdFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVj
dChzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRSZWN0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5z
Zm9ybUxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0g
ICAgLy8gTm9uLW11dGFibGUgYWNjZXNzb3JzLgotICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmds
ZVZhbHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBib29sJiBib29s
ZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29s
ZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25z
dCBDb2xvciYgY29sb3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZENvbG9yKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0g
ICAgY29uc3QgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmVudW1lcmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAg
ICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWly
PGludCwgaW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAg
ICAgIHJldHVybiAqbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAg
Y29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVu
Z3RoOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3Qo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExp
c3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNv
bnN0IGZsb2F0JiBudW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9
Ci0KLSAgICBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkgY29uc3QKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJl
ckxpc3Q7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPihu
ZXcgU1ZHQW5pbWF0ZWRUeXBlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRp
YWxWYWx1ZSgpKSk7CiAgICAgfQogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4m
IG51bWJlck9wdGlvbmFsTnVtYmVyKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZShQcm9wZXJ0eVR5cGUmJiBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLm51bWJlck9wdGlvbmFsTnVtYmVyOworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4obmV3IFNWR0FuaW1hdGVkVHlwZShXVEZNb3ZlKHByb3BlcnR5KSkp
OwogICAgIH0KIAotICAgIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkgY29uc3QKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxT
VkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7CisgICAgICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPihuZXcgU1ZHQW5pbWF0ZWRUeXBl
KFdURk1vdmUodmFsdWUpKSk7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUG9pbnRMaXN0VmFsdWVz
JiBwb2ludExpc3QoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEs
IHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OworICAgICAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4obmV3IFNWR0FuaW1hdGVk
VHlwZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlU
eXBlMj4+Ojppbml0aWFsVmFsdWUoKSkpOwogICAgIH0KIAotICAgIGNvbnN0IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKHN0ZDo6cGFpcjxQ
cm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPihuZXcgU1ZHQW5pbWF0ZWRUeXBlKFdURk1vdmUo
cHJvcGVydGllcykpKTsKICAgICB9CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QoKSBjb25z
dAorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVm
UHRyPFNWR0FuaW1hdGVkVmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4m
JiB2YWx1ZTIpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPihuZXcgU1ZHQW5pbWF0ZWRUeXBlKFdURk1vdmUodmFsdWUx
KSwgV1RGTW92ZSh2YWx1ZTIpKSk7CiAgICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmco
KSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIHByb3BlcnR5KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7Cisg
ICAgICAgIHJldHVybiBtX3ZhbHVlc1swXS0+cHJvcGVydHk8UHJvcGVydHlUeXBlPigpOwogICAg
IH0KIAotICAgIGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKSBj
b25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBQcm9wZXJ0eVR5
cGUmIHByb3BlcnR5KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKKyAg
ICAgICAgcmV0dXJuIG1fdmFsdWVzWzBdLT5wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KCk7CiAgICAg
fQogCi0gICAgLy8gTXV0YWJsZSBhY2Nlc3NvcnMuCi0gICAgc3RkOjpwYWlyPFNWR0FuZ2xlVmFs
dWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGQ6OnBhaXI8
UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBwcm9wZXJ0aWVzKCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmFuZ2xlQW5kRW51bWVyYXRpb247CisgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8UHJvcGVy
dHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPihtX3ZhbHVlc1swXS0+cHJvcGVydHk8UHJvcGVydHlU
eXBlMT4oKSwgbV92YWx1ZXNbMV0tPnByb3BlcnR5PFByb3BlcnR5VHlwZTI+KCkpOwogICAgIH0K
IAotICAgIGJvb2wmIGJvb2xlYW4oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5ib29sZWFuOwotICAgIH0K
LQotICAgIENvbG9yJiBjb2xvcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAg
ICB1bnNpZ25lZCYgZW51bWVyYXRpb24oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRp
b247Ci0gICAgfQotCi0gICAgaW50JiBpbnRlZ2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdl
cjsKLSAgICB9Ci0KLSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50
ZWdlcjsKLSAgICB9Ci0KLSAgICBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlz
dCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAgfQotCi0gICAgZmxvYXQm
IG51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVy
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyOwotICAgIH0KKyAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwogCi0gICAgU1ZHTnVtYmVy
TGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7
Ci0gICAgfQorICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdDsKIAotICAgIHN0
ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpCi0gICAgewotICAg
ICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICB9Ci0KLSAgICBT
VkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKLSAgICB9CisgICAg
U3RyaW5nIHRvU3RyaW5nKCk7CisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgU3RyaW5nJik7CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpCi0g
ICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEucG9pbnRMaXN0OwotICAgIH0KLQotICAgIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCitwcml2YXRlOgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTVkdBbmltYXRlZFR5cGUoUHJvcGVydHlUeXBl
JiYgcHJvcGVydHkpCisgICAgICAgIDogbV92YWx1ZXMgeyBTVkdBbmltYXRlZFZhbHVlOjpjcmVh
dGUoV1RGTW92ZShwcm9wZXJ0eSkpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucHJl
c2VydmVBc3BlY3RSYXRpbzsKICAgICB9CiAKLSAgICBGbG9hdFJlY3QmIHJlY3QoKQorICAgIFNW
R0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4mJiB2YWx1ZSkKKyAgICAgICAg
OiBtX3ZhbHVlcyB7IFdURk1vdmUodmFsdWUpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucmVjdDsKICAgICB9
CiAKLSAgICBTdHJpbmcmIHN0cmluZygpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAg
OiBtX3ZhbHVlcyB7IFNWR0FuaW1hdGVkVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVzLmZpcnN0KSwg
U1ZHQW5pbWF0ZWRWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSB9CiAgICAgewotICAg
ICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3RyaW5nKTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEuc3RyaW5nOwogICAgIH0KIAotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5z
Zm9ybUxpc3QoKQorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4m
JiB2YWx1ZTEsIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlMikKKyAgICAgICAgOiBt
X3ZhbHVlcyB7IFdURk1vdmUodmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpIH0KICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKICAgICB9CiAKLSAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV90
eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAgICAg
ICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRpb247
Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAgICAg
dW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAgIHN0
ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNWR0xl
bmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0aExp
c3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMq
IG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRp
b25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAg
U1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVjdDsK
LSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMq
IHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFs
dWU+IG1fdmFsdWVzWzJdOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAppbmRleCBjYjczNTI2MzJhYTVl
MDU3NGRmY2EyMjVjNTUyNzg2YTczYTliNzg1Li42ZTFmYzZiYjM1YzI0NWU0NDU3NDJlYzMzOWIw
ZWZhNDVjYTljNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaApAQCAtNjMsMjUgKzYzLDI0IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhlbHBlcnMg
Zm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gc2luZ2xlIHR5cGVzLCBlZy4ganVzdCBvbmUg
U1ZHQW5pbWF0ZWRJbnRlZ2VyLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgot
ICAgIHN0ZDo6dW5pcXVlX3B0cjx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+IGNv
bnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNv
bnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllcy5zaXplKCkgPT0gMSk7CiAgICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxU
eXBlOjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0Fj
dHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQo
KSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgICAgICBhdXRvIGNvcHkgPSBzdGQ6Om1ha2Vf
dW5pcXVlPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4oYW5pbWF0ZWRUeXBlKTsK
LSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkVHlwZXMsIDAsIGNvcHkuZ2V0KCkpOwotICAgICAgICByZXR1cm4gY29weTsKKyAg
ICAgICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IHZhbHVlID0gU1ZHQW5pbWF0ZWRWYWx1ZTo6
Y3JlYXRlKGFuaW1hdGVkVHlwZSk7CisgICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250
ZW50VHlwZSYgcHJvcGVydHkgPSB2YWx1ZS0+cHJvcGVydHk8dHlwZW5hbWUgQW5pbVZhbFR5cGU6
OkNvbnRlbnRUeXBlPigpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJnByb3BlcnR5KTsKKyAgICAgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKTsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIHJlc2V0RnJvbUJh
c2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRU
eXBlJiAoU1ZHQW5pbWF0ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVzZXRGcm9tQmFz
ZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMSk7Ci0gICAgICAgIEFTU0VSVCh0eXBlLnR5
cGUoKSA9PSBtX3R5cGUpOwotICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5
cGUmIGFuaW1hdGVkVHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0
ZWRUeXBlVmFsdWUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlw
ZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1
ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9u
QWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRUeXBlVmFsdWUpOworICAgICAgICB0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIHByb3BlcnR5ID0gdHlwZS5wcm9wZXJ0
eTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIHByb3BlcnR5
ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1h
dGVkVHlwZXMsIDAsICZwcm9wZXJ0eSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
QW5pbVZhbFR5cGU+CkBAIC0xMDcsMzAgKzEwNiwzMyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBI
ZWxwZXJzIGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMsIGVnLiBhIHBh
aXIgb2YgU1ZHQW5pbWF0ZWRJbnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFs
VHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpw
YWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxU
eXBlMjo6Q29udGVudFR5cGU+PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAg
IGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0VHlwZSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwogICAgICAgICBj
b25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRUeXBlID0gY2Fz
dEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKLSAgICAgICAg
YXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5
cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KGZp
cnN0VHlwZSwgc2Vjb25kVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUx
PihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmNvcHktPmZpcnN0KTsK
LSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9u
LCBhbmltYXRlZFR5cGVzLCAxLCAmY29weS0+c2Vjb25kKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7
CisgICAgICAgIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiBmaXJzdFZhbHVlID0gU1ZHQW5pbWF0
ZWRWYWx1ZTo6Y3JlYXRlKGZpcnN0VHlwZSk7CisgICAgICAgIFJlZlB0cjxTVkdBbmltYXRlZFZh
bHVlPiBzZWNvbmRWYWx1ZSA9IFNWR0FuaW1hdGVkVmFsdWU6OmNyZWF0ZShzZWNvbmRUeXBlKTsK
KyAgICAgICAgCisgICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZp
cnN0UHJvcGVydHkgPSBmaXJzdFZhbHVlLT5wcm9wZXJ0eTx0eXBlbmFtZSBBbmltVmFsVHlwZTE6
OkNvbnRlbnRUeXBlPigpOworICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRU
eXBlJiBzZWNvbmRQcm9wZXJ0eSA9IHNlY29uZFZhbHVlLT5wcm9wZXJ0eTx0eXBlbmFtZSBBbmlt
VmFsVHlwZTI6OkNvbnRlbnRUeXBlPigpOworCisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZh
bFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmZpcnN0UHJv
cGVydHkpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRp
b25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsICZzZWNvbmRQcm9wZXJ0eSk7CisgICAgICAgIHJl
dHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZpcnN0VmFsdWUpLCBXVEZNb3Zl
KHNlY29uZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5
cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVz
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250
ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIChTVkdBbmltYXRl
ZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUp
OworICAgICAgICAKKyAgICAgICAgYXV0byBwcm9wZXJ0aWVzID0gdHlwZS5wcm9wZXJ0aWVzPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6
Q29udGVudFR5cGU+KCk7CiAKLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBl
MTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+JiBhbmlt
YXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZh
bHVlLmZpcnN0ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUx
PihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVl
KCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlLnNlY29uZCA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzFdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFu
aW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlw
ZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBl
VmFsdWUuc2Vjb25kKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmcHJvcGVydGllcy5maXJzdCk7Cisg
ICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwg
YW5pbWF0ZWRUeXBlcywgMSwgJnByb3BlcnRpZXMuc2Vjb25kKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE4
MywzMyArMTg1LDMzIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFuaW1WYWxUeXBlPgotICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0
aW9uLCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlw
ZSogdHlwZSA9IDApCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rp
b24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywg
dW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
KiBwcm9wZXJ0eSA9IG51bGxwdHIpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgdXNl
IFNWR0VsZW1lbnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBiZWNhdXNlIG9mIGNpcmN1bGFyIGhl
YWRlciBkZXBlbmRlbmN5LiBXb3VsZCBiZSBuaWNlIHRvIHVudGFuZ2xlIHRoaXMuCiAgICAgICAg
IHNldEluc3RhbmNlVXBkYXRlc0Jsb2NrZWQoKmFuaW1hdGVkVHlwZXNbMF0uZWxlbWVudCwgdHJ1
ZSk7CiAKICAgICAgICAgZm9yIChhdXRvJiBhbmltYXRlZFR5cGUgOiBhbmltYXRlZFR5cGVzKSB7
CiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih3aGljaFByb3Bl
cnR5IDwgYW5pbWF0ZWRUeXBlLnByb3BlcnRpZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgIEFuaW1W
YWxUeXBlKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1W
YWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7Cisg
ICAgICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFBy
b3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3
aGljaFByb3BlcnR5XS5nZXQoKSk7CiAKICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAg
ICAgICAgICAgICBjYXNlIFN0YXJ0QW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAgIEFT
U0VSVCh0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LT5pc0FuaW1hdGluZygp
KQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZCh0eXBlKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQocHJvcGVydHkpOworICAgICAgICAgICAgICAgIGlmICgh
YW5pbWF0ZWRQcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgYW5p
bWF0ZWRQcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZChwcm9wZXJ0eSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlz
QW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRl
ZCgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHkpOworICAgICAgICAgICAgICAg
IGlmIChhbmltYXRlZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAg
ICBhbmltYXRlZFByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsV2lsbENoYW5nZUFjdGlvbjoKLSAgICAgICAg
ICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltVmFs
V2lsbENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHkpOworICAgICAg
ICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFuaW1WYWxEaWRDaGFuZ2VBY3Rpb246
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0
eS0+YW5pbVZhbERpZENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHkp
OworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU3MDRkZDNlZjEwZGEzYWVh
ZTEzMGI2M2U1MTA1NzJhYzJiZmYyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFZhbHVlLmgKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFs
dWUuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVu
Z3RoVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAi
U1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKKyNp
bmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdQcm9w
ZXJ0eUluZm8uaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorI2luY2x1ZGUgIlNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgU1ZHQW5pbWF0ZWRWYXJpYW50ID0gVmFyaWFudDwK
KyAgICBTVkdBbmdsZVZhbHVlLAorICAgIGJvb2wsCisgICAgQ29sb3IsCisgICAgdW5zaWduZWQs
CisgICAgaW50LAorICAgIFNWR0xlbmd0aFZhbHVlLAorICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMs
CisgICAgZmxvYXQsCisgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcywKKyAgICBTVkdQYXRoQnl0ZVN0
cmVhbSwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLAorICAgIEZsb2F0UmVjdCwKKyAgICBTdHJpbmcsCisgICAgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcworPjsKKworY2xhc3MgU1ZHQW5pbWF0ZWRWYWx1ZSA6CisgICAgcHVibGljIFdURjo6
UmVmQ291bnRlZDxTVkdBbmltYXRlZFZhbHVlPiwKKyAgICBwdWJsaWMgU1ZHQW5pbWF0ZWRWYXJp
YW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
c3RhdGljIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBl
JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQW5pbWF0ZWRW
YWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KKyAgICBzdGF0aWMgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IGNyZWF0ZShQcm9wZXJ0eVR5
cGUmJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHQW5pbWF0
ZWRWYWx1ZShXVEZNb3ZlKHZhbHVlKSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IGNyZWF0
ZShjb25zdCBTVkdBbmltYXRlZFZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU1ZHQW5pbWF0ZWRWYWx1ZSh2YWx1ZS5wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+
KCkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
Ym9vbCBob2xkc0FsdGVybmF0aXZlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIHBy
b3BlcnR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChob2xkc0FsdGVybmF0aXZlPFBy
b3BlcnR5VHlwZT4oKSk7CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0
aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
UHJvcGVydHlUeXBlJiBwcm9wZXJ0eSgpCisgICAgeworICAgICAgICBBU1NFUlQoaG9sZHNBbHRl
cm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVy
dHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlPgorICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
U1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcocHJvcGVydHk8UHJvcGVy
dHlUeXBlPigpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJv
cGVydHlUeXBlPjo6cGFyc2UocHJvcGVydHk8UHJvcGVydHlUeXBlPigpLCBhdHRyTmFtZSwgc3Ry
aW5nKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlPgorICAgIFNWR0FuaW1hdGVkVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAg
ICAgICAgOiBTVkdBbmltYXRlZFZhcmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQo
aG9sZHNBbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCkpOworICAgIH0KKyAgICAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5pbWF0ZWRWYWx1ZShQcm9wZXJ0
eVR5cGUmJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFZhcmlhbnQoV1RGTW92ZSh2YWx1
ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaG9sZHNBbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+
KCkpOworICAgIH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAppbmRleCBmZGM4MzlmYzEwZGVlOTdjMjAxZTM1
ZTRjODc0NjUwMDVhYmJlNjhjLi40YjYxNDMzMGVhNDhjY2RkMzE5ODNkZTBkY2U0ZDNiYjE5ODdm
NDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKQEAgLTM0LDEz
ICszNCwyNSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07
CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1
ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0
VmFsdWVzPiB7CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gU1ZHTGVuZ3RoVmFsdWU7CiAgICAg
dXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTGVuZ3RoOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0
eVRlYXJPZmYgPSBTVkdMZW5ndGhMaXN0OwogCiAgICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1
ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gIHsgfTsgfQorICAgIHN0YXRpYyBTVkdMZW5ndGhM
aXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFNWR0xlbmd0aE1vZGUg
bGVuZ3RoTW9kZSkKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAg
ICAgICAgbGlzdC5wYXJzZShzdHJpbmcsIGxlbmd0aE1vZGUpOworICAgICAgICByZXR1cm4gbGlz
dDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhMaXN0
VmFsdWVzJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIHN0YXRp
YyBib29sIHBhcnNlKFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxpc3QsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGxpc3Qu
cGFyc2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3Ro
QXR0cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgKaW5k
ZXggYzcwODJiNGZhZmQ1YzUzZjAxNjliZTlmNmI4Y2Y0ZTM3MjQ1YWNlNS4uY2M1NGYwMDNhMzkz
YjAxOWQ1NzIyNzU4Nzk5OGI3NTQzN2M3M2FhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZh
bHVlLmgKQEAgLTE0OCw2ICsxNDgsMTEgQEAgcHJpdmF0ZToKIHRlbXBsYXRlPD4gc3RydWN0IFNW
R1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPiB7CiAgICAgc3RhdGljIFNWR0xlbmd0aFZh
bHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0
cmluZygpOyB9CisgICAgc3RhdGljIGJvb2wgcGFyc2UoU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAg
IHsKKyAgICAgICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3RyaW5nLCBTVkdMZW5ndGhWYWx1
ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhj
ZXB0aW9uKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIH07CiAKIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCBjNzU3ZDFkOTJiNDA4MjU5NDBjMzk5MmIw
MmExMDc0YmUxMGUxNDMxLi44N2Y0ZjFhOTA2MDc1OWQyYzYwZjhjYzVhZDJmMjczODAzOWFjYjQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTI5LDc1ICsyOSwxMCBA
QAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCisjaW5jbHVkZSAiU1ZH
TWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFNWR01hcmtlclVu
aXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgKLX07Ci0K
LWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9
IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwK
LSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAotCi0gICAgLy8gQWRkIG5ldyBl
bGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmllbnRNYXgKLX07Ci0KLXRlbXBs
YXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKLSAg
ICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVu
aXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoU1ZHTWFya2Vy
VW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAg
Y2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOgotICAgICAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2UiKTsKLSAgICAgICAgY2Fz
ZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQotICAgICAgICAgICAg
cmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0gICAgICAgIGlmICh2YWx1ZSA9
PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tl
V2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25vd247Ci0gICAgfQotfTsK
LQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2Vy
T3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2Vy
T3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVl
KCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQotCi0gICAgLy8g
dG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmllbnRUeXBlKCkgaGFuZGxlcyB0
aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFuZ2xlKQotICAgIHsKLSAg
ICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJP
cmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCi0g
ICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsKLSAgICAg
ICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwot
ICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAgcmV0dXJuIFNWR01hcmtlck9y
aWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtlckVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjlkNDk2NDQ3ZDYwNzBlNjk0MDViNTNjYWYwNWVhNWQyZWM1MGQ3NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJUeXBlcy5oCkBA
IC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgorI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBTVkdNYXJrZXJVbml0c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAsCisg
ICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdNYXJrZXJVbml0c1N0cm9r
ZVdpZHRoCit9OworCitlbnVtIFNWR01hcmtlck9yaWVudFR5cGUgeworICAgIFNWR01hcmtlck9y
aWVudFVua25vd24gPSAwLAorICAgIFNWR01hcmtlck9yaWVudEF1dG8sCisgICAgU1ZHTWFya2Vy
T3JpZW50QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAK
KyAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAgIFNWR01hcmtlck9yaWVu
dE1heAorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdN
YXJrZXJVbml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgp
IHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgorICAgICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2Vy
U3BhY2VPblVzZToKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9u
VXNlIik7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKKyAgICAgICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKKyAgICB9CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJT
cGFjZU9uVXNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9u
VXNlOworICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKKyAgICAgICAgICAgIHJl
dHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOworICAgICAgICByZXR1cm4gU1ZHTWFya2Vy
VW5pdHNVbmtub3duOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hl
c3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9
CisgICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9
PSAiYXV0byIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKKyAgICAg
ICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAgICAgICAgICAgcmV0dXJu
IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7CisgICAgICAgIGF1dG8gc2V0VmFsdWVS
ZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgaWYgKHNldFZh
bHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9y
aWVudFVua25vd247CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKKyAgICB9
Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNW
R0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVW
YWx1ZSwgdW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdNYXJrZXJPcmllbnRUeXBl
IG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJv
bVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFy
a2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmdsZSA9IHsgfTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBTVkdJRExFbnVtTGltaXRz
PFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJu
IFNWR01hcmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCmluZGV4IDdiNGFjNzc4OTdiZDYwZGFi
YmRiY2NiZWRmOWJjY2QyOGI1ZDIxZjMuLjgwODE0MDI4MTExNGI0MjA2OTFjMDRkMDAwYjVkODIz
MTc3NDg2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFs
dWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaApAQCAt
MzQsMTAgKzM0LDE2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlz
dFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJl
ckxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBpbml0aWFsVmFs
dWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHTnVtYmVyTGlz
dFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIHJldHVy
biBsaXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR051bWJl
ckxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9Ci0KICAg
ICB1c2luZyBMaXN0SXRlbVR5cGUgPSBmbG9hdDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYg
PSBTVkdOdW1iZXI7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR051bWJlckxp
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCmluZGV4IDZkYmNmYjk3Nzkx
MTA3MTUxM2EzNTY5OTZmY2FhYWUxMzUyOTgzZDkuLmEzZjhiOTAxZGVlOWRiNjA4YTkyY2ZiNTVh
ODkzYjc2ZTZiMTNkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0
ZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCkBA
IC0xOSw2ICsxOSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNWR1BhdGhDb25z
dW1lci5oIgorI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdQcm9w
ZXJ0eVRyYWl0cy5oIgorCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC00MCw0OCArNDQsNDQgQEAgdHlwZWRlZiB1bmlvbiB7CiAgICAg
dW5zaWduZWQgY2hhciBieXRlc1tzaXplb2YodW5zaWduZWQgc2hvcnQpXTsKIH0gVW5zaWduZWRT
aG9ydEJ5dGU7CiAKLWNsYXNzIFNWR1BhdGhCeXRlU3RyZWFtIHsKK2NsYXNzIFNWR1BhdGhCeXRl
U3RyZWFtIGZpbmFsIDogcHVibGljIFZlY3Rvcjx1bnNpZ25lZCBjaGFyLCAxPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBWZWN0b3I8dW5zaWdu
ZWQgY2hhcj4gRGF0YTsKLSAgICB0eXBlZGVmIERhdGE6OmNvbnN0X2l0ZXJhdG9yIERhdGFJdGVy
YXRvcjsKLQogICAgIFNWR1BhdGhCeXRlU3RyZWFtKCkgeyB9Ci0gICAgU1ZHUGF0aEJ5dGVTdHJl
YW0oY29uc3QgRGF0YSYgZGF0YSkgOiBtX2RhdGEoZGF0YSkgeyB9CisgICAgU1ZHUGF0aEJ5dGVT
dHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICAgICAgOiBWZWN0b3I8dW5zaWdu
ZWQgY2hhciwgMT4oV1RGTW92ZShvdGhlcikpCisgICAgeworICAgIH0KICAgICAKLSAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNW
R1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKKyAgICAgICAg
OiBWZWN0b3I8dW5zaWduZWQgY2hhciwgMT4ob3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
bV9kYXRhID09IG90aGVyLm1fZGF0YTsKICAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIAorICAgIFNWR1BhdGhCeXRl
U3RyZWFtJiBvcGVyYXRvcj0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVkIGNo
YXIsIDE+OjpvcGVyYXRvcj0oc3RhdGljX2Nhc3Q8VmVjdG9yPHVuc2lnbmVkIGNoYXIsIDE+PihX
VEZNb3ZlKG90aGVyKSkpOworICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQotCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBjb3B5KCkgY29uc3QKKyAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSYgb3BlcmF0b3I9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPiht
X2RhdGEpOworICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhciwgMT46Om9wZXJhdG9yPShzdGF0
aWNfY2FzdDxWZWN0b3I8dW5zaWduZWQgY2hhciwgMT4+KG90aGVyKSk7CisgICAgICAgIHJldHVy
biAqdGhpczsKICAgICB9CiAKLSAgICBEYXRhSXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuYmVnaW4oKTsgfQotICAgIERhdGFJdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuZW5kKCk7IH0KLQotICAgIHZvaWQgYXBwZW5kKHVuc2lnbmVkIGNoYXIgYnl0ZSkg
eyBtX2RhdGEuYXBwZW5kKGJ5dGUpOyB9Ci0gICAgdm9pZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5
dGVTdHJlYW0mIG90aGVyKQorICAgIH5TVkdQYXRoQnl0ZVN0cmVhbSgpIHsgfQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNyZWF0ZShjb25zdCBTVkdQYXRo
Qnl0ZVN0cmVhbSYgb3RoZXIpIHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVT
dHJlYW0+KG90aGVyKTsgfQorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT4geworICAgIHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVh
bSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTVkdQYXRoQnl0ZVN0cmVhbSgpOyB9CisgICAgc3Rh
dGljIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAg
ICAgewotICAgICAgICBmb3IgKGF1dG8gc3RyZWFtIDogb3RoZXIpCi0gICAgICAgICAgICBhcHBl
bmQoc3RyZWFtKTsKKyAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gYnl0ZVN0cmVhbTsKKyAgICAg
ICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5nLCBieXRlU3RyZWFtLCBV
bmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgcmV0dXJuIGJ5dGVTdHJlYW07CiAgICAgfQotICAg
IHZvaWQgY2xlYXIoKSB7IG1fZGF0YS5jbGVhcigpOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gIW1fZGF0YS5zaXplKCk7IH0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQotCi0gICAgLy8gT25seSBkZWZpbmVkIHRvIGxldCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2UgdGhlIHN0YW5kYXJkIGxpc3QgY29kZSBwYXRocyAt
IHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxlZC4KLSAgICB2b2lkIHJlc2l6ZSh1bnNpZ25lZCkg
eyB9Ci0KLXByaXZhdGU6Ci0gICAgRGF0YSBtX2RhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW1T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oCmlu
ZGV4IDJlMDNjOGNiZjVmZGU4NjFmNzk0ZTZhNDZhM2E1N2M2MGNmZTU5OTguLmQ2MTk5YjJjMjA5
MjYzMDJmYzBlYjFmYTNhMWE1MzIxYWE5YWVlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oCkBAIC04NSw4ICs4NSw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBGbG9hdFBvaW50KHgsIHkpOwogICAgIH0KIAotICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtOjpEYXRhSXRlcmF0b3IgbV9zdHJlYW1DdXJyZW50OwotICAgIFNWR1BhdGhCeXRlU3RyZWFt
OjpEYXRhSXRlcmF0b3IgbV9zdHJlYW1FbmQ7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW06OmNvbnN0
X2l0ZXJhdG9yIG1fc3RyZWFtQ3VycmVudDsKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbTo6Y29uc3Rf
aXRlcmF0b3IgbV9zdHJlYW1FbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKaW5kZXggM2U5MDBlNDFiYzlmNjgyMWIx
NTMzMmE1ZmFhYWM4MzE1MGM2M2RkOC4uNzg2NWUxYzNlM2YyY2QyYjE1NTVmZmVmM2I3YjhmNTc0
Mjg1MDYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcApAQCAtNzIs
NyArNzIsNyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcoUmVm
UHRyPFNWR1BhdGhTZWc+JiYgcGF0aFNlZywgU1ZHUGF0aAogICAgIGJvb2wgb2sgPSBTVkdQYXRo
UGFyc2VyOjpwYXJzZVRvQnl0ZVN0cmVhbShzb3VyY2UsIHJlc3VsdCwgcGFyc2luZ01vZGUsIGZh
bHNlKTsKIAogICAgIGlmIChvaykKLSAgICAgICAgcmVzdWx0LmFwcGVuZChhcHBlbmRlZEJ5dGVT
dHJlYW0pOworICAgICAgICByZXN1bHQuYXBwZW5kVmVjdG9yKGFwcGVuZGVkQnl0ZVN0cmVhbSk7
CiAKICAgICByZXR1cm4gb2s7CiB9CkBAIC0xNDksMTUgKzE0OSwxNCBAQCBib29sIGJ1aWxkQW5p
bWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgZnJvbVN0cmVh
bSwgY29uc3QgUwogCiBib29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJl
YW0mIHN0cmVhbVRvQXBwZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBieVN0cmVhbSwg
dW5zaWduZWQgcmVwZWF0Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJldHVybiB3aGVuIHN0cmVhbVRv
QXBwZW5kVG8gaXMgZW1wdHk/IERvbid0IHdlIHN0aWxsIG5lZWQgdG8gYXBwZW5kPworICAgIC8v
IFRoZSBieVN0cmVhbSB3aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0FwcGVuZFRvLiBTbyBz
dHJlYW1Ub0FwcGVuZFRvIGhhcyB0byBoYXZlIGVsZW1lbnRzLgogICAgIGlmIChzdHJlYW1Ub0Fw
cGVuZFRvLmlzRW1wdHkoKSB8fCBieVN0cmVhbS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgLy8gSXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5dGVTdHJlYW1CdWls
ZGVyIGZyb20gYSBzdHJlYW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFtPworICAgIC8vIGJ1
aWxkZXIgaXMgdGhlIGRlc3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3VyY2UgYW5kIGJ5U291
cmNlLiBUaGUgc3RyZWFtIG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJlYW1Ub0FwcGVuZFRv
KSBoYXMgdG8gYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyBhZGRBbmltYXRlZFBhdGguCiAgICAg
U1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBlbmRUbyk7Ci0KLSAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0cmVhbVRvQXBwZW5kVG87Ci0g
ICAgc3RyZWFtVG9BcHBlbmRUby5jbGVhcigpOworICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21T
dHJlYW1Db3B5ID0gV1RGTW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsKIAogICAgIFNWR1BhdGhCeXRl
U3RyZWFtU291cmNlIGZyb21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkpOwogICAgIFNWR1BhdGhCeXRl
U3RyZWFtU291cmNlIGJ5U291cmNlKGJ5U3RyZWFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuaAppbmRleCBhYmFiODIyMDQ2NzcwYmRjOGViNzQ1YTVhNjBkMDIwY2VhNjVk
MzM1Li41N2U2MjM1OWNiZGU5YmM5ZmU0NGU3ZTNmOTA4MjNiYWUxOGRkMjYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCkBAIC0zNCw5ICszNCwxNSBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07CiAKLXRlbXBsYXRlPD4gc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz4gewogICAgIHN0YXRp
YyBTVkdQb2ludExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0KKyAg
ICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBTVkdQb2ludExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgcG9p
bnRzTGlzdEZyb21TVkdEYXRhKGxpc3QsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBsaXN0Owor
ICAgIH0KICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExp
c3RJdGVtVGVhck9mZiA9IFNWR1BvaW50OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdQb2ludExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUuY3BwCmluZGV4IGQ1ZDM5M2VhZmE1OGU5MTc0MzBkYjg1OWY1YTA2MTAx
ZjEyMjcyOWQuLmE4MmUzZjEzOTY0ZjA5Y2UzNGZlY2Q5MzNiMjQ0NWU4OTA3NTdmMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3Bw
CkBAIC0zNiw2ICszNiwxMSBAQCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSgpCiB7CiB9CiAKK1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorewor
ICAgIHBhcnNlKHN0cmluZyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZTo6c2V0QWxpZ24odW5zaWduZWQgc2hvcnQgYWxpZ24pCiB7CiAgICAgaWYg
KGFsaWduID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04gfHwgYWxpZ24gPiBTVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAppbmRleCBhMWZjMTE0ZjZjNGI2OWZmZTQxZTZk
MDM0NzgzMzkzZDc4M2U1ZjBkLi4xNTUzMGQ1MGQ4ZWZlOGNmZGIzNWI2ZTAxNDRmMDY1MDk4MjIx
Y2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNv
bnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24odW5zaWduZWQg
c2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGln
bjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKICAgICBzdGF0aWMg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0
eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKaW5kZXggMGUyMWY1
ZjY2MzM1Y2RkZGIxOWFiYTc2NTM5NGVmNGMzYTc3YTI5MS4uYzk3NGYwNDczNjFhN2I1ODk3ZTgz
MTRlYmFjNjk0M2EzZTg2YjAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCkBAIC0yMCw3ICsyMCw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1
ZGUgIlNWR1JlY3RUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0VHJhaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDg0YzZlMjU0MzkwMGJlMmEzNGY0MWEzODViZWI3Yjc0
ZDJlYjFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10ZW1wbGF0ZTw+Ci1zdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7Ci0gICAgc3RhdGljIEZsb2F0UmVjdCBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5n
KGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKLSAgICB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnko
KSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKHR5cGUud2lkdGgoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCmluZGV4IDI5NDA3
NjI4ZWRmYTZlZjM1NWExZjBiMGUxNjNjOTQ3NDE3ZWY3MjguLjMzMjUyYzVhNTE1OTBmMmI4MGMx
MmZmZGMzMDNmZmQ3YzhkNWYwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuaApAQCAtNDIsOCArNDIsMTYgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2Uo
Y29uc3QgU3RyaW5nJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisg
ICAgeworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3Qu
cGFyc2Uoc3RyaW5nKTsKKyAgICAgICAgQVNTRVJUKGxpc3Quc2l6ZSgpIDw9IDEpOworICAgICAg
ICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmco
KTsgfQogCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gU1ZHVHJhbnNmb3JtVmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAppbmRl
eCBhZmRhZDk1OGE5YWNhNzZjZDYzZjk4ZGIwMWZkZTY4NTc4ODNjNjA3Li40MGRmZDE3NDU1M2I5
NDc5NWI5ZmY4NDBiOGFkYzAxYjk1YzFiYTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAgLTIwLDYgKzIwLDEzIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5j
bHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTMwLDEwICszNywyMyBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHMgeyB9
OwogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0
aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0YXRpYyBib29s
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1
ZSI7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlw
ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxDb2xvcj4geworICAgIHN0YXRpYyBDb2xvciBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBDb2xvcigpOyB9CisgICAgc3RhdGljIENvbG9yIGZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCkpOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBDb2xvciYgdHlw
ZSkgeyByZXR1cm4gdHlwZS5zZXJpYWxpemVkKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBwYXJzZShD
b2xvciYgY29sb3IsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykK
KyAgICB7CisgICAgICAgIGNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJp
cFdoaXRlU3BhY2UoKSk7CisgICAgICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCk7CisgICAgfQor
fTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVkPiB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVy
KHR5cGUpOyB9CkBAIC00MiwxOSArNjIsODggQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVu
c2lnbmVkPiB7CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8aW50PiB7CiAg
ICAgc3RhdGljIGludCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGlu
dCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyZzdHJpbmcpIHsgcmV0dXJuIHN0cmluZy50b0ludFN0
cmljdCgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgdHlwZSkgeyByZXR1cm4g
U3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGludCwgaW50Pj4geworICAgIHN0YXRpYyBzdGQ6OnBh
aXI8aW50LCBpbnQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBz
dGQ6OnBhaXI8aW50LCBpbnQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAg
eworICAgICAgICBmbG9hdCBmaXJzdE51bWJlciA9IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAg
ICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBz
ZWNvbmROdW1iZXIpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgCisgICAgICAg
IHJldHVybiBzdGQ6OnBhaXI8aW50LCBpbnQ+KHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0
TnVtYmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpKTsKKyAgICB9
Cit9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+IHsKICAg
ICBzdGF0aWMgZmxvYXQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBm
bG9hdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxv
YXQgdHlwZSA9IDA7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5n
LCB0eXBlKSA/IHR5cGUgOiAwOworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGZs
b2F0IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CisgICAgc3RhdGljIGJv
b2wgcGFyc2UoZmxvYXQmIG51bWJlciwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgaWYgKHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJp
bmcsIG51bWJlcikpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgbnVtYmVyID0g
MDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRp
YyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25k
TnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmlu
ZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9Owor
CisgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PihmaXJzdE51bWJlciwgc2Vj
b25kTnVtYmVyKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8RmxvYXRSZWN0PiB7CisgICAgc3RhdGljIEZsb2F0UmVjdCBpbml0aWFsVmFsdWUoKSB7
IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIHN0YXRpYyBGbG9hdFJlY3QgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0OworICAg
ICAgICByZXR1cm4gcGFyc2VSZWN0KHN0cmluZywgcmVjdCkgPyByZWN0IDogRmxvYXRSZWN0KCk7
CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0
UmVjdCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnkoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUu
d2lkdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIH0KKyAgICBzdGF0aWMgYm9vbCBwYXJzZShGbG9hdFJlY3QmIHR5cGUsIGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gcGFyc2VS
ZWN0KHN0cmluZywgdHlwZSk7IH0KIH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTdHJpbmc+IHsKICAgICBzdGF0aWMgU3RyaW5nIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIFN0cmluZygpOyB9CisgICAgc3RhdGljIFN0cmluZyBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5n
KGNvbnN0IFN0cmluZyYgdHlwZSkgeyByZXR1cm4gdHlwZTsgfQorICAgIHN0YXRpYyBib29sIHBh
cnNlKFN0cmluZyYgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgdHlwZSA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302319</attachid>
            <date>2017-02-21 15:21:43 -0800</date>
            <delta_ts>2017-02-21 16:17:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20170221151858.patch</filename>
            <type>text/plain</type>
            <size>149254</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjc2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzNSBAQAorMjAxNy0wMi0yMSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU1ZH
QW5pbWF0ZWRUeXBlIGhvbGRzIFJlZkNvdW50ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGhvbGRpbmcg
YSB1bmlvbiBvZiByYXcgcG9pbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgY2hhbmdpbmcgdGhlIHJhdyBw
b2ludGVycyB3aGljaCBpcyBoZWxkIGJ5CisgICAgICAgIFNWR0FuaW1hdGVkVHlwZSBhbmQgdGhl
IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmIG9iamVjdCB0byBiZSBSZWZDb3VudGVkCisgICAg
ICAgIHBvaW50ZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBTVkdBbmltYXRlZFR5
cGUgd2hpY2ggaG9sZHMgYSB1bmlvbiBvZiByYXcgcG9pbnRlcnMgdG8KKyAgICAgICAgaG9sZCBS
ZWZDb3VudGVkIFZhcmlhbnQgb2JqZWN0cy4gSXQgbWFrZXMgdGhlIFNWR0FuaW1hdGVkVHlwZSBo
b2xkcyBhIHBhaXIKKyAgICAgICAgU1ZHQW5pbWF0ZWRWYWx1ZS4gVGhlIFNWR0FuaW1hdGVkVmFs
dWUgaXMgYSBSZWZDb3VudGVkIFZhcmlhbnQgd2hpY2ggaG9sZHMKKyAgICAgICAgYSBzaW5nbGUg
ZGF0YSB0eXBlLiBTVkdBbmltYXRlZFR5cGUgY2FuIGhvbGQgb25lIG9yIHR3byBTVkdBbmltYXRl
ZFZhbHVlcy4KKyAgICAgICAgVGhlIGRhdGEgcGFpciBoYXZlIHRvIGJlIHN0b3JlZCBpbiBzZXBh
cmF0ZSBvYmplY3RzIG5vdCBpbiB0aGUgc2FtZSBWYXJpYW50CisgICAgICAgIGJlY2F1c2UgdGhl
eSBhcmUgaGVsZCBieSB0d28gZGlmZmVyZW50IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmIG9i
amVjdHMuCisKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0eSByYXcg
cG9pbnRlciBpbiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZgorICAgICAgICB0byBiZSBiZSBh
IFNWR0FuaW1hdGVkVmFsdWUgd2hpY2ggaXMgYSBSZWZDb3VudGVkIHBvaW50ZXIgaW5pdGlhdGVk
IGluIAorICAgICAgICBTVkdBbmltYXRlZFR5cGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBTVkdNYXJrZXJUeXBlcy5oIGFuZCBTVkdBbmltYXRl
ZFZhbHVlLmgKKyAgICAgICAgYW5kIGRlbGV0ZSBTVkdSZWN0VHJhaXRzLmggZnJvbSB0aGUgcHJv
amVjdC4gTWFrZSBQYXJzZXJVdGlsaXRpZXMuaCBwcml2YXRlIGJlY2F1c2UKKyAgICAgICAgaXQg
aXMgaW5jbHVkZWQgaW4gU1ZHUHJvcGVydHlUcmFpdHMuaC4KKyAgICAgICAgCisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKTogUmVwbGFjZSB0aGUgY2FsbCB0bwor
ICAgICAgICBTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoKSBieSBTVkdBbmltYXRl
ZFR5cGU6OnBhcnNlKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6
OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KTogIFJlcGxhY2UgdGhlIGNhbGwKKyAgICAgICAgdG8gU1ZH
QW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkgYnkgU1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmlu
ZygpLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKTpVc2Ug
CisgICAgICAgIFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4+Ojpmcm9tU3RyaW5nKCkgdG8gZ2V0CisgICAgICAgIHRoZSBhbmdsZSB2YWx1ZSBmb3Jt
IGEgc3RyaW5nLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOiBEb24ndCBjb25zdHJ1Y3QKKyAgICAgICAgYW4gU1ZHQW5p
bWF0ZWRUeXBlIGZyb20gdGhlIHJldHVybiBvZiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcygpIHNp
bmNlIGl0IG5vdworICAgICAgICByZXR1cm5zIGFuIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KTogRG9uJ3QgcGFzcyBhIGdldHRlcgorICAgICAgICB0byByZXNldEZyb21CYXNlVmFsdWVzIHNp
bmNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQKKyAg
ICAgICAgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OiBSZXBsYWNlIHRoZSBjYWxsIHRvIAorICAgICAgICBTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5k
RW51bWVyYXRpb24oKSBieSBTVkdBbmltYXRlZFR5cGU6OnByb3BlcnRpZXM8PigpLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKTogRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0
ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNh
bGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
RW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
RGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6cGFyc2VOdW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0
by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJl
ckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgor
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExp
c3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
RGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6dHlwZSk6IFRoZSB0eXBlIG9mIHRoZSBTVkdBbmltYXRlZFR5cGUgY2FuIGJlCisg
ICAgICAgIGRlZHVjZWQgZnJvbSB0aGUgdHlwZSBvZiB0aGUgU1ZHQW5pbWF0ZWRWYWx1ZXMuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnRvU3RyaW5nKTogUmVuYW1lIHZhbHVl
QXNTdHJpbmcoKSB0byB0b1N0cmluZygpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpwYXJzZSk6IFJlbmFtZSBzZXRWYWx1ZUFzU3RyaW5nKCkgdG8gcGFyc2UoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVkVHlwZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5k
RW51bWVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZU51bWJlckxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5z
Zm9ybUxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2
YWx1ZUFzU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6c2V0VmFsdWVBc1N0cmluZyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6IFRlbXBsYXRlIGNvbnN0cnVjdG9ycyB0byBjb25zdHJ1Y3QgYSBTVkdBbmltYXRlZFR5
cGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6IFRlbXBsYXRl
IGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBTVkdBbmltYXRlZFR5cGUuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnByb3BlcnR5KTogVGVtcGxhdGUgZnVuY3Rpb25zIHRvIHJldHVy
biB0aGUgc3RvcmVkIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
Ojpwcm9wZXJ0aWVzKTogVGVtcGxhdGUgZnVuY3Rpb25zIHRvIHJldHVybiB0aGUgc3RvcmVkIHBh
aXIgcHJvcGVydGllcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHlwZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5kRW51
bWVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpi
b29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y29s
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVn
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6bGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6bGVuZ3RoTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6Om51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Om51bWJlckxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpudW1iZXJPcHRpb25hbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OnBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpwb2ludExpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OnN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOiBEZWxldGVkLgorCisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVB
bmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZSk6IENyZWF0ZSBhIFJlZlB0cjxTVkdBbmlt
YXRlZFZhbHVlPiBmcm9tCisgICAgICAgIHRoZSBjdXJyZW50QmFzZVZhbHVlIGFuZCB1c2UgdGhp
cyBwb2ludGVyIHRvIGNyZWF0ZSBhbiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPi4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpyZXNldEZyb21CYXNl
VmFsdWUpOiBObyBuZWVkIGZvciB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlcgorICAgICAgICBi
ZWNhdXNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQg
dG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMp
OiBDcmVhdGUgdHdvICBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4gCisgICAgICAgIGZyb20gdGhl
IGN1cnJlbnRCYXNlVmFsdWVzIGFuZCB1c2UgdGhlc2UgcGFpciBwb2ludGVycyB0byBjcmVhdGUg
YW4gc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4uCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFzZVZhbHVlcyk6ICBObyBuZWVkIGZv
ciB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlcgorICAgICAgICBiZWNhdXNlIHRoZSBDb250ZW50
VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBwcm9wZXJ0
aWVzIGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0aW9uKTogUmVuYW1lIHRoZSBhcmd1bWVudCBuYW1l
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlOjpjcmVhdGUpOiBUZW1wbGF0ZSBmdW5jdGlvbnMgdG8g
Y3JlYXRlIGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRWYWx1ZTo6aXMpOiBBIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgZGF0YSB0eXBl
IG9mIGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRW
YWx1ZTo6cHJvcGVydHkpOiBUZW1wbGF0ZSBmdW5jdGlvbnMgdG8gcmV0dXJuIHRoZSBkYXRhIG9m
IGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZTo6dG9TdHJpbmcpOiBBIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIHJldHVybiB2YWx1ZSBhbiBTVkdB
bmltYXRlZFZhbHVlIGFzIGFuIFN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VmFsdWU6OnBhcnNlKTogQSB0ZW1wbGF0ZSBmdW5jdGlvbiB0byBjaGFuZ2UgdmFsdWUgYW4gU1ZH
QW5pbWF0ZWRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVmFsdWU6OlNWR0Fu
aW1hdGVkVmFsdWUpOiBUZW1wbGF0ZSBjb25zdHJ1Y3RvcnMgdG8gY29uc3RydWN0IGFuIFNWR0Fu
aW1hdGVkVmFsdWUuCisKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2Zy9TVkdMZW5ndGhW
YWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFs
dWU+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5n
dGhWYWx1ZT46OnRvU3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT4uCisKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNU
eXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpm
cm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8
U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+
OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHTWFya2VyVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtl
clVuaXRzVHlwZT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUpOgorICAgICAgICBNb3ZlIHRoZXNlIFNWR1By
b3BlcnR5VHJhaXRzIHRvIGEgc2VwYXJhdGUgZmlsZSBiZWNhdXNlIHdlIHdhbnQgdG8gYWRkIGEg
bmV3CisgICAgICAgIFNWR1Byb3BlcnR5VHJhaXRzIGZvciB0aGUgcGFpciA8U1ZHQW5nbGVWYWx1
ZSwgdW5zaWduZWQ+LgorICAgICAgICAKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0
byBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2
Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJl
YW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3Ry
ZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICBBZGQgY29weSBhbmQgbW92ZSBzZW1hbnRpY3MuCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yIT0pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06
OmlzRW1wdHkpOgorICAgICAgICBNaW5vciBjbGVhbi11cC4KKworICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojppbml0aWFsVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9t
U3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQ
YXRoQnl0ZVN0cmVhbT4uCisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGRUb1NWR1BhdGhCeXRlU3RyZWFtKTogVXNlIFNWR1BhdGhCeXRl
U3RyZWFtIG1vdmUgc2VtYW50aWNzLgorCisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFs
dWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUpOgorICAgICAgICBBZGQgYSBj
b25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIHN0cmluZyB0byBiZSB1c2VkIGJ5IAorICAgICAgICBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+LgorCisgICAgICAg
ICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPi4KKworICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1JlY3RUcmFpdHMuaDogUmVtb3ZlZC4KKyAgICAgICAgTW92ZSBTVkdQcm9wZXJ0
eVRyYWl0czxGbG9hdFJlY3Q+IGZyb20gU1ZHUmVjdFRyYWl0cy5oIHRvIFNWR1Byb3BlcnR5VHJh
aXRzLmggCisgICAgICAgIHNpbmNlIGl0IGluY2x1ZGVzIHRoZSBTVkdQcm9wZXJ0eVRyYWl0cyBm
b3IgdGhlIG5vbiBTVkcgdHlwZXMuCisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMg
dG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4uCisKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICBB
ZGQgZnVuY3Rpb25zIHRvIHRoZSBTVkdQcm9wZXJ0eVRyYWl0cyBmb3Igbm9uIFNWRyB0eXBlcy4K
KwogMjAxNy0wMi0yMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IEFkZCBhbHRlcm5hdGUgY2xhc3NpZmljYXRp
b24gbWV0aG9kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzMjAsMTIg
KzIzMjAsMTQgQEAKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3RUMxQ0FBRjBBQjAwMzQ5NDI1IC8q
IEltYWdlRGVjb2RlckNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU1NUI4N0VBMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5jcHAg
Ki87IH07CiAJCTU1NUI4N0VEMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUIxQ0FB
RjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi87IH07CisJCTU1NzUwNTZEMUU1M0Iz
MEMwMDhERTMwQSAvKiBTVkdNYXJrZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtl
clR5cGVzLmggKi87IH07CiAJCTU1NzZBNTY0MUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1l
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NzZB
NTYyMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLzsgfTsKIAkJNTU3NkE1NjUx
RDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZy
YW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTU5N0Y4MjYxRDkxQzMxMzAwNjZCQzIxIC8qIEltYWdlRnJhbWVDYWNoZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTk3RjgyNDFEOTFDMzEzMDA2
NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hlLmNwcCAqLzsgfTsKIAkJNTU5N0Y4MjcxRDkxQzMxMzAw
NjZCQzIxIC8qIEltYWdlRnJhbWVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTU5N0Y4MjUxRDkxQzMxMzAwNjZCQzIxIC8qIEltYWdlRnJhbWVD
YWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTU1QTMzNkY3MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3
IC8qIE5hdGl2ZUltYWdlLmggKi87IH07CiAJCTU1QTMzNkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJ
bWFnZUJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTVBMzM2RjgxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVFNDRB
RTExRTRCRkJDNTAwOTI0NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAv
KiBTVkdBbmltYXRlZFZhbHVlLmggKi87IH07CiAJCTU3MDZBNjk2MURERTVDOTUwMEEwM0IxNCAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA2QTY5NTFEREU1Qzk1MDBBMDNCMTQgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oICovOyB9OwogCQk1NzA2QTY5ODFEREU1RTQ2MDBBMDNC
MTQgLyogSlNSc2FPYWVwUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzA2QTY5NzFEREU1RTQ2MDBBMDNCMTQgLyogSlNSc2FPYWVwUGFyYW1z
LmggKi87IH07CiAJCTU3MDZBNjlBMURERTVFODUwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwNkE2
OTkxRERFNUU4NTAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5jcHAgKi87IH07CkBAIC0yOTY2
LDcgKzI5NjgsNiBAQAogCQk3Q0Q0OTRDQzFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNo
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0Q0OTRDQTFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi87IH07CiAJ
CTdDRDQ5NENEMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Q0OTRDQjFBODZFQjFEMDAw
QTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2lu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThE
NDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0
RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFE
RDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07CiAJCTdDRTU4RDU0MUREN0Q2RTIw
MDEyODU1MiAvKiBTVkdMZW5ndGhWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1MjFERDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3Ro
VmFsdWUuY3BwICovOyB9OwogCQk3Q0U1OEQ1NzFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNm
b3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NFNThENTUxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmNwcCAqLzsg
fTsKQEAgLTQ3NjEsNyArNDc2Miw3IEBACiAJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCAqLzsg
fTsKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEJCMEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNl
clV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjIyNzhDMDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCAq
LzsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oICovOyB9OworCQlCMjIyN0E1
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEMyMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5jcHAgKi87IH07CiAJCUIy
MjI3QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgy
IC8qIFNWR1BhdGhFbGVtZW50LmggKi87IH07CiAJCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyB9OwpAQCAt
NTQzMCw3ICs1NDMxLDcgQEAKIAkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZp
ZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ2
RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NERBMzcxMDEzRjNGNzAwNzk4N0FEIC8q
IFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc0REEzODEwMTNGM0Y3MDA3OTg3
QUQgLyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmNwcCAqLzsgfTsK
LQkJQkM3NkFDMTMwREQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NkFDMTEwREQ3QUQ1QzAw
NDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovOyB9OworCQlCQzc2QUMxMzBERDdBRDVDMDA0
MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzc2QUMxMTBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJCMzYwQzRFQTkxRTAwODMyODVGIC8q
IENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDNzcyQzQ2MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0NDBDNEVC
MkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwICovOyB9OwogCQlCQzc3MkM0NzBDNEVC
MkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzQ1MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRw
UmVxdWVzdC5oICovOyB9OwpAQCAtOTY3Nyw2ICs5Njc4LDcgQEAKIAkJNTUwQTBCQzgwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTU1Qjg3RUExQ0FBRjBB
QjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU1NzUwNTZDMUU1M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJrZXJU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNYXJrZXJUeXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2MjFEODhBNzA4MDBDQ0MwNEMg
LyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjMxRDg4
QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTk3Rjgy
NDFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRnJhbWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC05Njg0LDYgKzk2ODYsNyBAQAogCQk1NUEzMzZGNjFEODIwOUY0MDAy
MkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmF0aXZlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjgxRDgy
MUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1RDQwOEY3MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNsaWVudHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdBbmlt
YXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVk
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNkE2OTQxRERFNUJGODAw
QTAzQjE0IC8qIFJzYU9hZXBQYXJhbXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJzYU9hZXBQYXJhbXMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA2QTY5NTFEREU1Qzk1MDBBMDNCMTQgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MDZBNjk3MURERTVFNDYwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSc2FPYWVwUGFyYW1zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDYxMSw3ICsxMDYxNCw2IEBACiAJCTdDRDQ5NENB
MUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQjFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNo
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDQ5MURENjRBNUIwMDEyODU1
MiAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2lu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1
NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdSZWN0VHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDRGMURE
NjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUx
MUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5ndGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4
RDUyMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5ndGhWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMZW5ndGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTQ3OSw2ICsyMTQ4MSw3IEBACiAJCQkJNDM5RDMzNDAxM0E2OTEx
QzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZCQ0U5MTc4QzExMzIw
MEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJCQkJNDM5RDMzNDEx
M0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCisJCQkJNTVF
NDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCAqLywKIAkJCQlCMjIy
NzdGOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovLAogCQkJCUIy
MjI3N0ZBMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5oICovLAogCQkJCUIy
MjI3N0ZCMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5pZGwgKi8sCkBAIC0y
MTgxNyw3ICsyMTgyMCw2IEBACiAJCQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1Jl
Y3RFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVj
dEVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVs
ZW1lbnQuaWRsICovLAotCQkJCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJh
aXRzLmggKi8sCiAJCQkJQjIyMjc5MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlbmRlcmluZ0lu
dGVudC5oICovLAogCQkJCUIyMjI3OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJ
bnRlbnQuaWRsICovLAogCQkJCUIyMjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdTY3JpcHRF
bGVtZW50LmNwcCAqLywKQEAgLTIxOTA5LDYgKzIxOTExLDcgQEAKIAkJCQlCMkU0RUM5NTBEMDBD
MjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmggKi8sCiAJCQkJQjJFNEVDOTYwRDAwQzIyQjAw
NDMyNjQzIC8qIFNWR1pvb21FdmVudC5pZGwgKi8sCiAJCQkJQjI4QzZBMjYwRDAwQzQ0ODAwMzM0
QUE0IC8qIHhsaW5rYXR0cnMuaW4gKi8sCisJCQkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8q
IFNWR01hcmtlclR5cGVzLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHN2ZzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTU0MSw2ICsyNTU0NCw3IEBACiAJCQkJQTU4NEZFMjYxODYz
N0RBQjAwODQzQjEwIC8qIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU3NTA1NkQxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01h
cmtlclR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYwRjMyQjFERkJCMTA3MDA0MTZENkMg
LyogQ29tbW9uVk0uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOTNGMzRBMUFBNkJBNUUwMEE5OEJB
QiAvKiBDb21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMyRjRF
NzhDMUU0NUMzRUYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjg0MDAsNyArMjg0MDQsNiBAQAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURF
MTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0E5RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxOTdCMTgwQzE1MDYzNTMyMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQTAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Jl
bmRlcmluZ0ludGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjc0NzkwRTgzNjZFMjAwRTdG
OTc1IC8qIFNWR1JlbmRlclN0eWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NjE1LDYgKzI4NjE4
LDcgQEAKIAkJCQlCQ0EyQjA2MTEwNTA0NzYwMDA0M0JEMUMgLyogVXNlclNjcmlwdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNBMkIwOEIxMDUwNUJDRDAwNDNCRDFDIC8qIFVzZXJTY3JpcHRUeXBl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNTExMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUU0NEFFMTFFNEJGQkM1MDA5MjQ1N0Ig
LyogU1ZHQW5pbWF0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNUExMDU4MTQx
ODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
REYzMTdDMTFGOEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3NDAwMDgzQTIwIC8qIFVUSVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOSw3ICsyMjks
NyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlCiAgICAgaWYgKCFt
X2FuaW1hdGVkVHlwZSkKICAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBhbmltYXRvci0+Y29uc3Ry
dWN0RnJvbVN0cmluZyhiYXNlVmFsdWUpOwogICAgIGVsc2UKLSAgICAgICAgbV9hbmltYXRlZFR5
cGUtPnNldFZhbHVlQXNTdHJpbmcoYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKTsKKyAgICAgICAg
bV9hbmltYXRlZFR5cGUtPnBhcnNlKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQoU1ZHRWxlbWVudCYgdGFy
Z2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTM0
OSwxNCArMzQ5LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHMK
ICAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIENT
UyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBhdGguCiAgICAgICAgIC8vIENvbnZlcnQgdGhl
IHJlc3VsdCBvZiB0aGUgYW5pbWF0aW9uIHRvIGEgU3RyaW5nIGFuZCBhcHBseSBpdCBhcyBDU1Mg
cHJvcGVydHkgb24gdGhlIHRhcmdldCAmIGFsbCBpbnN0YW5jZXMuCi0gICAgICAgIGFwcGx5Q1NT
UHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIGFwcGx5Q1NTUHJv
cGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
bV9hbmltYXRlZFR5cGUtPnRvU3RyaW5nKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgLy8gV2UgZG8gdXBkYXRlIHRoZSBzdHlsZSBhbmQgdGhlIGFuaW1hdGlvbiBwcm9wZXJ0eSBp
bmRlcGVuZGVudCBvZiBlYWNoIG90aGVyLgogICAgIFNob3VsZEFwcGx5QW5pbWF0aW9uIHNob3Vs
ZEFwcGx5ID0gc2hvdWxkQXBwbHlBbmltYXRpb24odGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSk7CiAgICAgaWYgKHNob3VsZEFwcGx5ID09IEFwcGx5WE1MYW5kQ1NTQW5pbWF0aW9uKQotICAg
ICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQs
IGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAg
ICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKIAogICAgIC8vIFNWRyBE
T00gYW5pbVZhbCBhbmltYXRpb24gY29kZS1wYXRoLgogICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhl
IFNWRyBET00gdmFsdWVzIGFyZSBhbHJlYWR5IGNoYW5nZWQsIHVubGlrZSBmb3IgQ1NTLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2aXNpb24gMjEyNjY0
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiwyMiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmlt
YXRlZEFuZwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5k
RW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5z
aWduZWQ+PigpKTsKLSAgICBhdXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xl
QW5kRW51bWVyYXRpb24oKTsKLQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFy
a2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3Jp
ZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUg
PiAwKQotICAgICAgICBhbmltYXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAo
b3JpZW50VHlwZSA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWly
LmZpcnN0ID0gYW5nbGU7Ci0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5n
bGVWYWx1ZSwgdW5zaWduZWQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5k
RW51bWVyYXRpb24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1
Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9u
PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTU3LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5p
bWF0b3I6OnN0b3BBbmltVgogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAg
cmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0
aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5p
bWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc1LDggKzY1LDggQEAgdm9pZCBTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0
ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAg
IGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YW5nbGVBbmRFbnVt
ZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFu
ZEVudW1lcmF0aW9uKCk7CisgICAgY29uc3QgYXV0byBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9
IGZyb20tPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CisgICAgYXV0byB0
b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+cHJvcGVydGllczxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4oKTsKICAgICAvLyBPbmx5IHJlc3BlY3QgYnkgYW5pbWF0aW9ucywgaWYgZnJvbSBhbmQg
YnkgYXJlIGJvdGggc3BlY2lmaWVkIGluIGFuZ2xlcyAoYW5kIG5vdCBlZy4gJ2F1dG8nKS4KICAg
ICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQgfHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IFNWR01hcmtl
ck9yaWVudEFuZ2xlKQogICAgICAgICByZXR1cm47CkBAIC05MCwxMCArODAsMTAgQEAgdm9pZCBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1
dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+YW5nbGVBbmRFbnVtZXJhdGlvbigp
IDogZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVBbmRFbnVt
ZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgdG9BdEVuZE9m
RHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFuZ2xlQW5k
RW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24gPSBh
bmltYXRlZC0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8gZnJvbUFuZ2xl
QW5kRW51bWVyYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0aWVzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
PigpIDogZnJvbS0+cHJvcGVydGllczxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oKTsKKyAgICBh
dXRvIHRvQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvLT5wcm9wZXJ0aWVzPFNWR0FuZ2xlVmFsdWUs
IHVuc2lnbmVkPigpOworICAgIGF1dG8gdG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0
aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+KCk7CisgICAgYXV0byBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24gPSBhbmltYXRlZC0+
cHJvcGVydGllczxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oKTsKIAogICAgIGlmIChmcm9tQW5n
bGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCkg
ewogICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gLSBubyBsaW5lYXIgaW50ZXJwb2xhdGlv
biBwb3NzaWJsZSBiZXR3ZWVuIHZhbHVlcyAoZS5nLiBhdXRvIHRvIGFuZ2xlKS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCShyZXZpc2lvbiAyMTI2NjQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpTVkdB
bmltYXRlZEIKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRC
b29sZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xl
YW4oc3RkOjptYWtlX3VuaXF1ZTxib29sPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmJvb2xlYW4o
KSA9IChzdHJpbmcgPT0gInRydWUiKTsgLy8gd2F0PwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJv
b2w+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJu
IGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNDgsNyArNDYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9w
QW5pCiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpib29s
ZWFuKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRl
ZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNzEsOSArNjksOSBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1h
dG9yOjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJU
KG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmJvb2xl
YW4oKSA6IGZyb20tPmJvb2xlYW4oKTsKLSAgICBib29sIHRvQm9vbGVhbiA9IHRvLT5ib29sZWFu
KCk7Ci0gICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gYW5pbWF0ZWQtPmJvb2xlYW4oKTsKKyAg
ICBib29sIGZyb21Cb29sZWFuID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8Ym9vbD4oKSA6IGZyb20tPnByb3Bl
cnR5PGJvb2w+KCk7CisgICAgYm9vbCB0b0Jvb2xlYW4gPSB0by0+cHJvcGVydHk8Ym9vbD4oKTsK
KyAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRlZC0+cHJvcGVydHk8Ym9vbD4oKTsK
IAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxib29sPihwZXJj
ZW50YWdlLCBmcm9tQm9vbGVhbiwgdG9Cb29sZWFuLCBhbmltYXRlZEJvb2xlYW4pOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkocmV2aXNpb24gMjEyNjY0
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6U1ZHQW5pbWF0
ZWRDb2wKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6bWFrZV91bmlxdWU8
Q29sb3I+KENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpKSk7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPENv
bG9yPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZENvbG9yQW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRl
ZFR5cGUqIHRvKQpAQCAtNDQsOCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRv
cjo6YWRkQW5pbWF0CiAgICAgQVNTRVJUKHRvLT50eXBlKCkgPT0gQW5pbWF0ZWRDb2xvcik7CiAK
ICAgICAvLyBJZ25vcmVzIGFueSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBvbiByZXN1bHQgdG8gMTAw
JSBvcGFxdWUuCi0gICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+Y29sb3IoKTsKLSAgICBhdXRv
JiB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+cHJv
cGVydHk8Q29sb3I+KCk7CisgICAgYXV0byYgdG9Db2xvciA9IHRvLT5wcm9wZXJ0eTxDb2xvcj4o
KTsKICAgICB0b0NvbG9yID0geyByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IucmVk
KCkgKyBmcm9tQ29sb3IucmVkKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVs
KHRvQ29sb3IuZ3JlZW4oKSArIGZyb21Db2xvci5ncmVlbigpKSwKICAgICAgICAgcm91bmRBbmRD
bGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmJsdWUoKSArIGZyb21Db2xvci5ibHVlKCkpIH07CkBA
IC02OSw4ICs2OSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjYWxjdWxhdGUK
ICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxl
bWVudCk7CiAKLSAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5jb2xvcigpIDogZnJvbS0+Y29s
b3IoKTsKLSAgICBDb2xvciB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgQ29sb3IgZnJvbUNv
bG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+cHJvcGVydHk8Q29sb3I+KCkgOiBmcm9tLT5wcm9wZXJ0eTxDb2xvcj4oKTsK
KyAgICBDb2xvciB0b0NvbG9yID0gdG8tPnByb3BlcnR5PENvbG9yPigpOwogCiAgICAgLy8gQXBw
bHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0
Rm9ySW5oZXJpdGFuY2U8Q29sb3I+KHBhcnNlQ29sb3JGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tQ29sb3IsIG1fY29udGV4dEVsZW1l
bnQpOwpAQCAtODIsOCArODIsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2Fs
Y3VsYXRlCiAgICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+dG9Qcm9wZXJ0eVZhbHVlVHlwZSgp
ID09IEN1cnJlbnRDb2xvclZhbHVlKQogICAgICAgICB0b0NvbG9yID0gY3VycmVudENvbG9yKCpt
X2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQ29sb3IgPSB0
b0F0RW5kT2ZEdXJhdGlvbi0+Y29sb3IoKTsKLSAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gYW5p
bWF0ZWQtPmNvbG9yKCk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Db2xvciA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxDb2xvcj4oKTsKKyAgICBhdXRvJiBhbmltYXRlZENvbG9y
ID0gYW5pbWF0ZWQtPnByb3BlcnR5PENvbG9yPigpOwogCiAgICAgLy8gRklYTUU6IEV4dGVuZGVk
Q29sb3IgLSB0aGlzIHdpbGwgbmVlZCB0byBoYW5kbGUgYmxlbmRpbmcgYmV0d2VlbiBjb2xvcnMg
aW4gZGlmZmVyZW50IGNvbG9yIHNwYWNlcywKICAgICAvLyBhcyB3ZWxsIGFzIHdvcmsgd2l0aCBu
b24gWzAtMjU1XSBDb2xvcnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkRW51bWVyYXRpb24uY3BwCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxNCAr
MTA5LDEyIEBAIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6U1ZHQW5pbWEKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBBU1NF
UlQobV9hbmltYXRpb25FbGVtZW50KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTx1bnNpZ25lZD4oKSk7
Ci0gICAgYW5pbWF0ZWRUeXBlLT5lbnVtZXJhdGlvbigpID0gZW51bWVyYXRpb25WYWx1ZUZvclRh
cmdldEF0dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmlt
YXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoZW51bWVyYXRpb25W
YWx1ZUZvclRhcmdldEF0dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQo
KSwgbV9hbmltYXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZykpOwogfQogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlRW51bWVyYXRpb24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1l
cmF0aW9uPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC0xMjYsNyAr
MTI0LDcgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0bwogCiB2b2lk
IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVu
dW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJh
dGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFu
aW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Bbmlt
YXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkFuaW1hdG9yOjpjYWwKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsK
ICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICB1bnNpZ25lZCBmcm9tRW51bWVy
YXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpIDogZnJvbS0+ZW51bWVyYXRpb24oKTsKLSAgICB1
bnNpZ25lZCB0b0VudW1lcmF0aW9uID0gdG8tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQm
IGFuaW1hdGVkRW51bWVyYXRpb24gPSBhbmltYXRlZC0+ZW51bWVyYXRpb24oKTsKKyAgICB1bnNp
Z25lZCBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTx1bnNpZ25lZD4oKSA6IGZyb20t
PnByb3BlcnR5PHVuc2lnbmVkPigpOworICAgIHVuc2lnbmVkIHRvRW51bWVyYXRpb24gPSB0by0+
cHJvcGVydHk8dW5zaWduZWQ+KCk7CisgICAgdW5zaWduZWQmIGFuaW1hdGVkRW51bWVyYXRpb24g
PSBhbmltYXRlZC0+cHJvcGVydHk8dW5zaWduZWQ+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8dW5zaWduZWQ+KHBlcmNlbnRhZ2UsIGZyb21FbnVtZXJh
dGlvbiwgdG9FbnVtZXJhdGlvbiwgYW5pbWF0ZWRFbnVtZXJhdGlvbik7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkocmV2aXNpb24gMjEyNjY0KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDE0ICszMywxMiBAQCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6U1ZHQW5p
bWF0ZWRJCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2Vy
KHN0ZDo6bWFrZV91bmlxdWU8aW50PigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmludGVnZXIoKSA9
IHN0cmluZy50b0ludFN0cmljdCgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MCw3
ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmkKIAogdm9p
ZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0
ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVn
ZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXIpOworICAg
IHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5
cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC02OCw3ICs2Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFkZEFu
aW0KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlcik7CiAgICAgQVNT
RVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5pbnRlZ2VyKCkgKz0g
ZnJvbS0+aW50ZWdlcigpOworICAgIHRvLT5wcm9wZXJ0eTxpbnQ+KCkgKz0gZnJvbS0+cHJvcGVy
dHk8aW50PigpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwg
ZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIGludCBmcm9tSW50ZWdlciwg
aW50IHRvSW50ZWdlciwgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwgaW50JiBhbmltYXRl
ZEludGVnZXIpCkBAIC04MywxMCArODEsMTAgQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VS
VChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9tSW50ZWdlciA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmludGVn
ZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9JbnRlZ2VyID0gdG8tPmludGVnZXIo
KTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9BdEVuZE9mRHVyYXRpb24t
PmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkLT5pbnRlZ2Vy
KCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8aW50PigpIDogZnJvbS0+
cHJvcGVydHk8aW50PigpOworICAgIGludCB0b0ludGVnZXIgPSB0by0+cHJvcGVydHk8aW50Pigp
OworICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+
cHJvcGVydHk8aW50PigpOworICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWQtPnBy
b3BlcnR5PGludD4oKTsKIAogICAgIGNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlv
bkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlciwgdG9JbnRlZ2Vy
LCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGFuaW1hdGVkSW50ZWdlcik7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDIzICszMywxMiBAQCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvCiAK
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGludCwgaW50
Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0
ZWRUeXBlLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgZmxvYXQgZmlyc3ROdW1iZXIg
PSAwOwotICAgIGZsb2F0IHNlY29uZE51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZU51bWJlck9w
dGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpIHsKLSAgICAg
ICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNl
Y29uZCA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0g
c3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmlyc3ROdW1iZXIpKTsKLSAgICAgICAgYW5pbWF0ZWRJ
bnRlZ2VyLnNlY29uZCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpOwot
ICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+Pjo6ZnJvbVN0
cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50
ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1h
dGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXJBbgogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1h
dGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdl
ck9wdGlvbmFsSW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZElu
dGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTc3LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXJBbgogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAg
Y29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJvbUludGVnZXJQYWlyID0gZnJvbS0+aW50ZWdl
ck9wdGlvbmFsSW50ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvSW50ZWdlclBh
aXIgPSB0by0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOworICAgIGNvbnN0IHN0ZDo6cGFpcjxp
bnQmLCBpbnQmPiBmcm9tSW50ZWdlclBhaXIgPSBmcm9tLT5wcm9wZXJ0aWVzPGludCwgaW50Pigp
OworICAgIHN0ZDo6cGFpcjxpbnQmLCBpbnQmPiB0b0ludGVnZXJQYWlyID0gdG8tPnByb3BlcnRp
ZXM8aW50LCBpbnQ+KCk7CiAKICAgICB0b0ludGVnZXJQYWlyLmZpcnN0ICs9IGZyb21JbnRlZ2Vy
UGFpci5maXJzdDsKICAgICB0b0ludGVnZXJQYWlyLnNlY29uZCArPSBmcm9tSW50ZWdlclBhaXIu
c2Vjb25kOwpAQCAtODksMTAgKzc4LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW4KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQo
bV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9t
SW50ZWdlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0Fu
aW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkgOiBmcm9tLT5pbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9J
bnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3Rk
OjpwYWlyPGludCwgaW50PiYgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRP
ZkR1cmF0aW9uLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpwYWlyPGludCwg
aW50PiYgYW5pbWF0ZWRJbnRlZ2VyUGFpciA9IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyKCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGludCYsIGludCY+IGZyb21JbnRlZ2VyUGFpciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPnByb3BlcnRpZXM8aW50LCBpbnQ+KCkgOiBmcm9tLT5wcm9wZXJ0aWVzPGludCwgaW50
PigpOworICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQmLCBpbnQmPiB0b0ludGVnZXJQYWlyID0gdG8t
PnByb3BlcnRpZXM8aW50LCBpbnQ+KCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGludCYsIGludCY+
IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVy
dGllczxpbnQsIGludD4oKTsKKyAgICBzdGQ6OnBhaXI8aW50JiwgaW50Jj4gYW5pbWF0ZWRJbnRl
Z2VyUGFpciA9IGFuaW1hdGVkLT5wcm9wZXJ0aWVzPGludCwgaW50PigpOwogCiAgICAgU1ZHQW5p
bWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlv
bkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIuZmlyc3Qs
IHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuZmlyc3Qs
IGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwogICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50
YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9JbnRlZ2VyUGFpci5z
ZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBhbmltYXRlZEludGVn
ZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0
aC5jcHAJKHJldmlzaW9uIDIxMjY2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwxMiBAQCBTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwg
c3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZh
bHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDksNyArNDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTY4LDggKzY4LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRB
bmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKICAgICBTVkdM
ZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7Ci0gICAgY29uc3Qg
YXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoID0g
dG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBmcm9tLT5wcm9wZXJ0
eTxTVkdMZW5ndGhWYWx1ZT4oKTsKKyAgICBhdXRvJiB0b0xlbmd0aCA9IHRvLT5wcm9wZXJ0eTxT
VkdMZW5ndGhWYWx1ZT4oKTsKIAogICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVuZ3RoLnZhbHVl
KGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3Ro
Q29udGV4dCk7CiB9CkBAIC04NiwxMCArODYsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFT
U0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbVNWR0xlbmd0aCA9IG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQt
Pmxlbmd0aCgpIDogZnJvbS0+bGVuZ3RoKCk7Ci0gICAgYXV0byB0b1NWR0xlbmd0aCA9IHRvLT5s
ZW5ndGgoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0aCA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5sZW5ndGgoKTsKLSAgICBhdXRvJiBhbmltYXRlZFNWR0xlbmd0aCA9
IGFuaW1hdGVkLT5sZW5ndGgoKTsKKyAgICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9w
ZXJ0eTxTVkdMZW5ndGhWYWx1ZT4oKSA6IGZyb20tPnByb3BlcnR5PFNWR0xlbmd0aFZhbHVlPigp
OworICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7
CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRT
VkdMZW5ndGggPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CiAKICAgICAv
LyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5h
ZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5ndGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5n
LCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVu
Z3RoLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aExpc3QuY3BwCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQg
KzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0
b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0
byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjpt
YWtlX3VuaXF1ZTxTVkdMZW5ndGhMaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmxl
bmd0aExpc3QoKS5wYXJzZShzdHJpbmcsIG1fbGVuZ3RoTW9kZSk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5nLCBtX2xlbmd0aE1v
ZGUpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRM
ZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTUwLDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcAog
CiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVu
Z3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4o
YW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5p
bWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZExl
bmd0aExpc3RBbmltYXRvcjo6YWRkQQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0
ZWRMZW5ndGhMaXN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwog
Ci0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExpc3QgPSBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0g
ICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKKyAgICBjb25zdCBhdXRv
JiBmcm9tTGVuZ3RoTGlzdCA9IGZyb20tPnByb3BlcnR5PFNWR0xlbmd0aExpc3RWYWx1ZXM+KCk7
CisgICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8tPnByb3BlcnR5PFNWR0xlbmd0aExpc3RWYWx1
ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tTGVuZ3RoTGlzdFNpemUgPSBmcm9tTGVuZ3RoTGlz
dC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTGVuZ3RoTGlzdFNpemUgfHwgZnJvbUxlbmd0aExpc3RT
aXplICE9IHRvTGVuZ3RoTGlzdC5zaXplKCkpCkBAIC05MiwxMCArOTAsMTAgQEAgdm9pZCBTVkdB
bmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVs
ZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbUxl
bmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1h
dGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAg
YXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5sZW5ndGhMaXN0
KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0ZWQtPmxlbmd0aExpc3Qo
KTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTGVuZ3RoTGlz
dFZhbHVlcz4oKSA6IGZyb20tPnByb3BlcnR5PFNWR0xlbmd0aExpc3RWYWx1ZXM+KCk7CisgICAg
YXV0byB0b0xlbmd0aExpc3QgPSB0by0+cHJvcGVydHk8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsK
KyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+cHJvcGVydHk8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiBhbmlt
YXRlZExlbmd0aExpc3QgPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4o
KTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFNWR0xlbmd0aExpc3RWYWx1ZXM+KHBhcnNl
TGVuZ3RoTGlzdEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFs
dWVUeXBlKCksIGZyb21MZW5ndGhMaXN0LCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTYgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OlNWR0FuaW1hdGVk
TnUKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJB
bmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6
bWFrZV91bmlxdWU8ZmxvYXQ+KCkpOwotICAgIGZsb2F0JiBhbmltYXRlZE51bWJlciA9IGFuaW1h
dGVkVHlwZS0+bnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5n
LCBhbmltYXRlZE51bWJlcikpCi0gICAgICAgIGFuaW1hdGVkTnVtYmVyID0gMDsKLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQ
cm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVy
KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMp
KTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4o
YW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3Rv
cEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNTEsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5p
bWF0b3I6OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVk
VHlwZTo6bnVtYmVyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+
KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY5LDE0ICs2NSwxMiBAQCB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRl
ZE51bWJlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAg
IHRvLT5udW1iZXIoKSArPSBmcm9tLT5udW1iZXIoKTsKKyAgICB0by0+cHJvcGVydHk8ZmxvYXQ+
KCkgKz0gZnJvbS0+cHJvcGVydHk8ZmxvYXQ+KCk7CiB9CiAKIHN0YXRpYyBmbG9hdCBwYXJzZU51
bWJlckZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCosIGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIGZsb2F0IG51bWJlciA9IDA7Ci0gICAgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0
cmluZywgbnVtYmVyKTsKLSAgICByZXR1cm4gbnVtYmVyOworICAgIHJldHVybiBTVkdQcm9wZXJ0
eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVk
VHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVk
VHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMCArNzgsMTAgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJl
ckFuaW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGZsb2F0IGZyb21OdW1iZXIgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVk
LT5udW1iZXIoKSA6IGZyb20tPm51bWJlcigpOwotICAgIGZsb2F0IHRvTnVtYmVyID0gdG8tPm51
bWJlcigpOwotICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyID0gdG9BdEVuZE9mRHVy
YXRpb24tPm51bWJlcigpOwotICAgIGZsb2F0JiBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkLT5u
dW1iZXIoKTsKKyAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8ZmxvYXQ+KCkg
OiBmcm9tLT5wcm9wZXJ0eTxmbG9hdD4oKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHRvLT5wcm9w
ZXJ0eTxmbG9hdD4oKTsKKyAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxmbG9hdD4oKTsKKyAgICBmbG9hdCYgYW5pbWF0ZWROdW1i
ZXIgPSBhbmltYXRlZC0+cHJvcGVydHk8ZmxvYXQ+KCk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5o
ZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0
YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZy
b21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2NvbnRleHRFbGVtZW50KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCShyZXZp
c2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdOdW1iZXJMaXN0VmFs
dWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPm51bWJlckxpc3QoKS5wYXJzZShzdHJpbmcpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0
cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDksNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9w
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpu
dW1iZXJMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0
PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsOCArNjUsOCBAQCB2b2lkIFNWR0FuaW1hdGVk
TnVtYmVyTGlzdEFuaW1hdG9yOjphZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmlt
YXRlZE51bWJlckxpc3QpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7
CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IGZyb20tPm51bWJlckxpc3QoKTsK
LSAgICBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+bnVtYmVyTGlzdCgpOworICAgIGNvbnN0IGF1
dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJvbS0+cHJvcGVydHk8U1ZHTnVtYmVyTGlzdFZhbHVlcz4o
KTsKKyAgICBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+cHJvcGVydHk8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oKTsKIAogICAgIHVuc2lnbmVkIGZyb21OdW1iZXJMaXN0U2l6ZSA9IGZyb21OdW1iZXJM
aXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21OdW1iZXJMaXN0U2l6ZSB8fCBmcm9tTnVtYmVyTGlz
dFNpemUgIT0gdG9OdW1iZXJMaXN0LnNpemUoKSkKQEAgLTgyLDEwICs4MCwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51
bWJlckxpc3QoKSA6IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b051bWJl
ckxpc3QgPSB0by0+bnVtYmVyTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0
byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsKKyAgICBjb25z
dCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR051bWJlckxpc3RWYWx1
ZXM+KCkgOiBmcm9tLT5wcm9wZXJ0eTxTVkdOdW1iZXJMaXN0VmFsdWVzPigpOworICAgIGNvbnN0
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdOdW1iZXJMaXN0VmFsdWVzPigp
OworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRvQXRFbmRP
ZkR1cmF0aW9uLT5wcm9wZXJ0eTxTVkdOdW1iZXJMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFu
aW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdOdW1iZXJMaXN0VmFsdWVz
PigpOwogICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVz
PFNWR051bWJlckxpc3RWYWx1ZXM+KGZyb21OdW1iZXJMaXN0LCB0b051bWJlckxpc3QsIGFuaW1h
dGVkTnVtYmVyTGlzdCwgcGVyY2VudGFnZSkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxOCArMzMs
MTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOgogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlv
bmFsTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCkpOwot
ICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkVHlw
ZS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxO
dW1iZXIoc3RyaW5nLCBhbmltYXRlZE51bWJlci5maXJzdCwgYW5pbWF0ZWROdW1iZXIuc2Vjb25k
KSkgewotICAgICAgICBhbmltYXRlZE51bWJlci5maXJzdCA9IDA7Ci0gICAgICAgIGFuaW1hdGVk
TnVtYmVyLnNlY29uZCA9IDA7Ci0gICAgfQotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFp
cjxmbG9hdCwgZmxvYXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1h
dGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVy
biBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWRO
dW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTQsNyArNDgsNyBAQCB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJl
ciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5
cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0Fu
aW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphbmltVmFs
V2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC03Miw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlckFuaW0KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAg
ICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBmcm9tLT5u
dW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b051
bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBjb25zdCBzdGQ6OnBh
aXI8ZmxvYXQmLCBmbG9hdCY+IGZyb21OdW1iZXJQYWlyID0gZnJvbS0+cHJvcGVydGllczxmbG9h
dCwgZmxvYXQ+KCk7CisgICAgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiB0b051bWJlclBhaXIg
PSB0by0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAgICB0b051bWJlclBhaXIuZmly
c3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7CiAgICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBm
cm9tTnVtYmVyUGFpci5zZWNvbmQ7CkBAIC04NCwxMCArNzgsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxm
bG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVy
KCkgOiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7
Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvQXRFbmRPZkR1cmF0aW9uTnVt
YmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAg
IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+
bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQmLCBmbG9h
dCY+IGZyb21OdW1iZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+KCkgOiAg
ZnJvbS0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+KCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGZs
b2F0JiwgZmxvYXQmPiB0b051bWJlclBhaXIgPSB0by0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+
KCk7CisgICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+
KCk7CisgICAgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiBhbmltYXRlZE51bWJlclBhaXIgPSBh
bmltYXRlZC0+cHJvcGVydGllczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bU51bWJlclBhaXIuZmlyc3QsIHRvTnVtYmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25O
dW1iZXJQYWlyLmZpcnN0LCBhbmltYXRlZE51bWJlclBhaXIuZmlyc3QpOwogICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmcm9tTnVtYmVyUGFpci5zZWNvbmQsIHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyUGFpci5zZWNvbmQsIGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDIxMjY2NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw3ICsyMiw2IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5j
bHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMz
LDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0aAogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGJ5
dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIGJ1
aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgKmJ5dGVTdHJlYW0sIFVuYWx0
ZXJlZFBhcnNpbmcpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RG
TW92ZShieXRlU3RyZWFtKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNW
R1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00Myw5ICs0MCw5IEBAIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXpl
KCkgPj0gMSk7CiAKICAgICAvLyBCdWlsZCBpbml0aWFsIHBhdGggYnl0ZSBzdHJlYW0uCi0gICAg
YXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsK
LSAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgYnl0ZVN0cmVhbS5nZXQo
KSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5dGVT
dHJlYW0pKTsKKyAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
PFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRl
ZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC04MCw3ICs3
Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKIHsKICAgICBB
U1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAgICAgQVNTRVJUKHR5cGUudHlwZSgp
ID09IG1fdHlwZSk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIHR5
cGUucGF0aCgpKTsKKyAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgJnR5
cGUucHJvcGVydHk8U1ZHUGF0aEJ5dGVTdHJlYW0+KCkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
UGF0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC05OCwxMiArOTUsMTIgQEAgdm9pZCBTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gQW5pbWF0ZWRQYXRoKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkp
OwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAg
IFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZy
b21QYXRoU2l6ZSA9IGZyb21QYXRoLT5zaXplKCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwg
ZnJvbVBhdGhTaXplICE9IHRvUGF0aC0+c2l6ZSgpKQorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRo
ID0gZnJvbS0+cHJvcGVydHk8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgYXV0byYgdG9QYXRo
ID0gdG8tPnByb3BlcnR5PFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIHVuc2lnbmVkIGZyb21Q
YXRoU2l6ZSA9IGZyb21QYXRoLnNpemUoKTsKKyAgICBpZiAoIWZyb21QYXRoU2l6ZSB8fCBmcm9t
UGF0aFNpemUgIT0gdG9QYXRoLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZFRvU1ZH
UGF0aEJ5dGVTdHJlYW0oKnRvUGF0aCwgKmZyb21QYXRoKTsKKyAgICBhZGRUb1NWR1BhdGhCeXRl
U3RyZWFtKHRvUGF0aCwgZnJvbVBhdGgpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJl
cGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNW
R0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0
ZWQpCkBAIC0xMTEsMzYgKzEwOCwzMyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpj
YWxjdWxhdGVBCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJv
bS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b0F0RW5kT2ZEdXJhdGlvblBhdGggPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmltYXRlZFBhdGggPSBh
bmltYXRlZC0+cGF0aCgpOworICAgIGF1dG8mIGZyb21QYXRoID0gZnJvbS0+cHJvcGVydHk8U1ZH
UGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgYXV0byYgdG9QYXRoID0gdG8tPnByb3BlcnR5PFNWR1Bh
dGhCeXRlU3RyZWFtPigpOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5wcm9wZXJ0eTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICBhdXRvJiBh
bmltYXRlZFBhdGggPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CiAK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHVuZGVybHlpbmdQYXRoOwog
ICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1RvQW5pbWF0aW9uKSB7Ci0gICAgICAgIHVu
ZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7Ci0gICAgICAgIGZyb21QYXRoID0g
dW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAgIGlmIChpc1RvQW5pbWF0aW9uKQorICAg
ICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIENhY2hlIHRoZSBjdXJyZW50
IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFt
KCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVT
dHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+c2l6ZSgpIHx8ICht
X2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCi0gICAg
ICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKKyAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBhdGguc2l6ZSgpIHx8
IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCisg
ICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBQYXNzIGZh
bHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5p
bWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0
aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlv
bkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9t
UGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFsc2UpKQorICAgIGlm
ICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRl
U3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNl
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFt
KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CisgICAgYnVp
bGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0
aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1bScuCi0gICAgaWYg
KGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1h
dGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFuaW1hdGVkUGF0aC5p
c0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBs
YXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRlPSdzdW0nLgogICAg
IGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkK
LSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9m
RHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJl
YW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVhdENvdW50KTsKIH0K
IAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIxMjY2NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE0ICsz
NCwxMiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlCiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBh
bmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2Vf
dW5pcXVlPFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZyb21TVkdEYXRh
KGFuaW1hdGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQ
b2ludExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5p
bWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50
TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEKIAogdm9pZCBTVkdBbmltYXRlZFBvaW50
TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5
cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOworICAgIHJlc2V0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjks
OCArNjcsOCBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmFkZEFuCiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBvaW50cyk7CiAgICAgQVNTRVJUKGZyb20t
PnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3Qg
PSBmcm9tLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiB0b1BvaW50TGlzdCA9IHRvLT5wb2ludExp
c3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gZnJvbS0+cHJvcGVydHk8U1ZH
UG9pbnRMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnByb3BlcnR5
PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKIAogICAgIHVuc2lnbmVkIGZyb21Qb2ludExpc3RTaXpl
ID0gZnJvbVBvaW50TGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tUG9pbnRMaXN0U2l6ZSB8fCBm
cm9tUG9pbnRMaXN0U2l6ZSAhPSB0b1BvaW50TGlzdC5zaXplKCkpCkBAIC04NCwxMCArODIsMTAg
QEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogewogICAgIEFTU0VS
VChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPnBvaW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYg
dG9Qb2ludExpc3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9m
RHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAg
YXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29u
c3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVl
cz4oKSA6IGZyb20tPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKKyAgICBjb25zdCBh
dXRvJiB0b1BvaW50TGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdQb2ludExpc3RWYWx1ZXM+KCk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+cHJvcGVydHk8U1ZHUG9pbnRMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFuaW1hdGVk
UG9pbnRMaXN0ID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKICAg
ICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQb2lu
dExpc3RWYWx1ZXM+KGZyb21Qb2ludExpc3QsIHRvUG9pbnRMaXN0LCBhbmltYXRlZFBvaW50TGlz
dCwgcGVyY2VudGFnZSkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKHJldmlz
aW9uIDIxMjY2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y29uc3Ry
dWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6Om1h
a2VfdW5pcXVlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojpmcm9tU3RyaW5nKHN0cmluZykp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzKSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDYsNyBAQCB2
b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hCiAKIHZvaWQgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpw
cmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzEs
OSArNjksOSBAQCB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hCiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcmVz
ZXJ2ZUFzcGVjdFJhdGlvKCkgOiBmcm9tLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgY29u
c3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gdG8tPnByZXNlcnZlQXNwZWN0UmF0aW8o
KTsKLSAgICBhdXRvJiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBhbmltYXRlZC0+cHJl
c2VydmVBc3BlY3RSYXRpbygpOworICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJh
dGlvID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+cHJvcGVydHk8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpIDogZnJv
bS0+cHJvcGVydHk8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpOworICAgIGNvbnN0IGF1
dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHRvLT5wcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0g
YW5pbWF0ZWQtPnByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsKIAogICAg
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNl
cnZlQXNwZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1
dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91
bmlxdWU8RmxvYXRSZWN0PigpKTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUt
PnJlY3QoKSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhz
dHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRSZWN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlUmVjdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVj
dD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6cmVjdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVk
UmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDcgKzY1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJl
Y3RBbmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0
ZWRSZWN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAg
dG8tPnJlY3QoKSArPSBmcm9tLT5yZWN0KCk7CisgICAgdG8tPnByb3BlcnR5PEZsb2F0UmVjdD4o
KSArPSBmcm9tLT5wcm9wZXJ0eTxGbG9hdFJlY3Q+KCk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5z
aWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBl
KiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBl
KiBhbmltYXRlZCkKQEAgLTc1LDEwICs3MywxMCBAQCB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpjYWxjdWxhdGVBCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPnJlY3QoKSA6IGZyb20tPnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJlY3QmIHRvUmVj
dCA9IHRvLT5yZWN0KCk7Ci0gICAgY29uc3QgRmxvYXRSZWN0JiB0b0F0RW5kT2ZEdXJhdGlvblJl
Y3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cmVjdCgpOwotICAgIEZsb2F0UmVjdCYgYW5pbWF0ZWRS
ZWN0ID0gYW5pbWF0ZWQtPnJlY3QoKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0ID0g
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmlt
YXRlZC0+cHJvcGVydHk8RmxvYXRSZWN0PigpIDogZnJvbS0+cHJvcGVydHk8RmxvYXRSZWN0Pigp
OworICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0ID0gdG8tPnByb3BlcnR5PEZsb2F0UmVjdD4o
KTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRP
ZkR1cmF0aW9uLT5wcm9wZXJ0eTxGbG9hdFJlY3Q+KCk7CisgICAgRmxvYXRSZWN0JiBhbmltYXRl
ZFJlY3QgPSBhbmltYXRlZC0+cHJvcGVydHk8RmxvYXRSZWN0PigpOwogCiAgICAgZmxvYXQgYW5p
bWF0ZWRYID0gYW5pbWF0ZWRSZWN0LngoKTsKICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRl
ZFJlY3QueSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3Bw
CShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRTdHJp
bmdBbmltYXRvcjo6U1ZHQW5pbWF0ZWRTdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVTdHJpbmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCkpOwotICAgIGFuaW1h
dGVkVHlwZS0+c3RyaW5nKCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5n
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00
OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW0KIAog
dm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmlt
YXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3Ry
aW5nPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcpOworICAg
IHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlw
ZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNzYsOSArNzQsOSBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNhbGN1bGF0
CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVs
ZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyb21TdHJpbmcgPSBmcm9tLT5zdHJpbmcoKTsKLSAgICBT
dHJpbmcgdG9TdHJpbmcgPSB0by0+c3RyaW5nKCk7Ci0gICAgU3RyaW5nJiBhbmltYXRlZFN0cmlu
ZyA9IGFuaW1hdGVkLT5zdHJpbmcoKTsKKyAgICBTdHJpbmcgZnJvbVN0cmluZyA9IGZyb20tPnBy
b3BlcnR5PFN0cmluZz4oKTsKKyAgICBTdHJpbmcgdG9TdHJpbmcgPSB0by0+cHJvcGVydHk8U3Ry
aW5nPigpOworICAgIFN0cmluZyYgYW5pbWF0ZWRTdHJpbmcgPSBhbmltYXRlZC0+cHJvcGVydHk8
U3RyaW5nPigpOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U3RyaW5nPihwYXJzZVN0cmlu
Z0Zyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCks
IGZyb21TdHJpbmcsIG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9uIDIxMjY2NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxNSArNDEsMTIgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OlNWR0FuaQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlVHJhbnNmb3JtTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3Jt
VHlwZVN0cmluZyArIHN0cmluZyArICcpJyk7Ci0gICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJh
bnNmb3JtTGlzdCgpLnNpemUoKSA8PSAxKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJp
bmcgKyAnKScpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJl
dHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzU2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6cwogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywg
dHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTc3LDggKzc0LDggQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
YQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9U
cmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9t
VHJhbnNmb3JtTGlzdCA9IGZyb20tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7
CisgICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXM+KCk7CiAgICAgYXV0byBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNm
b3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRy
YW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTk4LDEwICs5NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpjCiAgICAgLy8gU3BlYzogVG8gYW5pbWF0aW9ucyBwcm92aWRlIHNwZWNpZmljIGZ1bmN0
aW9uYWxpdHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5nZSBmcm9tIHRoZSB1bmRlcmx5aW5nIHZhbHVl
IHRvIHRoZQogICAgIC8vIOKAmHRv4oCZIGF0dHJpYnV0ZSB2YWx1ZSwgd2hpY2ggY29uZmxpY3Rz
IG1hdGhlbWF0aWNhbGx5IHdpdGggdGhlIHJlcXVpcmVtZW50IGZvciBhZGRpdGl2ZSB0cmFuc2Zv
cm0gYW5pbWF0aW9ucwogICAgIC8vIHRvIGJlIHBvc3QtbXVsdGlwbGllZC4gQXMgYSBjb25zZXF1
ZW5jZSwgaW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Igb2YgdG8gYW5pbWF0aW9ucyBmb3Ig4oCYYW5p
bWF0ZVRyYW5zZm9ybeKAmSBpcyB1bmRlZmluZWQuCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFu
c2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+dHJhbnNmb3JtTGlz
dCgpOwotICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT50cmFuc2Zv
cm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT5wcm9w
ZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNm
b3JtTGlzdCA9IHRvLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOworICAgIGNv
bnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdCA9IHRvQXRFbmRPZkR1cmF0
aW9uLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzPigpOwogCiAgICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVk
ZWQnIGhlcmUsIGFzIHRoZSBzcGVjaWFsIHBvc3QtbXVsdGlwbGljYXRpb24gYmVoYXZpb3Igb2Yg
PGFuaW1hdGVUcmFuc2Zvcm0+IG5lZWRzIHRvIGJlIHJlc3BlY3RlZCBiZWxvdy4KICAgICBpZiAo
IW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzPihmcm9tVHJhbnNmb3JtTGlzdCwgdG9UcmFuc2Zvcm1MaXN0LCBhbmltYXRlZFRy
YW5zZm9ybUxpc3QsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKQEAgLTEzMSw4ICsxMjgsOCBAQCBmbG9h
dCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6CiAgICAgYXV0byBmcm9tID0gY29u
c3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5nKTsKICAgICBhdXRvIHRvID0gY29uc3RydWN0RnJv
bVN0cmluZyh0b1N0cmluZyk7CiAKLSAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20t
PnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNm
b3JtTGlzdCgpOworICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+cHJvcGVydHk8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0
by0+cHJvcGVydHk8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKICAgICB1bnNpZ25lZCBpdGVt
c0NvdW50ID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwogICAgIGlmICghaXRlbXNDb3VudCB8
fCBpdGVtc0NvdW50ICE9IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybiAt
MTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAy
MTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjYsMjI5ICsyNyw3MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR0Fu
aW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCi0g
ICAgOiBtX3R5cGUodHlwZSkKK0FuaW1hdGVkUHJvcGVydHlUeXBlIFNWR0FuaW1hdGVkVHlwZTo6
dHlwZSgpIGNvbnN0CiB7Ci19Ci0KLVNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVkVHlwZSgp
Ci17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuYm9vbGVhbjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZENvbG9yOgotICAgICAgICBkZWxldGUg
bV9kYXRhLmNvbG9yOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRp
b246Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuZW51bWVyYXRpb247Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgICAgICBkZWxldGUgbV9kYXRhLmludGVnZXI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEu
bGVuZ3RoOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGhMaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlcjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2Rh
dGEubnVtYmVyTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVy
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5wYXRoOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgot
ICAgICAgICBkZWxldGUgbV9kYXRhLnBvaW50TGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucHJl
c2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6
Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucmVjdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZFN0cmluZzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5zdHJpbmc7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OgotICAgICAgICBkZWxldGUgbV9k
YXRhLnRyYW5zZm9ybUxpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRVbmtu
b3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7CisgICAg
aWYgKG1fdmFsdWUxLT5pczxTVkdBbmdsZVZhbHVlPigpKSB7CisgICAgICAgIEFTU0VSVChtX3Zh
bHVlMiAmJiBtX3ZhbHVlMi0+aXM8dW5zaWduZWQ+KCkpOworICAgICAgICByZXR1cm4gQW5pbWF0
ZWRBbmdsZTsKICAgICB9Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4gYW5nbGVBbmRFbnVtZXJhdGlvbikK
LXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVtZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRBbmdsZSk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbiA9IGFuZ2xlQW5kRW51
bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVh
bihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9vbGVhbikKLXsKLSAgICBBU1NFUlQoYm9vbGVhbik7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlw
ZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5ib29sZWFuID0g
Ym9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihz
dGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9yKQotewotICAgIEFTU0VSVChjb2xvcik7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuY29sb3IgPSBjb2xvci5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICAKKyAgICBpZiAobV92YWx1
ZTEtPmlzPGJvb2w+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZEJvb2xlYW47CisgICAgCisg
ICAgaWYgKG1fdmFsdWUxLT5pczxDb2xvcj4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29s
b3I7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPHVuc2lnbmVkPiBlbnVtZXJhdGlvbikK
LXsKLSAgICBBU1NFUlQoZW51bWVyYXRpb24pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAg
IGFuaW1hdGVkVHlwZS0+bV9kYXRhLmVudW1lcmF0aW9uID0gZW51bWVyYXRpb24ucmVsZWFzZSgp
OwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8
aW50PiBpbnRlZ2VyKQotewotICAgIEFTU0VSVChpbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXIp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVnZXIgPSBpbnRlZ2VyLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoc3Rk
Ojp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxpbnQsIGludD4+IGludGVnZXJPcHRpb25hbEludGVnZXIp
Ci17Ci0gICAgQVNTRVJUKGludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlck9wdGlv
bmFsSW50ZWdlciA9IGludGVnZXJPcHRpb25hbEludGVnZXIucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhWYWx1
ZT4gbGVuZ3RoKQotewotICAgIEFTU0VSVChsZW5ndGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBl
ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3RoKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5sZW5ndGggPSBsZW5ndGgucmVsZWFzZSgpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczx1bnNpZ25lZD4oKSkK
KyAgICAgICAgcmV0dXJuIEFuaW1hdGVkRW51bWVyYXRpb247CiAKLXN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6OnVu
aXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gbGVuZ3RoTGlzdCkKLXsKLSAgICBBU1NFUlQo
bGVuZ3RoTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5sZW5ndGhMaXN0ID0gbGVuZ3RoTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZTEtPmlzPGludD4oKSkKKyAgICAgICAgcmV0dXJu
IG1fdmFsdWUyICYmIG1fdmFsdWUyLT5pczxpbnQ+KCkgPyBBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXIgOiBBbmltYXRlZEludGVnZXI7CisgICAgCisgICAgaWYgKG1fdmFsdWUxLT5pczxT
VkdMZW5ndGhWYWx1ZT4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOworICAgIAor
ICAgIGlmIChtX3ZhbHVlMS0+aXM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKSkKKyAgICAgICAgcmV0
dXJuIEFuaW1hdGVkTGVuZ3RoTGlzdDsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPGZsb2F0PiBu
dW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXIpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlciA9IG51bWJlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZTEtPmlzPGZsb2F0PigpKQorICAgICAg
ICByZXR1cm4gbV92YWx1ZTIgJiYgbV92YWx1ZTItPmlzPGZsb2F0PigpID8gQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlciA6IEFuaW1hdGVkTnVtYmVyOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjp1bmlx
dWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3QpCi17Ci0gICAgQVNTRVJUKG51
bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2Rh
dGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczxTVkdOdW1iZXJMaXN0VmFsdWVzPigpKQor
ICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVy
KHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4gbnVtYmVyT3B0aW9uYWxO
dW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXJPcHRp
b25hbE51bWJlciA9IG51bWJlck9wdGlvbmFsTnVtYmVyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlMS0+aXM8U1ZHUGF0aEJ5dGVTdHJlYW0+
KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFBhdGg7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8
U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhdGgpCi17Ci0gICAgQVNTRVJUKHBhdGgpOwotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVk
UGF0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucGF0aCA9IHBhdGgucmVsZWFzZSgpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczxTVkdQb2lu
dExpc3RWYWx1ZXM+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFBvaW50czsKIAotc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExp
c3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0KQotewotICAg
IEFTU0VSVChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmltYXRlZFR5cGUt
Pm1fZGF0YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87CiAK
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
UHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotICAgIEFTU0VSVChwcmVzZXJ2ZUFzcGVj
dFJhdGlvKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5p
bWF0ZWRUeXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgIGFuaW1hdGVkVHlw
ZS0+bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlMS0+aXM8
RmxvYXRSZWN0PigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRSZWN0OwogCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3RkOjp1
bmlxdWVfcHRyPEZsb2F0UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQocmVjdCk7Ci0gICAgYXV0
byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0
ZWRSZWN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdC5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZTEtPmlzPFN0cmlu
Zz4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOwogCi1zdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1
ZV9wdHI8U3RyaW5nPiBzdHJpbmcpCi17Ci0gICAgQVNTRVJUKHN0cmluZyk7Ci0gICAgYXV0byBh
bmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRT
dHJpbmcpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnN0cmluZyA9IHN0cmluZy5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZTEtPmlzPFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFRyYW5zZm9y
bUxpc3Q7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsKLSAgICBBU1NFUlQodHJhbnNmb3JtTGlzdCk7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS50cmFuc2Zvcm1M
aXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOwogfQogCi1TdHJpbmcgU1ZHQW5pbWF0ZWRUeXBl
Ojp2YWx1ZUFzU3RyaW5nKCkKK1N0cmluZyBTVkdBbmltYXRlZFR5cGU6OnRvU3RyaW5nKCkKIHsK
LSAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIHN3aXRjaCAodHlwZSgpKSB7CiAgICAgY2FzZSBB
bmltYXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgcmV0
dXJuIG1fZGF0YS5jb2xvci0+c2VyaWFsaXplZCgpOworICAgICAgICByZXR1cm4gbV92YWx1ZTEt
PnRvU3RyaW5nPENvbG9yPigpOwogICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAgIEFT
U0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGgtPnZhbHVl
QXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUxLT50b1N0cmluZzxTVkdMZW5ndGhW
YWx1ZT4oKTsKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1f
ZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGhMaXN0LT52YWx1
ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+dG9TdHJpbmc8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oKTsKICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQo
bV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRhLm51
bWJlcik7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+dG9TdHJpbmc8ZmxvYXQ+KCk7CiAgICAg
Y2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAg
IHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eCgpKSArICcgJyArIFN0cmluZzo6
bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAnCi0gICAgICAgICAgICAgKyBTdHJpbmc6Om51
bWJlcihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEu
cmVjdC0+aGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnRvU3RyaW5nPEZsb2F0
UmVjdD4oKTsKICAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAgICAgICBBU1NFUlQobV9kYXRh
LnN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKKyAgICAgICAgcmV0dXJu
IG1fdmFsdWUxLT50b1N0cmluZzxTdHJpbmc+KCk7CiAKICAgICAvLyBUaGVzZSB0eXBlcyBkb24n
dCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1lbnQ6OmNzc1Byb3BlcnR5VG9UeXBlTWFw
KCkgYW5kIHRodXMgZG9uJ3QgbmVlZCB2YWx1ZUFzU3RyaW5nKCkgc3VwcG9ydC4KICAgICBjYXNl
IEFuaW1hdGVkQW5nbGU6CkBAIC0yNzEsMzIgKzExNiwyMSBAQCBTdHJpbmcgU1ZHQW5pbWF0ZWRU
eXBlOjp2YWx1ZUFzU3RyaW5nKCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJvb2wgU1ZH
QW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorYm9vbCBTVkdBbmltYXRlZFR5cGU6OnBhcnNlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAg
ICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIHN3aXRjaCAodHlwZSgpKSB7CiAgICAgY2FzZSBBbmlt
YXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgKm1fZGF0
YS5jb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcih2YWx1ZS5zdHJpcFdoaXRlU3BhY2UoKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnBhcnNlPENv
bG9yPihhdHRyTmFtZSwgc3RyaW5nKTsKICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAg
ICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiAhbV9kYXRhLmxlbmd0aC0+
c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmlt
YXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOworICAgICAgICBy
ZXR1cm4gbV92YWx1ZTEtPnBhcnNlPFNWR0xlbmd0aFZhbHVlPihhdHRyTmFtZSwgc3RyaW5nKTsK
ICAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5n
dGhMaXN0KTsKLSAgICAgICAgbV9kYXRhLmxlbmd0aExpc3QtPnBhcnNlKHZhbHVlLCBTVkdMZW5n
dGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnBhcnNlPFNW
R0xlbmd0aExpc3RWYWx1ZXM+KGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIGNhc2UgQW5pbWF0ZWRO
dW1iZXI6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKHZhbHVlLCAqbV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnBhcnNlPGZsb2F0PihhdHRyTmFtZSwgc3RyaW5n
KTsKICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsK
LSAgICAgICAgcGFyc2VSZWN0KHZhbHVlLCAqbV9kYXRhLnJlY3QpOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUxLT5wYXJzZTxGbG9hdFJlY3Q+KGF0dHJOYW1l
LCBzdHJpbmcpOwogICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2Rh
dGEuc3RyaW5nKTsKLSAgICAgICAgKm1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKLSAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+cGFyc2U8U3RyaW5nPihhdHRyTmFt
ZSwgc3RyaW5nKTsKIAogICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFi
bGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBu
ZWVkIHNldFZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LiAKICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiAyMTI2NjQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTE5LDI4NCArMjAsOTkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgot
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKLSNpbmNs
dWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIK
LSNpbmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0
VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5j
bHVkZSAiU1ZHUHJvcGVydHlJbmZvLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBTVkdQYXRoQnl0ZVN0cmVhbTsKLQogY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTVkdBbmltYXRlZFR5
cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkVHlwZSgp
OwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUFu
Z2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVl
LCB1bnNpZ25lZD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8
Q29sb3I+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPHVuc2lnbmVkPik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVf
cHRyPGludD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50
LCBpbnQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFsdWU+KTsKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoTGlzdChzdGQ6OnVu
aXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPGZsb2F0Pik7
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJl
ckxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1i
ZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+Pik7Ci0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVBhdGgoc3RkOjp1bmlxdWVf
cHRyPFNWR1BhdGhCeXRlU3RyZWFtPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZVBvaW50TGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUG9pbnRMaXN0
VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRyPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+KTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjxTdHJpbmc+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cz4pOwotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQW5pbVZhbChBbmltYXRlZFByb3BlcnR5VHlw
ZSk7Ci0KLSAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9Ci0KLSAgICAvLyBOb24tbXV0YWJsZSBhY2Nlc3NvcnMuCi0gICAgY29uc3Qgc3RkOjpw
YWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpIGNvbnN0
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAg
ICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0
IGJvb2wmIGJvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5ib29sZWFuOwotICAgIH0K
LQotICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsK
LSAgICB9Ci0KLSAgICBjb25zdCB1bnNpZ25lZCYgZW51bWVyYXRpb24oKSBjb25zdAotICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQotCi0gICAgY29uc3QgaW50JiBpbnRl
Z2VyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRl
Z2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKLSAgICB9Ci0KLSAgICBjb25z
dCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAg
ICB9Ci0KLSAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYg
bGVuZ3RoTGlzdCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAg
fQotCi0gICAgY29uc3QgZmxvYXQmIG51bWJlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVt
YmVyOwotICAgIH0KLQotICAgIGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3Qo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlckxp
c3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJMaXN0OwotICAgIH0KLQotICAgIGNv
bnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpIGNvbnN0
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAg
ICB9Ci0KLSAgICBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBt
X2RhdGEucGF0aDsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50
TGlzdCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUG9p
bnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OwotICAgIH0KLQotICAgIGNv
bnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0g
ICAgfQotCi0gICAgY29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
cmVjdDsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3RyaW5nKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEuc3RyaW5nOwotICAgIH0KLQotICAgIGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMmIHRyYW5zZm9ybUxpc3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS50cmFuc2Zv
cm1MaXN0OwotICAgIH0KLQotICAgIC8vIE11dGFibGUgYWNjZXNzb3JzLgotICAgIHN0ZDo6cGFp
cjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTVkdBbmltYXRlZFR5cGUoUHJvcGVy
dHlUeXBlJiYgcHJvcGVydHkpCisgICAgICAgIDogbV92YWx1ZTEoU1ZHQW5pbWF0ZWRWYWx1ZTo6
Y3JlYXRlKFdURk1vdmUocHJvcGVydHkpKSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlQW5kRW51bWVy
YXRpb247CiAgICAgfQogCi0gICAgYm9vbCYgYm9vbGVhbigpCisgICAgU1ZHQW5pbWF0ZWRUeXBl
KFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUxKFdU
Rk1vdmUodmFsdWUpKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEJv
b2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5ib29sZWFuOwogICAgIH0KIAotICAgIENv
bG9yJiBjb2xvcigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5h
bWUgUHJvcGVydHlUeXBlMj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpwYWlyPFByb3BlcnR5
VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAgOiBtX3ZhbHVlMShT
VkdBbmltYXRlZFZhbHVlOjpjcmVhdGUocHJvcGVydGllcy5maXJzdCkpCisgICAgICAgICwgbV92
YWx1ZTIoU1ZHQW5pbWF0ZWRWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSkKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLmNvbG9yOwogICAgIH0KIAotICAgIHVuc2lnbmVkJiBlbnVtZXJhdGlvbigpCisg
ICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlMSwgUmVm
UHRyPFNWR0FuaW1hdGVkVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IG1fdmFsdWUxKFdURk1v
dmUodmFsdWUxKSkKKyAgICAgICAgLCBtX3ZhbHVlMihXVEZNb3ZlKHZhbHVlMikpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICBy
ZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsKICAgICB9CiAKLSAgICBpbnQmIGludGVnZXIoKQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdl
cjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQ
cm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0g
ICAgc3RkOjpwYWlyPGludCwgaW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigpCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0
eSkpOwogICAgIH0KIAotICAgIFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgoKQorICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR0FuaW1hdGVk
VmFsdWU+JiYgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
TGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOworICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUodmFsdWUpKTsKICAgICB9
CiAKLSAgICBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5sZW5ndGhMaXN0OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQ
cm9wZXJ0eVR5cGUyPj46OmluaXRpYWxWYWx1ZSgpKTsKICAgICB9CiAKLSAgICBmbG9hdCYgbnVt
YmVyKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGUyPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVydGll
cykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0aWVzKSk7CiAgICAgfQogCi0gICAg
U1ZHTnVtYmVyTGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4mJiB2
YWx1ZTEsIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlMikKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEubnVtYmVyTGlzdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5p
bWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlMSksIFdURk1vdmUodmFsdWUyKSk7CiAgICAgfQogCi0g
ICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51bWJlck9wdGlvbmFsTnVtYmVyKCkKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRp
b25hbE51bWJlcjsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUxLT5wcm9wZXJ0eTxQcm9wZXJ0eVR5
cGU+KCk7CiAgICAgfQogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KCkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAg
cmV0dXJuIG1fZGF0YS5wYXRoOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnByb3BlcnR5PFBy
b3BlcnR5VHlwZT4oKTsKICAgICB9CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlz
dCgpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVy
dHlUeXBlMj4KKyAgICBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBw
cm9wZXJ0aWVzKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQb2lu
dHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2ludExpc3Q7CisgICAgICAgIEFTU0VSVCht
X3ZhbHVlMik7CisgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSYsIFByb3Bl
cnR5VHlwZTImPihtX3ZhbHVlMS0+cHJvcGVydHk8UHJvcGVydHlUeXBlMT4oKSwgbV92YWx1ZTIt
PnByb3BlcnR5PFByb3BlcnR5VHlwZTI+KCkpOwogICAgIH0KIAotICAgIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCi0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgfQotCi0gICAgRmxvYXRSZWN0JiBy
ZWN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEucmVjdDsKLSAgICB9Ci0KLSAgICBTdHJpbmcmIHN0cmluZygp
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3RyaW5nKTsKLSAgICAg
ICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOwotICAgIH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwogCi0gICAgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyYgdHJhbnNmb3JtTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxp
c3Q7Ci0gICAgfQorICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdDsKIAotICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCk7Ci0gICAgYm9vbCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoKTsK
KyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKTsKIAog
cHJpdmF0ZToKLSAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBtX3R5cGU7Ci0KLSAgICB1bmlvbiBE
YXRhVW5pb24gewotICAgICAgICBEYXRhVW5pb24oKQotICAgICAgICAgICAgOiBsZW5ndGgobnVs
bHB0cikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgc3RkOjpwYWlyPFNWR0FuZ2xl
VmFsdWUsIHVuc2lnbmVkPiogYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICAgICAgYm9vbCogYm9v
bGVhbjsKLSAgICAgICAgQ29sb3IqIGNvbG9yOwotICAgICAgICB1bnNpZ25lZCogZW51bWVyYXRp
b247Ci0gICAgICAgIGludCogaW50ZWdlcjsKLSAgICAgICAgc3RkOjpwYWlyPGludCwgaW50Piog
aW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgU1ZHTGVuZ3RoVmFsdWUqIGxlbmd0aDsK
LSAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogbGVuZ3RoTGlzdDsKLSAgICAgICAgZmxvYXQq
IG51bWJlcjsKLSAgICAgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyogbnVtYmVyTGlzdDsKLSAgICAg
ICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4qIG51bWJlck9wdGlvbmFsTnVtYmVyOwotICAgICAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aDsKLSAgICAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlKiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgICAgICBTVkdQb2ludExpc3RWYWx1ZXMq
IHBvaW50TGlzdDsKLSAgICAgICAgRmxvYXRSZWN0KiByZWN0OwotICAgICAgICBTdHJpbmcqIHN0
cmluZzsKLSAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyogdHJhbnNmb3JtTGlzdDsKLSAg
ICB9IG1fZGF0YTsKKyAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4gbV92YWx1ZTEsIG1fdmFs
dWUyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHJldmlzaW9uIDIxMjY2NCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC02MywyNSArNjMsMjQgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gSGVscGVycyBmb3IgYW5p
bWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBqdXN0IG9uZSBTVkdBbmlt
YXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAgY29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNv
bnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlw
ZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwogCi0gICAgICAgIGF1dG8gY29weSA9IHN0ZDo6bWFrZV91bmlxdWU8
dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPihhbmltYXRlZFR5cGUpOwotICAgICAg
ICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0
ZWRUeXBlcywgMCwgY29weS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBjb3B5OworICAgICAgICBS
ZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4gdmFsdWUgPSBTVkdBbmltYXRlZFZhbHVlOjpjcmVhdGUo
YW5pbWF0ZWRUeXBlKTsKKyAgICAgICAgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
JiBwcm9wZXJ0eSA9IHZhbHVlLT5wcm9wZXJ0eTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVu
dFR5cGU+KCk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmcHJvcGVydHkpOworICAgICAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVl
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIChT
VkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdB
bmltYXRlZFR5cGUmIHR5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1sw
XS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09
IG1fdHlwZSk7Ci0gICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgYW5p
bWF0ZWRUeXBlVmFsdWUgPSAodHlwZS4qZ2V0dGVyKSgpOwotICAgICAgICBhbmltYXRlZFR5cGVW
YWx1ZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0K
LSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5cGVWYWx1ZSk7CisgICAgICAgIHR5cGVuYW1l
IEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgcHJvcGVydHkgPSB0eXBlLnByb3BlcnR5PHR5cGVu
YW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAgcHJvcGVydHkgPSBjYXN0
QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1sw
XS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBleGVj
dXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBl
cywgMCwgJnByb3BlcnR5KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFs
VHlwZT4KQEAgLTEwNywzMCArMTA2LDMzIEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhlbHBlcnMg
Zm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gcGFpciB0eXBlcywgZWcuIGEgcGFpciBvZiBT
VkdBbmltYXRlZEludGVnZXJzLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlMSwg
dHlwZW5hbWUgQW5pbVZhbFR5cGUyPgotICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8dHlw
ZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpD
b250ZW50VHlwZT4+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQo
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKICAgICAgICAgY29uc3Qg
dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSYgZmlyc3RUeXBlID0gY2FzdEFuaW1h
dGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnBy
b3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CiAgICAgICAgIGNvbnN0IHR5
cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmIHNlY29uZFR5cGUgPSBjYXN0QW5pbWF0
ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1sxXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgICAgICBhdXRvIGNv
cHkgPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNv
bnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlPj4oZmlyc3RUeXBl
LCBzZWNvbmRUeXBlKTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmY29weS0+Zmlyc3QpOwotICAgICAg
ICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1h
dGVkVHlwZXMsIDEsICZjb3B5LT5zZWNvbmQpOwotICAgICAgICByZXR1cm4gY29weTsKKyAgICAg
ICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IGZpcnN0VmFsdWUgPSBTVkdBbmltYXRlZFZhbHVl
OjpjcmVhdGUoZmlyc3RUeXBlKTsKKyAgICAgICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IHNl
Y29uZFZhbHVlID0gU1ZHQW5pbWF0ZWRWYWx1ZTo6Y3JlYXRlKHNlY29uZFR5cGUpOworICAgICAg
ICAKKyAgICAgICAgdHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSYgZmlyc3RQcm9w
ZXJ0eSA9IGZpcnN0VmFsdWUtPnByb3BlcnR5PHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVu
dFR5cGU+KCk7CisgICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmIHNl
Y29uZFByb3BlcnR5ID0gc2Vjb25kVmFsdWUtPnByb3BlcnR5PHR5cGVuYW1lIEFuaW1WYWxUeXBl
Mjo6Q29udGVudFR5cGU+KCk7CisKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+
KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmZmlyc3RQcm9wZXJ0eSk7
CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlv
biwgYW5pbWF0ZWRUeXBlcywgMSwgJnNlY29uZFByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RWYWx1ZSksIFdURk1vdmUoc2Vjb25k
VmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5
cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZXMoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUsIHN0ZDo6cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBl
LCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlPiYgKFNWR0FuaW1hdGVkVHlwZTo6
KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5
cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNp
emUoKSA9PSAyKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7CisgICAg
ICAgIAorICAgICAgICBhdXRvIHByb3BlcnRpZXMgPSB0eXBlLnByb3BlcnRpZXM8dHlwZW5hbWUg
QW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50
VHlwZT4oKTsKIAotICAgICAgICBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250
ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIGFuaW1hdGVkVHlw
ZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUuZmly
c3QgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1h
dGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLSAg
ICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0Fj
dHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0
KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0KLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRU
eXBlVmFsdWUuZmlyc3QpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsICZhbmltYXRlZFR5cGVWYWx1ZS5z
ZWNvbmQpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRp
b25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZwcm9wZXJ0aWVzLmZpcnN0KTsKKyAgICAgICAg
ZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRl
ZFR5cGVzLCAxLCAmcHJvcGVydGllcy5zZWNvbmQpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgpAQCAtMTgzLDMzICsx
ODUsMzMgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGU+Ci0gICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWdu
ZWQgd2hpY2hQcm9wZXJ0eSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlKiB0eXBl
ID0gMCkKKyAgICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCB1bnNpZ25l
ZCB3aGljaFByb3BlcnR5LCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUqIHByb3Bl
cnR5ID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxl
bWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRl
cGVuZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5z
dGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRUeXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAog
ICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGVkVHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBh
bmltYXRlZFR5cGUucHJvcGVydGllcy5zaXplKCkpOwotICAgICAgICAgICAgQW5pbVZhbFR5cGUq
IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+
KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKKyAgICAgICAg
ICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJv
cGVydHldLmdldCgpKTsKIAogICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAg
ICAgIGNhc2UgU3RhcnRBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5
cGUpOwotICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAg
ICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25TdGFydGVkKHR5cGUpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbmltYXRl
ZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZFBy
b3BlcnR5LT5hbmltYXRpb25TdGFydGVkKHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgU3RvcEFuaW1hdGlvbkFjdGlvbjoKLSAgICAgICAgICAgICAg
ICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS0+aXNBbmltYXRp
bmcoKSkKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgaWYgKGFu
aW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1h
dGVkUHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAg
IEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxXaWxsQ2hh
bmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eSk7CisgICAgICAgICAgICAg
ICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbFdpbGxDaGFuZ2UoKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQW5pbVZhbERpZENoYW5nZUFjdGlvbjoKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmlt
VmFsRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eSk7CisgICAg
ICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbERpZENoYW5nZSgpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFZhbHVlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5j
bHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIK
KyNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1
ZXMuaCIKKyNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNWR1BvaW50
TGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgor
I2luY2x1ZGUgIlNWR1Byb3BlcnR5SW5mby5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRz
LmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgPHd0Zi9W
YXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgU1ZHQW5pbWF0ZWRWYXJp
YW50ID0gVmFyaWFudDwKKyAgICBTVkdBbmdsZVZhbHVlLAorICAgIGJvb2wsCisgICAgQ29sb3Is
CisgICAgdW5zaWduZWQsCisgICAgaW50LAorICAgIFNWR0xlbmd0aFZhbHVlLAorICAgIFNWR0xl
bmd0aExpc3RWYWx1ZXMsCisgICAgZmxvYXQsCisgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcywKKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlLAorICAgIEZsb2F0UmVjdCwKKyAgICBTdHJpbmcsCisgICAg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcworPjsKKworY2xhc3MgU1ZHQW5pbWF0ZWRWYWx1ZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFNWR0FuaW1hdGVkVmFsdWU+LCBwdWJsaWMgU1ZHQW5pbWF0ZWRWYXJp
YW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
c3RhdGljIFJlZjxTVkdBbmltYXRlZFZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVk
VmFsdWUocHJvcGVydHkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFZhbHVlPiBjcmVhdGUoUHJvcGVydHlU
eXBlJiYgcHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdB
bmltYXRlZFZhbHVlKFdURk1vdmUocHJvcGVydHkpKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRWYWx1ZT4g
Y3JlYXRlKGNvbnN0IFNWR0FuaW1hdGVkVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRWYWx1ZSh2YWx1ZS5wcm9wZXJ0eTxQcm9wZXJ0
eVR5cGU+KCkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CisgICAgYm9vbCBpcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSgp
IGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAg
ICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9T
dHJpbmcocHJvcGVydHk8UHJvcGVydHlUeXBlPigpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBhdXRvIHJl
c3VsdCA9IFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBhcnNlKGF0dHJOYW1lLCBz
dHJpbmcpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgcHJvcGVydHk8UHJvcGVydHlUeXBlPigpID0gV1RGTW92ZShyZXN1bHQudmFsdWUo
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5pbWF0ZWRWYWx1ZShjb25zdCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IFNWR0FuaW1hdGVkVmFyaWFudCh2YWx1ZSkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5pbWF0ZWRWYWx1ZShQ
cm9wZXJ0eVR5cGUmJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFZhcmlhbnQoV1RGTW92
ZSh2YWx1ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAg
ICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwx
MiArMzQsMjUgQEAgcHVibGljOgogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFs
dWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlz
dFZhbHVlcz4gewogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR0xlbmd0aFZhbHVlOwogICAg
IHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNWR0xlbmd0aDsKICAgICB1c2luZyBMaXN0UHJvcGVy
dHlUZWFyT2ZmID0gU1ZHTGVuZ3RoTGlzdDsKIAogICAgIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFs
dWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuICB7IH07IH0KKyAgICBzdGF0aWMgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdMZW5ndGhNb2Rl
IGxlbmd0aE1vZGUpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7Cisg
ICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBsZW5ndGhNb2RlKTsKKyAgICAgICAgcmV0dXJuIGxp
c3Q7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0aExpc3RWYWx1ZXM+
IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlz
dC5wYXJzZShzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5n
dGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhWYWx1ZS5oCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0NywxMyBAQCBw
cml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhW
YWx1ZT4gewogICAgIHN0YXRpYyBTVkdMZW5ndGhWYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVy
biB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVl
JiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFNWR0xlbmd0aFZhbHVlPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhWYWx1
ZSBsZW5ndGg7CisgICAgICAgIGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHN0cmluZywgU1ZHTGVu
Z3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkp
Lmhhc0V4Y2VwdGlvbigpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgpIHsgcmV0dXJu
IGxlbmd0aC52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDIxMjY2NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc1ICsyOSwxMCBA
QAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCisjaW5jbHVkZSAiU1ZH
TWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFNWR01hcmtlclVu
aXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgKLX07Ci0K
LWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9
IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwK
LSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAotCi0gICAgLy8gQWRkIG5ldyBl
bGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmllbnRNYXgKLX07Ci0KLXRlbXBs
YXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKLSAg
ICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVu
aXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoU1ZHTWFya2Vy
VW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAg
Y2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOgotICAgICAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2UiKTsKLSAgICAgICAgY2Fz
ZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQotICAgICAgICAgICAg
cmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0gICAgICAgIGlmICh2YWx1ZSA9
PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tl
V2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25vd247Ci0gICAgfQotfTsK
LQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2Vy
T3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2Vy
T3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVl
KCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQotCi0gICAgLy8g
dG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmllbnRUeXBlKCkgaGFuZGxlcyB0
aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFuZ2xlKQotICAgIHsKLSAg
ICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJP
cmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCi0g
ICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsKLSAgICAg
ICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwot
ICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAgcmV0dXJuIFNWR01hcmtlck9y
aWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtlckVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJUeXBlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRBbmdsZS5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgeworICAgIFNWR01h
cmtlclVuaXRzVW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwK
KyAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCit9OworCitlbnVtIFNWR01hcmtlck9yaWVu
dFR5cGUgeworICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAorICAgIFNWR01hcmtlck9y
aWVudEF1dG8sCisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50
QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBo
ZXJlLgorICAgIFNWR01hcmtlck9yaWVudE1heAorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5z
aWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2Vy
VW5pdHNVbmtub3duOgorICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAg
IGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKKyAgICAgICAgICAgIHJldHVybiBB
U0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5p
dHNTdHJva2VXaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdp
ZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgc3RhdGljIFNWR01h
cmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKKyAgICAgICAgICAgIHJldHVybiBT
VkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOworICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9r
ZVdpZHRoIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOwor
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOworICAgIH0KK307CisKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJP
cmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUg
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAg
ICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisgICAgICAgICAgICByZXR1cm4gU1ZH
TWFya2VyT3JpZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVy
c2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7
CisgICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZh
bHVlKTsKKyAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIHJldHVybiBTVkdN
YXJrZXJPcmllbnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0
YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAg
ICAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxT
VkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAg
aWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmds
ZSA9IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25l
ZD4oYW5nbGUsIG9yaWVudFR5cGUpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1
bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhw
b3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RW
YWx1ZXMuaAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJl
ckxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTAgKzM0LDE2IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKICAgICBzdGF0
aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAg
ICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBs
aXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0
dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9Ci0KICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBm
bG9hdDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdOdW1iZXI7CiAgICAgdXNpbmcg
TGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR051bWJlckxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5LDYgKzE5LDkg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTVkdQYXRoQ29uc3VtZXIuaCIKKyNpbmNs
dWRlICJTVkdQYXRoVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIK
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
QEAgLTQ3LDM0ICs1MCwzOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBEYXRhOjpjb25zdF9pdGVy
YXRvciBEYXRhSXRlcmF0b3I7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSgpIHsgfQotICAgIFNW
R1BhdGhCeXRlU3RyZWFtKGNvbnN0IERhdGEmIGRhdGEpIDogbV9kYXRhKGRhdGEpIHsgfQorICAg
IFNWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCisgICAgICAgIDog
bV9kYXRhKFdURk1vdmUob3RoZXIubV9kYXRhKSkKKyAgICB7CisgICAgfQogICAgIAotICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0CisgICAg
U1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQorICAgICAg
ICA6IG1fZGF0YShvdGhlci5tX2RhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbV9kYXRhID09
IG90aGVyLm1fZGF0YTsKICAgICB9CiAKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHUGF0
aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtJiBvcGVyYXRv
cj0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0
aGlzID09IG90aGVyKTsKKyAgICAgICAgbV9kYXRhID0gV1RGTW92ZShvdGhlci5tX2RhdGEpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1Bh
dGhCeXRlU3RyZWFtPiBjb3B5KCkgY29uc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0
b3I9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPihtX2RhdGEpOworICAgICAgICBt
X2RhdGEgPSBvdGhlci5tX2RhdGE7CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7
IHJldHVybiBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90
aGVyLm1fZGF0YTsgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBj
b3B5KCkgY29uc3QgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4o
KnRoaXMpOyB9CisKICAgICBEYXRhSXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuYmVnaW4oKTsgfQogICAgIERhdGFJdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuZW5kKCk7IH0KIAogICAgIHZvaWQgYXBwZW5kKHVuc2lnbmVkIGNoYXIgYnl0ZSkgeyBtX2Rh
dGEuYXBwZW5kKGJ5dGUpOyB9Ci0gICAgdm9pZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJl
YW0mIG90aGVyKQotICAgIHsKLSAgICAgICAgZm9yIChhdXRvIHN0cmVhbSA6IG90aGVyKQotICAg
ICAgICAgICAgYXBwZW5kKHN0cmVhbSk7Ci0gICAgfQorICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNW
R1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgeyBtX2RhdGEuYXBwZW5kVmVjdG9yKG90aGVyLm1fZGF0
YSk7IH0KICAgICB2b2lkIGNsZWFyKCkgeyBtX2RhdGEuY2xlYXIoKTsgfQotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RhdGEuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzRW1wdHkoKTsgfQogICAgIHVuc2lnbmVkIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX2RhdGEuc2l6ZSgpOyB9CiAKICAgICAvLyBPbmx5IGRlZmluZWQg
dG8gbGV0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yIHVzZSB0aGUgc3RhbmRhcmQgbGlzdCBjb2Rl
IHBhdGhzIC0gdGhpcyBtZXRob2QgaXMgbmV2ZXIgY2FsbGVkLgpAQCAtODMsNSArOTEsMTYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBEYXRhIG1fZGF0YTsKIH07CisgICAgCit0ZW1wbGF0ZTw+
CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+IHsKKyAgICBzdGF0
aWMgU1ZHUGF0aEJ5dGVTdHJlYW0gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUGF0aEJ5dGVT
dHJlYW0oKTsgfQorICAgIHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gYnl0ZVN0
cmVhbTsKKyAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5nLCBi
eXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgcmV0dXJuIGJ5dGVTdHJlYW07
CisgICAgfQorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksMTUg
KzE0OSwxNCBAQCBib29sIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShjb25zCiAKIGJv
b2wgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYgc3RyZWFtVG9BcHBl
bmRUbywgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIGJ5U3RyZWFtLCB1bnNpZ25lZCByZXBlYXRD
b3VudCkKIHsKLSAgICAvLyBXaHkgcmV0dXJuIHdoZW4gc3RyZWFtVG9BcHBlbmRUbyBpcyBlbXB0
eT8gRG9uJ3Qgd2Ugc3RpbGwgbmVlZCB0byBhcHBlbmQ/CisgICAgLy8gVGhlIGJ5U3RyZWFtIHdp
bGwgYmUgYmxlbmRlZCB3aXRoIHN0cmVhbVRvQXBwZW5kVG8uIFNvIHN0cmVhbVRvQXBwZW5kVG8g
aGFzIHRvIGhhdmUgZWxlbWVudHMuCiAgICAgaWYgKHN0cmVhbVRvQXBwZW5kVG8uaXNFbXB0eSgp
IHx8IGJ5U3RyZWFtLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBJ
cyBpdCBPSyB0byBtYWtlIHRoZSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIgZnJvbSBhIHN0cmVh
bSwgYW5kIHRoZW4gY2xlYXIgdGhhdCBzdHJlYW0/CisgICAgLy8gYnVpbGRlciBpcyB0aGUgZGVz
dGluYXRpb24gb2YgYmxlbmRpbmcgZnJvbVNvdXJjZSBhbmQgYnlTb3VyY2UuIFRoZSBzdHJlYW0g
b2YgYnVpbGRlcgorICAgIC8vIChpLmUuIHN0cmVhbVRvQXBwZW5kVG8pIGhhcyB0byBiZSBjbGVh
cmVkIGJlZm9yZSBjYWxsaW5nIGFkZEFuaW1hdGVkUGF0aC4KICAgICBTVkdQYXRoQnl0ZVN0cmVh
bUJ1aWxkZXIgYnVpbGRlcihzdHJlYW1Ub0FwcGVuZFRvKTsKLQotICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtIGZyb21TdHJlYW1Db3B5ID0gc3RyZWFtVG9BcHBlbmRUbzsKLSAgICBzdHJlYW1Ub0FwcGVu
ZFRvLmNsZWFyKCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmVhbUNvcHkgPSBXVEZN
b3ZlKHN0cmVhbVRvQXBwZW5kVG8pOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UgZnJv
bVNvdXJjZShmcm9tU3RyZWFtQ29weSk7CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UgYnlT
b3VyY2UoYnlTdHJlYW0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZh
bHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuaAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCwxNSBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNW
R1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdQ
b2ludExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0KKyAgICBzdGF0
aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisg
ICAgeworICAgICAgICBTVkdQb2ludExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgcG9pbnRzTGlz
dEZyb21TVkdEYXRhKGxpc3QsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0K
ICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVt
VGVhck9mZiA9IFNWR1BvaW50OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdQ
b2ludExpc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlLmNwcAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDExIEBAIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmUKIHsK
IH0KIAorU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcGFyc2Uoc3RyaW5nKTsKK30KKwog
RXhjZXB0aW9uT3I8dm9pZD4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpzZXRBbGlnbih1
bnNpZ25lZCBzaG9ydCBhbGlnbikKIHsKICAgICBpZiAoYWxpZ24gPT0gU1ZHX1BSRVNFUlZFQVNQ
RUNUUkFUSU9fVU5LTk9XTiB8fCBhbGlnbiA+IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZ
TUFYKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUuaAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBA
IHB1YmxpYzoKICAgICB9OwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7Cisg
ICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNo
b3J0IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBw
cml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgp
OyB9CisgICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUo
c3RyaW5nKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUg
IlNWR1JlY3RUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2
aXNpb24gMjEyNjY0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0j
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAg
ICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0
eXBlLngoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQo
KSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMTI2NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0MiwxNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKIH07CiAKLXRlbXBsYXRl
PD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKK3Rl
bXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
PiB7CiAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyBy
ZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICBBU1NFUlQo
bGlzdC5zaXplKCkgPD0gMSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIGxpc3QpIHsg
cmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUg
PSBTVkdUcmFuc2Zvcm1WYWx1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkocmV2aXNpb24gMjEyNjY0KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjAsNiArMjAsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDU1NQYXJz
ZXIuaCIKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1
ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMwLDEwICszNiwyMyBAQCBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHMgeyB9OwogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHN0YXRpYyBib29sIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
IHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5n
KGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KIH07CiAKIHRl
bXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj4geworICAgIHN0YXRpYyBD
b2xvciBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBDb2xvcigpOyB9CisgICAgc3RhdGljIENvbG9y
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIENTU1BhcnNlcjo6cGFy
c2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8Q29sb3I+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0
cmluZykKKyAgICB7CisgICAgICAgIENvbG9yIGNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9y
KHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgICAgIHJldHVybiBjb2xvci5pc1ZhbGlk
KCkgPyBjb2xvciA6IHN0ZDo6b3B0aW9uYWw8Q29sb3I+KCk7CisgICAgfQorICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgQ29sb3ImIHR5cGUpIHsgcmV0dXJuIHR5cGUuc2VyaWFsaXpl
ZCgpOyB9Cit9OworCit0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8dW5zaWdu
ZWQ+IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQog
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcodW5zaWduZWQgdHlwZSkgeyByZXR1cm4gU3RyaW5n
OjpudW1iZXIodHlwZSk7IH0KQEAgLTQyLDE5ICs2MSw4NiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8dW5zaWduZWQ+IHsKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxp
bnQ+IHsKICAgICBzdGF0aWMgaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBz
dGF0aWMgaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJnN0cmluZykgeyByZXR1cm4gc3RyaW5n
LnRvSW50U3RyaWN0KCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0eXBlKSB7
IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB7CisgICAgc3RhdGlj
IHN0ZDo6cGFpcjxpbnQsIGludD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAg
c3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0g
MDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3RO
dW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZp
cnN0TnVtYmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpKTsKKyAg
ICB9Cit9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+IHsK
ICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRp
YyBmbG9hdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAg
ZmxvYXQgdHlwZSA9IDA7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3Ry
aW5nLCB0eXBlKSA/IHR5cGUgOiAwOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxm
bG9hdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgZmxvYXQgbnVtYmVyOworICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJG
cm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKSA/IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+
KCk7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkgeyByZXR1
cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRpYyBzdGQ6
OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBz
dGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVy
ID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmly
c3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKTsKKyAg
ICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0
PiB7CisgICAgc3RhdGljIEZsb2F0UmVjdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBGbG9hdFJl
Y3QoKTsgfQorICAgIHN0YXRpYyBGbG9hdFJlY3QgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0OworICAgICAgICByZXR1cm4gcGFy
c2VSZWN0KHN0cmluZywgcmVjdCkgPyByZWN0IDogRmxvYXRSZWN0KCk7CisgICAgICAgIAorICAg
IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHBhcnNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UmVj
dCByZWN0OworICAgICAgICByZXR1cm4gcGFyc2VSZWN0KHN0cmluZywgcmVjdCkgPyByZWN0IDog
c3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5
cGUueSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7CisgICAgICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz4gewogICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhbFZh
bHVlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFN0cmluZyYgdHlwZSkgeyByZXR1cm4gdHlwZTsgfQorICAgIHN0YXRpYyBTdHJpbmcgZnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQorICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302332</attachid>
            <date>2017-02-21 16:17:43 -0800</date>
            <delta_ts>2018-02-12 12:26:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20170221161458.patch</filename>
            <type>text/plain</type>
            <size>149327</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzNSBAQAorMjAxNy0wMi0yMSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU1ZH
QW5pbWF0ZWRUeXBlIGhvbGRzIFJlZkNvdW50ZWQgb2JqZWN0cyBpbnN0ZWFkIG9mIGhvbGRpbmcg
YSB1bmlvbiBvZiByYXcgcG9pbnRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgY2hhbmdpbmcgdGhlIHJhdyBw
b2ludGVycyB3aGljaCBpcyBoZWxkIGJ5CisgICAgICAgIFNWR0FuaW1hdGVkVHlwZSBhbmQgdGhl
IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmIG9iamVjdCB0byBiZSBSZWZDb3VudGVkCisgICAg
ICAgIHBvaW50ZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBTVkdBbmltYXRlZFR5
cGUgd2hpY2ggaG9sZHMgYSB1bmlvbiBvZiByYXcgcG9pbnRlcnMgdG8KKyAgICAgICAgaG9sZCBS
ZWZDb3VudGVkIFZhcmlhbnQgb2JqZWN0cy4gSXQgbWFrZXMgdGhlIFNWR0FuaW1hdGVkVHlwZSBo
b2xkcyBhIHBhaXIKKyAgICAgICAgU1ZHQW5pbWF0ZWRWYWx1ZS4gVGhlIFNWR0FuaW1hdGVkVmFs
dWUgaXMgYSBSZWZDb3VudGVkIFZhcmlhbnQgd2hpY2ggaG9sZHMKKyAgICAgICAgYSBzaW5nbGUg
ZGF0YSB0eXBlLiBTVkdBbmltYXRlZFR5cGUgY2FuIGhvbGQgb25lIG9yIHR3byBTVkdBbmltYXRl
ZFZhbHVlcy4KKyAgICAgICAgVGhlIGRhdGEgcGFpciBoYXZlIHRvIGJlIHN0b3JlZCBpbiBzZXBh
cmF0ZSBvYmplY3RzIG5vdCBpbiB0aGUgc2FtZSBWYXJpYW50CisgICAgICAgIGJlY2F1c2UgdGhl
eSBhcmUgaGVsZCBieSB0d28gZGlmZmVyZW50IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmIG9i
amVjdHMuCisKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0eSByYXcg
cG9pbnRlciBpbiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZgorICAgICAgICB0byBiZSBiZSBh
IFNWR0FuaW1hdGVkVmFsdWUgd2hpY2ggaXMgYSBSZWZDb3VudGVkIHBvaW50ZXIgaW5pdGlhdGVk
IGluIAorICAgICAgICBTVkdBbmltYXRlZFR5cGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBTVkdNYXJrZXJUeXBlcy5oIGFuZCBTVkdBbmltYXRl
ZFZhbHVlLmgKKyAgICAgICAgYW5kIGRlbGV0ZSBTVkdSZWN0VHJhaXRzLmggZnJvbSB0aGUgcHJv
amVjdC4gTWFrZSBQYXJzZXJVdGlsaXRpZXMuaCBwcml2YXRlIGJlY2F1c2UKKyAgICAgICAgaXQg
aXMgaW5jbHVkZWQgaW4gU1ZHUHJvcGVydHlUcmFpdHMuaC4KKyAgICAgICAgCisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKTogUmVwbGFjZSB0aGUgY2FsbCB0bwor
ICAgICAgICBTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoKSBieSBTVkdBbmltYXRl
ZFR5cGU6OnBhcnNlKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6
OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KTogIFJlcGxhY2UgdGhlIGNhbGwKKyAgICAgICAgdG8gU1ZH
QW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkgYnkgU1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmlu
ZygpLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKTpVc2Ug
CisgICAgICAgIFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4+Ojpmcm9tU3RyaW5nKCkgdG8gZ2V0CisgICAgICAgIHRoZSBhbmdsZSB2YWx1ZSBmb3Jt
IGEgc3RyaW5nLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOiBEb24ndCBjb25zdHJ1Y3QKKyAgICAgICAgYW4gU1ZHQW5p
bWF0ZWRUeXBlIGZyb20gdGhlIHJldHVybiBvZiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcygpIHNp
bmNlIGl0IG5vdworICAgICAgICByZXR1cm5zIGFuIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KTogRG9uJ3QgcGFzcyBhIGdldHRlcgorICAgICAgICB0byByZXNldEZyb21CYXNlVmFsdWVzIHNp
bmNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQKKyAg
ICAgICAgdG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OiBSZXBsYWNlIHRoZSBjYWxsIHRvIAorICAgICAgICBTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5k
RW51bWVyYXRpb24oKSBieSBTVkdBbmltYXRlZFR5cGU6OnByb3BlcnRpZXM8PigpLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKTogRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0
ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNh
bGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
RW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
RGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToK
KyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6cGFyc2VOdW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0
by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJl
ckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgor
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExp
c3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
RGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6dHlwZSk6IFRoZSB0eXBlIG9mIHRoZSBTVkdBbmltYXRlZFR5cGUgY2FuIGJlCisg
ICAgICAgIGRlZHVjZWQgZnJvbSB0aGUgdHlwZSBvZiB0aGUgU1ZHQW5pbWF0ZWRWYWx1ZXMuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnRvU3RyaW5nKTogUmVuYW1lIHZhbHVl
QXNTdHJpbmcoKSB0byB0b1N0cmluZygpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpwYXJzZSk6IFJlbmFtZSBzZXRWYWx1ZUFzU3RyaW5nKCkgdG8gcGFyc2UoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6flNWR0FuaW1hdGVkVHlwZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5k
RW51bWVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZU51bWJlckxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5z
Zm9ybUxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2
YWx1ZUFzU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6c2V0VmFsdWVBc1N0cmluZyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6IFRlbXBsYXRlIGNvbnN0cnVjdG9ycyB0byBjb25zdHJ1Y3QgYSBTVkdBbmltYXRlZFR5
cGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6IFRlbXBsYXRl
IGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBTVkdBbmltYXRlZFR5cGUuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnByb3BlcnR5KTogVGVtcGxhdGUgZnVuY3Rpb25zIHRvIHJldHVy
biB0aGUgc3RvcmVkIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
Ojpwcm9wZXJ0aWVzKTogVGVtcGxhdGUgZnVuY3Rpb25zIHRvIHJldHVybiB0aGUgc3RvcmVkIHBh
aXIgcHJvcGVydGllcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHlwZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5kRW51
bWVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpi
b29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y29s
b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVn
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6bGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6bGVuZ3RoTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6Om51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Om51bWJlckxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpudW1iZXJPcHRpb25hbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OnBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpwb2ludExpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OnN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOiBEZWxldGVkLgorCisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVB
bmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZSk6IENyZWF0ZSBhIFJlZlB0cjxTVkdBbmlt
YXRlZFZhbHVlPiBmcm9tCisgICAgICAgIHRoZSBjdXJyZW50QmFzZVZhbHVlIGFuZCB1c2UgdGhp
cyBwb2ludGVyIHRvIGNyZWF0ZSBhbiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPi4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpyZXNldEZyb21CYXNl
VmFsdWUpOiBObyBuZWVkIGZvciB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlcgorICAgICAgICBi
ZWNhdXNlIHRoZSBDb250ZW50VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQg
dG8gZ2V0IHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMp
OiBDcmVhdGUgdHdvICBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4gCisgICAgICAgIGZyb20gdGhl
IGN1cnJlbnRCYXNlVmFsdWVzIGFuZCB1c2UgdGhlc2UgcGFpciBwb2ludGVycyB0byBjcmVhdGUg
YW4gc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4uCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFzZVZhbHVlcyk6ICBObyBuZWVkIGZv
ciB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlcgorICAgICAgICBiZWNhdXNlIHRoZSBDb250ZW50
VHlwZSBvZiB0aGUgVGVhck9mZiBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBwcm9wZXJ0
aWVzIGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0aW9uKTogUmVuYW1lIHRoZSBhcmd1bWVudCBuYW1l
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlOjpjcmVhdGUpOiBUZW1wbGF0ZSBmdW5jdGlvbnMgdG8g
Y3JlYXRlIGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRWYWx1ZTo6aXMpOiBBIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgZGF0YSB0eXBl
IG9mIGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRW
YWx1ZTo6cHJvcGVydHkpOiBUZW1wbGF0ZSBmdW5jdGlvbnMgdG8gcmV0dXJuIHRoZSBkYXRhIG9m
IGFuIFNWR0FuaW1hdGVkVmFsdWUuIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZTo6dG9TdHJpbmcpOiBBIHRlbXBsYXRlIGZ1bmN0aW9uIHRvIHJldHVybiB2YWx1ZSBhbiBTVkdB
bmltYXRlZFZhbHVlIGFzIGFuIFN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VmFsdWU6OnBhcnNlKTogQSB0ZW1wbGF0ZSBmdW5jdGlvbiB0byBjaGFuZ2UgdmFsdWUgYW4gU1ZH
QW5pbWF0ZWRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVmFsdWU6OlNWR0Fu
aW1hdGVkVmFsdWUpOiBUZW1wbGF0ZSBjb25zdHJ1Y3RvcnMgdG8gY29uc3RydWN0IGFuIFNWR0Fu
aW1hdGVkVmFsdWUuCisKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2Zy9TVkdMZW5ndGhW
YWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFs
dWU+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5n
dGhWYWx1ZT46OnRvU3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT4uCisKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNU
eXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpm
cm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8
U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+
OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHTWFya2VyVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtl
clVuaXRzVHlwZT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUpOgorICAgICAgICBNb3ZlIHRoZXNlIFNWR1By
b3BlcnR5VHJhaXRzIHRvIGEgc2VwYXJhdGUgZmlsZSBiZWNhdXNlIHdlIHdhbnQgdG8gYWRkIGEg
bmV3CisgICAgICAgIFNWR1Byb3BlcnR5VHJhaXRzIGZvciB0aGUgcGFpciA8U1ZHQW5nbGVWYWx1
ZSwgdW5zaWduZWQ+LgorICAgICAgICAKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0
byBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2
Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJl
YW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3Ry
ZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICBBZGQgY29weSBhbmQgbW92ZSBzZW1hbnRpY3MuCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPT0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yIT0pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06
OmlzRW1wdHkpOgorICAgICAgICBNaW5vciBjbGVhbi11cC4KKworICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojppbml0aWFsVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9t
U3RyaW5nKToKKyAgICAgICAgQWRkIGZ1bmN0aW9ucyB0byBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQ
YXRoQnl0ZVN0cmVhbT4uCisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphZGRUb1NWR1BhdGhCeXRlU3RyZWFtKTogVXNlIFNWR1BhdGhCeXRl
U3RyZWFtIG1vdmUgc2VtYW50aWNzLgorCisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFs
dWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPi4KKworICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUpOgorICAgICAgICBBZGQgYSBj
b25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIHN0cmluZyB0byBiZSB1c2VkIGJ5IAorICAgICAgICBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+LgorCisgICAgICAg
ICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPi4KKworICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1JlY3RUcmFpdHMuaDogUmVtb3ZlZC4KKyAgICAgICAgTW92ZSBTVkdQcm9wZXJ0
eVRyYWl0czxGbG9hdFJlY3Q+IGZyb20gU1ZHUmVjdFRyYWl0cy5oIHRvIFNWR1Byb3BlcnR5VHJh
aXRzLmggCisgICAgICAgIHNpbmNlIGl0IGluY2x1ZGVzIHRoZSBTVkdQcm9wZXJ0eVRyYWl0cyBm
b3IgdGhlIG5vbiBTVkcgdHlwZXMuCisgICAgICAgIAorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbnMg
dG8gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4uCisKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICBB
ZGQgZnVuY3Rpb25zIHRvIHRoZSBTVkdQcm9wZXJ0eVRyYWl0cyBmb3Igbm9uIFNWRyB0eXBlcy4K
KwogMjAxNy0wMi0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKDIwMzk0MSk6IGlBZCBQcm9kdWNlcjogQ2xpY2tpbmcgYnV0dG9ucyBpbiBQ
cmV2aWV3IGRvZXMgbm90IHdvcmsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMjMyMiwxMiArMjMyMiwxNCBAQAogCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVh
bGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTVCODdFQzFDQUFGMEFC
MDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmNwcCAqLzsgfTsKIAkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJNTU3
NTA1NkQxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEg
LyogU1ZHTWFya2VyVHlwZXMuaCAqLzsgfTsKIAkJNTU3NkE1NjQxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovOyB9Owog
CQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRD
IC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1NTk3RjgyNjFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1OTdGODI0
MUQ5MUMzMTMwMDY2QkMyMSAvKiBJbWFnZUZyYW1lQ2FjaGUuY3BwICovOyB9OwogCQk1NTk3Rjgy
NzFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFtZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTk3RjgyNTFEOTFDMzEzMDA2NkJDMjEgLyog
SW1hZ2VGcmFtZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNTVBMzM2RjcxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIw
OUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLzsgfTsKIAkJNTVBMzM2RjkxRDgyMUUzQzAw
MjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNr
aW5nU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk1NUU0NEFFMTFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHQW5pbWF0ZWRWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFNDRBRTAxRTRCRkJD
NTAwOTI0NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCAqLzsgfTsKIAkJNTcwNDQwNTMxRTUyNzhC
MjAwMzU2NjAxIC8qIENyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxMjUyNkExRTUyNTI3QzAwOEZGMzY5IC8q
IENyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwICovOyB9OwogCQk1NzA0NDA1ODFFNTM4NTE2MDAz
NTY2MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi87IH07CiAJCTU3MDQ0MDVBMUU1MzkzNjIw
MDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwNDQwNTkxRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2Jj
Q2ZiUGFyYW1zLmggKi87IH07CkBAIC0yOTcxLDcgKzI5NzMsNiBAQAogCQk3Q0Q0OTRDQzFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Q0OTRDQTFBODZFQjFEMDAwQTg3RUMgLyogUmVu
ZGVyQXR0YWNobWVudC5jcHAgKi87IH07CiAJCTdDRDQ5NENEMUE4NkVCMUQwMDBBODdFQyAvKiBS
ZW5kZXJBdHRhY2htZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0Q0OTRDQjFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTU4RDRB
MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50
LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RDFE
RDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5
QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmgg
Ki87IH07CiAJCTdDRTU4RDU0MUREN0Q2RTIwMDEyODU1MiAvKiBTVkdMZW5ndGhWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1MjFE
RDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3RoVmFsdWUuY3BwICovOyB9OwogCQk3Q0U1OEQ1NzFE
RDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTUxREQ3RDk2RDAwMTI4NTUyIC8q
IFNWR1RyYW5zZm9ybVZhbHVlLmNwcCAqLzsgfTsKQEAgLTQ3NjYsNyArNDc2Nyw3IEBACiAJCUIy
MjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR051bWJlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjI3OEJCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTYw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMDBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCAqLzsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0
aWxpdGllcy5oICovOyB9OworCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTgwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMyMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQ
YXRoRWxlbWVudC5jcHAgKi87IH07CiAJCUIyMjI3QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
YXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmggKi87IH07CiAJ
CUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZy5oICovOyB9OwpAQCAtNTQzNSw3ICs1NDM2LDcgQEAKIAkJQkM2RDZFMjYw
OUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxW
aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3NERBMzcxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyog
UkdCQ29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzc0REEzODEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBMzYxMDEzRjNGNzAwNzk4
N0FEIC8qIFJHQkNvbG9yLmNwcCAqLzsgfTsKLQkJQkM3NkFDMTMwREQ3QUQ1QzAwNDE1RjM0IC8q
IFBhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICov
OyB9OworCQlCQzc2QUMxMzBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc2QUMxMTBERDdB
RDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJCM0MwQzRFQTkxRTAwODMyODVGIC8qIENT
U0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3NzJCMzYwQzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzcyQzQ2MEM0RUIyQzYwMDgzMjg1
RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzc3MkM0NDBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3Qu
Y3BwICovOyB9OwogCQlCQzc3MkM0NzBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzQ1
MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5oICovOyB9OwpAQCAtOTY4NCw2ICs5
Njg1LDcgQEAKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlm
aWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1
IC8qIEltYWdlRGVjb2RlckNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElt
YWdlRGVjb2RlckNHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1NzUwNTZDMUU1
M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJrZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdNYXJrZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTc2QTU2MjFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTk3RjgyNDFEOTFDMzEzMDA2NkJDMjEgLyogSW1hZ2VGcmFt
ZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRnJh
bWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NjkxLDYgKzk2OTMs
NyBAQAogCQk1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjgxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0
b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQmFja2luZ1N0b3Jl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RDQwOEY3MUE3QzYzMTgwMEM3ODQ1
MCAvKiBTVkdJbWFnZUNsaWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHSW1hZ2VDbGllbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RTQ0QUUw
MUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdBbmltYXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTcwNDQwNTcxRTUzODUxNjAwMzU2NjAxIC8qIENyeXB0b0FsZ29yaXRobUFFU19D
RkJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtQUVTX0NGQk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0
MDU5MUU1MzkzNjIwMDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0Flc0NiY0NmYlBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzA0NDA1QjFFNTM5Mzc5MDAzNTY2MDEgLyogSlNBZXNDYmNDZmJQYXJh
bXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBZXNDYmNDZmJQ
YXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA2MjEsNyArMTA2MjQs
NiBAQAogCQk3Q0Q0OTRDQTFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VD
IC8qIFJlbmRlckF0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyQXR0YWNobWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0
OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NFNThE
NEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUmVjdFRyYWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR051bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3Q0U1OEQ1MTFERDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3RoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0U1OEQ1MjFERDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3RoVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGVuZ3RoVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE0OTEsNiArMjE0OTMsNyBAQAogCQkJ
CTQzOUQzMzQwMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKIAkJCQk4
MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICov
LAogCQkJCTQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRv
ci5oICovLAorCQkJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdBbmltYXRlZFZhbHVl
LmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50
LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1l
bnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1l
bnQuaWRsICovLApAQCAtMjE4MjksNyArMjE4MzIsNiBAQAogCQkJCUIyMjI3OTA3MEQwMEJGMjEw
MDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5MDgwRDAwQkYyMTAw
NzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5MDkwRDAwQkYyMTAwNzFC
NzgyIC8qIFNWR1JlY3RFbGVtZW50LmlkbCAqLywKLQkJCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1
NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovLAogCQkJCUIyMjI3OTBBMEQwMEJGMjEwMDcxQjc4MiAv
KiBTVkdSZW5kZXJpbmdJbnRlbnQuaCAqLywKIAkJCQlCMjIyNzkwQjBEMDBCRjIxMDA3MUI3ODIg
LyogU1ZHUmVuZGVyaW5nSW50ZW50LmlkbCAqLywKIAkJCQlCMjIyNzkwQzBEMDBCRjIxMDA3MUI3
ODIgLyogU1ZHU2NyaXB0RWxlbWVudC5jcHAgKi8sCkBAIC0yMTkyMSw2ICsyMTkyMyw3IEBACiAJ
CQkJQjJFNEVDOTUwRDAwQzIyQjAwNDMyNjQzIC8qIFNWR1pvb21FdmVudC5oICovLAogCQkJCUIy
RTRFQzk2MEQwMEMyMkIwMDQzMjY0MyAvKiBTVkdab29tRXZlbnQuaWRsICovLAogCQkJCUIyOEM2
QTI2MEQwMEM0NDgwMDMzNEFBNCAvKiB4bGlua2F0dHJzLmluICovLAorCQkJCTU1NzUwNTZDMUU1
M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJrZXJUeXBlcy5oICovLAogCQkJKTsKIAkJCXBhdGggPSBz
dmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjU1NTcsNiArMjU1NjAsNyBAQAog
CQkJCUE1ODRGRTI2MTg2MzdEQUIwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21t
b25DcnlwdG9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1NzUwNTZEMUU1M0IzMEMw
MDhERTMwQSAvKiBTVkdNYXJrZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2MEYzMkIx
REZCQjEwNzAwNDE2RDZDIC8qIENvbW1vblZNLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzkzRjM0
QTFBQTZCQTVFMDBBOThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMkY0RTc4QzFFNDVDM0VGMDA2RDcxMDUgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NDE3LDcgKzI4NDIxLDYgQEAKIAkJCQlCMjIyN0E5
QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNW
R1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUEwMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3
NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODYzMiw2ICsyODYzNSw3IEBACiAJCQkJQkNBMkIwNjExMDUwNDc2MDAwNDNCRDFDIC8qIFVz
ZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTJCMDhCMTA1MDVCQ0QwMDQzQkQxQyAv
KiBVc2VyU2NyaXB0VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEJGMTUxMTA1ODEzQkYw
MEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVFNDRBRTEx
RTRCRkJDNTAwOTI0NTdCIC8qIFNWR0FuaW1hdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDOEJGMTVBMTA1ODE0MTgwMEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0RGMzE3QzExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1
cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZCRjE5MTVBNUZBNzQwMDA4M0Ey
MCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIxMjc3MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5p
bWF0ZQogICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0g
YW5pbWF0b3ItPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVZhbHVlKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fYW5pbWF0ZWRUeXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUsIGJhc2VW
YWx1ZSk7CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5wYXJzZShhdHRyaWJ1dGVOYW1lLCBiYXNl
VmFsdWUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0
KFNWR0VsZW1lbnQmIHRhcmdldEVsZW1lbnQsIENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCkBAIC0zNDksMTQgKzM0OSwxNCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFz
ZTo6YXBwbHlSZXN1bHRzCiAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkg
ewogICAgICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRoLgogICAgICAg
ICAvLyBDb252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0cmluZyBhbmQg
YXBwbHkgaXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5zdGFuY2VzLgot
ICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQs
IGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5kIHRoZSBhbmlt
YXRpb24gcHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KICAgICBTaG91bGRBcHBs
eUFuaW1hdGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRhcmdldEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENT
U0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2Vz
KCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0
YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7
CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAvLyBB
dCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZhbHVlcyBhcmUgYWxyZWFkeSBjaGFuZ2VkLCB1bmxp
a2UgZm9yIENTUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAJ
KHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMjIgKzMyLDEyIEBAIFNWR0FuaW1hdGVkQW5nbGVB
bmltYXRvcjo6U1ZHQW5pbWF0ZWRBbmcKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPFNW
R0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKSk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQYWlyID0gYW5p
bWF0ZWRUeXBlLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0KLSAgICBTVkdBbmdsZVZhbHVlIGFu
Z2xlOwotICAgIFNWR01hcmtlck9yaWVudFR5cGUgb3JpZW50VHlwZSA9IFNWR1Byb3BlcnR5VHJh
aXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmluZywgYW5nbGUpOwotICAg
IGlmIChvcmllbnRUeXBlID4gMCkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLnNlY29uZCA9IG9yaWVu
dFR5cGU7Ci0gICAgaWYgKG9yaWVudFR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCi0gICAg
ICAgIGFuaW1hdGVkUGFpci5maXJzdCA9IGFuZ2xlOwotCi0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj46OmZyb21TdHJpbmcoc3RyaW5nKSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQW5nbGVB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0Fu
aW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRB
bmdsZUFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01Nyw3ICs0Nyw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVYKIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xl
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAg
ICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVy
YXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5kRW51
bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NSw4ICs2NSw4IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphZGRBbmltYXQKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkQW5nbGUpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IGZy
b20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRp
b24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8gZnJvbUFuZ2xl
QW5kRW51bWVyYXRpb24gPSBmcm9tLT5wcm9wZXJ0aWVzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
PigpOworICAgIGF1dG8gdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPnByb3BlcnRpZXM8U1ZH
QW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAgICAgLy8gT25seSByZXNwZWN0IGJ5IGFuaW1hdGlv
bnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmllZCBpbiBhbmdsZXMgKGFuZCBub3Qg
ZWcuICdhdXRvJykuCiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0
b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNl
Y29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTAsMTAg
KzgwLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBB
U1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7
CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmFuZ2xl
QW5kRW51bWVyYXRpb24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRv
JiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAg
IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvQXRFbmRPZkR1
cmF0aW9uLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25z
dCBhdXRvIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydGllczxTVkdBbmds
ZVZhbHVlLCB1bnNpZ25lZD4oKSA6IGZyb20tPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5z
aWduZWQ+KCk7CisgICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+cHJvcGVydGll
czxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oKTsKKyAgICBhdXRvIHRvQXRFbmRPZkR1cmF0aW9u
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wcm9wZXJ0aWVzPFNWR0Fu
Z2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0
aW9uID0gYW5pbWF0ZWQtPnByb3BlcnRpZXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAK
ICAgICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVt
ZXJhdGlvbi5zZWNvbmQpIHsKICAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIC0gbm8gbGlu
ZWFyIGludGVycG9sYXRpb24gcG9zc2libGUgYmV0d2VlbiB2YWx1ZXMgKGUuZy4gYXV0byB0byBh
bmdsZSkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAko
cmV2aXNpb24gMjEyNzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVh
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZEJvb2xl
YW5BbmltYXRvcjo6U1ZHQW5pbWF0ZWRCCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVCb29sZWFuKHN0ZDo6bWFrZV91bmlxdWU8Ym9vbD4oKSk7Ci0gICAgYW5pbWF0
ZWRUeXBlLT5ib29sZWFuKCkgPSAoc3RyaW5nID09ICJ0cnVlIik7IC8vIHdhdD8KLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQ
cm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVh
bihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBl
cykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVh
bj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xl
YW5BbmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVk
Qm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmlt
YXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGJvb2wgZnJvbUJvb2xl
YW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkLT5ib29sZWFuKCkgOiBmcm9tLT5ib29sZWFuKCk7Ci0gICAgYm9vbCB0b0Jvb2xl
YW4gPSB0by0+Ym9vbGVhbigpOwotICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVk
LT5ib29sZWFuKCk7CisgICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PGJvb2w+
KCkgOiBmcm9tLT5wcm9wZXJ0eTxib29sPigpOworICAgIGJvb2wgdG9Cb29sZWFuID0gdG8tPnBy
b3BlcnR5PGJvb2w+KCk7CisgICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gYW5pbWF0ZWQtPnBy
b3BlcnR5PGJvb2w+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0
ZVR5cGU8Ym9vbD4ocGVyY2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5pbWF0ZWRC
b29sZWFuKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJ
KHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZENvbG9yQW5p
bWF0b3I6OlNWR0FuaW1hdGVkQ29sCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihz
dGQ6Om1ha2VfdW5pcXVlPENvbG9yPihDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlw
V2hpdGVTcGFjZSgpKSkpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQ
cm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSog
ZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bykKQEAgLTQ0LDggKzQ0LDggQEAgdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVCh0by0+dHlwZSgpID09IEFu
aW1hdGVkQ29sb3IpOwogCiAgICAgLy8gSWdub3JlcyBhbnkgYWxwaGEgYW5kIHNldHMgYWxwaGEg
b24gcmVzdWx0IHRvIDEwMCUgb3BhcXVlLgotICAgIGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmNv
bG9yKCk7Ci0gICAgYXV0byYgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIGF1dG8mIGZyb21D
b2xvciA9IGZyb20tPnByb3BlcnR5PENvbG9yPigpOworICAgIGF1dG8mIHRvQ29sb3IgPSB0by0+
cHJvcGVydHk8Q29sb3I+KCk7CiAgICAgdG9Db2xvciA9IHsgcm91bmRBbmRDbGFtcENvbG9yQ2hh
bm5lbCh0b0NvbG9yLnJlZCgpICsgZnJvbUNvbG9yLnJlZCgpKSwKICAgICAgICAgcm91bmRBbmRD
bGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmdyZWVuKCkgKyBmcm9tQ29sb3IuZ3JlZW4oKSksCiAg
ICAgICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ibHVlKCkgKyBmcm9tQ29s
b3IuYmx1ZSgpKSB9OwpAQCAtNjksOCArNjksOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmlt
YXRvcjo6Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29sb3IgZnJvbUNvbG9yID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Y29s
b3IoKSA6IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3IgdG9Db2xvciA9IHRvLT5jb2xvcigpOwor
ICAgIENvbG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PENvbG9yPigpIDogZnJvbS0+cHJv
cGVydHk8Q29sb3I+KCk7CisgICAgQ29sb3IgdG9Db2xvciA9IHRvLT5wcm9wZXJ0eTxDb2xvcj4o
KTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9yRnJvbVN0cmlu
ZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUNvbG9y
LCBtX2NvbnRleHRFbGVtZW50KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdBbmltYXRlZENv
bG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPnRvUHJv
cGVydHlWYWx1ZVR5cGUoKSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAgdG9Db2xvciA9
IGN1cnJlbnRDb2xvcigqbV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0b0F0RW5kT2ZE
dXJhdGlvbkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRDb2xvciA9IGFuaW1hdGVkLT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uQ29sb3IgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8Q29sb3I+KCk7CisgICAgYXV0
byYgYW5pbWF0ZWRDb2xvciA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxDb2xvcj4oKTsKIAogICAgIC8v
IEZJWE1FOiBFeHRlbmRlZENvbG9yIC0gdGhpcyB3aWxsIG5lZWQgdG8gaGFuZGxlIGJsZW5kaW5n
IGJldHdlZW4gY29sb3JzIGluIGRpZmZlcmVudCBjb2xvciBzcGFjZXMsCiAgICAgLy8gYXMgd2Vs
bCBhcyB3b3JrIHdpdGggbm9uIFswLTI1NV0gQ29sb3JzLgpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkocmV2aXNpb24gMjEyNzczKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksMTQgKzEwOSwxMiBAQCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6
OlNWR0FuaW1hCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlx
dWU8dW5zaWduZWQ+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+ZW51bWVyYXRpb24oKSA9IGVudW1l
cmF0aW9uVmFsdWVGb3JUYXJnZXRBdHRyaWJ1dGUobV9hbmltYXRpb25FbGVtZW50LT50YXJnZXRF
bGVtZW50KCksIG1fYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRlTmFtZSgpLCBzdHJpbmcpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlKGVudW1lcmF0aW9uVmFsdWVGb3JUYXJnZXRBdHRyaWJ1dGUobV9hbmltYXRpb25FbGVtZW50
LT50YXJnZXRFbGVtZW50KCksIG1fYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRlTmFtZSgpLCBz
dHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RvcEFuaW1WYWxB
bmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtMTI2LDcgKzEyNCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1h
dG9yOjpzdG8KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1h
dGVkVHlwZTo6ZW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTE0OSw5ICsxNDcsOSBAQCB2
b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y2FsCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgdW5z
aWduZWQgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+ZW51bWVyYXRpb24oKSA6IGZyb20tPmVudW1l
cmF0aW9uKCk7Ci0gICAgdW5zaWduZWQgdG9FbnVtZXJhdGlvbiA9IHRvLT5lbnVtZXJhdGlvbigp
OwotICAgIHVuc2lnbmVkJiBhbmltYXRlZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmVudW1lcmF0
aW9uKCk7CisgICAgdW5zaWduZWQgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJvcGVydHk8dW5z
aWduZWQ+KCkgOiBmcm9tLT5wcm9wZXJ0eTx1bnNpZ25lZD4oKTsKKyAgICB1bnNpZ25lZCB0b0Vu
dW1lcmF0aW9uID0gdG8tPnByb3BlcnR5PHVuc2lnbmVkPigpOworICAgIHVuc2lnbmVkJiBhbmlt
YXRlZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPnByb3BlcnR5PHVuc2lnbmVkPigpOwogCiAgICAg
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVUeXBlPHVuc2lnbmVkPihwZXJjZW50
YWdlLCBmcm9tRW51bWVyYXRpb24sIHRvRW51bWVyYXRpb24sIGFuaW1hdGVkRW51bWVyYXRpb24p
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHJl
dmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
QW5pbWF0b3I6OlNWR0FuaW1hdGVkSQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPGludD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5pbnRlZ2VyKCkgPSBzdHJpbmcudG9JbnRTdHJpY3QoKTsKLSAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRy
YWl0czxpbnQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKGNvbnN0cnVj
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7CisgICAg
cmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaW1W
YWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9y
OjpzdG9wQW5pCiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
OjppbnRlZ2VyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdl
ckFuaW1hdG9yOjphZGRBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZElu
dGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0
by0+aW50ZWdlcigpICs9IGZyb20tPmludGVnZXIoKTsKKyAgICB0by0+cHJvcGVydHk8aW50Pigp
ICs9IGZyb20tPnByb3BlcnR5PGludD4oKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJB
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFu
aW1hdGlvbkVsZW1lbnQsIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBp
bnQgZnJvbUludGVnZXIsIGludCB0b0ludGVnZXIsIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVn
ZXIsIGludCYgYW5pbWF0ZWRJbnRlZ2VyKQpAQCAtODMsMTAgKzgxLDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBpbnQgZnJvbUludGVn
ZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkLT5pbnRlZ2VyKCkgOiBmcm9tLT5pbnRlZ2VyKCk7Ci0gICAgaW50IHRvSW50ZWdl
ciA9IHRvLT5pbnRlZ2VyKCk7Ci0gICAgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2VyKCk7Ci0gICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBh
bmltYXRlZC0+aW50ZWdlcigpOworICAgIGludCBmcm9tSW50ZWdlciA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5
PGludD4oKSA6IGZyb20tPnByb3BlcnR5PGludD4oKTsKKyAgICBpbnQgdG9JbnRlZ2VyID0gdG8t
PnByb3BlcnR5PGludD4oKTsKKyAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9B
dEVuZE9mRHVyYXRpb24tPnByb3BlcnR5PGludD4oKTsKKyAgICBpbnQmIGFuaW1hdGVkSW50ZWdl
ciA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxpbnQ+KCk7CiAKICAgICBjYWxjdWxhdGVBbmltYXRlZElu
dGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUlu
dGVnZXIsIHRvSW50ZWdlciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmltYXRlZEludGVn
ZXIpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMywyMyArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyQW5pbWF0bwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6cGFpcjxpbnQsIGludD4+KCkpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVk
SW50ZWdlciA9IGFuaW1hdGVkVHlwZS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGZs
b2F0IGZpcnN0TnVtYmVyID0gMDsKLSAgICBmbG9hdCBzZWNvbmROdW1iZXIgPSAwOwotICAgIGlm
ICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmRO
dW1iZXIpKSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IDA7Ci0gICAgICAgIGFu
aW1hdGVkSW50ZWdlci5zZWNvbmQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFuaW1hdGVk
SW50ZWdlci5maXJzdCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSk7Ci0g
ICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihz
ZWNvbmROdW1iZXIpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGlu
dCwgaW50Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUlu
dGVnZXJPcHRpb25hbEludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJ
bnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZElu
dGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0OCw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KIAogdm9pZCBTVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJ
bnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmlt
YXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1h
dG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03Nyw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+
dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGZyb21JbnRlZ2VyUGFp
ciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBzdGQ6OnBhaXI8aW50LCBp
bnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKKyAgICBj
b25zdCBzdGQ6OnBhaXI8aW50JiwgaW50Jj4gZnJvbUludGVnZXJQYWlyID0gZnJvbS0+cHJvcGVy
dGllczxpbnQsIGludD4oKTsKKyAgICBzdGQ6OnBhaXI8aW50JiwgaW50Jj4gdG9JbnRlZ2VyUGFp
ciA9IHRvLT5wcm9wZXJ0aWVzPGludCwgaW50PigpOwogCiAgICAgdG9JbnRlZ2VyUGFpci5maXJz
dCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7CiAgICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0g
ZnJvbUludGVnZXJQYWlyLnNlY29uZDsKQEAgLTg5LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVu
dCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3Qgc3RkOjpwYWly
PGludCwgaW50PiYgZnJvbUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50ZWdl
cigpIDogZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFp
cjxpbnQsIGludD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigp
OwotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+aW50
ZWdlck9wdGlvbmFsSW50ZWdlcigpOworICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQmLCBpbnQmPiBm
cm9tSW50ZWdlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0aWVzPGludCwgaW50PigpIDogZnJvbS0+cHJv
cGVydGllczxpbnQsIGludD4oKTsKKyAgICBjb25zdCBzdGQ6OnBhaXI8aW50JiwgaW50Jj4gdG9J
bnRlZ2VyUGFpciA9IHRvLT5wcm9wZXJ0aWVzPGludCwgaW50PigpOworICAgIGNvbnN0IHN0ZDo6
cGFpcjxpbnQmLCBpbnQmPiB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXJQYWlyID0gdG9BdEVuZE9m
RHVyYXRpb24tPnByb3BlcnRpZXM8aW50LCBpbnQ+KCk7CisgICAgc3RkOjpwYWlyPGludCYsIGlu
dCY+IGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+cHJvcGVydGllczxpbnQsIGludD4o
KTsKIAogICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZElu
dGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUlu
dGVnZXJQYWlyLmZpcnN0LCB0b0ludGVnZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbklu
dGVnZXJQYWlyLmZpcnN0LCBhbmltYXRlZEludGVnZXJQYWlyLmZpcnN0KTsKICAgICBTVkdBbmlt
YXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9u
RWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFpci5zZWNvbmQs
IHRvSW50ZWdlclBhaXIuc2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXJQYWlyLnNlY29u
ZCwgYW5pbWF0ZWRJbnRlZ2VyUGFpci5zZWNvbmQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZpc2lvbiAyMTI3NzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMiArMzQs
MTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6U1ZHQW5pbWF0ZWRMZQogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aFZhbHVl
PihtX2xlbmd0aE1vZGUsIHN0cmluZykpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShTVkdMZW5ndGhWYWx1ZShtX2xlbmd0aE1vZGUsIHN0cmluZykpOwogfQogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0
aChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVz
KSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+
KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0
QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRl
ZFR5cGU6Omxlbmd0aCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3Ro
PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw4ICs2OCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5n
dGhBbmltYXRvcjo6YWRkQW5pbWEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBl
KCkpOwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1l
bnQpOwotICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBmcm9tLT5sZW5ndGgoKTsKLSAgICBh
dXRvJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3Ro
ID0gZnJvbS0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CisgICAgYXV0byYgdG9MZW5ndGgg
PSB0by0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCk7CiAKICAgICB0b0xlbmd0aC5zZXRWYWx1
ZSh0b0xlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGgudmFsdWUobGVuZ3Ro
Q29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQpAQCAtODYsMTAgKzg2LDEwIEBAIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21T
VkdMZW5ndGggPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1h
dGlvbiA/IGFuaW1hdGVkLT5sZW5ndGgoKSA6IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8gdG9T
VkdMZW5ndGggPSB0by0+bGVuZ3RoKCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25TVkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCk7CisgICAgYXV0byBmcm9tU1ZHTGVu
Z3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+cHJvcGVydHk8U1ZHTGVuZ3RoVmFsdWU+KCkgOiBmcm9tLT5wcm9wZXJ0eTxT
VkdMZW5ndGhWYWx1ZT4oKTsKKyAgICBhdXRvIHRvU1ZHTGVuZ3RoID0gdG8tPnByb3BlcnR5PFNW
R0xlbmd0aFZhbHVlPigpOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVu
Z3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnR5PFNWR0xlbmd0aFZhbHVlPigpOworICAg
IGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR0xlbmd0aFZh
bHVlPigpOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5p
bWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U1ZHTGVuZ3RoVmFsdWU+KHBhcnNl
TGVuZ3RoRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5
cGUoKSwgZnJvbVNWR0xlbmd0aCwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjEyNzczKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDE0ICszMywxMiBAQCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6
U1ZHQW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVM
ZW5ndGhMaXN0KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKSk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5sZW5ndGhMaXN0KCkucGFyc2Uoc3RyaW5nLCBtX2xlbmd0aE1vZGUpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0
cmluZywgbV9sZW5ndGhNb2RlKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3QoY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICBy
ZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1h
dGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OnN0b3AKIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdB
bmltYXRlZFR5cGU6Omxlbmd0aExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw4ICs2Niw4IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gZnJvbS0+
bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0KCk7
CisgICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExpc3QgPSBmcm9tLT5wcm9wZXJ0eTxTVkdMZW5n
dGhMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5wcm9wZXJ0eTxT
VkdMZW5ndGhMaXN0VmFsdWVzPigpOwogCiAgICAgdW5zaWduZWQgZnJvbUxlbmd0aExpc3RTaXpl
ID0gZnJvbUxlbmd0aExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbUxlbmd0aExpc3RTaXplIHx8
IGZyb21MZW5ndGhMaXN0U2l6ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgpKQpAQCAtOTIsMTAgKzkw
LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMKICAgICBBU1NF
UlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAK
LSAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoTGlzdCgpIDogZnJvbS0+bGVu
Z3RoTGlzdCgpOwotICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1h
dGVkLT5sZW5ndGhMaXN0KCk7CisgICAgYXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3Bl
cnR5PFNWR0xlbmd0aExpc3RWYWx1ZXM+KCkgOiBmcm9tLT5wcm9wZXJ0eTxTVkdMZW5ndGhMaXN0
VmFsdWVzPigpOworICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gdG8tPnByb3BlcnR5PFNWR0xlbmd0
aExpc3RWYWx1ZXM+KCk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhM
aXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnR5PFNWR0xlbmd0aExpc3RWYWx1ZXM+KCk7
CisgICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR0xl
bmd0aExpc3RWYWx1ZXM+KCk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMu
CiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5ndGhM
aXN0VmFsdWVzPihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQt
PmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3RoTGlzdCwgbV9jb250ZXh0RWxlbWVu
dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHJldmlz
aW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDE2ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckFuaW1h
dG9yOjpTVkdBbmltYXRlZE51CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZU51bWJlcihzdGQ6Om1ha2VfdW5pcXVlPGZsb2F0PigpKTsKLSAgICBmbG9hdCYgYW5pbWF0
ZWROdW1iZXIgPSBhbmltYXRlZFR5cGUtPm51bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJG
cm9tU3RyaW5nKHN0cmluZywgYW5pbWF0ZWROdW1iZXIpKQotICAgICAgICBhbmltYXRlZE51bWJl
ciA9IDA7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZykp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJl
ckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZU51bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVy
PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUxLDcgKzQ3LDcgQEAgdm9pZCBTVkdB
bmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVy
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5
cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZE51bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9p
ZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50
eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICB0by0+bnVtYmVyKCkgKz0gZnJvbS0+bnVtYmVyKCk7CisgICAgdG8t
PnByb3BlcnR5PGZsb2F0PigpICs9IGZyb20tPnByb3BlcnR5PGZsb2F0PigpOwogfQogCiBzdGF0
aWMgZmxvYXQgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBmbG9hdCBudW1iZXIgPSAwOwotICAgIHBhcnNlTnVt
YmVyRnJvbVN0cmluZyhzdHJpbmcsIG51bWJlcik7Ci0gICAgcmV0dXJuIG51bWJlcjsKKyAgICBy
ZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZyk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShm
bG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBm
cm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0
aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTAgKzc4LDEwIEBAIHZvaWQg
U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRp
b25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBmbG9hdCBm
cm9tTnVtYmVyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+bnVtYmVyKCkgOiBmcm9tLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0
b051bWJlciA9IHRvLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJl
ciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXIoKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1i
ZXIgPSBhbmltYXRlZC0+bnVtYmVyKCk7CisgICAgZmxvYXQgZnJvbU51bWJlciA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBy
b3BlcnR5PGZsb2F0PigpIDogZnJvbS0+cHJvcGVydHk8ZmxvYXQ+KCk7CisgICAgZmxvYXQgdG9O
dW1iZXIgPSB0by0+cHJvcGVydHk8ZmxvYXQ+KCk7CisgICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRp
b25OdW1iZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8ZmxvYXQ+KCk7CisgICAgZmxv
YXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWQtPnByb3BlcnR5PGZsb2F0PigpOwogCiAgICAg
Ly8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+
YWRqdXN0Rm9ySW5oZXJpdGFuY2U8ZmxvYXQ+KHBhcnNlTnVtYmVyRnJvbVN0cmluZywgbV9hbmlt
YXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbU51bWJlciwgbV9jb250
ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmNwcAkocmV2aXNpb24gMjEyNzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiwxMiBAQCBT
VkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6bWFrZV91bmlxdWU8
U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5udW1iZXJMaXN0KCku
cGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVz
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxp
c3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDggKzY1LDggQEAg
dm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YWRkQQogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBmcm9t
LT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3Qo
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IGZyb20tPnByb3BlcnR5PFNWR051
bWJlckxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPnByb3BlcnR5
PFNWR051bWJlckxpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNp
emUgPSBmcm9tTnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUg
fHwgZnJvbU51bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCkBAIC04MiwxMCAr
ODAsMTAgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsYwogewogICAg
IEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbU51bWJl
ckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IGFuaW1hdGVkLT5udW1iZXJMaXN0KCkgOiBmcm9tLT5udW1iZXJMaXN0KCk7Ci0gICAgY29u
c3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRv
JiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVy
TGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1hdGVkLT5udW1iZXJM
aXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTxT
VkdOdW1iZXJMaXN0VmFsdWVzPigpIDogZnJvbS0+cHJvcGVydHk8U1ZHTnVtYmVyTGlzdFZhbHVl
cz4oKTsKKyAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+cHJvcGVydHk8U1ZHTnVt
YmVyTGlzdFZhbHVlcz4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJl
ckxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8U1ZHTnVtYmVyTGlzdFZhbHVlcz4o
KTsKKyAgICBhdXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZH
TnVtYmVyTGlzdFZhbHVlcz4oKTsKICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0
RnJvbVRvTGlzdFZhbHVlczxTVkdOdW1iZXJMaXN0VmFsdWVzPihmcm9tTnVtYmVyTGlzdCwgdG9O
dW1iZXJMaXN0LCBhbmltYXRlZE51bWJlckxpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1
cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzMsMTggKzMzLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmlt
YXRvcjoKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+PigpKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1i
ZXIgPSBhbmltYXRlZFR5cGUtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJz
ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgYW5pbWF0ZWROdW1iZXIuZmlyc3QsIGFuaW1h
dGVkTnVtYmVyLnNlY29uZCkpIHsKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIuZmlyc3QgPSAwOwot
ICAgICAgICBhbmltYXRlZE51bWJlci5zZWNvbmQgPSAwOwotICAgIH0KLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlw
ZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1i
ZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU0
LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogCiB2
b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6cmVzZXRBbmltVmFs
VG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8
U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBl
LCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJPcHRpb25hbE51bWJlcik7CisgICAgcmVzZXRGcm9t
QmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVk
VHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJB
bmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzIsOCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRv
LT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGZyb21OdW1i
ZXJQYWlyID0gZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Cisg
ICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0JiwgZmxvYXQmPiBmcm9tTnVtYmVyUGFpciA9IGZyb20t
PnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOworICAgIHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0
Jj4gdG9OdW1iZXJQYWlyID0gdG8tPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOwogCiAgICAg
dG9OdW1iZXJQYWlyLmZpcnN0ICs9IGZyb21OdW1iZXJQYWlyLmZpcnN0OwogICAgIHRvTnVtYmVy
UGFpci5zZWNvbmQgKz0gZnJvbU51bWJlclBhaXIuc2Vjb25kOwpAQCAtODQsMTAgKzc4LDEwIEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBj
b25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1i
ZXJPcHRpb25hbE51bWJlcigpIDogIGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAg
Y29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJP
cHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9u
YWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQ
YWlyID0gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7CisgICAgY29uc3Qgc3RkOjpw
YWlyPGZsb2F0JiwgZmxvYXQmPiBmcm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnRpZXM8Zmxv
YXQsIGZsb2F0PigpIDogIGZyb20tPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOworICAgIGNv
bnN0IHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0Jj4gdG9OdW1iZXJQYWlyID0gdG8tPnByb3BlcnRp
ZXM8ZmxvYXQsIGZsb2F0PigpOworICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0Jj4g
dG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnRp
ZXM8ZmxvYXQsIGZsb2F0PigpOworICAgIHN0ZDo6cGFpcjxmbG9hdCYsIGZsb2F0Jj4gYW5pbWF0
ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPnByb3BlcnRpZXM8ZmxvYXQsIGZsb2F0PigpOwogCiAg
ICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGZyb21OdW1iZXJQYWlyLmZpcnN0LCB0b051bWJlclBhaXIuZmlyc3QsIHRv
QXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpci5maXJzdCwgYW5pbWF0ZWROdW1iZXJQYWlyLmZpcnN0
KTsKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50
YWdlLCByZXBlYXRDb3VudCwgZnJvbU51bWJlclBhaXIuc2Vjb25kLCB0b051bWJlclBhaXIuc2Vj
b25kLCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIuc2Vjb25kLCBhbmltYXRlZE51bWJlclBh
aXIuc2Vjb25kKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCShy
ZXZpc2lvbiAyMTI3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5
VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zMyw5ICszMiw3IEBAIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpTVkdB
bmltYXRlZFBhdGgKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7Ci0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0
cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJpbmcsICpi
eXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDMsOSArNDAsOSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltCiAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogCiAgICAgLy8gQnVpbGQgaW5pdGlhbCBwYXRoIGJ5
dGUgc3RyZWFtLgotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0
aEJ5dGVTdHJlYW0+KCk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMs
IGJ5dGVTdHJlYW0uZ2V0KCkpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBh
dGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICByZXNldEFuaW1WYWxU
b0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgKmFuaW1hdGVkVHlwZSk7CisgICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RvcEFuaW1WYWxB
bmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtODAsNyArNzcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogICAgIEFT
U0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChh
bmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFu
aW1hdGVkVHlwZXMsICZ0eXBlLnByb3BlcnR5PFNWR1BhdGhCeXRlU3RyZWFtPigpKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtOTgsMTIgKzk1
LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGUKICAgICBBU1NF
UlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUGF0aCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZy
b20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsK
LSAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC0+c2l6ZSgpOwotICAgIGlmICgh
ZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6ZSAhPSB0b1BhdGgtPnNpemUoKSkKKyAgICBjb25z
dCBhdXRvJiBmcm9tUGF0aCA9IGZyb20tPnByb3BlcnR5PFNWR1BhdGhCeXRlU3RyZWFtPigpOwor
ICAgIGF1dG8mIHRvUGF0aCA9IHRvLT5wcm9wZXJ0eTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAg
ICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAgaWYgKCFmcm9t
UGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0aCk7CisgICAg
YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50
YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmlt
YXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmlt
YXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBTVkdBbmltYXRl
ZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFt
KiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRo
ID0gdG8tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9mRHVyYXRpb25Q
YXRoID0gdG9BdEVuZE9mRHVyYXRpb24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSog
YW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9tUGF0aCA9IGZy
b20tPnByb3BlcnR5PFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIGF1dG8mIHRvUGF0aCA9IHRv
LT5wcm9wZXJ0eTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJh
dGlvblBhdGggPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8U1ZHUGF0aEJ5dGVTdHJlYW0+
KCk7CisgICAgYXV0byYgYW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1BhdGhC
eXRlU3RyZWFtPigpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiB1
bmRlcmx5aW5nUGF0aDsKICAgICBib29sIGlzVG9BbmltYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbjsKLSAgICBpZiAoaXNUb0FuaW1hdGlv
bikgewotICAgICAgICB1bmRlcmx5aW5nUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29weSgpOwotICAg
ICAgICBmcm9tUGF0aCA9IHVuZGVybHlpbmdQYXRoLmdldCgpOwotICAgIH0KKyAgICBpZiAoaXNU
b0FuaW1hdGlvbikKKyAgICAgICAgZnJvbVBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBD
YWNoZSB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZSBiZWZvcmUgdGhlIGJ1aWxkQW5pbWF0ZWRT
VkdQYXRoQnl0ZVN0cmVhbSgpIGNsZWFycyBhbmltYXRlZFBhdGguCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBsYXN0QW5pbWF0ZWRQYXRoOwotICAgIGlmICghZnJvbVBh
dGgtPnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9B
bmltYXRpb24pKQotICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5
KCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbGFzdEFuaW1hdGVkUGF0aDsKKyAgICBpZiAoIWZy
b21QYXRoLnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlz
VG9BbmltYXRpb24pKQorICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoOwog
CiAgICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUs
IGFzIHRoZSBwYXRoIGFuaW1hdGlvbiBpcyBub3QgYSByZWd1bGFyIFZlY3RvcjxTVkdYWFg+IHR5
cGUsIGJ1dCBhIFNWR1BhdGhCeXRlU3RyZWFtLCB0aGF0IHdvcmtzIGRpZmZlcmVudGx5LgotICAg
IGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhC
eXRlU3RyZWFtPigqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2Us
IGZhbHNlKSkKKyAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZh
bHVlczxTVkdQYXRoQnl0ZVN0cmVhbT4oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQYXRoLCBw
ZXJjZW50YWdlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1aWxkQW5pbWF0ZWRT
VkdQYXRoQnl0ZVN0cmVhbSgqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNl
bnRhZ2UpOworICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShmcm9tUGF0aCwgdG9Q
YXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOwogCiAgICAgLy8gSGFuZGxlIGFkZGl0aXZl
PSdzdW0nLgotICAgIGlmIChsYXN0QW5pbWF0ZWRQYXRoKQotICAgICAgICBhZGRUb1NWR1BhdGhC
eXRlU3RyZWFtKCphbmltYXRlZFBhdGgsICpsYXN0QW5pbWF0ZWRQYXRoKTsKKyAgICBpZiAoIWxh
c3RBbmltYXRlZFBhdGguaXNFbXB0eSgpKQorICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFt
KGFuaW1hdGVkUGF0aCwgbGFzdEFuaW1hdGVkUGF0aCk7CiAKICAgICAvLyBIYW5kbGUgYWNjdW11
bGF0ZT0nc3VtJy4KICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkg
JiYgcmVwZWF0Q291bnQpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVk
UGF0aCwgKnRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVwZWF0Q291bnQpOworICAgICAgICBhZGRU
b1NWR1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwgdG9BdEVuZE9mRHVyYXRpb25QYXRoLCBy
ZXBlYXRDb3VudCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxh
dGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAyMTI3NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCwxNCArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6U1ZH
QW5pbWF0ZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2lu
dExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpOwotICAgIHBvaW50
c0xpc3RGcm9tU1ZHRGF0YShhbmltYXRlZFR5cGUtPnBvaW50TGlzdCgpLCBzdHJpbmcpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5n
KSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyAr
NDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0b3BBCiAKIHZvaWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0
ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50
TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0KTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlw
ZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTY5LDggKzY3LDggQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjphZGRBbgogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQb2ludHMpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tUG9pbnRMaXN0ID0gZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgdG9Qb2ludExp
c3QgPSB0by0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IGZy
b20tPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiB0b1BvaW50TGlz
dCA9IHRvLT5wcm9wZXJ0eTxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBm
cm9tUG9pbnRMaXN0U2l6ZSA9IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVBv
aW50TGlzdFNpemUgfHwgZnJvbVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Quc2l6ZSgpKQpA
QCAtODQsMTAgKzgyLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2Fs
Y3UKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8m
IGZyb21Qb2ludExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wb2ludExpc3QoKSA6IGZyb20tPnBvaW50TGlzdCgpOwot
ICAgIGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlzdCgpOwotICAgIGNvbnN0
IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnBv
aW50TGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRMaXN0ID0gYW5pbWF0ZWQtPnBvaW50
TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcm9wZXJ0eTxT
VkdQb2ludExpc3RWYWx1ZXM+KCkgOiBmcm9tLT5wcm9wZXJ0eTxTVkdQb2ludExpc3RWYWx1ZXM+
KCk7CisgICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cHJvcGVydHk8U1ZHUG9pbnRM
aXN0VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0
ID0gdG9BdEVuZE9mRHVyYXRpb24tPnByb3BlcnR5PFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKKyAg
ICBhdXRvJiBhbmltYXRlZFBvaW50TGlzdCA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdQb2ludExp
c3RWYWx1ZXM+KCk7CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xp
c3RWYWx1ZXM8U1ZHUG9pbnRMaXN0VmFsdWVzPihmcm9tUG9pbnRMaXN0LCB0b1BvaW50TGlzdCwg
YW5pbWF0ZWRQb2ludExpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8uY3BwCShyZXZpc2lvbiAyMTI3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMx
LDEyIEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjoKIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNw
ZWN0UmF0aW8oc3RkOjptYWtlX3VuaXF1ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkp
OwotICAgIGFuaW1hdGVkVHlwZS0+cHJlc2VydmVBc3BlY3RSYXRpbygpLnBhcnNlKHN0cmluZyk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJv
bVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRp
byhjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4o
YW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQog
CiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyk7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW9BbmltYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVCht
X2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJh
dGlvID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+cHJlc2VydmVBc3BlY3RSYXRpbygpIDogZnJvbS0+cHJlc2VydmVBc3BlY3RS
YXRpbygpOwotICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHRvLT5wcmVz
ZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
ID0gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9t
UHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZT4oKSA6IGZyb20tPnByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4o
KTsKKyAgICBjb25zdCBhdXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJvcGVydHk8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpOworICAgIGF1dG8mIGFuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5wcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihwZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3Bl
Y3RSYXRpbywgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvLCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHJldmlz
aW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OlNWR0FuaW1hdGVkUmVjdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
UmVjdChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0UmVjdD4oKSk7Ci0gICAgcGFyc2VSZWN0KHN0cmlu
ZywgYW5pbWF0ZWRUeXBlLT5yZWN0KCkpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVj
dD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3QoY29uc3RydWN0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0b3BBbmltVmEKIAogdm9pZCBTVkdB
bmltYXRlZFJlY3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnJlY3QpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw3ICs2NSw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFkZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkUmVjdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+
dHlwZSgpKTsKIAotICAgIHRvLT5yZWN0KCkgKz0gZnJvbS0+cmVjdCgpOworICAgIHRvLT5wcm9w
ZXJ0eTxGbG9hdFJlY3Q+KCkgKz0gZnJvbS0+cHJvcGVydHk8RmxvYXRSZWN0PigpOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20s
IFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24s
IFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC03NSwxMCArNzMsMTAgQEAgdm9pZCBTVkdB
bmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVs
ZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IEZsb2F0
UmVjdCYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5yZWN0KCkgOiBmcm9tLT5yZWN0KCk7Ci0gICAgY29uc3Qg
RmxvYXRSZWN0JiB0b1JlY3QgPSB0by0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9B
dEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnJlY3QoKTsKLSAgICBGbG9h
dFJlY3QmIGFuaW1hdGVkUmVjdCA9IGFuaW1hdGVkLT5yZWN0KCk7CisgICAgY29uc3QgRmxvYXRS
ZWN0JiBmcm9tUmVjdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByb3BlcnR5PEZsb2F0UmVjdD4oKSA6IGZyb20tPnByb3Bl
cnR5PEZsb2F0UmVjdD4oKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCA9IHRvLT5wcm9w
ZXJ0eTxGbG9hdFJlY3Q+KCk7CisgICAgY29uc3QgRmxvYXRSZWN0JiB0b0F0RW5kT2ZEdXJhdGlv
blJlY3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8RmxvYXRSZWN0PigpOworICAgIEZs
b2F0UmVjdCYgYW5pbWF0ZWRSZWN0ID0gYW5pbWF0ZWQtPnByb3BlcnR5PEZsb2F0UmVjdD4oKTsK
IAogICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUmVjdC54KCk7CiAgICAgZmxvYXQgYW5p
bWF0ZWRZID0gYW5pbWF0ZWRSZWN0LnkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmNwcAkocmV2aXNpb24gMjEyNzczKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDEyIEBA
IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OlNWR0FuaW1hdGVkU3QKIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5n
PigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnN0cmluZygpID0gc3RyaW5nOwotICAgIHJldHVybiBh
bmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3Bl
cnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNDgsNyArNDYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0
b3I6OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlw
ZTo6c3RyaW5nKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFu
aW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6
OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTc2LDkgKzc0LDkgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0Fu
aW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFT
U0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+
c3RyaW5nKCk7Ci0gICAgU3RyaW5nIHRvU3RyaW5nID0gdG8tPnN0cmluZygpOwotICAgIFN0cmlu
ZyYgYW5pbWF0ZWRTdHJpbmcgPSBhbmltYXRlZC0+c3RyaW5nKCk7CisgICAgU3RyaW5nIGZyb21T
dHJpbmcgPSBmcm9tLT5wcm9wZXJ0eTxTdHJpbmc+KCk7CisgICAgU3RyaW5nIHRvU3RyaW5nID0g
dG8tPnByb3BlcnR5PFN0cmluZz4oKTsKKyAgICBTdHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gYW5p
bWF0ZWQtPnByb3BlcnR5PFN0cmluZz4oKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5j
ZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFN0
cmluZz4ocGFyc2VTdHJpbmdGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9w
ZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU3RyaW5nLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCShyZXZp
c2lvbiAyMTI3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTUgKzQxLDEyIEBAIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdEFuaW1hdG9yOjpTVkdBbmkKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5w
YXJzZShtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScpOwotICAgIEFTU0VSVChh
bmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5zaXplKCkgPD0gMSk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcobV90cmFuc2Zvcm1U
eXBlU3RyaW5nICsgc3RyaW5nICsgJyknKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qo
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVk
VHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs1Niw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnMKIAogdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+
KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOwor
ICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
OjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC03Nyw4ICs3NCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0QW5pbWF0b3I6OmEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkVHJh
bnNmb3JtTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAot
ICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJhbnNmb3JtTGlzdCgp
OwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1MaXN0KCk7CisgICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT5wcm9wZXJ0eTxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzPigpOworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT5wcm9wZXJ0
eTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOwogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RT
aXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVRyYW5zZm9ybUxp
c3RTaXplIHx8IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6ZSgp
KQogICAgICAgICByZXR1cm47CkBAIC05OCwxMCArOTUsMTAgQEAgdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgIC8vIFNwZWM6IFRvIGFuaW1hdGlvbnMgcHJvdmlk
ZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IHRvIGdldCBhIHNtb290aCBjaGFuZ2UgZnJvbSB0aGUg
dW5kZXJseWluZyB2YWx1ZSB0byB0aGUKICAgICAvLyDigJh0b+KAmSBhdHRyaWJ1dGUgdmFsdWUs
IHdoaWNoIGNvbmZsaWN0cyBtYXRoZW1hdGljYWxseSB3aXRoIHRoZSByZXF1aXJlbWVudCBmb3Ig
YWRkaXRpdmUgdHJhbnNmb3JtIGFuaW1hdGlvbnMKICAgICAvLyB0byBiZSBwb3N0LW11bHRpcGxp
ZWQuIEFzIGEgY29uc2VxdWVuY2UsIGluIFNWRyAxLjEgdGhlIGJlaGF2aW9yIG9mIHRvIGFuaW1h
dGlvbnMgZm9yIOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkgaXMgdW5kZWZpbmVkLgotICAgIGNvbnN0
IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGNv
bnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0gdG9BdEVuZE9mRHVyYXRp
b24tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBh
bmltYXRlZC0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1M
aXN0ID0gZnJvbS0+cHJvcGVydHk8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKKyAgICBjb25z
dCBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+cHJvcGVydHk8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Qg
PSB0b0F0RW5kT2ZEdXJhdGlvbi0+cHJvcGVydHk8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsK
KyAgICBhdXRvJiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBhbmltYXRlZC0+cHJvcGVydHk8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKIAogICAgIC8vIFBhc3MgZmFsc2UgdG8gJ3Jlc2l6ZUFu
aW1hdGVkTGlzdElmTmVlZGVkJyBoZXJlLCBhcyB0aGUgc3BlY2lhbCBwb3N0LW11bHRpcGxpY2F0
aW9uIGJlaGF2aW9yIG9mIDxhbmltYXRlVHJhbnNmb3JtPiBuZWVkcyB0byBiZSByZXNwZWN0ZWQg
YmVsb3cuCiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1
ZXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oZnJvbVRyYW5zZm9ybUxpc3QsIHRvVHJhbnNmb3Jt
TGlzdCwgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LCBwZXJjZW50YWdlLCBmYWxzZSkpCkBAIC0xMzEs
OCArMTI4LDggQEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAg
IGF1dG8gZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CiAgICAgYXV0byB0
byA9IGNvbnN0cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0gICAgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1M
aXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9
IGZyb20tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgdG9U
cmFuc2Zvcm1MaXN0ID0gdG8tPnByb3BlcnR5PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CiAg
ICAgdW5zaWduZWQgaXRlbXNDb3VudCA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUoKTsKICAgICBp
ZiAoIWl0ZW1zQ291bnQgfHwgaXRlbXNDb3VudCAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6ZSgpKQog
ICAgICAgICByZXR1cm4gLTE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
LmNwcAkocmV2aXNpb24gMjEyNzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDIyOSArMjcsNzMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1TVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3Bl
cnR5VHlwZSB0eXBlKQotICAgIDogbV90eXBlKHR5cGUpCitBbmltYXRlZFByb3BlcnR5VHlwZSBT
VkdBbmltYXRlZFR5cGU6OnR5cGUoKSBjb25zdAogewotfQotCi1TVkdBbmltYXRlZFR5cGU6On5T
VkdBbmltYXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmlt
YXRlZEFuZ2xlOgotICAgICAgICBkZWxldGUgbV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb247Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAgICAgICBkZWxldGUg
bV9kYXRhLmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoK
LSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxldGUgbV9kYXRhLmVudW1lcmF0aW9uOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAg
ICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRl
ZExlbmd0aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoTGlzdDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5u
dW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAg
ICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1i
ZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6
Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wb2ludExpc3Q7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgICAgICBk
ZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnJlY3Q7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuc3Ry
aW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGJyZWFrOworICAgIGlmIChtX3ZhbHVlMS0+aXM8U1ZHQW5nbGVWYWx1ZT4oKSkgeworICAg
ICAgICBBU1NFUlQobV92YWx1ZTIgJiYgbV92YWx1ZTItPmlzPHVuc2lnbmVkPigpKTsKKyAgICAg
ICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CiAgICAgfQotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24o
c3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IGFuZ2xl
QW5kRW51bWVyYXRpb24pCi17Ci0gICAgQVNTRVJUKGFuZ2xlQW5kRW51bWVyYXRpb24pOwotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFu
aW1hdGVkQW5nbGUpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRp
b24gPSBhbmdsZUFuZEVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+IGJvb2xlYW4pCi17Ci0gICAg
QVNTRVJUKGJvb2xlYW4pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEuYm9vbGVhbiA9IGJvb2xlYW4ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPiBjb2xvcikKLXsKLSAgICBBU1NF
UlQoY29sb3IpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KEFuaW1hdGVkQ29sb3IpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmNv
bG9yID0gY29sb3IucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAg
CisgICAgaWYgKG1fdmFsdWUxLT5pczxib29sPigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRC
b29sZWFuOworICAgIAorICAgIGlmIChtX3ZhbHVlMS0+aXM8Q29sb3I+KCkpCisgICAgICAgIHJl
dHVybiBBbmltYXRlZENvbG9yOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25l
ZD4gZW51bWVyYXRpb24pCi17Ci0gICAgQVNTRVJUKGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVu
dW1lcmF0aW9uKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1l
cmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIo
c3RkOjp1bmlxdWVfcHRyPGludD4gaW50ZWdlcikKLXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
QW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50
ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKQotewotICAgIEFTU0VSVChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9k
YXRhLmludGVnZXJPcHRpb25hbEludGVnZXIgPSBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9w
dHI8U1ZHTGVuZ3RoVmFsdWU+IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZExlbmd0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlMS0+
aXM8dW5zaWduZWQ+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxl
bmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+IGxlbmd0aExpc3Qp
Ci17Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlzdCA9IGxlbmd0aExpc3QucmVsZWFzZSgpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczxpbnQ+KCkp
CisgICAgICAgIHJldHVybiBtX3ZhbHVlMiAmJiBtX3ZhbHVlMi0+aXM8aW50PigpID8gQW5pbWF0
ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyIDogQW5pbWF0ZWRJbnRlZ2VyOworICAgIAorICAgIGlm
IChtX3ZhbHVlMS0+aXM8U1ZHTGVuZ3RoVmFsdWU+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRl
ZExlbmd0aDsKKyAgICAKKyAgICBpZiAobV92YWx1ZTEtPmlzPFNWR0xlbmd0aExpc3RWYWx1ZXM+
KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7CiAKLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6dW5p
cXVlX3B0cjxmbG9hdD4gbnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXIpOwotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVk
TnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIgPSBudW1iZXIucmVsZWFz
ZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1fdmFsdWUxLT5pczxm
bG9hdD4oKSkKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUyICYmIG1fdmFsdWUyLT5pczxmbG9hdD4o
KSA/IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIgOiBBbmltYXRlZE51bWJlcjsKIAotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1i
ZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVzPiBudW1iZXJMaXN0KQot
ewotICAgIEFTU0VSVChudW1iZXJMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZE51bWJlckxpc3QpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlckxpc3QgPSBudW1iZXJMaXN0LnJlbGVhc2UoKTsKLSAg
ICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlMS0+aXM8U1ZHTnVtYmVy
TGlzdFZhbHVlcz4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyTGlzdDsKIAotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1i
ZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+
IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXJPcHRpb25hbE51bWJl
cik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIgPSBudW1iZXJPcHRpb25hbE51bWJlci5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBpZiAobV92YWx1ZTEtPmlzPFNW
R1BhdGhCeXRlU3RyZWFtPigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOwogCi1zdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgo
c3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBwYXRoKQotewotICAgIEFTU0VSVChw
YXRoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZFBhdGgpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBhdGggPSBw
YXRoLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3Zh
bHVlMS0+aXM8U1ZHUG9pbnRMaXN0VmFsdWVzPigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRQ
b2ludHM7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlUG9pbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+IHBv
aW50TGlzdCkKLXsKLSAgICBBU1NFUlQocG9pbnRMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQorICAgIGlmIChtX3ZhbHVlMS0+aXM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRyPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLSAgICBBU1NF
UlQocHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsK
LSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVB
c3BlY3RSYXRpby5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KKyAgICBp
ZiAobV92YWx1ZTEtPmlzPEZsb2F0UmVjdD4oKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkUmVj
dDsKIAotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJU
KHJlY3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KEFuaW1hdGVkUmVjdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9
IHJlY3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYgKG1f
dmFsdWUxLT5pczxTdHJpbmc+KCkpCisgICAgICAgIHJldHVybiBBbmltYXRlZFN0cmluZzsKIAot
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVT
dHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4gc3RyaW5nKQotewotICAgIEFTU0VSVChzdHJp
bmcpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkU3RyaW5nKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5zdHJpbmcg
PSBzdHJpbmcucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19CisgICAgaWYg
KG1fdmFsdWUxLT5pczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICAgICByZXR1cm4g
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OwogCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHRyYW5zZm9ybUxpc3QpCi17Ci0gICAgQVNTRVJUKHRyYW5z
Zm9ybUxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEudHJhbnNmb3JtTGlzdCA9IHRyYW5zZm9ybUxpc3QucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsKIH0KIAotU3RyaW5n
IFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZygpCitTdHJpbmcgU1ZHQW5pbWF0ZWRUeXBl
Ojp0b1N0cmluZygpCiB7Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBzd2l0Y2ggKHR5cGUo
KSkgewogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xv
cik7Ci0gICAgICAgIHJldHVybiBtX2RhdGEuY29sb3ItPnNlcmlhbGl6ZWQoKTsKKyAgICAgICAg
cmV0dXJuIG1fdmFsdWUxLT50b1N0cmluZzxDb2xvcj4oKTsKICAgICBjYXNlIEFuaW1hdGVkTGVu
Z3RoOgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBtX2Rh
dGEubGVuZ3RoLT52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+dG9T
dHJpbmc8U1ZHTGVuZ3RoVmFsdWU+KCk7CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0g
ICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEu
bGVuZ3RoTGlzdC0+dmFsdWVBc1N0cmluZygpOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnRv
U3RyaW5nPFNWR0xlbmd0aExpc3RWYWx1ZXM+KCk7CiAgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
LSAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpu
dW1iZXIoKm1fZGF0YS5udW1iZXIpOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnRvU3RyaW5n
PGZsb2F0PigpOwogICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRh
LnJlY3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPngoKSkg
KyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwotICAgICAgICAg
ICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsgU3RyaW5n
OjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUx
LT50b1N0cmluZzxGbG9hdFJlY3Q+KCk7CiAgICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAg
ICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7
CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+dG9TdHJpbmc8U3RyaW5nPigpOwogCiAgICAgLy8g
VGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQ
cm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgdmFsdWVBc1N0cmluZygpIHN1
cHBvcnQuCiAgICAgY2FzZSBBbmltYXRlZEFuZ2xlOgpAQCAtMjcxLDMyICsxMTYsMjEgQEAgU3Ry
aW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZygpCiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQogCi1ib29sIFNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK2Jvb2wgU1ZHQW5pbWF0
ZWRUeXBlOjpwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBzd2l0Y2ggKHR5cGUoKSkg
ewogICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7
Ci0gICAgICAgICptX2RhdGEuY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFsdWUuc3Ry
aXBXaGl0ZVNwYWNlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1f
dmFsdWUxLT5wYXJzZTxDb2xvcj4oYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgY2FzZSBBbmltYXRl
ZExlbmd0aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4g
IW1fZGF0YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjps
ZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRp
b24oKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUxLT5wYXJzZTxTVkdMZW5ndGhWYWx1ZT4oYXR0
ck5hbWUsIHN0cmluZyk7CiAgICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFT
U0VSVChtX2RhdGEubGVuZ3RoTGlzdCk7Ci0gICAgICAgIG1fZGF0YS5sZW5ndGhMaXN0LT5wYXJz
ZSh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZShhdHRyTmFtZSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1f
dmFsdWUxLT5wYXJzZTxTVkdMZW5ndGhMaXN0VmFsdWVzPihhdHRyTmFtZSwgc3RyaW5nKTsKICAg
ICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJlcik7Ci0g
ICAgICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSwgKm1fZGF0YS5udW1iZXIpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUxLT5wYXJzZTxmbG9hdD4o
YXR0ck5hbWUsIHN0cmluZyk7CiAgICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VS
VChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+cGFyc2U8Rmxv
YXRSZWN0PihhdHRyTmFtZSwgc3RyaW5nKTsKICAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAg
ICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgICptX2RhdGEuc3RyaW5nID0gdmFs
dWU7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gbV92YWx1ZTEtPnBhcnNl
PFN0cmluZz4oYXR0ck5hbWUsIHN0cmluZyk7CiAKICAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBh
cHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1lbnQ6OmNzc1Byb3BlcnR5VG9UeXBlTWFwKCkg
YW5kIHRodXMgZG9uJ3QgbmVlZCBzZXRWYWx1ZUFzU3RyaW5nKCkgc3VwcG9ydC4gCiAgICAgY2Fz
ZSBBbmltYXRlZEFuZ2xlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAko
cmV2aXNpb24gMjEyNzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0xOSwyODQgKzIwLDk5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdBbmds
ZVZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNW
R0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgotI2luY2x1
ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5SW5mby5oIgotI2luY2x1ZGUgIlNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFZhbHVlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0aEJ5dGVTdHJlYW07Ci0KIGNsYXNzIFNW
R0FuaW1hdGVkVHlwZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLSAgICB2aXJ0dWFsIH5T
VkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBh
aXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+KTsK
LSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQ29sb3Io
c3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4p
OwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRl
Z2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9w
dHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVl
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxl
bmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyKHN0ZDo6dW5p
cXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVz
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51
bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0
Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQ
YXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQb2ludExpc3Qoc3RkOjp1bmlxdWVf
cHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRSZWN0Pik7
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVN0cmlu
ZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0FuaW1WYWwoQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8gTm9uLW11dGFibGUgYWNjZXNzb3JzLgot
ICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51
bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAg
ICB9Ci0KLSAgICBjb25zdCBib29sJiBib29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
Ym9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdAotICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWduZWQmIGVudW1lcmF0aW9u
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJh
dGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwotICAgIH0KLQotICAg
IGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7Ci0g
ICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgaW50ZWdlck9wdGlvbmFsSW50
ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXJPcHRp
b25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCgp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0xl
bmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5s
ZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZsb2F0JiBudW1iZXIoKSBjb25zdAotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdOdW1iZXJMaXN0VmFs
dWVzJiBudW1iZXJMaXN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyTGlzdDsK
LSAgICB9Ci0KLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgbnVtYmVyT3B0aW9u
YWxOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyT3B0
aW9uYWxOdW1iZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwot
ICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHUG9pbnRM
aXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsK
LSAgICB9Ci0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZl
QXNwZWN0UmF0aW8oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wcmVzZXJ2
ZUFzcGVjdFJhdGlvOwotICAgIH0KLQotICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnJlY3Q7Ci0gICAgfQotCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmco
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0cmluZyk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICAvLyBNdXRhYmxlIGFjY2Vzc29y
cy4KLSAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JiBhbmdsZUFuZEVudW1l
cmF0aW9uKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5p
bWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgICAgICA6IG1fdmFsdWUxKFNW
R0FuaW1hdGVkVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKHByb3BlcnR5KSkpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5hbmdsZUFuZEVudW1lcmF0aW9uOwogICAgIH0KIAotICAgIGJvb2wmIGJvb2xlYW4oKQorICAg
IFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4mJiB2YWx1ZSkKKyAgICAg
ICAgOiBtX3ZhbHVlMShXVEZNb3ZlKHZhbHVlKSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVhbjsK
ICAgICB9CiAKLSAgICBDb2xvciYgY29sb3IoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgU1ZHQW5pbWF0ZWRUeXBlKHN0
ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCisgICAg
ICAgIDogbV92YWx1ZTEoU1ZHQW5pbWF0ZWRWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuZmlyc3Qp
KQorICAgICAgICAsIG1fdmFsdWUyKFNWR0FuaW1hdGVkVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVz
LnNlY29uZCkpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3Ip
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsKICAgICB9CiAKLSAgICB1bnNpZ25lZCYg
ZW51bWVyYXRpb24oKQorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1
ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlMikKKyAgICAgICAg
OiBtX3ZhbHVlMShXVEZNb3ZlKHZhbHVlMSkpCisgICAgICAgICwgbV92YWx1ZTIoV1RGTW92ZSh2
YWx1ZTIpKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1lcmF0
aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247CiAgICAgfQogCi0gICAg
aW50JiBpbnRlZ2VyKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLmludGVnZXI7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVl
KCkpOwogICAgIH0KIAotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJPcHRpb25hbElu
dGVnZXIoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHBy
b3BlcnR5KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJP
cHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KFdURk1vdmUocHJvcGVydHkpKTsKICAgICB9CiAKLSAgICBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3Ro
KCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJl
ZlB0cjxTVkdBbmltYXRlZFZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3Zl
KHZhbHVlKSk7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgp
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlU
eXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8
UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQog
Ci0gICAgZmxvYXQmIG51bWJlcigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBl
MSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY3JlYXRlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5
cGUyPiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUocHJvcGVydGllcykp
OwogICAgIH0KIAotICAgIFNWR051bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3QoKQorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR0Fu
aW1hdGVkVmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHQW5pbWF0ZWRWYWx1ZT4mJiB2YWx1ZTIp
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7CisgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVl
MikpOwogICAgIH0KIAotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJPcHRpb25h
bE51bWJlcigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGNvbnN0
IFByb3BlcnR5VHlwZSYgcHJvcGVydHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7CisgICAgICAgIHJldHVybiBtX3ZhbHVlMS0+cHJv
cGVydHk8UHJvcGVydHlUeXBlPigpOwogICAgIH0KIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBw
YXRoKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgUHJvcGVydHlU
eXBlJiBwcm9wZXJ0eSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
UGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWUxLT5wcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAgU1ZHUG9pbnRMaXN0
VmFsdWVzJiBwb2ludExpc3QoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEs
IHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEmLCBQ
cm9wZXJ0eVR5cGUyJj4gcHJvcGVydGllcygpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0Owor
ICAgICAgICBBU1NFUlQobV92YWx1ZTIpOworICAgICAgICByZXR1cm4gc3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEmLCBQcm9wZXJ0eVR5cGUyJj4obV92YWx1ZTEtPnByb3BlcnR5PFByb3BlcnR5VHlw
ZTE+KCksIG1fdmFsdWUyLT5wcm9wZXJ0eTxQcm9wZXJ0eVR5cGUyPigpKTsKICAgICB9CiAKLSAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8p
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgIH0KLQot
ICAgIEZsb2F0UmVjdCYgcmVjdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7Ci0gICAgfQotCi0gICAg
U3RyaW5nJiBzdHJpbmcoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKLSAgICB9CisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKIAotICAgIFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgIH0KKyAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBl
KCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFs
dWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJik7CisgICAgU3Ry
aW5nIHRvU3RyaW5nKCk7CisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgU3RyaW5nJik7CiAKIHByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV90eXBl
OwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAgICAgICAg
ICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIHN0
ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRpb247Ci0g
ICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAgICAgdW5z
aWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAgIHN0ZDo6
cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNWR0xlbmd0
aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0aExpc3Q7
Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMqIG51
bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRpb25h
bE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgU1ZH
UG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVjdDsKLSAg
ICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMqIHRy
YW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+
IG1fdmFsdWUxLCBtX3ZhbHVlMjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lv
biAyMTI3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtNjMsMjUgKzYzLDI0IEBAIHByb3RlY3RlZDoKIAogICAgIC8v
IEhlbHBlcnMgZm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gc2luZ2xlIHR5cGVzLCBlZy4g
anVzdCBvbmUgU1ZHQW5pbWF0ZWRJbnRlZ2VyLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1W
YWxUeXBlPgotICAgIHN0ZDo6dW5pcXVlX3B0cjx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVu
dFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMSk7CiAgICAgICAgIGNvbnN0IHR5cGVuYW1l
IEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJv
cGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGll
c1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgICAgICBhdXRvIGNvcHkgPSBz
dGQ6Om1ha2VfdW5pcXVlPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4oYW5pbWF0
ZWRUeXBlKTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRp
b25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGNvcHkuZ2V0KCkpOwotICAgICAgICByZXR1cm4g
Y29weTsKKyAgICAgICAgUmVmUHRyPFNWR0FuaW1hdGVkVmFsdWU+IHZhbHVlID0gU1ZHQW5pbWF0
ZWRWYWx1ZTo6Y3JlYXRlKGFuaW1hdGVkVHlwZSk7CisgICAgICAgIHR5cGVuYW1lIEFuaW1WYWxU
eXBlOjpDb250ZW50VHlwZSYgcHJvcGVydHkgPSB2YWx1ZS0+cHJvcGVydHk8dHlwZW5hbWUgQW5p
bVZhbFR5cGU6OkNvbnRlbnRUeXBlPigpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxU
eXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJnByb3BlcnR5KTsK
KyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKTsK
ICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIHJl
c2V0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6
OkNvbnRlbnRUeXBlJiAoU1ZHQW5pbWF0ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVz
ZXRGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMSk7Ci0gICAgICAgIEFTU0VS
VCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTo6
Q29udGVudFR5cGUmIGFuaW1hdGVkVHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAg
ICAgYW5pbWF0ZWRUeXBlVmFsdWUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxB
bmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRUeXBlVmFsdWUpOwor
ICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIHByb3BlcnR5ID0gdHlw
ZS5wcm9wZXJ0eTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAg
IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+
KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUo
KTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rp
b24sIGFuaW1hdGVkVHlwZXMsIDAsICZwcm9wZXJ0eSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBAIC0xMDcsMzAgKzEwNiwzMyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICAvLyBIZWxwZXJzIGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMs
IGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0ZWRJbnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1l
IEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7
CiAgICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0
VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5p
bWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwog
ICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRU
eXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CiAK
LSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8dHlwZW5hbWUg
QW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50
VHlwZT4+KGZpcnN0VHlwZSwgc2Vjb25kVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5p
bVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmNvcHkt
PmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmY29weS0+c2Vjb25kKTsKLSAgICAgICAgcmV0
dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxTVkdBbmltYXRlZFZhbHVlPiBmaXJzdFZhbHVlID0g
U1ZHQW5pbWF0ZWRWYWx1ZTo6Y3JlYXRlKGZpcnN0VHlwZSk7CisgICAgICAgIFJlZlB0cjxTVkdB
bmltYXRlZFZhbHVlPiBzZWNvbmRWYWx1ZSA9IFNWR0FuaW1hdGVkVmFsdWU6OmNyZWF0ZShzZWNv
bmRUeXBlKTsKKyAgICAgICAgCisgICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVu
dFR5cGUmIGZpcnN0UHJvcGVydHkgPSBmaXJzdFZhbHVlLT5wcm9wZXJ0eTx0eXBlbmFtZSBBbmlt
VmFsVHlwZTE6OkNvbnRlbnRUeXBlPigpOworICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTI6
OkNvbnRlbnRUeXBlJiBzZWNvbmRQcm9wZXJ0eSA9IHNlY29uZFZhbHVlLT5wcm9wZXJ0eTx0eXBl
bmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlPigpOworCisgICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
JmZpcnN0UHJvcGVydHkpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsICZzZWNvbmRQcm9wZXJ0eSk7Cisg
ICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZpcnN0VmFsdWUp
LCBXVEZNb3ZlKHNlY29uZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
QW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9pZCByZXNldEZyb21C
YXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5
cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIChT
VkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVz
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNb
MF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9
PSBtX3R5cGUpOworICAgICAgICAKKyAgICAgICAgYXV0byBwcm9wZXJ0aWVzID0gdHlwZS5wcm9w
ZXJ0aWVzPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1W
YWxUeXBlMjo6Q29udGVudFR5cGU+KCk7CiAKLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIEFu
aW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5
cGU+JiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1h
dGVkVHlwZVZhbHVlLmZpcnN0ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5p
bVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50
QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlLnNlY29uZCA9IGNhc3RBbmlt
YXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1swXS5w
cm9wZXJ0aWVzWzFdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1
dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBl
cywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxB
bmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmYW5p
bWF0ZWRUeXBlVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlw
ZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmcHJvcGVydGllcy5m
aXJzdCk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlv
bkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJnByb3BlcnRpZXMuc2Vjb25kKTsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBl
Mj4KQEAgLTE4MywzMyArMTg1LDMzIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25B
Y3Rpb24gYWN0aW9uLCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpD
b250ZW50VHlwZSogdHlwZSA9IDApCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFj
dGlvbiBhY3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNv
bnRlbnRUeXBlKiBwcm9wZXJ0eSA9IG51bGxwdHIpCiAgICAgewogICAgICAgICAvLyBGSVhNRTog
Q2FuJ3QgdXNlIFNWR0VsZW1lbnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBiZWNhdXNlIG9mIGNp
cmN1bGFyIGhlYWRlciBkZXBlbmRlbmN5LiBXb3VsZCBiZSBuaWNlIHRvIHVudGFuZ2xlIHRoaXMu
CiAgICAgICAgIHNldEluc3RhbmNlVXBkYXRlc0Jsb2NrZWQoKmFuaW1hdGVkVHlwZXNbMF0uZWxl
bWVudCwgdHJ1ZSk7CiAKICAgICAgICAgZm9yIChhdXRvJiBhbmltYXRlZFR5cGUgOiBhbmltYXRl
ZFR5cGVzKSB7CiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih3
aGljaFByb3BlcnR5IDwgYW5pbWF0ZWRUeXBlLnByb3BlcnRpZXMuc2l6ZSgpKTsKLSAgICAgICAg
ICAgIEFuaW1WYWxUeXBlKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5n
ZXQoKSk7CisgICAgICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RB
bmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJv
cGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7CiAKICAgICAgICAgICAgIHN3aXRjaCAoYWN0
aW9uKSB7CiAgICAgICAgICAgICBjYXNlIFN0YXJ0QW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAg
ICAgICAgIEFTU0VSVCh0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LT5pc0Fu
aW1hdGluZygpKQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRl
ZCh0eXBlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQocHJvcGVydHkpOworICAgICAgICAgICAg
ICAgIGlmICghYW5pbWF0ZWRQcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZChwcm9wZXJ0eSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAocHJv
cGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmlt
YXRpb25FbmRlZCgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHkpOworICAgICAg
ICAgICAgICAgIGlmIChhbmltYXRlZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAg
ICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsV2lsbENoYW5nZUFjdGlvbjoK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5
LT5hbmltVmFsV2lsbENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHkp
OworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFuaW1WYWxEaWRDaGFu
Z2VBY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS0+YW5pbVZhbERpZENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCgh
cHJvcGVydHkpOworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRD
aGFuZ2UoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVmFsdWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRWYWx1ZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdMZW5n
dGhMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKKyNpbmNsdWRlICJT
VkdOdW1iZXJMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNp
bmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eUluZm8uaCIKKyNpbmNsdWRlICJT
VkdQcm9wZXJ0eVRyYWl0cy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIK
KyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5n
IFNWR0FuaW1hdGVkVmFyaWFudCA9IFZhcmlhbnQ8CisgICAgU1ZHQW5nbGVWYWx1ZSwKKyAgICBi
b29sLAorICAgIENvbG9yLAorICAgIHVuc2lnbmVkLAorICAgIGludCwKKyAgICBTVkdMZW5ndGhW
YWx1ZSwKKyAgICBTVkdMZW5ndGhMaXN0VmFsdWVzLAorICAgIGZsb2F0LAorICAgIFNWR051bWJl
ckxpc3RWYWx1ZXMsCisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0sCisgICAgU1ZHUG9pbnRMaXN0VmFs
dWVzLAorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSwKKyAgICBGbG9hdFJlY3QsCisg
ICAgU3RyaW5nLAorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKKz47CisKK2NsYXNzIFNWR0Fu
aW1hdGVkVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdBbmltYXRlZFZhbHVlPiwgcHVibGlj
IFNWR0FuaW1hdGVkVmFyaWFudCB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJv
cGVydHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRWYWx1ZT4gY3JlYXRlKGNvbnN0
IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdBbmltYXRlZFZhbHVlKHByb3BlcnR5KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRWYWx1ZT4g
Y3JlYXRlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRWYWx1ZShXVEZNb3ZlKHByb3BlcnR5KSkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgUmVmPFNW
R0FuaW1hdGVkVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdBbmltYXRlZFZhbHVlJiB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVmFsdWUodmFsdWUu
cHJvcGVydHk8UHJvcGVydHlUeXBlPigpKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wgaXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgcHJvcGVydHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5
VHlwZT4oKSk7CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgUHJvcGVy
dHlUeXBlJiBwcm9wZXJ0eSgpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBl
PigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAg
IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OnRvU3RyaW5nKHByb3BlcnR5PFByb3BlcnR5VHlwZT4oKSk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wgcGFyc2UoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsK
KyAgICAgICAgYXV0byByZXN1bHQgPSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojpw
YXJzZShhdHRyTmFtZSwgc3RyaW5nKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHByb3BlcnR5PFByb3BlcnR5VHlwZT4oKSA9IFdURk1v
dmUocmVzdWx0LnZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIFNWR0FuaW1hdGVk
VmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFZh
cmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsK
KyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIFNW
R0FuaW1hdGVkVmFsdWUoUHJvcGVydHlUeXBlJiYgdmFsdWUpCisgICAgICAgIDogU1ZHQW5pbWF0
ZWRWYXJpYW50KFdURk1vdmUodmFsdWUpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3Bl
cnR5VHlwZT4oKSk7CisgICAgfQorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjEy
NzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsMTIgKzM0LDI1IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdM
ZW5ndGhWYWx1ZTsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdMZW5ndGg7CiAgICAg
dXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0xlbmd0aExpc3Q7CiAKICAgICBzdGF0aWMg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9CisgICAg
c3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZywgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhNb2RlKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7Cisg
ICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdM
ZW5ndGhMaXN0VmFsdWVzPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxp
c3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9k
ZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiBs
aXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aExp
c3RWYWx1ZXMmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuaAkocmV2aXNpb24gMjEyNzczKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
Nyw3ICsxNDcsMTMgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTGVuZ3RoVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHTGVuZ3RoVmFsdWUgaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25z
dCBTVkdMZW5ndGhWYWx1ZSYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0K
KyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhWYWx1ZT4gcGFyc2UoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgU1ZHTGVuZ3RoVmFsdWUgbGVuZ3RoOworICAgICAgICBsZW5ndGguc2V0VmFsdWVBc1N0cmlu
ZyhzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRy
aWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsK
KyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhWYWx1ZSYg
bGVuZ3RoKSB7IHJldHVybiBsZW5ndGgudmFsdWVBc1N0cmluZygpOyB9CiB9OwogCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAyMTI3NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3NSArMjksMTAgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveC5o
IgorI2luY2x1ZGUgIlNWR01hcmtlclR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgewotICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAs
Ci0gICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKLSAgICBTVkdNYXJrZXJVbml0c1N0
cm9rZVdpZHRoCi19OwotCi1lbnVtIFNWR01hcmtlck9yaWVudFR5cGUgewotICAgIFNWR01hcmtl
ck9yaWVudFVua25vd24gPSAwLAotICAgIFNWR01hcmtlck9yaWVudEF1dG8sCi0gICAgU1ZHTWFy
a2VyT3JpZW50QW5nbGUsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKLQot
ICAgIC8vIEFkZCBuZXcgZWxlbWVudHMgYmVmb3JlIGhlcmUuCi0gICAgU1ZHTWFya2VyT3JpZW50
TWF4Ci19OwotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2Vy
VW5pdHNUeXBlPiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJl
dHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOyB9Ci0KLSAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQotICAgIHsKLSAgICAgICAgc3dpdGNoICh0
eXBlKSB7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgotICAgICAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3Bh
Y2VPblVzZToKLSAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNl
Iik7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKLSAgICAgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7Ci0gICAgICAgIH0KLQotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0g
ICAgfQotCi0gICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgdmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNl
IikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOwotICAg
ICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKLSAgICAgICAgICAgIHJldHVybiBTVkdN
YXJrZXJVbml0c1N0cm9rZVdpZHRoOwotICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtu
b3duOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4KLWlubGluZSB1bnNpZ25lZCBTVkdJRExFbnVt
TGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsg
cmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9Ci0KLXRlbXBsYXRlPD4gc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQg
aGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVy
c2U7IH0KLQotICAgIC8vIHRvU3RyaW5nIGlzIG5vdCBuZWVkZWQsIHN5bmNocm9uaXplT3JpZW50
VHlwZSgpIGhhbmRsZXMgdGhpcyBvbiBpdHMgb3duLgotCi0gICAgc3RhdGljIFNWR01hcmtlck9y
aWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBh
bmdsZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCi0gICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0
YXJ0LXJldmVyc2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFy
dFJldmVyc2U7Ci0gICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlKTsKLSAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247Ci0gICAgICAgIHJl
dHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKLSAgICB9Ci19OwotCiBjbGFzcyBTVkdNYXJrZXJF
bGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0
eVRyYWl0cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU1ZHTWFya2VyVW5pdHNU
eXBlIHsKKyAgICBTVkdNYXJrZXJVbml0c1Vua25vd24gPSAwLAorICAgIFNWR01hcmtlclVuaXRz
VXNlclNwYWNlT25Vc2UsCisgICAgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aAorfTsKKworZW51
bSBTVkdNYXJrZXJPcmllbnRUeXBlIHsKKyAgICBTVkdNYXJrZXJPcmllbnRVbmtub3duID0gMCwK
KyAgICBTVkdNYXJrZXJPcmllbnRBdXRvLAorICAgIFNWR01hcmtlck9yaWVudEFuZ2xlLAorICAg
IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UsCisgICAgCisgICAgLy8gQWRkIG5ldyBl
bGVtZW50cyBiZWZvcmUgaGVyZS4KKyAgICBTVkdNYXJrZXJPcmllbnRNYXgKK307CisgICAgCit0
ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPiB7
CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJr
ZXJVbml0c1N0cm9rZVdpZHRoOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhTVkdNYXJr
ZXJVbml0c1R5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAg
ICBjYXNlIFNWR01hcmtlclVuaXRzVW5rbm93bjoKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0
cmluZygpOworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U6CisgICAg
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1c2VyU3BhY2VPblVzZSIpOworICAgICAgICBj
YXNlIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg6CisgICAgICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJzdHJva2VXaWR0aCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgfQor
ICAgIHN0YXRpYyBTVkdNYXJrZXJVbml0c1R5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZh
bHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCisgICAg
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZTsKKyAgICAgICAgaWYg
KHZhbHVlID09ICJzdHJva2VXaWR0aCIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5p
dHNTdHJva2VXaWR0aDsKKyAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVW5rbm93bjsKKyAg
ICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2Vy
T3JpZW50VHlwZT4geworICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQorICAgIHN0YXRpYyBTVkdN
YXJrZXJPcmllbnRUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHQW5nbGVW
YWx1ZSYgYW5nbGUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8iKQorICAgICAg
ICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG87CisgICAgICAgIGlmICh2YWx1ZSA9PSAi
YXV0by1zdGFydC1yZXZlcnNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRB
dXRvU3RhcnRSZXZlcnNlOworICAgICAgICBhdXRvIHNldFZhbHVlUmVzdWx0ID0gYW5nbGUuc2V0
VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGlmIChzZXRWYWx1ZVJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRVbmtub3duOworICAg
ICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgfQorfTsKKwordGVtcGxhdGU8
Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4+IHsKKyAgICBzdGF0aWMgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHQW5nbGVW
YWx1ZSBhbmdsZTsKKyAgICAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBh
bmdsZSk7CisgICAgICAgIGlmIChvcmllbnRUeXBlICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQor
ICAgICAgICAgICAgYW5nbGUgPSB7IH07CisgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8U1ZHQW5n
bGVWYWx1ZSwgdW5zaWduZWQ+KGFuZ2xlLCBvcmllbnRUeXBlKTsKKyAgICB9Cit9OworCit0ZW1w
bGF0ZTw+CitpbmxpbmUgdW5zaWduZWQgU1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRB
bmdsZTsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEwICsz
NCwxNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+
IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFs
dWVzPiB7CiAgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyBy
ZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMg
bGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsK
KyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFs
dWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcg
TGlzdEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVt
YmVyOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHJldmlzaW9uIDIxMjc3MykK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOSw2ICsxOSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHUGF0aENv
bnN1bWVyLmgiCisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1By
b3BlcnR5VHJhaXRzLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC00NywzNCArNTAsMzkgQEAgcHVibGljOgogICAgIHR5cGVkZWYg
RGF0YTo6Y29uc3RfaXRlcmF0b3IgRGF0YUl0ZXJhdG9yOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJl
YW0oKSB7IH0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBEYXRhJiBkYXRhKSA6IG1fZGF0
YShkYXRhKSB7IH0KKyAgICBTVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYmIG90
aGVyKQorICAgICAgICA6IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkpCisgICAgeworICAg
IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90
aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBvdGhlcikKKyAgICAgICAgOiBtX2RhdGEob3RoZXIubV9kYXRhKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3BlcmF0b3I9KFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIG1fZGF0YSA9IFdURk1vdmUo
b3RoZXIubV9kYXRhKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KLQotICAgIHN0ZDo6
dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gY29weSgpIGNvbnN0CisgICAgU1ZHUGF0aEJ5
dGVTdHJlYW0mIG9wZXJhdG9yPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4obV9k
YXRhKTsKKyAgICAgICAgbV9kYXRhID0gb3RoZXIubV9kYXRhOworICAgICAgICByZXR1cm4gKnRo
aXM7CiAgICAgfQogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsgfQorICAgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsgcmV0
dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQ
YXRoQnl0ZVN0cmVhbT4gY29weSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZH
UGF0aEJ5dGVTdHJlYW0+KCp0aGlzKTsgfQorCiAgICAgRGF0YUl0ZXJhdG9yIGJlZ2luKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhLmJlZ2luKCk7IH0KICAgICBEYXRhSXRlcmF0b3IgZW5kKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhLmVuZCgpOyB9CiAKICAgICB2b2lkIGFwcGVuZCh1bnNpZ25lZCBj
aGFyIGJ5dGUpIHsgbV9kYXRhLmFwcGVuZChieXRlKTsgfQotICAgIHZvaWQgYXBwZW5kKGNvbnN0
IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAoYXV0byBzdHJl
YW0gOiBvdGhlcikKLSAgICAgICAgICAgIGFwcGVuZChzdHJlYW0pOwotICAgIH0KKyAgICB2b2lk
IGFwcGVuZChjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIHsgbV9kYXRhLmFwcGVuZFZl
Y3RvcihvdGhlci5tX2RhdGEpOyB9CiAgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7
IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhLnNpemUoKTsgfQor
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc0VtcHR5KCk7IH0KICAg
ICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQogCiAgICAg
Ly8gT25seSBkZWZpbmVkIHRvIGxldCBTVkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2UgdGhlIHN0
YW5kYXJkIGxpc3QgY29kZSBwYXRocyAtIHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxlZC4KQEAg
LTgzLDUgKzkxLDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGF0YSBtX2RhdGE7CiB9Owor
ICAgIAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3Ry
ZWFtPiB7CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFtIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIFNWR1BhdGhCeXRlU3RyZWFtKCk7IH0KKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVTdHJlYW0g
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1BhdGhC
eXRlU3RyZWFtIGJ5dGVTdHJlYW07CisgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgIHJl
dHVybiBieXRlU3RyZWFtOworICAgIH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIxMjc3
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ5LDE1ICsxNDksMTQgQEAgYm9vbCBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVT
dHJlYW0oY29ucwogCiBib29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJl
YW0mIHN0cmVhbVRvQXBwZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBieVN0cmVhbSwg
dW5zaWduZWQgcmVwZWF0Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJldHVybiB3aGVuIHN0cmVhbVRv
QXBwZW5kVG8gaXMgZW1wdHk/IERvbid0IHdlIHN0aWxsIG5lZWQgdG8gYXBwZW5kPworICAgIC8v
IFRoZSBieVN0cmVhbSB3aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0FwcGVuZFRvLiBTbyBz
dHJlYW1Ub0FwcGVuZFRvIGhhcyB0byBoYXZlIGVsZW1lbnRzLgogICAgIGlmIChzdHJlYW1Ub0Fw
cGVuZFRvLmlzRW1wdHkoKSB8fCBieVN0cmVhbS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgLy8gSXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5dGVTdHJlYW1CdWls
ZGVyIGZyb20gYSBzdHJlYW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFtPworICAgIC8vIGJ1
aWxkZXIgaXMgdGhlIGRlc3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3VyY2UgYW5kIGJ5U291
cmNlLiBUaGUgc3RyZWFtIG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJlYW1Ub0FwcGVuZFRv
KSBoYXMgdG8gYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyBhZGRBbmltYXRlZFBhdGguCiAgICAg
U1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBlbmRUbyk7Ci0KLSAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0cmVhbVRvQXBwZW5kVG87Ci0g
ICAgc3RyZWFtVG9BcHBlbmRUby5jbGVhcigpOworICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21T
dHJlYW1Db3B5ID0gV1RGTW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsKIAogICAgIFNWR1BhdGhCeXRl
U3RyZWFtU291cmNlIGZyb21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkpOwogICAgIFNWR1BhdGhCeXRl
U3RyZWFtU291cmNlIGJ5U291cmNlKGJ5U3RyZWFtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsMTUg
QEAgcHVibGljOgogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3Rl
bXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsK
ICAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsg
fTsgfQotCisgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7Cisg
ICAgICAgIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1
cm4gbGlzdDsKKyAgICB9CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAg
ICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVy
dHlUZWFyT2ZmID0gU1ZHUG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHJldmlzaW9uIDIxMjc3MykKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw2ICszNiwxMSBAQCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6
OlNWR1ByZXNlcnZlCiB7CiB9CiAKK1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHBhcnNl
KHN0cmluZyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZTo6c2V0QWxpZ24odW5zaWduZWQgc2hvcnQgYWxpZ24pCiB7CiAgICAgaWYgKGFsaWduID09
IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04gfHwgYWxpZ24gPiBTVkdfUFJFU0VSVkVB
U1BFQ1RSQVRJT19YTUFYWU1BWCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSgpOworICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShjb25zdCBTdHJp
bmcmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsaWduKHVuc2lnbmVkIHNob3J0KTsK
ICAgICB1bnNpZ25lZCBzaG9ydCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KQEAg
LTc3LDYgKzc4LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7CiAgICAgc3RhdGljIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUoKTsgfQorICAgIHN0YXRpYyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlKHN0cmluZyk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1
ZUFzU3RyaW5nKCk7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAkocmV2aXNpb24gMjEy
NzczKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MjAsNyArMjAsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJP
ZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlU
cmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0VHJhaXRzLmgJKHJldmlzaW9uIDIxMjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0VHJhaXRzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdQcm9w
ZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
RmxvYXRSZWN0PiB7Ci0gICAgc3RhdGljIEZsb2F0UmVjdCBpbml0aWFsVmFsdWUoKSB7IHJldHVy
biB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlw
ZSkKLSAgICB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodHlwZS54KCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnkoKSk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHR5cGUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwot
ICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjEyNzczKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsOCArNDIsMTYgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nKTsK
KyAgICAgICAgQVNTRVJUKGxpc3Quc2l6ZSgpIDw9IDEpOworICAgICAgICByZXR1cm4gbGlzdDsK
KyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQogCiAgICAgdXNp
bmcgTGlzdEl0ZW1UeXBlID0gU1ZHVHJhbnNmb3JtVmFsdWU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgJKHJldmlzaW9uIDIx
Mjc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDYgKzIwLDEyIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMCwx
MCArMzYsMjMgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzIHsgfTsKIHRlbXBsYXRlPD4KIHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZh
bHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFs
c2UiOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+
IHsKKyAgICBzdGF0aWMgQ29sb3IgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gQ29sb3IoKTsgfQor
ICAgIHN0YXRpYyBDb2xvciBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVy
biBDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsgfQorICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbG9yPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBDb2xvciBjb2xvciA9IENTU1Bh
cnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICByZXR1
cm4gY29sb3IuaXNWYWxpZCgpID8gY29sb3IgOiBzdGQ6Om9wdGlvbmFsPENvbG9yPigpOworICAg
IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IENvbG9yJiB0eXBlKSB7IHJldHVy
biB0eXBlLnNlcmlhbGl6ZWQoKTsgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPHVuc2lnbmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUp
IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CkBAIC00MiwxOSArNjEsODYgQEAgc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVkPiB7CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8aW50PiB7CiAgICAgc3RhdGljIGludCBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiAwOyB9CisgICAgc3RhdGljIGludCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyZzdHJpbmcp
IHsgcmV0dXJuIHN0cmluZy50b0ludFN0cmljdCgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhpbnQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CisgICAg
Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGludCwgaW50
Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8aW50LCBpbnQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIHsgfTsgfQorICAgIHN0YXRpYyBzdGQ6OnBhaXI8aW50LCBpbnQ+IGZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBmbG9hdCBmaXJzdE51bWJlciA9IDAs
IHNlY29uZE51bWJlciA9IDA7CisgICAgICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJl
cihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpKQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2Fz
dDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNv
bmROdW1iZXIpKSk7CisgICAgfQorfTsKIAogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPGZsb2F0PiB7CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IDA7IH0KKyAgICBzdGF0aWMgZmxvYXQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
KyAgICB7CisgICAgICAgIGZsb2F0IHR5cGUgPSAwOworICAgICAgICByZXR1cm4gcGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKHN0cmluZywgdHlwZSkgPyB0eXBlIDogMDsKKyAgICB9CisgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBT
dHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IG51bWJlcjsKKyAgICAgICAgcmV0
dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIG51bWJlcikgPyBudW1iZXIgOiBzdGQ6
Om9wdGlvbmFsPGZsb2F0PigpOworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGZs
b2F0IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OwogCiB0ZW1wbGF0
ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+IHsK
KyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4geyB9OyB9CisgICAgc3RhdGljIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IGZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBmbG9hdCBmaXJzdE51bWJlciA9
IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAgICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51
bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpKQorICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoZmlyc3ROdW1iZXIsIHNl
Y29uZE51bWJlcik7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPEZsb2F0UmVjdD4geworICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkg
eyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICBzdGF0aWMgRmxvYXRSZWN0IGZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAg
ICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IEZsb2F0UmVjdCgp
OworICAgICAgICAKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBw
YXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcs
IHJlY3QpID8gcmVjdCA6IHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PigpOworICAgIH0KKyAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKKyAgICB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
dHlwZS54KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcih0eXBlLnkoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0
KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3Rl
bXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+IHsKICAgICBzdGF0aWMg
U3RyaW5nIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0KKyAgICBz
dGF0aWMgU3RyaW5nIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0
cmluZzsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGFyc2UoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBz
dHJpbmc7IH0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333616</attachid>
            <date>2018-02-12 12:26:24 -0800</date>
            <delta_ts>2018-02-12 12:58:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180212122623.patch</filename>
            <type>text/plain</type>
            <size>374133</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxNThhMTM5MmI3ODc3
ZDdkYjE4MWU0MmM4NmFiZWYzNDczY2QxMS4uYTBjOWRjZmQyNmZmZDFjNzYzYmY2MDBhMDE1NGUy
MjY4NDYyOTMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5NyBAQAorMjAxOC0wMi0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
YWxsIHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVh
ci1vZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2Ut
YWZ0ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBv
biBkZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdo
ZW4gYW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcg
YQorICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMg
dGhlc2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0
aGUgU1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwK
KyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2Vk
IHRvIGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2lu
ZyBhIG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAg
ICAgICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25l
IHNpZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBo
YXBwZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAg
dGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBh
dHRyaWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRl
YXItb2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFw
cGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhl
IGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5
IG9mIHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYg
b2JqZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhp
cyBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNv
dW50ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3Ig
ZXZlcnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBu
b3QgbG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3
aGVyZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVz
ZW50IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0
aGlzIHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2gg
aXMgYSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRh
IHR5cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRy
aWJ1dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlw
ZSB0byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAg
ICAgIGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBk
YXRhIHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRv
IGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRo
ZSBTVkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1
ZT4+LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9s
ZCBSZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZl
cmVuY2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5nbGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZv
ckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6
OlNWR0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNU
b1RhcmdldCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmlt
YXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVu
dW1lcmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0
QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJP
cHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3Ro
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RB
bmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VO
dW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZE51bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Ry
aW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1h
dGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50
ZWdlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3Bl
Y3RSYXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24p
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1l
bnQ6OlNWR0VsbGlwc2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpz
ZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVT
cGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1
ZXM+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5n
dGhMaXN0VmFsdWVzPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhWYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+Ojpw
YXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1
ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTGlzdFZhbHVlcy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29w
eSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzOjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1
ZXM6OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFz
dFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01h
cmtlclVuaXRzVHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVt
VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46Omhp
Z2hlc3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1W
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmll
bnRUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRz
PFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVt
ZW50OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRC
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0
ZUZyb21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051
bWJlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRz
TGlzdEZyb21TVkdEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVh
bTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjppc0VtcHR5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRl
U3RyZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRo
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVh
dGVEV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25p
emVEKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdM
aXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICAqIHN2Zy9T
VkdQYXRoU2VnTGlzdFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dFNvdXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlz
dFZhbHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAg
ICAoV2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1Bv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
aW50OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcv
U1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAg
ICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2lu
dExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1Bv
aW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToK
KyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
bHlFbGVtZW50Ojpwb2ludExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NW
R1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0
OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6Omhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoK
KyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJp
bmdMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9y
bTo6bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm06OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFu
c2Zvcm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21T
dHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+
Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6OnBhcnNlVmlzaXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFs
dWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6aXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
U1ZHVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmll
d0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmll
d1NwZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJz
ZVZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJl
bnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5p
bWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5
bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6
Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZh
bHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xp
c3RQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpzZXRWYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFy
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXNB
bmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Om51bWJlck9m
SXRlbXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFs
aXplVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6
ZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6
Y2FuR2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1W
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVz
QW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJ
dGVtQmVmb3JlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5z
ZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6Y2FuUmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5OjpyZXBsYWNlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjpjYW5SZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXNQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQcm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2Zm
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZy
b21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRl
YXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZVByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOiBEZWxl
dGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRv
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQ
cm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTAy
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBG
cmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAwMTcyNTZl
YmUwNjAwNDZkZjlmZjYxMGQ1ZGY5Y2M1YWI3MjhjZjUwLi5lYmVhZDU4YzI1YmQ1ZDJiYzYxYmQ3
NjBkYTdjOGRhNTc5YWMyZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjA2Nyw3ICsyMDY3LDYgQEAg
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKIHN2Zy9TVkdBbmltYXRlZFJl
Y3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmNwcAotc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5jcHAKIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAogc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuY3BwCkBAIC0yMTMxLDYgKzIxMzAsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5jcHAKIHN2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5jcHAKIHN2Zy9T
VkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NWR01hcmtlckVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZGIwNGFhYmU4ZDZlMTcyMTc5YTQ1NTAwYTIzNjdlN2UwYTdhNmRmZi4u
Y2FiODI5NTI3YTY2ZmZiOGVkNDJiMDgwNWUyNjAwYTAyZTQxODU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTYzMSw3ICsx
NjMxLDE1IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTUwQ0I0MTFFOTU1
RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3Q0NDQ0IwMEE2OUUzOCAvKiBEZWNvZGlu
Z09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTVCODdFRDFDQUFGMEFC
MDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29k
ZXJDRy5oICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU2MjdC
NzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMg
LyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5ODIwMjU0NTZE
MDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdWYWx1ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTk5MjAy
NTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFERDNCM0I5MDBFOTJEQTMgLyogU1ZHQW5n
bGVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2OTFEREI4
NkQzMDBGRUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAv
KiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAwRkVGQjI5IC8qIFNWR1BhdGhTZWdMaXN0
VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkIxRERCODcx
QzAwRkVGQjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0QxQzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0MzOUMzNkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEzMzZGNzFE
ODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJ
bWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5n
U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVBQUM1OUIw
MDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE5Mjgs
NyArMTkzNiw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVm
ZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzE1NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpTQW5pbWF0aW9uRWZmZWN0VGltaW5nLmgg
Ki87IH07CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0tleWZyYW1lRWZmZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTU1NkNCNzFG
OUYwOUZDMDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVjdC5oICovOyB9OwogCQk3MUExQjYwODFE
RUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdz
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUEx
QjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1z
dHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLzsgfTsKKwkJ
NzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5
RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFEQ0I3MDAxNTY4
MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oICovOyB9OwogCQk3MUUyMTgzQTE3MzU5
RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4MzgxNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJ
bnNSZXNvdXJjZXMuaCAqLzsgfTsKQEAgLTIwMjcsNyArMjAzNSw3IEBACiAJCTdDMzBEOTg2MUY4
MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyogSlNBYm9y
dFNpZ25hbC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlG
OTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMzNjUxRERB
ODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBT
VkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIyOSAv
KiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZh
bHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdDMzlDMzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFEREI4MkNG
MDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBD
bGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1
N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjE1OSwxMCAr
MjE2Nyw5IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5
MTZDMUYyQUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCAqLzsgfTsKIAkJN0NF
MTkxN0IxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYw
MDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4RDRBMURE
NjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50Lmgg
Ki87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RDFERDY5
NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFF
MDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi87
IH07Ci0JCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3
RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IH07Ci0JCTdDRTU4RDVDMURE
N0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01h
dHJpeFZhbHVlLmggKi87IH07CisJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFu
c2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0NFNThENUMxREQ3
RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0
cml4VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3Jp
cHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5j
cHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRs
ZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3Jp
cHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9y
VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MjMwNCw3ICsyMzExLDcgQEAKIAkJODNGRTdDQTcxREE5RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJ
bml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZF
N0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0Mg
LyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5p
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgz
RkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNF
OTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsgfTsKLQkJODQxOUQyQTcxMjBEOTJEMDAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5
dGVTdHJlYW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhC
eXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBOTEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYg
LyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CiAJCTg0MTlEMkFEMTIwRDkyRkMw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQUIxMjBEOTJGQzAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJCTg0MTlEMkJBMTIwRTBDNzYwMDE0MUY4
RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJp
bmdCdWlsZGVyLmggKi87IH07CkBAIC0yMzMxLDcgKzIzMzgsNyBAQAogCQk4NDczMEQ5MzEyNDhG
MEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExp
Z2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRo
U2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIu
aCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFODEx
REY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsgfTsKLQkJODQ3NkM5RUMxMURG
NkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1Bh
dGhDb25zdW1lci5oICovOyB9OworCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0
aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQ3NkM5RjAxMURGNkE1
ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFy
c2VyLmggKi87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5
NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CiAJCTg0ODJCNzQ2
MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBI
YXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyNzYsOSArMzI4Myw5IEBACiAJCUIyMjI3QTRC
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI1MEQwMEJGMjAwMDcxQjc4MiAv
KiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNEUwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5o
ICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QkIwRDAw
QkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
UGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmgg
Ki87IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMx
MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5o
ICovOyB9OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsKKwkJQjIyMjdBNUIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNUUwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRo
U2VnQXJjLmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2Vn
Q2xvc2VQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oICovOyB9
OwogCQlCMjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4Q0Yw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaCAqLzsgfTsKQEAgLTcy
ODAsNyArNzI4Nyw2IEBACiAJCTQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRl
ZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzlEMzM0
MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWROdW1i
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRO
dW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0M0EwRjBCNTEzQUNDQ0ZG
MDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0Fu
aW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
QW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNjY2
MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04MTcxLDEwICs4MTc3LDEzIEBACiAJCTU1MEEwQkM4MDg1RjYw
MzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1NDY3NTc3MUZEMUZD
MUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNv
dXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEw
MDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTUwNEU5NDIwMkNERkQyMDA1MDdDNzMgLyog
U1ZHTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MENCNDExRTk1NUUzQzAwMTExQUEwIC8q
IEltYWdlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VUeXBl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTUxMzAwMDFFN0NDQ0NBMDBBNjlF
MzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERlY29kaW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdF
QTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNW
R0xpc3RWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2Vy
VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFya2VyVHlwZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRD
IC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYzMUQ4
OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2
RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04MTgyLDYgKzgxOTEsNyBAQAogCQk1NUFGMTRFMzFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVn
aXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUwIC8qIFNWR0ltYWdlQ2xpZW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNsaWVudHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNWR1Zh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3MUU1Mzg1MTYwMDM1NjYwMSAvKiBDcnlw
dG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBZXNDYmNDZmJQYXJhbXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNUIxRTUzOTM3OTAwMzU2NjAxIC8q
IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTk0NTIsNyArOTQ2Miw2IEBACiAJCTdDRTE5MTZFMUYyQUI3MEQwMDI3MkY3QiAvKiBKU0NhY2hl
UXVlcnlPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FjaGVRdWVyeU9wdGlvbnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0UxOTE2RjFGMkFCNzBGMDAyNzJG
NzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Zl
dGNoUmVxdWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NF
NThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdD
RTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0xlbmd0aFZhbHVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5MzYsOCArOTk0NSw4IEBACiAJ
CThBRjRFNTU0MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBRjRFNTU5MTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3Jt
YW5jZVRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5j
ZVRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QUY0RTU1QTExREM1QTYz
MDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFBlcmZvcm1hbmNlVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEUz
M0NEOTMyMDFBMjlDMTAwRTM5MDkzIC8qIEdhcExlbmd0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHYXBMZW5ndGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4QkQzN0E2NzIwMUJCMzlDMDAxMTczNEEgLyogUmVhZGFibGVTdHJlYW1DaHVuay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUNodW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCThFMzNDRDkzMjAxQTI5QzEwMEUzOTA5MyAvKiBHYXBMZW5ndGguY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2FwTGVuZ3RoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEU0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Zl
dGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEOTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4RUM2Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVuZ3RoLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhcExlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjI0MTMsNyArMjI0MjIsNiBAQAogCQkJCTcxNTdGMDYxMTUwQjY1NjQwMDZFQUFC
RCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0
RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCAqLywKIAkJCQlCMjIyNzdG
ODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLywKLQkJ
CQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLywKIAkJ
CQk0MzlEMzM0MDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlLmggKi8sCiAJCQkJ
ODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAq
LywKIAkJCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaCAqLywKQEAgLTIyNjE0LDExICsyMjYyMiwxNCBAQAogCQkJCUIyMjI3OEE1MEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QTYwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QTcwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLywKKwkJCQk1NTUwNEU5NDIwMkNERkQyMDA1MDdD
NzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8sCisJCQkJNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdE
IC8qIFNWR0xpc3RWYWx1ZXMuaCAqLywKIAkJCQlCMjIyNzhBQTBEMDBCRjIwMDA3MUI3ODIgLyog
U1ZHTG9jYXRhYmxlLmNwcCAqLywKIAkJCQlCMjIyNzhBQjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZH
TG9jYXRhYmxlLmggKi8sCiAJCQkJQjIyMjc4QUQwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtl
ckVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEFFMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJr
ZXJFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QUYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtl
ckVsZW1lbnQuaWRsICovLAorCQkJCTU1NzUwNTZDMUU1M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJr
ZXJUeXBlcy5oICovLAogCQkJCUIyMjI3OEIwMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxl
bWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QjEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc4QjIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50
LmlkbCAqLywKQEAgLTIyNzUyLDcgKzIyNzYzLDYgQEAKIAkJCQlCMjIyNzkwNzBEMDBCRjIxMDA3
MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTA4MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdSZWN0RWxlbWVudC5oICovLAogCQkJCUIyMjI3OTA5MEQwMEJGMjEwMDcxQjc4
MiAvKiBTVkdSZWN0RWxlbWVudC5pZGwgKi8sCi0JCQkJN0NFNThENEQxREQ2OTRGRTAwMTI4NTUy
IC8qIFNWR1JlY3RUcmFpdHMuaCAqLywKIAkJCQlCMjIyNzkwQTBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHUmVuZGVyaW5nSW50ZW50LmggKi8sCiAJCQkJQjIyMjc5MEIwRDAwQkYyMTAwNzFCNzgyIC8q
IFNWR1JlbmRlcmluZ0ludGVudC5pZGwgKi8sCiAJCQkJQjIyMjc5MEMwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMjI4MjksNiArMjI4MzksNyBAQAogCQkJ
CUIyMjI3OTU2MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzk1NzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5oICovLAogCQkJCUIyMjI3
OTU4MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmlkbCAqLywKKwkJCQk1NUU0NEFF
MDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFsdWUuaCAqLywKIAkJCQlCMjIyNzk1OTBEMDBCRjIx
MDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTVBMEQwMEJGMjEw
MDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oICovLAogCQkJCUIyMjI3OTVCMEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdWaWV3RWxlbWVudC5pZGwgKi8sCkBAIC0yOTY2OSw2ICsyOTY4MCw3IEBACiAJ
CQkJNjU2NTNGMkUwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjREOTEyQjgxM0NBOUE2OTAwRDIxOTE1IC8qIFNWR0FsdEdseXBoSXRl
bUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTc3MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OTkyMDI1NDVBQzAwNEQ3NUY0
IC8qIFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTdBMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODdCODQ5NjEyNzJDRUM4MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg1Nzk3MDkxMjc4Mzk0QzAwQThFQzVGIC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTc4MCw2ICsyOTc5Miw3IEBACiAJCQkJQjIyMjdBM0MwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODEw
NzY0NDEyODI4NTU2MDA3QzYzQkEgLyogU1ZHTGlzdFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODhBMEUwOTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTU2MjdCNzgyMDI5MkJGNDAwMkQzOTdEIC8qIFNWR0xpc3RW
YWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTQxMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdMb2NhdGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIz
NCAvKiBTVkdNYXJrZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0NDBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTc5Miw2
ICsyOTgwNSw3IEBACiAJCQkJQjIyMjdBNEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENTAxREQ2OUExRTAwMTI4NTUyIC8qIFNW
R051bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR051bWJlckxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlCMjAyNTQ1RUEwMDRE
NzVGNCAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NEM2Nzg0RDEyMTQ4MTQ3MDBBOTI5MDIgLyogU1ZHUGF0aEJsZW5kZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMjk4MzAsNiArMjk4NDQsNyBAQAogCQkJCUIyMjI3QTgxMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3
NkM5RTYxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODRCNkI5NzgxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291
cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5QzIwMjU0NjA1MDA0RDc1RjQgLyogU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDM1MTc4RDVBQjUw
MDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0Mx
RDQzNjE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDgyREU0MkQxMjkyNjIxNjAwRDkyM0RGIC8qIFNWR1BhdGhTZWdXaXRoQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg0MSwxMCArMjk4NTYsMTIgQEAKIAkJCQlCMjIyN0E4
ODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0dGVybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBOEMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvaW50TGlzdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNWR1BvaW50TGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOEYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bv
bHlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NThCNjk5RTIwMjU0NjJCMDA0RDc1RjQgLyogU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQTEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MURENDlDMTNCQTFBNjAw
MERDNzYyNyAvKiBTVkdQcm9wZXJ0eUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTBC
MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLApA
QCAtMjk4NTIsNyArMjk4NjksNiBAQAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJB
NTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5RTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTdD
RTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxOTdCMTgwQzE1MDYzNTMyMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQTAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlbmRlcmlu
Z0ludGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjc0NzkwRTgzNjZFMjAwRTdGOTc1IC8q
IFNWR1JlbmRlclN0eWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODk3LDYgKzI5OTEzLDcgQEAK
IAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURp
c3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUYyMDI1NDY3NTAw
NEQ3NUY0IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
RTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTA0LDYgKzI5OTIxLDcgQEAKIAkJCQkzN0M3MzhF
RDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUVBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QUVEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5ODIwMjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR1ZpZXdTcGVjLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURD
N0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAKaW5kZXggNWJhOTI4MWUyZTBjN2U3MmFiMTli
NjUwODMwMWIzMDZjZDA3NWJiMi4uYzk1ZTFiNWFmYWM3YWMzMTJjOTI5Y2E2ZWE4Y2I2N2VkMWM5
OTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAK
QEAgLTEwMCwxNiArMTAwLDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZH
RWxlbWVudCYgZWxlbWVudCkKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChT
VkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1Bv
bHlnb25FbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBh
dXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0
ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhw
b2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVydHkoKSk7
CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQo
aSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7CiAKICAg
ICBwYXRoLmNsb3NlU3VicGF0aCgpOwogICAgIHJldHVybiBwYXRoOwpAQCAtMTE3LDE2ICsxMTcs
MTYgQEAgc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBlbGVt
ZW50KQogCiBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlsaW5lRWxlbWVudChTVkdFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVu
dD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRz
ID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygp
LT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJz
dCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVu
c2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5hdChpKSk7CisgICAg
ICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5wcm9wZXJ0eUF0KGkpKTsKICAgICByZXR1cm4gcGF0
aDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0
TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCmluZGV4IDVlOTk5Mzg2MjlkYjM5
YzMwZjY2MTUyMzJiZTgyNzRmNDI3NTg3YzUuLmVhYmQ4NGRhNDVlNzMwNGI3MmRlNzBkZTJjY2I0
NGQ0NzAxZDdhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKQEAgLTE2MywxNSAr
MTYzLDE1IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWlsZENoYXJh
Y3RlckRhdGFNYXAoUmVuZGVyU1ZHVGV4dCYgdGV4dFJvCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBk
YXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBpLCBmbG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdDaGFy
YWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBTVkdMZW5ndGhDb250ZXh0JiBsZW5ndGhDb250ZXh0LCBj
b25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiB4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVl
cyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR4TGlzdCwgY29uc3QgU1ZHTGVu
Z3RoTGlzdFZhbHVlcyogZHlMaXN0LCBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzKiByb3RhdGVM
aXN0KQogewogICAgIGlmICh4TGlzdCkKLSAgICAgICAgZGF0YS54ID0geExpc3QtPmF0KGkpLnZh
bHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLnggPSB4TGlzdC0+cHJvcGVydHlBdChp
KS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0gICAgICAgIGRhdGEueSA9
IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS55ID0geUxp
c3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR4TGlzdCkK
LSAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIGRhdGEuZHggPSBkeExpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4
dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAgICAgICAgZGF0YS5keSA9IGR5TGlzdC0+YXQoaSkudmFs
dWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHkgPSBkeUxpc3QtPnByb3BlcnR5QXQo
aSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAgICAg
ZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAgICAgZGF0YS5yb3RhdGUgPSBy
b3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBsYXN0Um90YXRpb24gPSBkYXRhLnJv
dGF0ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCmluZGV4IDA0MzI5NDNhZWJiNDRmYTBh
YzNjZmJkMjRmYjVhOWE1ODQzM2VlMWYuLjQ4NTYwNjJmMTk5ZTMxOWZkODRjZTI1YjFmNzc2Mjgy
MzIwZjNlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR0FuZ2xlVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVh
dGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR0FuZ2xlVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1
ZSkpOwogICAgIH0KQEAgLTQyLDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IFJlZjxTVkdBbmdsZT4gY3JlYXRlKGNvbnN0IFNWR0FuZ2xlVmFsdWUqIGluaXRpYWxWYWx1ZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGluaXRpYWxWYWx1
ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25P
cjxSZWY8U1ZHQW5nbGU+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAg
ICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyAr
NTEsNyBAQCBwdWJsaWM6CiAKICAgICBTVkdBbmdsZVZhbHVlOjpUeXBlIHVuaXRUeXBlKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAg
ICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyAr
NTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9w
ZXJ0eSgpLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAg
ICAgcmV0dXJuIHsgfTsKQEAgLTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAgIGZsb2F0
IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZSgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC04MCw3ICs3NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAg
ICAgIHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNp
ZmllZFVuaXRzKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtODgsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFs
dWVJblNwZWNpZmllZFVuaXRzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTk2LDcgKzkx
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUp
OworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUFzU3RyaW5n
KHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTA2LDcgKzEwMSw3IEBAIHB1YmxpYzoKIAog
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVy
dHkoKS52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbmV3
VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKQpAQCAtMTE0LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVk
VW5pdHMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICAgICAgCkBAIC0xMjcsNyArMTIyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNv
bnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVByb3BlcnR5KCkuY29udmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUpOwogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICAgICAgCkBAIC0xMzYsNyArMTMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdBbmdsZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdBbmdsZVZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAg
ewogICAgIH0KQEAgLTE0NSwxMSArMTQwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0K
LSAgICBleHBsaWNpdCBTVkdBbmdsZShjb25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUp
Ci0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1
ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAppbmRleCBjYjMzNjJmZDk5ZDEw
N2M3NTI4OGNhZWNlMzIxY2Y1MmY2NTE2OTE4Li42MjNiYzRiOWUxZjIwOTBkOGQ4ZGYyMzcyNzU4
ZjYxYWI3MzYzMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpy
ZXNldEFuaW1hdGVkVHlwZSgpCiAgICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKICAgICAgICAgbV9h
bmltYXRlZFR5cGUgPSBhbmltYXRvci0+Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlVmFsdWUpOwog
ICAgIGVsc2UKLSAgICAgICAgbV9hbmltYXRlZFR5cGUtPnNldFZhbHVlQXNTdHJpbmcoYXR0cmli
dXRlTmFtZSwgYmFzZVZhbHVlKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUtPnBhcnNlKGF0dHJp
YnV0ZU5hbWUsIGJhc2VWYWx1ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1By
b3BlcnR5VG9UYXJnZXQoU1ZHRWxlbWVudCYgdGFyZ2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBp
ZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTM0NCwxNCArMzQ0LDE0IEBAIHZvaWQgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiAgICAgaWYgKG1fYW5pbWF0
ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmlt
YXRpb24gY29kZS1wYXRoLgogICAgICAgICAvLyBDb252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFu
aW1hdGlvbiB0byBhIFN0cmluZyBhbmQgYXBwbHkgaXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0
YXJnZXQgJiBhbGwgaW5zdGFuY2VzLgotICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRB
bmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBl
LT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJ
bnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50
b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0
ZSB0aGUgc3R5bGUgYW5kIHRoZSBhbmltYXRpb24gcHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFj
aCBvdGhlci4KICAgICBTaG91bGRBcHBseUFuaW1hdGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFw
cGx5QW5pbWF0aW9uKHRhcmdldEVsZW1lbnQuZ2V0KCksIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlm
IChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENTU0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlD
U1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQ
cm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBtX2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwg
YW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZh
bHVlcyBhcmUgYWxyZWFkeSBjaGFuZ2VkLCB1bmxpa2UgZm9yIENTUy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IDk2NmY0NjM2YWRhNWY2
MGU4MGRhNTIzZTk2NTFmNmM3ZWQwYTA3NTAuLmE5YmU5ZjE5NDA4OTc0YzIyYjVjZTliMjJlNDQy
NWJmYTY5MjMzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcApAQCAtMTM2LDMxICsxMzYsNiBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50Ojp1cGRhdGVBbmltYXRpb25QYXRoKCkKICAgICB1cGRhdGVBbmltYXRpb25Nb2RlKCk7CiB9
CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBw
b2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNoYXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVy
czsKLSAgICBjb25zdCBVQ2hhciogZW5kID0gY3VyICsgcy5sZW5ndGgoKTsKLSAgICAKLSAgICBp
ZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsKLSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5k
LCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZsb2F0IHkgPSAwOwotICAg
IGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOwotICAgIAotICAgIC8vIGRpc2FsbG93
IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVuZAotICAgIHJldHVybiAhc2tpcE9wdGlv
bmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0KLSAgICAKIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKIHsKICAgICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRl
VHlwZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCmluZGV4IGM1NzMy
NTVlYzAxZDQzZTM0MjBjNDYxYzYyMTMxMTA2ZjNkNTIzMDEuLjllZWM4MzhmYTNjMjI3NWZkYzdi
ZmJjMWM0MWVhYjE5ZDk5YzdjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAKQEAgLTMyLDIyICszMiwxMiBAQCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OlNWR0Fu
aW1hdGVkQW5nbGVBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpbwogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3Rk
OjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAg
ICBhdXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKLQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBv
cmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21T
dHJpbmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUgPiAwKQotICAgICAgICBh
bmltYXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7
Ci0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29u
c3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
czxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU3LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3AKIAogdm9pZCBTVkdBbmlt
YXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlw
ZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmFu
Z2xlQW5kRW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRB
bmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NSwxMyAr
NjUsMTMgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMo
U1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXQKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IEFuaW1hdGVkQW5nbGUpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUo
KSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IGZyb20tPmFu
Z2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0
by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZSA9IHN0
YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1
ZXNbMV0pOworICAgIGF1dG8mIHRvQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCp0by0+dmFsdWVzWzFdKTsKICAgICAvLyBPbmx5IHJlc3BlY3QgYnkgYW5pbWF0
aW9ucywgaWYgZnJvbSBhbmQgYnkgYXJlIGJvdGggc3BlY2lmaWVkIGluIGFuZ2xlcyAoYW5kIG5v
dCBlZy4gJ2F1dG8nKS4KLSAgICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9
IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgfHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24u
c2Vjb25kICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgIGlmIChmcm9tRW51bWVyYXRpb24g
IT0gdG9FbnVtZXJhdGlvbiB8fCBmcm9tRW51bWVyYXRpb24gIT0gU1ZHTWFya2VyT3JpZW50QW5n
bGUpCiAgICAgICAgIHJldHVybjsKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBmcm9tQW5n
bGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKLSAgICBhdXRvJiB0b0FuZ2xlID0gdG9BbmdsZUFuZEVu
dW1lcmF0aW9uLmZpcnN0OwogICAgIHRvQW5nbGUuc2V0VmFsdWUodG9BbmdsZS52YWx1ZSgpICsg
ZnJvbUFuZ2xlLnZhbHVlKCkpOwogfQogCkBAIC05MCw0OCArODAsNDkgQEAgdm9pZCBTVkdBbmlt
YXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFn
ZSwgdW5zaWduZWQKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQo
bV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJh
dGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVy
YXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRF
bnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJh
dGlvbiA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0
byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVy
YXRpb24oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFs
dWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRpY19jYXN0
PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlv
biA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKnRvQXRF
bmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkQW5nbGUgPSBzdGF0
aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8m
IGFuaW1hdGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+
dmFsdWVzWzFdKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0g
dG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCkgeworICAgIGlmIChmcm9tRW51bWVyYXRpb24g
IT0gdG9FbnVtZXJhdGlvbikgewogICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gLSBubyBs
aW5lYXIgaW50ZXJwb2xhdGlvbiBwb3NzaWJsZSBiZXR3ZWVuIHZhbHVlcyAoZS5nLiBhdXRvIHRv
IGFuZ2xlKS4KICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPCAwLjVmKSB7Ci0gICAgICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kOwotICAgICAgICAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29u
ZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xl
QW5kRW51bWVyYXRpb24uZmlyc3QgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKKyAg
ICAgICAgICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CisgICAgICAg
ICAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAg
ICAgICAgICAgIGFuaW1hdGVkQW5nbGUgPSBmcm9tQW5nbGU7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVl
KDApOworICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgIGlmICh0
b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAg
ICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0ID0gdG9BbmdsZUFuZEVu
dW1lcmF0aW9uLmZpcnN0OworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gdG9FbnVtZXJh
dGlvbjsKKyAgICAgICAgaWYgKHRvRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUp
CisgICAgICAgICAgICBhbmltYXRlZEFuZ2xlID0gdG9BbmdsZTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOwor
ICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZSgwKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFy
a2VyT3JpZW50QW5nbGUpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9y
aWVudEFuZ2xlKSB7CiAgICAgICAgIC8vIFJlZ3VsYXIgZnJvbSBhbmdsZSB0byBhbmdsZSBhbmlt
YXRpb24sIHdpdGggc3VwcG9ydCBmb3Igc21vb3RoIGludGVycG9sYXRpb24sIGFuZCBhZGRpdGl2
ZSBhbmQgYWNjdW11bGF0ZWQgYW5pbWF0aW9uLgotICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51
bWVyYXRpb24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgICAgIGFuaW1hdGVk
RW51bWVyYXRpb24gPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsKIAotICAgICAgICBhdXRvJiBhbmlt
YXRlZFNWR0FuZ2xlID0gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0FuZ2xlID0gdG9BdEVuZE9mRHVyYXRp
b25BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBmbG9hdCBhbmltYXRlZEFuZ2xl
ID0gYW5pbWF0ZWRTVkdBbmdsZS52YWx1ZSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xl
QW5kRW51bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0
LnZhbHVlKCksIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmds
ZSk7Ci0gICAgICAgIGFuaW1hdGVkU1ZHQW5nbGUuc2V0VmFsdWUoYW5pbWF0ZWRBbmdsZSk7Cisg
ICAgICAgIGZsb2F0IGFuaW1hdGVkQW5nbGVWYWx1ZSA9IGFuaW1hdGVkQW5nbGUudmFsdWUoKTsK
KyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGZyb21BbmdsZS52YWx1ZSgpLCB0b0FuZ2xlLnZhbHVlKCksIHRv
QXRFbmRPZkR1cmF0aW9uQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZVZhbHVlKTsKKyAgICAg
ICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZShhbmltYXRlZEFuZ2xlVmFsdWUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgLy8gYXV0bywgYXV0by1zdGFydC1yZXZlcnNlLCBvciB1bmtu
b3duLgotICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsK
KyAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21BbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQotICAg
ICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51
bWVyYXRpb24uc2Vjb25kOworICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3Jp
ZW50QXV0byB8fCBmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2
ZXJzZSkKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVtZXJhdGlvbjsKICAg
ICBlbHNlCi0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdN
YXJrZXJPcmllbnRVbmtub3duOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZHTWFy
a2VyT3JpZW50VW5rbm93bjsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpj
YWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYg
dG9TdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29s
ZWFuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCmluZGV4
IGVjMDg0MmE3M2NlMzZiN2MxNGNkYjVkMWQ5OTdmODE2Y2U1NDViMTguLjFiNDQ2NzhiNzAyNjdm
Y2M5NDBlOTlhNWU3MjZjMjFkZjAyMTExYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZEJvb2xlYW4uY3BwCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFu
aW0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oc3Rk
OjptYWtlX3VuaXF1ZTxib29sPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmJvb2xlYW4oKSA9IChz
dHJpbmcgPT0gInRydWUiKTsgLy8gd2F0PwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpm
cm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NDgsNyArNDYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcgogCiB2b2lkIFNWR0FuaW1hdGVk
Qm9vbGVhbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5
LDkgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ24KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBib29sIGZyb21Cb29s
ZWFuID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+Ym9vbGVhbigpIDogZnJvbS0+Ym9vbGVhbigpOwotICAgIGJvb2wgdG9Cb29s
ZWFuID0gdG8tPmJvb2xlYW4oKTsKLSAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRl
ZC0+Ym9vbGVhbigpOworICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGJvb2wmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxib29sJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYm9vbCB0b0Jvb2xlYW4gPSBzdGF0aWNfY2FzdDxib29sJj4oKnRvLT52YWx1ZXNbMF0p
OworICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0
ZWQtPnZhbHVlc1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0
ZVR5cGU8Ym9vbD4ocGVyY2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5pbWF0ZWRC
b29sZWFuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAppbmRleCAx
NjcwZmZiYWIzNTY2Y2Y5MWM5ZWE1ZjliY2M0MDUzNGEzNGEzNzlhLi4xNzk1YWVhOWRkNTBkNzVi
ZmNlODQwMzFiZWMyZTUwYzllMzgzODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
Q29sb3IuY3BwCkBAIC0zMyw3ICszMyw3IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6U1ZH
QW5pbWF0ZWRDb2xvckFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQmIGFuaW1hdGlvCiAKIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6Om1ha2VfdW5pcXVlPENvbG9yPihDU1NQ
YXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKSkpOworICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRB
bmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bykK
QEAgLTQ0LDggKzQ0LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXQKICAgICBBU1NFUlQodG8t
PnR5cGUoKSA9PSBBbmltYXRlZENvbG9yKTsKIAogICAgIC8vIElnbm9yZXMgYW55IGFscGhhIGFu
ZCBzZXRzIGFscGhhIG9uIHJlc3VsdCB0byAxMDAlIG9wYXF1ZS4KLSAgICBhdXRvJiBmcm9tQ29s
b3IgPSBmcm9tLT5jb2xvcigpOwotICAgIGF1dG8mIHRvQ29sb3IgPSB0by0+Y29sb3IoKTsKKyAg
ICBhdXRvJiBmcm9tQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGF1dG8mIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+dmFsdWVzWzBd
KTsKICAgICB0b0NvbG9yID0geyByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IucmVk
KCkgKyBmcm9tQ29sb3IucmVkKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVs
KHRvQ29sb3IuZ3JlZW4oKSArIGZyb21Db2xvci5ncmVlbigpKSwKICAgICAgICAgcm91bmRBbmRD
bGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmJsdWUoKSArIGZyb21Db2xvci5ibHVlKCkpIH07CkBA
IC02OSw4ICs2OSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29s
b3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+Y29sb3IoKSA6IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3Ig
dG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIENvbG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIENvbG9yIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+
dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9y
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbUNvbG9yLCBtX2NvbnRleHRFbGVtZW50KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdB
bmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2Vu
dGFnZSwgdW5zaWduZWQKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT50b1Byb3BlcnR5VmFs
dWVUeXBlKCkgPT0gQ3VycmVudENvbG9yVmFsdWUpCiAgICAgICAgIHRvQ29sb3IgPSBjdXJyZW50
Q29sb3IoKm1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25D
b2xvciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5jb2xvcigpOwotICAgIGF1dG8mIGFuaW1hdGVkQ29s
b3IgPSBhbmltYXRlZC0+Y29sb3IoKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkNvbG9y
ID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gRklYTUU6IEV4dGVuZGVkQ29sb3IgLSB0aGlzIHdpbGwgbmVl
ZCB0byBoYW5kbGUgYmxlbmRpbmcgYmV0d2VlbiBjb2xvcnMgaW4gZGlmZmVyZW50IGNvbG9yIHNw
YWNlcywKICAgICAvLyBhcyB3ZWxsIGFzIHdvcmsgd2l0aCBub24gWzAtMjU1XSBDb2xvcnMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAKaW5kZXggYzEw
NzkyOTRkODVjMTJhOTE1OTM4MTZkOGFjNTYyMGE0YzE1Y2MwYy4uNzVlMGRlNjY2OTUxNDIzNDA2
YzQ0MjNkMzViN2Q5MzhjZmY3N2VkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmNwcApAQCAtMTA5LDE0ICsxMDksMTIgQEAgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbkFuaW1hdG9yOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3IoU1ZHQW5pbWF0
aW9uRWxlbWUKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKLSAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1
ZTx1bnNpZ25lZD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5lbnVtZXJhdGlvbigpID0gZW51bWVy
YXRpb25WYWx1ZUZvclRhcmdldEF0dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVs
ZW1lbnQoKSwgbV9hbmltYXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZyk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGUoZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQt
PnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25FbGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0
cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRpb24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC0xMjYsNyArMTI0LDcgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXQKIAogdm9pZCBT
VkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRp
b24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmlt
YXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTE0OSw5ICsxNDcsOSBAQCB2b2lkIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmVudW1l
cmF0aW9uKCkgOiBmcm9tLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkIHRvRW51bWVyYXRp
b24gPSB0by0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlv
biA9IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlv
biA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHVuc2lnbmVkIHRvRW51bWVyYXRp
b24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25l
ZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVk
LT52YWx1ZXNbMF0pOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVU
eXBlPHVuc2lnbmVkPihwZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24sIHRvRW51bWVyYXRpb24s
IGFuaW1hdGVkRW51bWVyYXRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkSW50ZWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcAppbmRleCBjM2Y4YzhlNzgxNTgxY2EwNWQ2OGU0ZjBiYTMwNjkwZDhhMjQ1MTE3
Li5lYjRmNWY5ZjVjZjY5YzBhODU3OWM2Yjg4ZDM1OGRjZDg5ZTFiMDA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcApAQCAtMzMsMTQgKzMzLDEyIEBAIFNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcihTVkdBbmlt
YXRpb25FbGVtZW50KiBhbmltCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8aW50PigpKTsKLSAgICBhbmltYXRlZFR5cGUt
PmludGVnZXIoKSA9IHN0cmluZy50b0ludFN0cmljdCgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRz
PGludD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRl
ZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbQogICAgIEFTU0VSVChmcm9tLT50
eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRv
LT50eXBlKCkpOwogCi0gICAgdG8tPmludGVnZXIoKSArPSBmcm9tLT5pbnRlZ2VyKCk7CisgICAg
c3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGludCY+KCpm
cm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0aW9uRWxl
bWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIGludCBmcm9tSW50
ZWdlciwgaW50IHRvSW50ZWdlciwgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwgaW50JiBh
bmltYXRlZEludGVnZXIpCkBAIC04MywxMCArODEsMTAgQEAgdm9pZCBTVkdBbmltYXRlZEludGVn
ZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z24KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0
RWxlbWVudCk7CiAKLSAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRlZ2VyKCkgOiBmcm9t
LT5pbnRlZ2VyKCk7Ci0gICAgaW50IHRvSW50ZWdlciA9IHRvLT5pbnRlZ2VyKCk7Ci0gICAgaW50
IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2VyKCk7
Ci0gICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBhbmltYXRlZC0+aW50ZWdlcigpOworICAgIGlu
dCBmcm9tSW50ZWdlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3Rh
dGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgaW50IHRvSW50ZWdlciA9IHN0
YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBpbnQgdG9BdEVuZE9mRHVyYXRp
b25JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MF0pOworICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pOwogCiAgICAgY2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0
aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyLCB0b0ludGVn
ZXIsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwgYW5pbWF0ZWRJbnRlZ2VyKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlci5jcHAKaW5kZXggNWI1NjdlZDJhOTllMWZkODEzMjBjY2JmOTQ5ZDRmZWUzMzg3MmQ2NC4u
OWY2ZmI0MTk5ZTUyOWU0NTg4MWM2MGEwOTIwYzQxNzI3MjNmNGEzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5j
cHAKQEAgLTMzLDIzICszMywxMiBAQCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJB
bmltYXRvcjo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbQogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9w
dGlvbmFsSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxpbnQsIGludD4+KCkpOwot
ICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkVHlwZS0+
aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMDsKLSAg
ICBmbG9hdCBzZWNvbmROdW1iZXIgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51
bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpKSB7Ci0gICAgICAgIGFuaW1h
dGVkSW50ZWdlci5maXJzdCA9IDA7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSAw
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IHN0YXRpY19j
YXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSk7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5z
ZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNvbmROdW1iZXIpKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGludCwgaW50Pj46OmZyb21TdHJpbmcoc3Ry
aW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoY29u
c3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVn
ZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8
U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFs
dWVzPFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVz
LCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKKyAgICBy
ZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzcsMTEgKzY2LDggQEAgdm9p
ZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRU
eXBlcyhTVkdBbmltYXRlZFR5cGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+
dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGZyb21JbnRlZ2VyUGFp
ciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBzdGQ6OnBhaXI8aW50LCBp
bnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLQotICAg
IHRvSW50ZWdlclBhaXIuZmlyc3QgKz0gZnJvbUludGVnZXJQYWlyLmZpcnN0OwotICAgIHRvSW50
ZWdlclBhaXIuc2Vjb25kICs9IGZyb21JbnRlZ2VyUGFpci5zZWNvbmQ7CisgICAgc3RhdGljX2Nh
c3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1
ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzFdKSArPSBzdGF0aWNf
Y2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBT
VkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODksMTMgKzc1LDE3IEBAIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUoZmxvYXQgcGVyCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJU
KG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJv
bUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpIDogZnJvbS0+aW50
ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRv
SW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0
ZDo6cGFpcjxpbnQsIGludD4mIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5k
T2ZEdXJhdGlvbi0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQs
IGludD4mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50
ZWdlcigpOwotCi0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBm
cm9tSW50ZWdlclBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0
aW9uSW50ZWdlclBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwotICAgIFNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmlt
YXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNl
Y29uZCwgdG9JbnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIu
c2Vjb25kLCBhbmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CisgICAgY29uc3QgaW50JiBmb3Jt
Rmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0
PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgZm9ybVNlY29uZCA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGlj
X2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZy
b20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0ZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50
Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9TZWNvbmQgPSBzdGF0aWNfY2Fz
dDxpbnQmPigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5kT2ZEdXJhdGlv
bkZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQgPSBzdGF0aWNfY2FzdDxp
bnQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7CisgICAgaW50JiBhbmltYXRlZEZp
cnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGludCYg
YW5pbWF0ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7
CisKKyAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRl
Z2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZvcm1GaXJz
dCwgdG9GaXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7CisgICAg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2Fu
aW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1Nl
Y29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxv
YXQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZURp
c3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcAppbmRleCAyNWNmM2YzOGM1MmUwOTA4ZTkzMjc4Zjg0NzhkZTVk
YjQ5NTdkYzYwLi5jMWIyOTM4YTJiZjQwNTQ1ZTVmZTAxOThiMDQ2YTk5YjQzNDY5ODUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKQEAgLTMzLDEyICszMywxMiBA
QCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKFNW
R0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxl
bmd0aChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aFZhbHVlPihtX2xlbmd0aE1vZGUsIHN0cmlu
ZykpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdMZW5ndGhWYWx1ZSht
X2xlbmd0aE1vZGUsIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChjb25zdHJ1Y3RGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpOwogfQog
CiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4
LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm8KIAogdm9pZCBTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVz
LCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsOCArNjcsOCBAQCB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0
ZWRUeXBlKiBmcm9tLCBTVkdBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5
cGUoKSk7CiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxl
bWVudCk7Ci0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpOwotICAg
IGF1dG8mIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5n
dGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIHRvTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG8tPnZhbHVl
c1swXSk7CiAKICAgICB0b0xlbmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShsZW5ndGhDb250
ZXh0KSArIGZyb21MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwog
fQpAQCAtODUsMTAgKzg1LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lCiAgICAgQVNTRVJU
KG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0g
ICAgYXV0byBmcm9tU1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoKCkgOiBmcm9tLT5sZW5ndGgoKTsK
LSAgICBhdXRvIHRvU1ZHTGVuZ3RoID0gdG8tPmxlbmd0aCgpOwotICAgIGNvbnN0IGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aCgpOwot
ICAgIGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpOworICAgIGF1
dG8gZnJvbVNWR0xlbmd0aCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqYW5pbWF0ZWQtPnZh
bHVlc1swXSkgOiBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGF1dG8gdG9TVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0
aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1
ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVu
Z3RoVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5o
ZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0
YW5jZTxTVkdMZW5ndGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVuZ3RoLCBtX2NvbnRleHRF
bGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0
aExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAK
aW5kZXggOTVmZmI2YTgxYzA0M2Q0NWQwZWFhZDA5NWM1YTIyMzdlZjgwM2VkYy4uNDA3ZWRlMDc1
N2RkZjA0ZmNlOTFmNTljYjVjYTQyOGFlMGY3NGIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKQEAgLTMzLDE0ICszMywxMiBAQCBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3IoU1ZHQW5p
bWF0aW9uRWxlbWVudAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aExpc3RWYWx1ZXM+KCkpOwot
ICAgIGFuaW1hdGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNlKHN0cmluZywgbV9sZW5ndGhNb2Rl
KTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6ZnJvbVN0cmlu
ZyhzdHJpbmcsIG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
IHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KGNvbnN0cnVj
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzKSk7Cisg
ICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Pihh
bmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jh
c2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
LCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6
bGVuZ3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZy
b20sIFNWR0EKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7
CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1
dG8mIGZyb21MZW5ndGhMaXN0ID0gZnJvbS0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIHRvTGVu
Z3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExp
c3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVl
cyY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21MZW5ndGhMaXN0U2l6ZSA9
IGZyb21MZW5ndGhMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21MZW5ndGhMaXN0U2l6ZSB8fCBm
cm9tTGVuZ3RoTGlzdFNpemUgIT0gdG9MZW5ndGhMaXN0LnNpemUoKSkKQEAgLTc3LDcgKzc1LDcg
QEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0EKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3Ro
Q29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbUxlbmd0aExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTGVuZ3RoTGlzdFtpXS5zZXRWYWx1
ZSh0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoTGlzdFtp
XS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CisgICAgICAgIHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZh
bHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CiB9CiAKIHN0YXRpYyBTVkdMZW5ndGhMaXN0
VmFsdWVzIHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5p
bWF0aW9uRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC05MiwxMCArOTAsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnMKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsK
ICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21MZW5ndGhMaXN0
ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBh
bmltYXRlZC0+bGVuZ3RoTGlzdCgpIDogZnJvbS0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8gdG9M
ZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZE
dXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoTGlzdCgpOwotICAg
IGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCk7CisgICAg
YXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqZnJv
bS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVu
ZE9mRHVyYXRpb25MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+
KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZExlbmd0
aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1
ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5p
bWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4o
cGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVy
dHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0aExpc3QsIG1fY29udGV4dEVsZW1lbnQpOwpAQCAtMTEw
LDE4ICsxMDgsMTggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnMKIAogICAgIFNWR0xlbmd0aENv
bnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgdG9MZW5ndGhMaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1h
dGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwot
ICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBl
KCk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LnBy
b3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIFNWR0xlbmd0aFR5cGUg
dW5pdFR5cGUgPSB0b0xlbmd0aExpc3QucHJvcGVydHlBdChpKS51bml0VHlwZSgpOwogICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gMDsKICAgICAgICAgaWYgKGZyb21MZW5ndGhMaXN0U2l6
ZSkgewogICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPCAwLjUpCi0gICAgICAgICAgICAgICAg
dW5pdFR5cGUgPSBmcm9tTGVuZ3RoTGlzdFtpXS51bml0VHlwZSgpOwotICAgICAgICAgICAgZWZm
ZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAg
ICAgICAgICAgICAgIHVuaXRUeXBlID0gZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS51bml0
VHlwZSgpOworICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0LnByb3Bl
cnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgICAgIH0KLSAgICAgICAgZmxvYXQg
ZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvbkxpc3RTaXplID8gdG9BdEVu
ZE9mRHVyYXRpb25MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpIDogMDsKKyAgICAg
ICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvbkxpc3RTaXpl
ID8gdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3Ro
Q29udGV4dCkgOiAwOwogCi0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0
aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b0xlbmd0
aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCksIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVk
TnVtYmVyKTsKLSAgICAgICAgYW5pbWF0ZWRMZW5ndGhMaXN0W2ldLnNldFZhbHVlKGxlbmd0aENv
bnRleHQsIGFuaW1hdGVkTnVtYmVyLCBtX2xlbmd0aE1vZGUsIHVuaXRUeXBlKTsKKyAgICAgICAg
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVw
ZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAg
ICAgIGFuaW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKGxlbmd0aENvbnRl
eHQsIGFuaW1hdGVkTnVtYmVyLCBtX2xlbmd0aE1vZGUsIHVuaXRUeXBlKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCmluZGV4IDRmMWVhOWE4ZDRl
MDkwZGZjMDIxYzEwOGVjYmNmZGFjODc0ODE0ZjMuLjg0OWFiYzhhNWFlZDVhMGZjMWZmNTBkYTky
MWM3MTRhZGQ0NjA0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZE51bWJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNw
cApAQCAtMzIsMTYgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0CiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihzdGQ6Om1ha2VfdW5pcXVlPGZs
b2F0PigpKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZFR5cGUtPm51bWJl
cigpOwotICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgYW5pbWF0ZWROdW1i
ZXIpKQotICAgICAgICBhbmltYXRlZE51bWJlciA9IDA7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJu
IGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTUxLDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm8KIAogdm9pZCBTVkdBbmlt
YXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5
cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRl
ZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXIpOworICAgIHJlc2V0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMTQgKzY1
LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZE51bWJlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgp
KTsKIAotICAgIHRvLT5udW1iZXIoKSArPSBmcm9tLT5udW1iZXIoKTsKKyAgICBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52
YWx1ZXNbMF0pOwogfQogCiBzdGF0aWMgZmxvYXQgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKFNWR0Fu
aW1hdGlvbkVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBmbG9hdCBudW1i
ZXIgPSAwOwotICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIG51bWJlcik7Ci0gICAg
cmV0dXJuIG51bWJlcjsKKyAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9t
U3RyaW5nKHN0cmluZyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3Vu
dCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRl
ZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAt
ODQsMTAgKzc4LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgZmxv
YXQgZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlcigpIDogZnJvbS0+bnVtYmVyKCk7Ci0gICAgZmxv
YXQgdG9OdW1iZXIgPSB0by0+bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRpb25O
dW1iZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyKCk7Ci0gICAgZmxvYXQmIGFuaW1hdGVk
TnVtYmVyID0gYW5pbWF0ZWQtPm51bWJlcigpOworICAgIGZsb2F0IGZyb21OdW1iZXIgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0
Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyID0g
c3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAg
ZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZh
bHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9h
bmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJG
cm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBm
cm9tTnVtYmVyLCBtX2NvbnRleHRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAKaW5kZXggODdmOTczYTFiYTJkMzQ5MmIxZjJkYjBkMDczY2Mz
NTlkNjZjYjU3ZC4uOWQ2MjRhYTFhZmYwNzYwMTVhNjM4MjFkOTI3ODM4NjdjYmI5NWE1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKQEAgLTMyLDE0
ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR051
bWJlckxpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bnVtYmVyTGlzdCgpLnBhcnNl
KHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZy
b21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3QoY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVk
VHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlCiAKIHZv
aWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0Fu
aW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJM
aXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0Pihhbmlt
YXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsMjUgKzY1LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tTnVtYmVyTGlzdCA9IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBhdXRvJiB0b051bWJlckxp
c3QgPSB0by0+bnVtYmVyTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigq
dG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNpemUgPSBmcm9t
TnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUgfHwgZnJvbU51
bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTnVtYmVyTGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9OdW1iZXJMaXN0W2ldICs9IGZyb21OdW1iZXJMaXN0W2ldOworICAgICAgICBzdGF0
aWNfY2FzdDxmbG9hdCY+KCp0b051bWJlckxpc3RbaV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb21OdW1iZXJMaXN0W2ldKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbU51bWJlckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJMaXN0KCkgOiBmcm9tLT5udW1iZXJMaXN0
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1h
dGVkLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNf
Y2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
YXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVyTGlzdCwgYW5pbWF0ZWROdW1iZXJMaXN0LCBw
ZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05NCw5ICs5Miw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQg
cGVyY2VudGFnZSwgdW5zCiAgICAgdW5zaWduZWQgdG9BdEVuZE9mRHVyYXRpb25TaXplID0gdG9B
dEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0LnNpemUoKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB0b051bWJlckxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgZWZmZWN0aXZl
RnJvbSA9IGZyb21OdW1iZXJMaXN0U2l6ZSA/IGZyb21OdW1iZXJMaXN0W2ldIDogMDsKLSAgICAg
ICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0
b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3RbaV0gOiAwOwotICAgICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZm
ZWN0aXZlRnJvbSwgdG9OdW1iZXJMaXN0W2ldLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51
bWJlckxpc3RbaV0pOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxp
c3RTaXplID8gZnJvbU51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkgOiAwOworICAgICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwg
ZWZmZWN0aXZlRnJvbSwgdG9OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSksIGVmZmVjdGl2ZVRvQXRF
bmQsIGFuaW1hdGVkTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
LmNwcAppbmRleCAzYzRjYTg2NGQyMzJjZDM4ZDc0MWIzMzRlNTQ5YTg5MmM4ODFkMDhlLi42ZDVl
MTBkOTE5MWM1NTgxODE2ZDdkNWQwZTNlYTQzODdhOTc5MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCkBAIC0z
MywxOCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpT
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3IKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJl
cihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpKTsKLSAgICBzdGQ6
OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZFR5cGUtPm51bWJl
ck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0
cmluZywgYW5pbWF0ZWROdW1iZXIuZmlyc3QsIGFuaW1hdGVkTnVtYmVyLnNlY29uZCkpIHsKLSAg
ICAgICAgYW5pbWF0ZWROdW1iZXIuZmlyc3QgPSAwOwotICAgICAgICBhbmltYXRlZE51bWJlci5z
ZWNvbmQgPSAwOwotICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1i
ZXJPcHRpb25hbE51bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJl
ciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihh
bmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU0LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIp
OworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVk
TnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcyLDExICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphZGRBbmltYXRl
ZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSoKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJl
clBhaXIgPSBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLQot
ICAgIHRvTnVtYmVyUGFpci5maXJzdCArPSBmcm9tTnVtYmVyUGFpci5maXJzdDsKLSAgICB0b051
bWJlclBhaXIuc2Vjb25kICs9IGZyb21OdW1iZXJQYWlyLnNlY29uZDsKKyAgICBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pICs9IHN0
YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZs
b2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZy
b20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRp
b24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMyArNzUsMTcgQEAgdm9pZCBT
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVk
VmFsdWUoZmxvYXQgcGVyY2UKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBB
U1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZs
b2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJPcHRpb25hbE51bWJlcigpIDogIGZy
b20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIGNv
bnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIg
PSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBh
aXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPm51bWJlck9w
dGlvbmFsTnVtYmVyKCk7Ci0KLSAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2
ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbU51bWJlclBhaXIuZmlyc3QsIHRv
TnVtYmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLmZpcnN0LCBhbmlt
YXRlZE51bWJlclBhaXIuZmlyc3QpOwotICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFk
ZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5zZWNv
bmQsIHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpci5zZWNv
bmQsIGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQpOworICAgIGNvbnN0IGF1dG8mIGZvcm1GaXJz
dCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxm
bG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIGZvcm1TZWNvbmQgPSBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQm
PigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBhdXRvJiB0b0ZpcnN0ID0gc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9TZWNvbmQgPSBz
dGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0
RW5kT2ZEdXJhdGlvbkZpcnN0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRp
b24tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQg
PSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzFdKTsKKyAg
ICBhdXRvJiBhbmltYXRlZEZpcnN0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZh
bHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxmbG9hdCY+
KCphbmltYXRlZC0+dmFsdWVzWzFdKTsKKworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmly
c3QsIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QsIGFuaW1hdGVkRmlyc3QpOworICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVk
U2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1h
dG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAppbmRleCBhMzNhMTQ5ZDcwYmRmZDZhZWM4
MWRjYWVmYTZhNjBmNWI5N2I4NzMwLi5kNTZmZDJjZjUzYzZkNjE3YjMyODY2OWQ1ZjI3YjBkYWI2
ZDljNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcApAQCAtMjIsNyAr
MjIsNiBAQAogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1Bh
dGhVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMyw5ICszMiw3IEBA
IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcihTVkdBbmlt
YXRpb25FbGVtZW50KiBhbmltYXRpb25FCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7Ci0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJp
bmcoc3RyaW5nLCAqYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVT
dHJlYW0+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTQzLDkgKzQwLDkgQEAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbigKICAgICBBU1NFUlQoYW5pbWF0
ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAKICAgICAvLyBCdWlsZCBpbml0aWFsIHBhdGggYnl0ZSBz
dHJlYW0uCi0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0
ZVN0cmVhbT4oKTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgYnl0
ZVN0cmVhbS5nZXQoKSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChX
VEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlPFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIHJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChhbmltYXRlZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC01OCw3ICs1NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wCiAgICAgUmVmUHRyPFNW
R0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IHByb3BlcnR5ID0gY2FzdEFuaW1h
dGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKICAgICBjb25zdCBh
dXRvJiBiYXNlVmFsdWUgPSBwcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwogCi0gICAgYnVp
bGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUsICpi
eXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVz
Jj4oKmJhc2VWYWx1ZSksICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFZl
Y3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3Vs
dDsKIApAQCAtNzIsNyArNjksNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcAogICAgIGlmICgh
cmVzdWx0LmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJs
b2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIHNlZ21lbnQgOiByZXN1bHQpCi0gICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25T
dGFydGVkKGJ5dGVTdHJlYW0sICZiYXNlVmFsdWUpOworICAgICAgICAgICAgc2VnbWVudC0+YW5p
bWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmPigqYmFzZVZhbHVlKSk7CiAgICAgfQogfQogCkBAIC04MCw3ICs3Nyw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEp
OwogICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIHJlc2V0QW5pbVZhbFRv
QmFzZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAgcmVzZXRBbmltVmFsVG9C
YXNlVmFsKGFuaW1hdGVkVHlwZXMsICZzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0
eXBlLnZhbHVlc1swXSkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphbmlt
VmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC05NywxMyArOTQsMTMgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRv
cjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGUKIHsK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUGF0aCk7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKLQotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9t
UGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8t
PnBhdGgoKTsKLSAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC0+c2l6ZSgpOwot
ICAgIGlmICghZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6ZSAhPSB0b1BhdGgtPnNpemUoKSkK
KyAgICAKKyAgICBjb25zdCBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRl
U3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9QYXRoID0gc3RhdGljX2Nh
c3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7CisgICAgdW5zaWduZWQgZnJv
bVBhdGhTaXplID0gZnJvbVBhdGguc2l6ZSgpOworICAgIGlmICghZnJvbVBhdGhTaXplIHx8IGZy
b21QYXRoU2l6ZSAhPSB0b1BhdGguc2l6ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgYWRkVG9T
VkdQYXRoQnl0ZVN0cmVhbSgqdG9QYXRoLCAqZnJvbVBhdGgpOworICAgIGFkZFRvU1ZHUGF0aEJ5
dGVTdHJlYW0odG9QYXRoLCBmcm9tUGF0aCk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQg
cmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywg
U1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmlt
YXRlZCkKQEAgLTExMSwzNiArMTA4LDMzIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQKICAgICBB
U1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7
CiAKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAg
U1ZHUGF0aEJ5dGVTdHJlYW0qIHRvUGF0aCA9IHRvLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVT
dHJlYW0qIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wYXRoKCk7
Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkLT5wYXRoKCk7
CisgICAgYXV0byYgZnJvbVBhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhC
eXRlU3RyZWFtJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9u
UGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUGF0aCA9IHN0YXRpY19jYXN0PFNWR1Bh
dGhCeXRlU3RyZWFtJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFNWR1BhdGhCeXRlU3RyZWFtPiB1bmRlcmx5aW5nUGF0aDsKICAgICBib29sIGlzVG9Bbmlt
YXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
bjsKLSAgICBpZiAoaXNUb0FuaW1hdGlvbikgewotICAgICAgICB1bmRlcmx5aW5nUGF0aCA9IGFu
aW1hdGVkUGF0aC0+Y29weSgpOwotICAgICAgICBmcm9tUGF0aCA9IHVuZGVybHlpbmdQYXRoLmdl
dCgpOwotICAgIH0KKyAgICBpZiAoaXNUb0FuaW1hdGlvbikKKyAgICAgICAgZnJvbVBhdGggPSBh
bmltYXRlZFBhdGg7CiAKICAgICAvLyBDYWNoZSB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZSBi
ZWZvcmUgdGhlIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbSgpIGNsZWFycyBhbmltYXRl
ZFBhdGguCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBsYXN0QW5pbWF0
ZWRQYXRoOwotICAgIGlmICghZnJvbVBhdGgtPnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50
LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9BbmltYXRpb24pKQotICAgICAgICBsYXN0QW5pbWF0ZWRQ
YXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbGFzdEFu
aW1hdGVkUGF0aDsKKyAgICBpZiAoIWZyb21QYXRoLnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVt
ZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9BbmltYXRpb24pKQorICAgICAgICBsYXN0QW5pbWF0
ZWRQYXRoID0gYW5pbWF0ZWRQYXRoOwogCiAgICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5p
bWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFzIHRoZSBwYXRoIGFuaW1hdGlvbiBpcyBub3QgYSBy
ZWd1bGFyIFZlY3RvcjxTVkdYWFg+IHR5cGUsIGJ1dCBhIFNWR1BhdGhCeXRlU3RyZWFtLCB0aGF0
IHdvcmtzIGRpZmZlcmVudGx5LgotICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RG
cm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRlU3RyZWFtPigqZnJvbVBhdGgsICp0b1BhdGgsICph
bmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKKyAgICBpZiAoIW1fYW5pbWF0aW9uRWxl
bWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQYXRoQnl0ZVN0cmVhbT4oZnJvbVBhdGgs
IHRvUGF0aCwgYW5pbWF0ZWRQYXRoLCBwZXJjZW50YWdlLCBmYWxzZSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbSgqZnJvbVBhdGgsICp0b1Bh
dGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOworICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRo
Qnl0ZVN0cmVhbShmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOwog
CiAgICAgLy8gSGFuZGxlIGFkZGl0aXZlPSdzdW0nLgotICAgIGlmIChsYXN0QW5pbWF0ZWRQYXRo
KQotICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCphbmltYXRlZFBhdGgsICpsYXN0QW5p
bWF0ZWRQYXRoKTsKKyAgICBpZiAoIWxhc3RBbmltYXRlZFBhdGguaXNFbXB0eSgpKQorICAgICAg
ICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwgbGFzdEFuaW1hdGVkUGF0aCk7
CiAKICAgICAvLyBIYW5kbGUgYWNjdW11bGF0ZT0nc3VtJy4KICAgICBpZiAobV9hbmltYXRpb25F
bGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQpCi0gICAgICAgIGFkZFRvU1ZH
UGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0aCwgKnRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVw
ZWF0Q291bnQpOworICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwg
dG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1h
dGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAKaW5k
ZXggNWYwNzgwZDUyYzU0NjJhZDQ5MGM4ZjIxZWZiMjRjYWZiNThiZjE2My4uYTVmYmE2NmM0ZDc3
OWFjOTI3NWFkZTM0ZWJmNjQwODVjNTYyMjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQb2ludExpc3QuY3BwCkBAIC0zNCwxNCArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcihTVkdBbmltYXRpb25F
bGVtZW50KgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2lu
dExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpOwotICAgIHBvaW50
c0xpc3RGcm9tU1ZHRGF0YShhbmltYXRlZFR5cGUtPnBvaW50TGlzdCgpLCBzdHJpbmcpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5n
KSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyAr
NDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZAogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsK
LSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlw
ZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCwy
NiArNjYsMjYgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRl
ZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW4KIHsKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkUG9pbnRzKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRv
LT50eXBlKCkpOwotCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IGZyb20tPnBvaW50
TGlzdCgpOwotICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlzdCgpOworICAgIAor
ICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RW
YWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1BvaW50TGlzdCA9ICBzdGF0
aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNp
Z25lZCBmcm9tUG9pbnRMaXN0U2l6ZSA9IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlmICgh
ZnJvbVBvaW50TGlzdFNpemUgfHwgZnJvbVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Quc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJv
bVBvaW50TGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50
TGlzdFtpXTsKKyAgICAgICAgdG9Qb2ludExpc3QucHJvcGVydHlBdChpKSArPSBmcm9tUG9pbnRM
aXN0LnByb3BlcnR5QXQoaSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBl
YXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdB
bmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVk
KQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBvaW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0g
ICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3Qg
YXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9p
bnRMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRM
aXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9Qb2ludExp
c3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxT
VkdQb2ludExpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAg
YXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMm
PigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFk
anVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUG9pbnRMaXN0VmFsdWVzPihmcm9tUG9pbnRMaXN0LCB0
b1BvaW50TGlzdCwgYW5pbWF0ZWRQb2ludExpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTk4LDE0ICs5NiwxNCBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaQogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBG
bG9hdFBvaW50IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkK
LSAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBG
bG9hdFBvaW50IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8g
dG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7Ci0KLSAgICAgICAg
ZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueCgpOwotICAgICAgICBmbG9h
dCBhbmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlzdFtpXS55KCk7Ci0gICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBlZmZlY3RpdmVGcm9tLngoKSwgdG9Qb2ludExpc3RbaV0ueCgpLCBlZmZlY3RpdmVUb0F0RW5k
LngoKSwgYW5pbWF0ZWRYKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRk
aXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgpLCB0
b1BvaW50TGlzdFtpXS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOwotICAg
ICAgICBhbmltYXRlZFBvaW50TGlzdFtpXSA9IEZsb2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRl
ZFkpOworICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2ludExpc3QucHJvcGVydHlB
dChpKTsKKyAgICAgICAgRmxvYXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkg
OiBGbG9hdFBvaW50KCk7CisKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2lu
dExpc3QucHJvcGVydHlBdChpKS54KCk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1h
dGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0
aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueCgpLCBlZmZlY3RpdmVUb0F0
RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgp
LCB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFu
aW1hdGVkWSk7CisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkgPSBGbG9h
dFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0ZWRZKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKaW5kZXgg
ODAxMDI1YjQ1ZmE2MWI3ZWViNTA1OTBiM2FlODU3YTlhOWI2OWU5MS4uNDlhODA3MWFkOGFiZDcw
NzQ2N2NlZjhmZGZmMzgwNzlhMGFjZTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKQEAgLTMxLDE0ICszMSwxMiBA
QCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3IoUwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6Om1ha2VfdW5p
cXVlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5w
cmVzZXJ2ZUFzcGVjdFJhdGlvKCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0
czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzKSk7CisgICAg
cmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW9BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDYsNyBAQCB2b2lkIFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0Fu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAg
cmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0
ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyk7Cisg
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShm
bG9hdCBwZXJjZW4KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQo
bV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RS
YXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKSA6IGZyb20tPnByZXNlcnZlQXNwZWN0
UmF0aW8oKTsKLSAgICBjb25zdCBhdXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJl
c2VydmVBc3BlY3RSYXRpbygpOwotICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
byA9IGFuaW1hdGVkLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7CisgICAgY29uc3QgYXV0byYgZnJv
bVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvUHJlc2Vy
dmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+
KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8g
PSBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqYW5pbWF0ZWQtPnZh
bHVlc1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihwZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3Bl
Y3RSYXRpbywgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvLCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAppbmRleCBiOTRhYmY1
OWM3MDg0OGE2YmFjYjdiODA1Yjk4ZDk1ZjJiOWVmN2YyLi5jYmM0OTlkNTI2NjI5MDZhZmJjMTk0
ZmMwNDhiYjBjNGYzYWJjMTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNw
cApAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpTVkdBbmltYXRl
ZFJlY3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FCiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRS
ZWN0PigpKTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJlY3QoKSk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGUoU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0K
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlUmVjdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVj
dD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmlt
YXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGUK
IAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJl
Y3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnJlY3QpOworICAgIHJl
c2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw3
ICs2NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMo
U1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlCiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSBBbmltYXRlZFJlY3QpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUo
KSk7CiAKLSAgICB0by0+cmVjdCgpICs9IGZyb20tPnJlY3QoKTsKKyAgICBzdGF0aWNfY2FzdDxG
bG9hdFJlY3QmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmZy
b20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQs
IFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRU
eXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTc1
LDEwICs3MywxMCBAQCB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkCiAgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3Qg
RmxvYXRSZWN0JiBmcm9tUmVjdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnJlY3QoKSA6IGZyb20tPnJlY3QoKTsKLSAgICBj
b25zdCBGbG9hdFJlY3QmIHRvUmVjdCA9IHRvLT5yZWN0KCk7Ci0gICAgY29uc3QgRmxvYXRSZWN0
JiB0b0F0RW5kT2ZEdXJhdGlvblJlY3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cmVjdCgpOwotICAg
IEZsb2F0UmVjdCYgYW5pbWF0ZWRSZWN0ID0gYW5pbWF0ZWQtPnJlY3QoKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tUmVjdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0p
IDogc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
YXV0byYgdG9SZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0
UmVjdCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRl
ZFJlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAK
ICAgICBmbG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFJlY3QueCgpOwogICAgIGZsb2F0IGFuaW1h
dGVkWSA9IGFuaW1hdGVkUmVjdC55KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3Ry
aW5nLmNwcAppbmRleCA2OTg1ZWNiZWRhZDFlZmVkOGQ3NDI4MTU1YTc5MDdmYmEzNzkwZDcwLi5l
ZjEzNmZmOWM3NGMzYjhlMWQ3MWU0ZmYzOGNjOWJhYjhmNjgzOTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFN0
cmluZ0FuaW1hdG9yOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1l
bnQqIGFuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJp
bmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+c3RyaW5n
KCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmluZyhz
dHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Nyw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvCiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6c3RyaW5nKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRT
dHJpbmc+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5n
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc2LDkgKzc1LDkgQEAgdm9pZCBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICBTdHJpbmcgZnJvbVN0cmluZyA9IGZyb20tPnN0cmluZygp
OwotICAgIFN0cmluZyB0b1N0cmluZyA9IHRvLT5zdHJpbmcoKTsKLSAgICBTdHJpbmcmIGFuaW1h
dGVkU3RyaW5nID0gYW5pbWF0ZWQtPnN0cmluZygpOworICAgIFN0cmluZyBmcm9tU3RyaW5nID0g
c3RhdGljX2Nhc3Q8U3RyaW5nJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgU3RyaW5nIHRvU3Ry
aW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIFN0cmluZyYg
YW5pbWF0ZWRTdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTdHJpbmc+KHBhcnNlU3RyaW5nRnJvbVN0
cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbVN0
cmluZywgbV9jb250ZXh0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuY3BwCmluZGV4IDIwMzU2ZTBiYjZjNTIzMTM2N2I2YjZiOTI0YzUx
Y2ZiNGVmNzI0MjkuLmVlZTBjYTc5ZmE2NDg2MTMwNzlmM2UwZWRlYjY2MzNjMDRjNzk0MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCkBA
IC00MSwxNSArNDEsMTIgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OlNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yKFNWR0FuaW1hdGlvbkUKIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjptYWtl
X3VuaXF1ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnRy
YW5zZm9ybUxpc3QoKS5wYXJzZShtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScp
OwotICAgIEFTU0VSVChhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5zaXplKCkgPD0gMSk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5nICsgJyknKSk7CiB9CiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVRyYW5zZm9ybUxpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3
ICs1Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0b3BBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlw
ZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Pihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0KTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNzcsMTUgKzc0LDE1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0b1Ry
YW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21U
cmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCpmcm9t
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAgICAgYXV0byBmcm9tVHJh
bnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9t
VHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNmb3Jt
TGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3Jt
TGlzdFNpemUgPT0gMSk7Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFu
c2Zvcm1MaXN0WzBdOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBd
OworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlzdC5wcm9w
ZXJ0eUF0KDApOworICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3Bl
cnR5QXQoMCk7CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybS50eXBlKCkgPT0gdG9UcmFuc2Zv
cm0udHlwZSgpKTsKICAgICB0b1RyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRT
VkdUcmFuc2Zvcm1zKGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKQEAgLTk4LDEwICs5NSwx
MCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsCiAgICAgLy8gU3BlYzogVG8gYW5pbWF0aW9ucyBw
cm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5nZSBmcm9t
IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8vIOKAmHRv4oCZIGF0dHJpYnV0ZSB2
YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5IHdpdGggdGhlIHJlcXVpcmVtZW50
IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwogICAgIC8vIHRvIGJlIHBvc3QtbXVs
dGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Igb2YgdG8g
YW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKAmSBpcyB1bmRlZmluZWQuCi0gICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0g
ICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlz
dCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZh
bHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRv
JiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8m
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRvICdyZXNp
emVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHNwZWNpYWwgcG9zdC1tdWx0aXBs
aWNhdGlvbiBiZWhhdmlvciBvZiA8YW5pbWF0ZVRyYW5zZm9ybT4gbmVlZHMgdG8gYmUgcmVzcGVj
dGVkIGJlbG93LgogICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0
VmFsdWVzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGZyb21UcmFuc2Zvcm1MaXN0LCB0b1RyYW5z
Zm9ybUxpc3QsIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCwgcGVyY2VudGFnZSwgZmFsc2UpKQpAQCAt
MTEyLDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLAogICAgICAgICBhbmltYXRl
ZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXpl
ID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3Jt
ID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZy
b21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3Jt
VmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVy
b1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxp
c3QucHJvcGVydHlBdCgwKTsKKyAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJh
bnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJh
bnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3Ry
dWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBjdXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNm
b3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9UcmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBl
cmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVmZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2Fu
aW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkgewotICAgICAg
ICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9y
bUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJh
bnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3Ry
dWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQo
U1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwg
ZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZl
Y3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRv
QXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3Jt
VmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVy
b1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNW
R1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291
bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQo
Y3VycmVudFRyYW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwog
fQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlz
dGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpA
QCAtMTMxLDIwICsxMjgsMjAgQEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmkKICAgICBhdXRvIGZy
b20gPSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOwogICAgIGF1dG8gdG8gPSBjb25z
dHJ1Y3RGcm9tU3RyaW5nKHRvU3RyaW5nKTsKIAotICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0
ID0gZnJvbS0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRv
LT50cmFuc2Zvcm1MaXN0KCk7CisgICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNf
Y2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgdG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+
KCp0by0+dmFsdWVzWzBdKTsKICAgICB1bnNpZ25lZCBpdGVtc0NvdW50ID0gZnJvbVRyYW5zZm9y
bUxpc3Quc2l6ZSgpOwogICAgIGlmICghaXRlbXNDb3VudCB8fCBpdGVtc0NvdW50ICE9IHRvVHJh
bnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIEFTU0VSVChpdGVt
c0NvdW50ID09IDEpOwotICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdFswXS50eXBlKCkgIT0gdG9U
cmFuc2Zvcm1MaXN0WzBdLnR5cGUoKSkKKyAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVy
dHlBdCgwKS50eXBlKCkgIT0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkudHlwZSgpKQog
ICAgICAgICByZXR1cm4gLTE7CiAKICAgICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcvYW5pbWF0ZS5odG1sI2NvbXBsZXhEaXN0YW5jZXMKICAgICAvLyBQYWNlZCBhbmltYXRpb25z
IGFzc3VtZSBhIG5vdGlvbiBvZiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2YXJpb3VzIGFuaW1hdGlv
biB2YWx1ZXMgZGVmaW5lZCBieSB0aGUg4oCYdG/igJksIOKAmGZyb23igJksIOKAmGJ54oCZIGFu
ZCDigJh2YWx1ZXPigJkgYXR0cmlidXRlcy4KICAgICAvLyBEaXN0YW5jZSBpcyBkZWZpbmVkIG9u
bHkgZm9yIHNjYWxhciB0eXBlcyAoc3VjaCBhcyA8bGVuZ3RoPiksIGNvbG9ycyBhbmQgdGhlIHN1
YnNldCBvZiB0cmFuc2Zvcm1hdGlvbiB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkg4oCYYW5p
bWF0ZVRyYW5zZm9ybeKAmS4KLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRy
YW5zZm9ybUxpc3RbMF0sIHRvVHJhbnNmb3JtTGlzdFswXSkuZGlzdGFuY2UoKTsKKyAgICByZXR1
cm4gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSwg
dG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkpLmRpc3RhbmNlKCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk2M2YyMjhhMDdjOWRiNGQyMDA1OTY5NTJjYjIwNGVjYWRhMmFjNTcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHlwZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlw
ZS5oIgotCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCi0jaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0
aWVzLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1TVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3BlcnR5
VHlwZSB0eXBlKQotICAgIDogbV90eXBlKHR5cGUpCi17Ci19Ci0KLVNWR0FuaW1hdGVkVHlwZTo6
flNWR0FuaW1hdGVkVHlwZSgpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFu
aW1hdGVkQW5nbGU6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAgICAgIGRlbGV0
ZSBtX2RhdGEuYm9vbGVhbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZENvbG9y
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmNvbG9yOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuZW51bWVyYXRpb247
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLmludGVnZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyOgotICAgICAgICBkZWxldGUgbV9kYXRhLmludGVnZXJPcHRpb25h
bEludGVnZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1h
dGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGhMaXN0OwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRh
Lm51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRhLm51
bWJlck9wdGlvbmFsTnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUGF0
aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wYXRoOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkUG9pbnRzOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBvaW50TGlzdDsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgICAg
IGRlbGV0ZSBtX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucmVjdDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5z
dHJpbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Ogot
ICAgICAgICBkZWxldGUgbV9kYXRhLnRyYW5zZm9ybUxpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVf
cHRyPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IGFuZ2xlQW5kRW51bWVyYXRp
b24pCi17Ci0gICAgQVNTRVJUKGFuZ2xlQW5kRW51bWVyYXRpb24pOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkQW5nbGUp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb24gPSBhbmdsZUFu
ZEVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1z
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJv
b2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+IGJvb2xlYW4pCi17Ci0gICAgQVNTRVJUKGJvb2xl
YW4pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYm9vbGVh
biA9IGJvb2xlYW4ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQ29s
b3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPiBjb2xvcikKLXsKLSAgICBBU1NFUlQoY29sb3IpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KEFuaW1hdGVkQ29sb3IpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmNvbG9yID0gY29sb3Iu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRpb24oc3Rk
Ojp1bmlxdWVfcHRyPHVuc2lnbmVkPiBlbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoZW51bWVy
YXRpb24pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRh
LmVudW1lcmF0aW9uID0gZW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50PiBpbnRlZ2VyKQotewotICAg
IEFTU0VSVChpbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+
bV9kYXRhLmludGVnZXIgPSBpbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFp
cjxpbnQsIGludD4+IGludGVnZXJPcHRpb25hbEludGVnZXIpCi17Ci0gICAgQVNTRVJUKGludGVn
ZXJPcHRpb25hbEludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlciA9IGludGVnZXJP
cHRpb25hbEludGVnZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
TGVuZ3RoKHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhWYWx1ZT4gbGVuZ3RoKQotewotICAgIEFT
U0VSVChsZW5ndGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3RoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0
YS5sZW5ndGggPSBsZW5ndGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gbGVuZ3Ro
TGlzdCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGhMaXN0KTsK
LSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5sZW5ndGhMaXN0ID0gbGVuZ3RoTGlzdC5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjp1bmlxdWVfcHRy
PGZsb2F0PiBudW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlcik7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXIp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlciA9IG51bWJlci5yZWxlYXNlKCk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxT
VkdOdW1iZXJMaXN0VmFsdWVzPiBudW1iZXJMaXN0KQotewotICAgIEFTU0VSVChudW1iZXJMaXN0
KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRU
eXBlPihBbmltYXRlZE51bWJlckxpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJl
ckxpc3QgPSBudW1iZXJMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj4gbnVtYmVyT3B0aW9uYWxOdW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlck9wdGlv
bmFsTnVtYmVyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICBhbmltYXRl
ZFR5cGUtPm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlciA9IG51bWJlck9wdGlvbmFsTnVtYmVy
LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoc3RkOjp1bmlx
dWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBwYXRoKQotewotICAgIEFTU0VSVChwYXRoKTsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihB
bmltYXRlZFBhdGgpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBhdGggPSBwYXRoLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6OnVuaXF1
ZV9wdHI8U1ZHUG9pbnRMaXN0VmFsdWVzPiBwb2ludExpc3QpCi17Ci0gICAgQVNTRVJUKHBvaW50
TGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkVHlwZT4oQW5pbWF0ZWRQb2ludHMpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBvaW50
TGlzdCA9IHBvaW50TGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+IHByZXNlcnZlQXNwZWN0UmF0aW8pCi17Ci0gICAgQVNTRVJUKHByZXNlcnZlQXNw
ZWN0UmF0aW8pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbyA9IHByZXNlcnZlQXNwZWN0UmF0aW8ucmVs
ZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9w
dHI8RmxvYXRSZWN0PiByZWN0KQotewotICAgIEFTU0VSVChyZWN0KTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFJlY3Qp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnJlY3QgPSByZWN0LnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPiBz
dHJpbmcpCi17Ci0gICAgQVNTRVJUKHN0cmluZyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRTdHJpbmcpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLnN0cmluZyA9IHN0cmluZy5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPiB0cmFuc2Zvcm1MaXN0KQotewotICAgIEFTU0VSVCh0cmFuc2Zvcm1M
aXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRh
LnRyYW5zZm9ybUxpc3QgPSB0cmFuc2Zvcm1MaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOwotfQotCi1TdHJpbmcgU1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkK
LXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAg
ICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7Ci0gICAgICAgIHJldHVybiBtX2RhdGEuY29sb3ItPnNl
cmlhbGl6ZWQoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBBU1NFUlQobV9k
YXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEubGVuZ3RoLT52YWx1ZUFzU3RyaW5n
KCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEu
bGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEubGVuZ3RoTGlzdC0+dmFsdWVBc1N0
cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEu
bnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKCptX2RhdGEubnVtYmVyKTsK
LSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsKLSAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT54KCkpICsgJyAnICsgU3Ry
aW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPnkoKSkgKyAnICcKLSAgICAgICAgICAgICArIFN0cmlu
Zzo6bnVtYmVyKG1fZGF0YS5yZWN0LT53aWR0aCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1f
ZGF0YS5yZWN0LT5oZWlnaHQoKSk7Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAg
QVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7Ci0K
LSAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1l
bnQ6OmNzc1Byb3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCB2YWx1ZUFzU3Ry
aW5nKCkgc3VwcG9ydC4KLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBBbmltYXRl
ZEJvb2xlYW46Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0
ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgotICAg
IGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlcjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRz
OgotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2UgQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICAvLyBP
bmx5IFNWRyBET00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0aGF0IG1l
YW5zIHZhbHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRU
eXBlOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmlt
YXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgKm1fZGF0
YS5jb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcih2YWx1ZS5zdHJpcFdoaXRlU3BhY2UoKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICFtX2RhdGEubGVuZ3RoLT5z
ZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1h
dGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7Ci0gICAgY2FzZSBB
bmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoTGlzdCk7Ci0g
ICAgICAgIG1fZGF0YS5sZW5ndGhMaXN0LT5wYXJzZSh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxl
bmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQobV9k
YXRhLm51bWJlcik7Ci0gICAgICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSwgKm1fZGF0
YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoK
LSAgICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsKLSAgICAgICAgcGFyc2VSZWN0KHZhbHVlLCAq
bV9kYXRhLnJlY3QpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkU3Ry
aW5nOgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgICptX2RhdGEuc3Ry
aW5nID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgLy8gVGhlc2UgdHlwZXMg
ZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlw
ZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgc2V0VmFsdWVBc1N0cmluZygpIHN1cHBvcnQuIAot
ICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBj
YXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAg
Y2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51
bWJlckxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNh
c2UgQW5pbWF0ZWRQYXRoOgotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6
Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmlt
YXRpb25zIHVzZSB0aGVzZSBwcm9wZXJ0eSB0eXBlcyAtIHRoYXQgbWVhbnMgc2V0VmFsdWVBc1N0
cmluZygpIGlzIG5ldmVyIHVzZWQgZm9yIHRob3NlLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5
cGUpCi17Ci0gICAgLy8gQW5pbWF0ZWRDb2xvciBpcyBvbmx5IHVzZWQgZm9yIENTUyBwcm9wZXJ0
eSBhbmltYXRpb25zLgotICAgIHJldHVybiB0eXBlICE9IEFuaW1hdGVkVW5rbm93biAmJiB0eXBl
ICE9IEFuaW1hdGVkQ29sb3I7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuaAppbmRleCBhMGMxMWFkMWU0YzJhNGQ0ZTMxYzdlNDZjZTI4
ZjYyOGFhOTkyMjc0Li5mYzJjZTJmNWYyMGUzZDFjZDRiNGZlZjk4NmE2MzU3MDNhY2IyYTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwyODQgKzIwLDEyOSBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
Ci0jaW5jbHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1
ZXMuaCIKLSNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR051bWJlckxp
c3RWYWx1ZXMuaCIKLSNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKLSNpbmNsdWRlICJT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eUluZm8u
aCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVmFs
dWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTVkdQYXRoQnl0ZVN0cmVhbTsK
LQotY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotICAg
IHZpcnR1YWwgflNWR0FuaW1hdGVkVHlwZSgpOwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVf
cHRyPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9w
dHI8Ym9vbD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRy
PHVuc2lnbmVkPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRyPGludD4pOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0
ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZH
TGVuZ3RoVmFsdWU+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlTGVuZ3RoTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4p
OwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1i
ZXIoc3RkOjp1bmlxdWVfcHRyPGZsb2F0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlckxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR051bWJl
ckxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxm
bG9hdCwgZmxvYXQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZVBhdGgoc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPik7Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVBvaW50TGlzdChz
dGQ6OnVuaXF1ZV9wdHI8U1ZHUG9pbnRMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1
bmlxdWVfcHRyPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxG
bG9hdFJlY3Q+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y3JlYXRlU3RyaW5nKHN0ZDo6dW5pcXVlX3B0cjxTdHJpbmc+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1
ZV9wdHI8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
QW5pbVZhbChBbmltYXRlZFByb3BlcnR5VHlwZSk7Ci0KLSAgICBBbmltYXRlZFByb3BlcnR5VHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICAvLyBOb24tbXV0YWJsZSBh
Y2Nlc3NvcnMuCi0gICAgY29uc3Qgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiYg
YW5nbGVBbmRFbnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1l
cmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0IGJvb2wmIGJvb2xlYW4oKSBjb25zdAotICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5ib29sZWFuOwotICAgIH0KLQotICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICBjb25zdCB1bnNpZ25lZCYg
ZW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZEVudW1lcmF0aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0g
ICAgfQotCi0gICAgY29uc3QgaW50JiBpbnRlZ2VyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
aW50ZWdlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
aW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdMZW5ndGhWYWx1
ZSYgbGVuZ3RoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAg
Y29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAgfQotCi0gICAgY29uc3QgZmxvYXQmIG51bWJlcigp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyOwotICAgIH0KLQotICAgIGNvbnN0IFNWR051
bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3QoKSBjb25zdAorc3RydWN0IFNWR0FuaW1hdGVkVHlw
ZSB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIFNWR0FuaW1hdGVk
VHlwZShQcm9wZXJ0eVR5cGUmJiBwcm9wZXJ0eSkKKyAgICAgICAgOiB2YWx1ZXMgeyBTVkdWYWx1
ZTo6Y3JlYXRlKFdURk1vdmUocHJvcGVydHkpKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJl
ckxpc3Q7CiAgICAgfQogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51bWJl
ck9wdGlvbmFsTnVtYmVyKCkgY29uc3QKKyAgICBTVkdBbmltYXRlZFR5cGUoUmVmUHRyPFNWR1Zh
bHVlPiYmIHZhbHVlKQorICAgICAgICA6IHZhbHVlcyB7IFdURk1vdmUodmFsdWUpIH0KICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyOwogICAgIH0KIAot
ICAgIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIFNWR0Fu
aW1hdGVkVHlwZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9w
ZXJ0aWVzKQorICAgICAgICA6IHZhbHVlcyB7IFNWR1ZhbHVlOjpjcmVhdGUocHJvcGVydGllcy5m
aXJzdCksIFNWR1ZhbHVlOjpjcmVhdGUocHJvcGVydGllcy5zZWNvbmQpIH0KICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0
YS5wYXRoOwogICAgIH0KIAotICAgIGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0
KCkgY29uc3QKKyAgICBTVkdBbmltYXRlZFR5cGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwg
UmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKKyAgICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZh
bHVlMSksIFdURk1vdmUodmFsdWUyKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OwogICAg
IH0KIAotICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3Bl
Y3RSYXRpbygpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKTsKICAgICB9CiAKLSAgICBjb25zdCBGbG9hdFJl
Y3QmIHJlY3QoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5
VHlwZSYmIHByb3BlcnR5KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZFJlY3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5yZWN0OworICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUocHJvcGVydHkpKTsKICAgICB9
CiAKLSAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUp
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3RyaW5nKTsKLSAgICAg
ICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUodmFsdWUpKTsKICAgICB9CiAKLSAgICBjb25zdCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkgY29uc3QKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgICAgICBy
ZXR1cm4gKm1fZGF0YS50cmFuc2Zvcm1MaXN0OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxQcm9wZXJ0
eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj46OmluaXRpYWxWYWx1ZSgpKTsKICAgICB9CiAKLSAgICAv
LyBNdXRhYmxlIGFjY2Vzc29ycy4KLSAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+JiBhbmdsZUFuZEVudW1lcmF0aW9uKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3Bl
cnR5VHlwZTI+JiYgcHJvcGVydGllcykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRp
b247CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RG
TW92ZShwcm9wZXJ0aWVzKSk7CiAgICAgfQogCi0gICAgYm9vbCYgYm9vbGVhbigpCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShSZWZQdHI8U1ZHVmFs
dWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5ib29sZWFuOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5
cGU+KFdURk1vdmUodmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpKTsKICAgICB9CiAKLSAgICBDb2xv
ciYgY29sb3IoKQorICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdAogICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAg
ICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwotICAgIH0KLQotICAgIGludCYgaW50ZWdl
cigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQotCi0gICAgc3RkOjpwYWlyPGlu
dCwgaW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgU1ZHTGVuZ3Ro
VmFsdWUmIGxlbmd0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
TGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIFNW
R0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5n
dGhMaXN0OwotICAgIH0KKyAgICAgICAgQVNTRVJUKHZhbHVlc1swXSk7CisgICAgICAgIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkVHlwZTEgPSB2YWx1ZUFuaW1hdGVkVHlwZSgqdmFsdWVz
WzBdKTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMiA9IHZhbHVl
c1sxXSA/IHZhbHVlQW5pbWF0ZWRUeXBlKCp2YWx1ZXNbMV0pIDogQW5pbWF0ZWRVbmtub3duOwog
Ci0gICAgZmxvYXQmIG51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyOwotICAgIH0KKyAg
ICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRBbmdsZSkgeworICAgICAgICAgICAg
QVNTRVJUKGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7CisgICAgICAgICAg
ICByZXR1cm4gQW5pbWF0ZWRBbmdsZTsKKyAgICAgICAgfQogCi0gICAgU1ZHTnVtYmVyTGlzdFZh
bHVlcyYgbnVtYmVyTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAg
fQorICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0
ZWRUeXBlMiA9PSBBbmltYXRlZEludGVnZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwogCi0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51
bWJlck9wdGlvbmFsTnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJl
ck9wdGlvbmFsTnVtYmVyOwotICAgIH0KKyAgICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5p
bWF0ZWROdW1iZXIgJiYgYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZE51bWJlcikKKyAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOwogCi0gICAgU1ZHUGF0aEJ5
dGVTdHJlYW0qIHBhdGgoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7CisgICAgICAgIEFTU0VSVChhbmlt
YXRlZFR5cGUyID09IEFuaW1hdGVkVW5rbm93bik7CisgICAgICAgIHJldHVybiBhbmltYXRlZFR5
cGUxOwogICAgIH0KIAotICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkKKyAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKKyAgICAg
ICAgQVNTRVJUKHZhbHVlc1swXSAmJiAhdmFsdWVzWzFdKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
c1swXS0+dG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKQorICAgIGJvb2wgcGFyc2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgICAgICBBU1NFUlQodmFsdWVzWzBd
ICYmICF2YWx1ZXNbMV0pOworICAgICAgICByZXR1cm4gdmFsdWVzWzBdLT5wYXJzZShhdHRyTmFt
ZSwgc3RyaW5nKTsKICAgICB9CiAKLSAgICBGbG9hdFJlY3QmIHJlY3QoKQorICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzQW5pbVZhbChBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFJlY3QpOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS5yZWN0OworICAgICAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkgdXNlZCBmb3IgQ1NT
IHByb3BlcnR5IGFuaW1hdGlvbnMuCisgICAgICAgIHJldHVybiB0eXBlICE9IEFuaW1hdGVkVW5r
bm93biAmJiB0eXBlICE9IEFuaW1hdGVkQ29sb3I7CiAgICAgfQogCi0gICAgU3RyaW5nJiBzdHJp
bmcoKQorICAgIHN0YXRpYyBBbmltYXRlZFByb3BlcnR5VHlwZSB2YWx1ZUFuaW1hdGVkVHlwZShj
b25zdCBTVkdWYWx1ZSYgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkU3RyaW5nKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOworICAgICAgICBy
ZXR1cm4gV1RGOjp2aXNpdChXVEY6Om1ha2VWaXNpdG9yKAorICAgICAgICAgICAgW10oY29uc3Qg
U1ZHQW5nbGVWYWx1ZSYpICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkQW5nbGU7IH0s
CisgICAgICAgICAgICBbXShjb25zdCBib29sJikgICAgICAgICAgICAgICAgICAgICAgICAgeyBy
ZXR1cm4gQW5pbWF0ZWRCb29sZWFuOyB9LAorICAgICAgICAgICAgW10oY29uc3QgQ29sb3ImKSAg
ICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkQ29sb3I7IH0sCisgICAgICAg
ICAgICBbXShjb25zdCB1bnNpZ25lZCYpICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5p
bWF0ZWRFbnVtZXJhdGlvbjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGludCYpICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEludGVnZXI7IH0sCisgICAgICAgICAg
ICBbXShjb25zdCBTVkdMZW5ndGhWYWx1ZSYpICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0
ZWRMZW5ndGg7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJikg
ICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRMZW5ndGhMaXN0OyB9LAorICAgICAgICAgICAgW10o
Y29uc3QgZmxvYXQpICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkTnVt
YmVyOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYpICAgICAg
ICAgIHsgcmV0dXJuIEFuaW1hdGVkTnVtYmVyTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0
IFNWR1BhdGhCeXRlU3RyZWFtJikgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFBhdGg7IH0s
CisgICAgICAgICAgICBbXShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKSAgeyBy
ZXR1cm4gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9LAorICAgICAgICAgICAgW10oY29u
c3QgU1ZHUG9pbnRMaXN0VmFsdWVzJikgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkUG9pbnRz
OyB9LAorICAgICAgICAgICAgW10oY29uc3QgRmxvYXRSZWN0JikgICAgICAgICAgICAgICAgICAg
IHsgcmV0dXJuIEFuaW1hdGVkUmVjdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFN0cmluZyYp
ICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFN0cmluZzsgfSwKKyAgICAg
ICAgICAgIFtdKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmKSAgICAgICB7IHJldHVybiBB
bmltYXRlZFRyYW5zZm9ybUxpc3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBhdXRvJikgICAg
ICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRVbmtub3duOyB9CisgICAgICAg
ICksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVlKSk7CiAgICAgfQog
Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpCi0gICAgewotICAg
ICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7Ci0gICAgfQotCi0gICAgU3RyaW5nIHZhbHVlQXNT
dHJpbmcoKTsKLSAgICBib29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IFN0cmluZyYpOwotCi1wcml2YXRlOgotICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIG1f
dHlwZTsKLQotICAgIHVuaW9uIERhdGFVbmlvbiB7Ci0gICAgICAgIERhdGFVbmlvbigpCi0gICAg
ICAgICAgICA6IGxlbmd0aChudWxscHRyKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAg
ICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KiBhbmdsZUFuZEVudW1lcmF0aW9u
OwotICAgICAgICBib29sKiBib29sZWFuOwotICAgICAgICBDb2xvciogY29sb3I7Ci0gICAgICAg
IHVuc2lnbmVkKiBlbnVtZXJhdGlvbjsKLSAgICAgICAgaW50KiBpbnRlZ2VyOwotICAgICAgICBz
dGQ6OnBhaXI8aW50LCBpbnQ+KiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBTVkdM
ZW5ndGhWYWx1ZSogbGVuZ3RoOwotICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzKiBsZW5ndGhM
aXN0OwotICAgICAgICBmbG9hdCogbnVtYmVyOwotICAgICAgICBTVkdOdW1iZXJMaXN0VmFsdWVz
KiBudW1iZXJMaXN0OwotICAgICAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiogbnVtYmVyT3B0
aW9uYWxOdW1iZXI7Ci0gICAgICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoOwotICAgICAgICBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqIHByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAg
IFNWR1BvaW50TGlzdFZhbHVlcyogcG9pbnRMaXN0OwotICAgICAgICBGbG9hdFJlY3QqIHJlY3Q7
Ci0gICAgICAgIFN0cmluZyogc3RyaW5nOwotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
KiB0cmFuc2Zvcm1MaXN0OwotICAgIH0gbV9kYXRhOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFs
dWVzWzJdOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAppbmRleCA3NGU5YWE4MjAwNDU2NDAxODRjOGE0
YTM2YmU1Y2I0Nzk2MjkzM2Q1Li5hMWVjNDM3YjdhZDk5MzRmNGY4ZmNlZjJiMDQwM2M3ZmUwM2U0
M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaApA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkIDIwMTEtMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTYzLDI4ICs2NCwzMiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBIZWxwZXJz
IGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHNpbmdsZSB0eXBlcywgZWcuIGp1c3Qgb25l
IFNWR0FuaW1hdGVkSW50ZWdlci4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4K
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPiBj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVzWzBd
LnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwotICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmltVmFs
VHlwZTo6Q29udGVudFR5cGUmIGFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9B
Y3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0
KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlKiBhbmlt
YXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKKyAgICAgICAgaWYgKGFuaW1h
dGVkVHlwZS0+aXNBbmltYXRpbmcoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBh
bmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAg
ICAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoYW5pbWF0ZWRW
YWx1ZSkpOworICAgICAgICB9CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1
ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAg
ICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAg
IFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1h
dGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVk
VmFsdWUpOworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShh
bmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5
cGU+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHR5cGVu
YW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgKFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlciko
KSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEp
OwogICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICAgICAgYXV0byog
cHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICAgICAgcHJvcGVydHkt
PnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotCi0gICAgICAgIHR5cGVuYW1lIEFuaW1W
YWxUeXBlOjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlVmFsdWUgPSAodHlwZS4qZ2V0dGVyKSgp
OwotICAgICAgICBhbmltYXRlZFR5cGVWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVl
KCk7CisgICAgICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9w
ZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKTsKKyAgICAgICAgYW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZO
ZWVkZWQoKTsKIAotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlKTsKKyAgICAg
ICAgUmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUgPSBhbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNl
VmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gdHlwZS52
YWx1ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250
ZW50VHlwZSY+KCphbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxU
eXBlOjpDb250ZW50VHlwZSY+KCpiYXNlVmFsdWUpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFu
aW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgYW5pbWF0
ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBA
IC0xMTAsMzQgKzExNSw0NSBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBIZWxwZXJzIGZvciBhbmlt
YXRvcnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMsIGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0
ZWRJbnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1l
IEFuaW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFu
aW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5
cGU+PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1l
IEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0VHlwZSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBjb25zdCB0eXBlbmFtZSBB
bmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MV0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBl
MSogZmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxB
bmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAg
ICAgIGNvbnN0IEFuaW1WYWxUeXBlMiogc2Vjb25kQW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3Bl
cnRpZXNbMV0uZ2V0KCkpOworCisgICAgICAgIGlmIChmaXJzdEFuaW1hdGVkVHlwZS0+aXNBbmlt
YXRpbmcoKSAmJiBzZWNvbmRBbmltYXRlZFR5cGUtPmlzQW5pbWF0aW5nKCkpIHsKKyAgICAgICAg
ICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0gZmlyc3RBbmltYXRlZFR5
cGUtPmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7CisgICAgICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+
IHNlY29uZEFuaW1hdGVkVmFsdWUgPSBzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRBbmltYXRl
ZFZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RG
TW92ZShmaXJzdEFuaW1hdGVkVmFsdWUpLCBXVEZNb3ZlKHNlY29uZEFuaW1hdGVkVmFsdWUpKTsK
KyAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY29weSA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpw
YWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxU
eXBlMjo6Q29udGVudFR5cGU+PihmaXJzdFR5cGUsIHNlY29uZFR5cGUpOwotICAgICAgICBleGVj
dXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlw
ZXMsIDAsICZjb3B5LT5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUy
PihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJmNvcHktPnNlY29uZCk7
Ci0gICAgICAgIHJldHVybiBjb3B5OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5p
bWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50
QmFzZVZhbHVlKCkpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFs
dWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFs
dWUoKSk7CisKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBmaXJzdEFuaW1hdGVkVmFsdWUpOworICAgICAg
ICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1h
dGVkVHlwZXMsIDEsIHNlY29uZEFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShmaXJzdEFuaW1hdGVkVmFsdWUpLCBXVEZNb3ZlKHNl
Y29uZEFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmlt
VmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICB2b2lkIHJlc2V0RnJvbUJhc2VW
YWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
LCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHN0ZDo6cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6
OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlPiYgKFNWR0Fu
aW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZXMoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmlt
YXRlZFR5cGUmIHR5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5w
cm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1f
dHlwZSk7Ci0gICAgICAgIGF1dG8qIGZpcnN0UHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0
eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sw
XS5nZXQoKSk7Ci0gICAgICAgIGF1dG8qIHNlY29uZFByb3BlcnR5ID0gIGNhc3RBbmltYXRlZFBy
b3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzFdLmdldCgpKTsKLSAgICAgICAgZmlyc3RQcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVy
c0lmTmVlZGVkKCk7Ci0gICAgICAgIHNlY29uZFByb3BlcnR5LT5zeW5jaHJvbml6ZVdyYXBwZXJz
SWZOZWVkZWQoKTsKLQotICAgICAgICBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIGFuaW1hdGVk
VHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUu
Zmlyc3QgPSBmaXJzdFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1h
dGVkVHlwZVZhbHVlLnNlY29uZCA9IHNlY29uZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7
Ci0KLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0
aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRUeXBlVmFsdWUuZmlyc3QpOwotICAgICAg
ICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1h
dGVkVHlwZXMsIDEsICZhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQpOworICAgICAgICBBbmltVmFs
VHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5
cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwor
ICAgICAgICBBbmltVmFsVHlwZTIqIHNlY29uZEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFBy
b3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzFdLmdldCgpKTsKKyAgICAgICAgZmlyc3RBbmltYXRlZFR5cGUtPnN5bmNocm9uaXplV3Jh
cHBlcnNJZk5lZWRlZCgpOworICAgICAgICBzZWNvbmRBbmltYXRlZFR5cGUtPnN5bmNocm9uaXpl
V3JhcHBlcnNJZk5lZWRlZCgpOworCisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RCYXNl
VmFsdWUgPSBmaXJzdEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBS
ZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IHR5cGUudmFsdWVzWzBdOworICAg
ICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlJj4oKmZp
cnN0QW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNv
bnRlbnRUeXBlJj4oKmZpcnN0QmFzZVZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBmaXJzdEFu
aW1hdGVkVmFsdWUpOworCisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gc2Vjb25kQmFzZVZhbHVl
ID0gc2Vjb25kQW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIFJlZlB0
cjxTVkdWYWx1ZT4gc2Vjb25kQW5pbWF0ZWRWYWx1ZSA9IHR5cGUudmFsdWVzWzFdOworICAgICAg
ICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJj4oKnNlY29u
ZEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250
ZW50VHlwZSY+KCpzZWNvbmRCYXNlVmFsdWUpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsIHNlY29uZEFu
aW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBl
MSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgpAQCAtMTkwLDMzICsyMDYsMzMgQEAgcHJpdmF0ZToK
ICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgdm9pZCBl
eGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwg
dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlKiB0eXBlID0gMCkKKyAgICB2b2lkIGV4
ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCB1bnNpZ25lZCB3aGljaFByb3BlcnR5LCBS
ZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUgPSBudWxscHRyKQogICAgIHsKICAgICAgICAg
Ly8gRklYTUU6IENhbid0IHVzZSBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmVj
YXVzZSBvZiBjaXJjdWxhciBoZWFkZXIgZGVwZW5kZW5jeS4gV291bGQgYmUgbmljZSB0byB1bnRh
bmdsZSB0aGlzLgogICAgICAgICBzZXRJbnN0YW5jZVVwZGF0ZXNCbG9ja2VkKCphbmltYXRlZFR5
cGVzWzBdLmVsZW1lbnQsIHRydWUpOwogCiAgICAgICAgIGZvciAoYXV0byYgYW5pbWF0ZWRUeXBl
IDogYW5pbWF0ZWRUeXBlcykgewogICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04od2hpY2hQcm9wZXJ0eSA8IGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzLnNpemUoKSk7
Ci0gICAgICAgICAgICBBbmltVmFsVHlwZSogcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0
eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlLnByb3BlcnRpZXNbd2hpY2hQ
cm9wZXJ0eV0uZ2V0KCkpOworICAgICAgICAgICAgQW5pbVZhbFR5cGUqIGFuaW1hdGVkUHJvcGVy
dHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0
ZWRUeXBlLnByb3BlcnRpZXNbd2hpY2hQcm9wZXJ0eV0uZ2V0KCkpOwogCiAgICAgICAgICAgICBz
d2l0Y2ggKGFjdGlvbikgewogICAgICAgICAgICAgY2FzZSBTdGFydEFuaW1hdGlvbkFjdGlvbjoK
LSAgICAgICAgICAgICAgICBBU1NFUlQodHlwZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9w
ZXJ0eS0+aXNBbmltYXRpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1h
dGlvblN0YXJ0ZWQodHlwZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVmFsdWUp
OworICAgICAgICAgICAgICAgIGlmICghYW5pbWF0ZWRQcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZChh
bmltYXRlZFZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
U3RvcEFuaW1hdGlvbkFjdGlvbjoKLSAgICAgICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKLSAgICAgICAgICAgICAg
ICAgICAgcHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7CisgICAgICAgICAgICAgICAgQVNTRVJU
KCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eS0+
aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5p
bWF0aW9uRW5kZWQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QW5pbVZhbFdpbGxDaGFuZ2VBY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsK
LSAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbVZhbFdpbGxDaGFuZ2UoKTsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGFuaW1hdGVk
UHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIEFuaW1WYWxEaWRDaGFuZ2VBY3Rpb246Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbVZhbERpZENoYW5n
ZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbERpZENoYW5nZSgpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuaAppbmRleCBkMjAwNmYzNTZiZWE5OTc1MGZlNmQ3OTNkZDhjODAz
NmJhNmIzZDAwLi4yYTM3MDBjMzU3MTFjMmQyNmFlMjhmNzgzZjFlNTZlYTA3YjI3M2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29uZGl0aW9uRXZlbnRMaXN0ZW5lcjsKLWNs
YXNzIFNWR0FuaW1hdGVkVHlwZTsKK3N0cnVjdCBTVkdBbmltYXRlZFR5cGU7CiBjbGFzcyBUaW1l
Q29udGFpbmVyOwogCiBlbnVtIEFuaW1hdGlvbk1vZGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKaW5k
ZXggMzY0ZmFiYjBlZTg0YzVjYTYyMGMwM2RjM2JmODU2YmQ3ZTMwMjM4Zi4uN2E5YTIwNWFlYWQ2
NWNiM2I1YzU4MmQ4MTI4MDMwOWI4MTc0YjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCkBAIC0x
MzcsNyArMTM3LDcgQEAgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbiBTVkdDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uRWxlbWVudDo6dHJhbnNmZXJGdW5jdGlvbigKICAgICBmdW5jLmFtcGxpdHVk
ZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMuZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1
bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVz
KCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCkucHJvcGVydGllcygpOwog
ICAgIHJldHVybiBmdW5jOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5j
cHAKaW5kZXggNTUwMmQ1MTIxNjdhOWZjNWY1YWY5ZDkyOWU2MGE5ODY5NzkzMTFjNS4uNDBjNDY4
Y2I4MjQwN2RjYTZmMDQ3NDc2M2U3YmVjOWYwZTkzNmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDdXJzb3JFbGVtZW50LmNwcApAQCAtNDYsOCArNDYsOCBAQCBFTkRfUkVHSVNURVJfQU5JTUFU
RURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZHQ3Vyc29yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0
aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmN1cnNvclRhZykpOwog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHQ3Vyc29yRWxlbWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggOTZlYzZhNTBlMGZkZDNi
YTYyY2Q3YWZjODg3ZjA3MDA2NDI4ZTdjNy4uYmY2NGU2YmUyY2JkODQxYzk2NWI3YThlZGE5NGEz
YzQ5NzNhNjNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBA
IC00OCwxMCArNDgsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5s
aW5lIFNWR0VsbGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAs
IG1fY3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fcngoTGVuZ3RoTW9kZVdpZHRoKQotICAg
ICwgbV9yeShMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV9jeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1fcngoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1f
cnkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmVsbGlwc2VUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVy
dGllc0ZvclNWR0VsbGlwc2VFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmNwcAppbmRleCA4OTExMGE5OTY2ZjY5ZjA4OWFhYTQ2MmNhZDcz
OGI2NmQ1YjZkMGRhLi43YjBjZGNkNjlkNTQxNzM0OWM0M2IzOTdiNTg1YmQ2N2I4YzY2NjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKQEAg
LTgzLDcgKzgzLDcgQEAgYm9vbCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZm
ZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0LCBjb24KICAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFR5
cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCi0g
ICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVlcygpKTsKKyAgICAgICAg
cmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFsdWVzKCkucHJvcGVydGllcygpKTsKIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMyw3ICsx
MzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6YnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbAogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKTsKKyAg
ICAgICAgZmlsdGVyVmFsdWVzID0gdmFsdWVzKCkucHJvcGVydGllcygpOwogICAgICAgICB1bnNp
Z25lZCBzaXplID0gZmlsdGVyVmFsdWVzLnNpemUoKTsKIAogICAgICAgICBpZiAoKGZpbHRlclR5
cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWCAmJiBzaXplICE9IDIwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggYmMx
N2Y3ZTkyZWQ3NDg3YzYyNzAxZjZmZGYxMmI4ZGFlMjRkYWU0MC4uZWY2NzhiOWZhZjU4NmNjNzMy
ODJkZGUzOGU5ZDQwYWE2MTJjNDFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC0yODIsMTIgKzI4MiwxMiBAQCBSZWZQdHI8
RmlsdGVyRWZmZWN0PiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciogZmlsdGVyQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWhhc0F0
dHJpYnV0ZShTVkdOYW1lczo6ZGl2aXNvckF0dHIpKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwga2VybmVsTWF0cml4U2l6ZTsgKytpKQotICAgICAgICAgICAgZGl2aXNvclZhbHVlICs9
IGtlcm5lbE1hdHJpeC5hdChpKTsKKyAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxN
YXRyaXgucHJvcGVydHlBdChpKTsKICAgICAgICAgaWYgKCFkaXZpc29yVmFsdWUpCiAgICAgICAg
ICAgICBkaXZpc29yVmFsdWUgPSAxOwogICAgIH0KIAotICAgIGF1dG8gZWZmZWN0ID0gRkVDb252
b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFs
dWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZ
VmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtl
cm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeCk7Cisg
ICAgYXV0byBlZmZlY3QgPSBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoZmlsdGVyLCBJbnRTaXpl
KG9yZGVyWFZhbHVlLCBvcmRlcllWYWx1ZSksIGRpdmlzb3JWYWx1ZSwgYmlhcygpLCBJbnRQb2lu
dCh0YXJnZXRYVmFsdWUsIHRhcmdldFlWYWx1ZSksIGVkZ2VNb2RlKCksIEZsb2F0UG9pbnQoa2Vy
bmVsVW5pdExlbmd0aFhWYWx1ZSwga2VybmVsVW5pdExlbmd0aFlWYWx1ZSksIHByZXNlcnZlQWxw
aGEoKSwga2VybmVsTWF0cml4LnByb3BlcnRpZXMoKSk7CiAgICAgZWZmZWN0LT5pbnB1dEVmZmVj
dHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gV1RGTW92ZShlZmZlY3QpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDc4YjhjMTJhMDMwY2ZhNjk1
NmJhNzUyYjVkY2QzNDAxNGM0ZDI2NzEuLjFkOGU3ZWJlYTY2MWYzMWM5Nzk3ZGRiNzQ0NTJlYWU0
MGVkOTNiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTY0
LDEwICs2NCwxMCBAQCBpbmxpbmUgU1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudAogICAgIDogU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdV
bml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpCi0gICAgLCBtX3goTGVuZ3Ro
TW9kZVdpZHRoLCAiLTEwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKQot
ICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikKLSAgICAsIG1faGVpZ2h0KExl
bmd0aE1vZGVIZWlnaHQsICIxMjAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgsICItMTAlIikpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCwgIi0xMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTIwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCwgIjEyMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBu
b3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUiIHdlcmUg
c3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2Vy
ZSBzcGVjaWZpZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCmluZGV4IDMyYmZlYmJkY2IyZDMzMmM4
ZDljNmM4NzUwNzBkMWRmN2I0MTJhYmQuLjBjNWMwZmRkZmVhNzgxNGM5YmJjMTQ0YmRhM2IxZWQ3
NjA4ZjExYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCkBAIC01MSwxMCArNTEsMTAgQEAgRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICIwJSIp
Ci0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3Ro
TW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTAw
JSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMCUiKSkKKyAg
ICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKSkKKyAgICAsIG1f
d2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKSkKIHsKICAgICAv
LyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJ
ZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggZTFhODQxOTM4OTI3
MTUyMGY3NjFiNjNiMTk2YzZlNmQxYTQ4ZTdiZi4uY2VhNzJlZTYxZTc4ZmY5ODkzMjZkYTAxNWM2
Zjk4ZGYyNjY0MTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuY3BwCkBAIC01MywxMCArNTMsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBt
X3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBt
X3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQp
CisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmb3Jl
aWduT2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0lt
YWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApp
bmRleCA0MjhhZjgwZDJmODEwZTdjMzI2YTQ2OTAxZDJhZDMzMTdkNjI2YjI0Li4yMWZmY2Y1ZmEw
NDUxNzgzODM4NmI5NGI2OGMyZGM4NThlNDI3MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1h
Z2VFbGVtZW50LmNwcApAQCAtNTUsMTAgKzU1LDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9Q
Uk9QRVJUSUVTCiAKIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdH
cmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdp
ZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1v
ZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJv
cGVydGllc0ZvclNWR0ltYWdlRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCmluZGV4IGNj
ODkxMTA2NTg4MjYyMzlhNDIzNmFmZDQ2MTkyNjFkZjQzZWQzOGEuLjA4ZjAxODY2YjY3OWZmZTJm
OTQxMzc2ZTcyNzRiODU1Y2FlOGI2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgICAgICBTVkdfTEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQ
QwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5n
dGhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9
CkBAIC01NywxMSArNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xl
bmd0aD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0g
ICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxT
VkdMZW5ndGg+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewog
ICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNzEsMTIgKzY2LDEy
IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjxm
bG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlS
ZWZlcmVuY2UoKS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxl
bWVudCgpIH0pOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlRm9yQmluZGlu
Z3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTg0
LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBT
VkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWUodmFsdWUsIFNWR0xlbmd0aENvbnRleHQgeyBj
b250ZXh0RWxlbWVudCgpIH0pOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC05NCw3ICs4OSw3IEBAIHB1
YmxpYzoKICAgICAKICAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVJblNwZWNpZmllZFVuaXRz
KGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKQEAgLTEwMiw3ICs5Nyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTEwLDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJp
bmcgdmFsdWVBc1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVu
Y2UoKS52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFs
dWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTExOCw3ICsxMTMsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICAgICAgCkBAIC0xMzEsNyArMTI2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
Lm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVk
VW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAK
QEAgLTE0NCw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3Ig
fTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuY29udmVydFRv
U3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVu
dCgpIH0pOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0VG9T
cGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50
KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE1Myw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQor
ICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwg
cm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE2MiwxMSArMTU3LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0
aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xl
bmd0aFZhbHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCmluZGV4IDlhYmFhNGZmZTgz
N2E4YTM5ODQ5ZjdlYmExMzhhMDFiM2ZiNmJmMDEuLjEzZDAwNTE1NDUxY2EzNWYzMzYyZWJmMTVi
MDA1YTM0OWY0NTRmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaApAQCAtMzYsMTMg
KzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAg
ICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6
TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRl
KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExp
c3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlz
dChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykK
ICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
CmluZGV4IGJhMjA2NDgyM2EyODMyMWE3M2FlNTRjNjAzNzllNWNmOTJiMWIzNDMuLmZhYWRmNzM5
NWJiNWJiODAzNjAyMWRmZGFhNzc4YTc2MDMyMjMxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJTVkdM
ZW5ndGhMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCB2b2lkIFNWR0xlbmd0aExp
c3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0xlbmd0aE1vZGUgbW9kZSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5n
KHZhbHVlU3RyaW5nKS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgYXBwZW5kKGxlbmd0aCk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR0xl
bmd0aFZhbHVlPihsZW5ndGgpKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxp
bWl0ZXIocHRyLCBlbmQpOwogICAgIH0KIH0KQEAgLTYwLDcgKzYxLDcgQEAgU3RyaW5nIFNWR0xl
bmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgICAgICBpZiAoaSA+IDAp
CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3Bl
cnR5QXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKaW5kZXgg
ZmRjODM5ZmMxMGRlZTk3YzIwMWUzNWU0Yzg3NDY1MDA1YWJiZTY4Yy4uZmRmZDZkYzFhOGY4YjJm
MDlkOTBlNjIwMWE2NzkzZjhiZDZjNDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3RWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDI2ICsyMiwzOSBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHTGVuZ3RoOwogY2xhc3MgU1ZHTGVuZ3RoTGlzdDsKIAotY2xhc3MgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHTGVuZ3RoVmFsdWU+IHsKK2NsYXNzIFNWR0xl
bmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1
ZT4gewogcHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHTGVu
Z3RoTW9kZSk7CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKK3Rl
bXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7
CisgICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4g
IHsgfTsgfQorICAgIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICB7CisgICAgICAg
IFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcsIGxl
bmd0aE1vZGUpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZywgU1ZHTGVuZ3RoVmFs
dWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpOworICAg
ICAgICByZXR1cm4gbGlzdDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25z
dCBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmco
KTsgfQorICAgIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR0xlbmd0aFZhbHVlOwogICAg
IHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNWR0xlbmd0aDsKICAgICB1c2luZyBMaXN0UHJvcGVy
dHlUZWFyT2ZmID0gU1ZHTGVuZ3RoTGlzdDsKLQotICAgIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFs
dWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuICB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFs
dWVBc1N0cmluZygpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhWYWx1ZS5oCmluZGV4IGNjNGFhZGUyMjJhY2Y0ZmY2NGQwZTQ3OGMxOWU2NmYx
Y2E4NjNjZGIuLmY4NGJmMDNiNjY3ZjgyOTRlNzgyNzkwMTM5ODk0YWM4NmFkYzJmMWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCkBAIC0xNDcsNyArMTQ3LDEzIEBAIHByaXZhdGU6
CiAKIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPiB7
CiAgICAgc3RhdGljIFNWR0xlbmd0aFZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHR5cGUp
IHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U1ZHTGVuZ3RoVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aFZhbHVlIGxlbmd0
aDsKKyAgICAgICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3RyaW5nLCBTVkdMZW5ndGhWYWx1
ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhj
ZXB0aW9uKCk7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCkgeyByZXR1cm4gbGVuZ3Ro
LnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGUzZjk3OTU5ODg0YjQ5
NDk4YWY0MWMyZTg1MWU1ZjZiZjlkMTJkMGMuLmIxNzcyMmM3YmE1ZmEwMDMzYmZjYmUwMjVhYTg1
OWRmM2ZiOWMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuY3BwCkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAogaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAs
IG1feDEoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0KQotICAg
ICwgbV94MihMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1feTIoTGVuZ3RoTW9kZUhl
aWdodCkKKyAgICAsIG1feDEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAs
IG1feTEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3gyKFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1feTIoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgyIGF0dHJp
YnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEw
MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpsaW5l
YXJHcmFkaWVudFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RW
YWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdhM2Y2ZGMyOWRhYmJhN2RlYzc3Yzc2Nzc4ZWIyZmRlYTc0Y2E1NTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAKQEAgLTAsMCArMSw2
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgorCisjaW5jbHVkZSAi
U1ZHVmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgordm9pZCBTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZShz
aXplX3QgbmV3U2l6ZSkKK3sKKyAgICBzaXplX3QgaW5kZXggPSBzaXplKCk7CisgICAgVmVjdG9y
PFJlZlB0cjxTVkdWYWx1ZT4+OjpyZXNpemUobmV3U2l6ZSk7CisgICAgZm9yICg7IGluZGV4IDwg
bmV3U2l6ZTsgKytpbmRleCkKKyAgICAgICAgYXQoaW5kZXgpID0gU1ZHVmFsdWU6OmNyZWF0ZTxQ
cm9wZXJ0eVR5cGU+KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitW
ZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVw
Q29weSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHZhbHVlczsKKyAg
ICBmb3IgKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlIDogKnRoaXMpCisgICAgICAgIHZh
bHVlcy5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZSgqdmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWVz
OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiBleHBsaWNpdCBpbnN0YW50aWF0aW9uLgordGVt
cGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6cmVzaXplKHNpemVfdCk7Cit0ZW1wbGF0
ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD46OnJlc2l6ZShzaXplX3QpOwordGVtcGxh
dGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6cmVzaXplKHNpemVfdCk7Cit0
ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpyZXNpemUoc2l6
ZV90KTsKKwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8
ZmxvYXQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1
ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OwordGVt
cGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3Jt
VmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMWM1YzcwMDg3Mjg4MTY5Mzk2MzVmOGVkZWYxMzJhNjBlMWJiYmY4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdWYWx1ZTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0
cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBkZWZhdWx0Owor
CisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICAgICAg
OiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAgICB7CisgICAg
fQorCisgICAgdm9pZCByZXNpemUoc2l6ZV90KTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gZGVlcENvcHkoKSBjb25zdDsKKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHlB
dChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCphdChpbmRleCkpOyB9CisgICAgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRl
eCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKwor
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHBy
b3BlcnR5QXQoMCk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSB7IHJldHVy
biBwcm9wZXJ0eUF0KDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0
eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKyAgICBQcm9wZXJ0
eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0K
KworICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllczsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgcHJvcGVydGllcy5hcHBlbmQoc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlKSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0
aWVzOworICAgIH0KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNw
cAppbmRleCBjN2UyMGYxZGE4ZmVhMjRiNThmNTk3N2M0NWJkYTY3ODJkOTg2OWY0Li4yN2FiZGZk
NzE2YmU1ZGVlZTIwMWI1YTQxZTVhM2YxMjk1NzZjMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkBAIC03MSwxMCArNzEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVmWChMZW5ndGhNb2Rl
V2lkdGgpCi0gICAgLCBtX3JlZlkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fbWFya2VyV2lk
dGgoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpCi0gICAgLCBtX21hcmtlckhlaWdodChMZW5ndGhNb2Rl
SGVpZ2h0LCAiMyIpIAorICAgICwgbV9yZWZYKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCkpCisgICAgLCBtX3JlZlkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAg
LCBtX21hcmtlcldpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjMiKSkKKyAg
ICAsIG1fbWFya2VySGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIzIikp
CiAgICAgLCBtX21hcmtlclVuaXRzKFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpCiAgICAgLCBt
X29yaWVudFR5cGUoU1ZHTWFya2VyT3JpZW50QW5nbGUpCiB7CkBAIC0yMTEsNyArMjExLDcgQEAg
dm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0F1dG8oKQogCiB2b2lkIFNWR01hcmtl
ckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUmIGFuZ2xlKQogewotICAgIHNldE9y
aWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5nbGUucHJvcGVydHlSZWZlcmVuY2UoKSk7Cisg
ICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS52YWx1ZVByb3BlcnR5KCkp
OwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCkBAIC0yMzgsMTIgKzIzOCwxMiBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnN5bmNo
cm9uaXplT3JpZW50VHlwZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhdXRvU3RhcnRSZXZlcnNlU3RyaW5nKCJhdXRv
LXN0YXJ0LXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAog
ICAgIC8vIElmIG9yaWVudCBpcyBub3QgYXV0byBvciBhdXRvLXN0YXJ0LXJldmVyc2UsIHRoZSBw
cmV2aW91cyBjYWxsIHRvIHN5bmNocm9uaXplT3JpZW50QW5nbGUgYWxyZWFkeSBzZXQgdGhlIG9y
aWVudEF0dHIgdG8gdGhlIHJpZ2h0IGFuZ2xlLgotICAgIGlmIChvd25lclR5cGUubV9vcmllbnRU
eXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8
U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBT
VkdNYXJrZXJPcmllbnRBdXRvKSB7CiAgICAgICAgIG93bmVyVHlwZS5tX29yaWVudFR5cGUuc3lu
Y2hyb25pemUoJm93bmVyVHlwZSwgb3JpZW50VHlwZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVO
YW1lLCBhdXRvU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChvd25l
clR5cGUubV9vcmllbnRUeXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVy
c2UpCisgICAgaWYgKHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqb3duZXJUeXBl
Lm1fb3JpZW50VHlwZS52YWx1ZSkgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkK
ICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBv
cmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdGFydFJldmVyc2VT
dHJpbmcpOwogfQogCkBAIC0yNTksMTEgKzI1OSwxMSBAQCBTVkdNYXJrZXJPcmllbnRUeXBlJiBT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byB3cmFw
cGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsK
ICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VS
VCh3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsK
LSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUm
Pih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRl
ZFZhbHVlKCkpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZh
bHVlKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRU
eXBlLnZhbHVlKTsKIH0KIAogUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJP
ZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+IFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmlt
YXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCBjNzU3ZDFkOTJi
NDA4MjU5NDBjMzk5MmIwMmExMDc0YmUxMGUxNDMxLi5jMDc2M2U1MmVhYmQyMjYyM2Y1NGRhZWUz
NzhlMDIzMjVlYWRiMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAg
LTI5LDc1ICsyOSwxMCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94Lmgi
CisjaW5jbHVkZSAiU1ZHTWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1l
bnVtIFNWR01hcmtlclVuaXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwK
LSAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRzU3Ry
b2tlV2lkdGgKLX07Ci0KLWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFya2Vy
T3JpZW50VW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdNYXJr
ZXJPcmllbnRBbmdsZSwKLSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAotCi0g
ICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmllbnRN
YXgKLX07Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJV
bml0c1R5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0
dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFj
ZU9uVXNlOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2Ui
KTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAg
ICB9Ci0KLSAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2Ui
KQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0gICAg
ICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01h
cmtlclVuaXRzU3Ryb2tlV2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25v
d247Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1M
aW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBo
aWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJz
ZTsgfQotCi0gICAgLy8gdG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmllbnRU
eXBlKCkgaGFuZGxlcyB0aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2VyT3Jp
ZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFu
Z2xlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAgIHJl
dHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3Rh
cnQtcmV2ZXJzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0
UmV2ZXJzZTsKLSAgICAgICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNT
dHJpbmcodmFsdWUpOwotICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkp
Ci0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAgcmV0
dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtlckVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKQEAgLTE2NCw4ICs5
OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9w
ZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBlV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0Owot
ICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFs
dWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBtX29yaWVudFR5cGUudmFsdWUg
PSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmll
bnRUeXBlLnZhbHVlKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25zdCBT
VkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9IHR5cGU7
IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdNYXJr
ZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZTA1ZDhiMmQ3YTk0N2IwNjc3MGI4
NjI3ZmQ1OTcyOGVlYjgzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyVHlwZXMuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1By
b3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJV
bml0c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAsCisgICAgU1ZHTWFya2Vy
VW5pdHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCit9Owor
CitlbnVtIFNWR01hcmtlck9yaWVudFR5cGUgeworICAgIFNWR01hcmtlck9yaWVudFVua25vd24g
PSAwLAorICAgIFNWR01hcmtlck9yaWVudEF1dG8sCisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUs
CisgICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQg
bmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAgIFNWR01hcmtlck9yaWVudE1heAorfTsKKyAg
ICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5
cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNW
R01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNW
R01hcmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgorICAgICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToK
KyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAg
ICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBB
U0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAg
ICB9CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikK
KyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOworICAgICAg
ICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJr
ZXJVbml0c1N0cm9rZVdpZHRoOworICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3du
OworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdN
YXJrZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUo
KSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGlj
IFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdB
bmdsZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisg
ICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVl
ID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9y
aWVudEF1dG9TdGFydFJldmVyc2U7CisgICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmds
ZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247
CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1w
bGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUs
IHVuc2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdB
bmdsZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUg
PSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJp
bmcsIGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5n
bGUpCisgICAgICAgICAgICBhbmdsZSA9IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxT
VkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOworICAgIH0KK307CisK
K3RlbXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9y
aWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9y
aWVudEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuY3BwCmluZGV4IDBhMjhiYzE5NWZmNmM0ZDBiZjc3NzFjYjNlNzA5MDQyOGY2
ZTEwZWMuLjliOGVmYTI4ZGYzN2I3MWZjYWM1YmJkMTQxNmU3ZTUzODgyYmY5MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtNjAsMTAgKzYwLDEwIEBAIGlubGluZSBT
VkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAg
ICwgbV9tYXNrVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5H
Qk9YKQogICAgICwgbV9tYXNrQ29udGVudFVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQ
RV9VU0VSU1BBQ0VPTlVTRSkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICItMTAlIikKLSAg
ICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1v
ZGVXaWR0aCwgIjEyMCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUi
KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKSkKKyAg
ICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpKQorICAgICwg
bV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikpCisgICAgLCBt
X2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpKQogewogICAg
IC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZl
Y3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3Bl
YzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVm
ZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaAppbmRleCBlMjRhZGFkM2M4MmYzOGNlZDBjMjE4MTBjNzY2Y2JhNmVkZDZmMTVj
Li5hYThhMmJhMDkwNDBkODNiYzQxODcwZTM3M2Y3ZjkzNDY1NzE2MDE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hdHJpeC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERP
TU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
TWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRl
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWUpKTsKICAgICB9CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBhKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmEoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUHJvcGVydHkoKS5hKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0QShkb3VibGUgdmFsdWUpCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0
QSh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRBKHZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTczLDcgKzczLDcgQEAg
cHVibGljOgogCiAgICAgZG91YmxlIGIoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuYigpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmIoKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCKGRvdWJsZSB2YWx1ZSkKQEAgLTgxLDcg
KzgxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0
eSgpLnNldEIodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4geyB9OwpAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYygpCiAgICAg
ewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkuYygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dEMoZG91YmxlIHZhbHVlKQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEModmFs
dWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0Qyh2YWx1ZSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVi
bGljOgogCiAgICAgZG91YmxlIGQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkuZCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmQoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXREKGRvdWJsZSB2YWx1ZSkKQEAgLTExMyw3ICsx
MTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEQodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5
KCkuc2V0RCh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biB7IH07CkBAIC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGUoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZSgpOworICAgICAgICByZXR1
cm4gdmFsdWVQcm9wZXJ0eSgpLmUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRFKGRvdWJsZSB2YWx1ZSkKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUo
dmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0RSh2YWx1ZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMzcsNyArMTM3LDcgQEAg
cHVibGljOgogCiAgICAgZG91YmxlIGYoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuZigpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmYoKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGKGRvdWJsZSB2YWx1ZSkKQEAgLTE0NSw3
ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEYodmFsdWUpOworICAgICAgICB2YWx1ZVByb3Bl
cnR5KCkuc2V0Rih2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
Lm11bHRpcGx5KHNlY29uZE1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LnZhbHVlUHJv
cGVydHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdN
YXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5pbnZlcnNlKCk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9w
ZXJ0eSgpLmludmVyc2UoKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAg
LTE4MCw3ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgs
IHkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnRyYW5z
bGF0ZSh4LCB5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNW
R01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsgICAgICAgIAorICAgICAgICBhdXRv
IHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5v
blVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3Rvclgs
IHNjYWxlRmFjdG9yWSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGUoYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnJvdGF0ZShhbmdsZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAt
MjI0LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVj
dG9yKHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgp
LnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAg
ICAgCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBY
KCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuZmxpcFgo
KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6
Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLmZsaXBZKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3Bl
cnR5KCkuZmxpcFkoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5za2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjcw
LDE0ICsyNzAsMTQgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsg
ICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5za2V3WShhbmds
ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR01hdHJpeChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIFNWR01hdHJpeChTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZh
bHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXIuaAppbmRleCBlMTJlN2NjYWVkMzA4YzgyODE4ZmJkYWM2ZGFkNDczYzlhZTIz
NDQ5Li5jNmQ2NGY4NTAzNTRkMWE4ODllYTFiYWU2OGU1MzAzY2E3OTNkNDFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlci5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0JiB2YWx1ZSkKKyAg
ICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQxLDExICs0MSw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxW
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoY29uc3Qg
ZmxvYXQqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR051bWJlcihpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR051bWJlcj4+IGNyZWF0ZShFeGNlcHRpb25P
cjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFz
RXhjZXB0aW9uKCkpCkBAIC01NSw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHZhbHVl
Rm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTYzLDE0ICs1OCwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpID0gdmFsdWU7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKSA9IHZh
bHVlOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBTVkdO
dW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1By
b3BlcnR5VGVhck9mZjxmbG9hdD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAg
IHsKICAgICB9CkBAIC03OSwxMSArNzQsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3Bl
cnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBs
aWNpdCBTVkdOdW1iZXIoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKaW5kZXgg
MWU1Y2Y4YjVhMGIwYTFjZTYzN2MwYjc3OThiMTRmYTU5ZTYxOGFlNS4uZGY1NmFhOTIzZDVjYWU0
YjdhODNjZjM0ZjMyMjE4N2Y0YmFkMjdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5o
CkBAIC0zNiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0
VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJM
aXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHTnVtYmVyTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7
CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVt
YmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBT
VkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMs
IHdyYXBwZXJzKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAKaW5kZXggNmRmZDk5M2IyYjRhZDg3YmIwYjBkY2Y2MjY3ZjMyMmI1MzI2NTk4
OS4uZDYzM2E2YzY5NTJmYjU4YzgyODgzN2RhN2M3MmE5MGZmZTE4M2JmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lk
IFNWR051bWJlckxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgd2hp
bGUgKHB0ciA8IGVuZCkgewogICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCBudW1i
ZXIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobnVtYmVyKTsKKyAgICAg
ICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8ZmxvYXQ+KG51bWJlcikpOwogICAgIH0KIH0KIApA
QCAtNTIsNyArNTIsNyBAQCBTdHJpbmcgU1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmlu
ZygpIGNvbnN0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihwcm9wZXJ0eUF0KGkpKTsKICAgICB9CiAKICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlckxpc3RWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVz
LmgKaW5kZXggN2I0YWM3Nzg5N2JkNjBkYWJiZGJjY2JlZGY5YmNjZDI4YjVkMjFmMy4uOWMzYjIz
NWM5MzljYzI1MDE2ZThiYjVkZGMwNjI4OTJkZWNkODQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5oCkBAIC0yMCwyNCArMjAsMzEgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFp
dHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgU1ZHTnVtYmVyOwogY2xhc3MgU1ZHTnVtYmVyTGlzdDsKIAotY2xhc3MgU1ZHTnVtYmVy
TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8ZmxvYXQ+IHsKK2NsYXNzIFNWR051bWJl
ckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxmbG9hdD4gewogcHVibGlj
OgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJp
bmcoKSBjb25zdDsKKyAgICAKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR051bWJlckxpc3RW
YWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051bWJl
ckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAg
ICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcp
OworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNT
dHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNpbmcg
TGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVyOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdOdW1iZXJMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
cnNlclV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVz
LmNwcAppbmRleCA3ZTJkMzEzYTMxYmQyMDUyMTUyZTIyZTM4NWE0ODc5NTA2YzYzZmJkLi5mYTYz
NTc5MDI0ZDk2OTJhMmViNTljY2JmMmFkYmE4ZWFlZWM5NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcApAQCAtMjE5LDYgKzIxOSwzMSBAQCBib29sIHBhcnNl
TnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBzLCBmbG9hdCYgeCwgZmxvYXQmIHkp
CiAgICAgcmV0dXJuIGN1ciA9PSBlbmQ7CiB9CiAKK2Jvb2wgcGFyc2VQb2ludChjb25zdCBTdHJp
bmcmIHMsIEZsb2F0UG9pbnQmIHBvaW50KQoreworICAgIGlmIChzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5n
VmlldyhzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciogY3VyID0g
dXBjb252ZXJ0ZWRDaGFyYWN0ZXJzOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjdXIgKyBzLmxl
bmd0aCgpOworCisgICAgaWYgKCFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB4ID0gMDsKKyAgICBpZiAoIXBhcnNlTnVt
YmVyKGN1ciwgZW5kLCB4KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQgeSA9
IDA7CisgICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHBvaW50ID0gRmxvYXRQb2ludCh4LCB5KTsKKworICAgIC8vIGRpc2FsbG93
IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVuZAorICAgIHJldHVybiAhc2tpcE9wdGlv
bmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKK30KKwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFj
dGVycyA9IFN0cmluZ1ZpZXcoc3RyaW5nKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKQEAgLTI2
NCw3ICsyODksNyBAQCBib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3RWYWx1
ZXMmIHBvaW50c0xpc3QsIGNvbnN0IFN0cmluZyYgcG9pbnRzKQogICAgICAgICB9CiAgICAgICAg
IHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAgcG9pbnRzTGlzdC5h
cHBlbmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7CisgICAgICAgIHBvaW50c0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxvYXRQb2ludCh4UG9zLCB5UG9zKSkpOwog
ICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKaW5kZXggMzI4Mzg3MTQyZTk2YTFiMWQ1YTlm
NzZkYzk2ZDY5NjgwNmUzZGI0MC4uODNmMmU4NGI2ODU0NmI5ODY4MjljMDY5YjNiM2VhNDA0NTc2
ZmExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaApAQCAtNDMsNiAr
NDMsNyBAQCBib29sIHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBzLCBm
bG9hdCYgaCwgZmxvYXQmIHYpOwogYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgTENoYXIqJiBwdHIs
IGNvbnN0IExDaGFyKiBlbmQsIGJvb2wmIGZsYWcpOwogYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3Qg
VUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIGJvb2wmIGZsYWcpOwogYm9vbCBwYXJzZVJl
Y3QoY29uc3QgU3RyaW5nJiwgRmxvYXRSZWN0Jik7Citib29sIHBhcnNlUG9pbnQoY29uc3QgU3Ry
aW5nJiwgRmxvYXRQb2ludCYpOwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4K
IGJvb2wgcGFyc2VGbG9hdFBvaW50KGNvbnN0IENoYXJhY3RlclR5cGUqJiBjdXJyZW50LCBjb25z
dCBDaGFyYWN0ZXJUeXBlKiBlbmQsIEZsb2F0UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhCeXRlU3RyZWFtLmgKaW5kZXggYjJkODU4OTA0ZTc2MjE3ZGUwMWFlNmQyMjc5M2VmZTgwYmZh
YmUzYi4uZDlkNGU0MTU3ZTI2YTFiNGU5YjBjNGQ0YjAzZTQ5YzAzM2UyOTZmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKQEAgLTE5LDYgKzE5LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJv
cGVydHlUcmFpdHMuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQ2LDM0ICs0OCw0MiBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBEYXRhOjpjb25z
dF9pdGVyYXRvciBEYXRhSXRlcmF0b3I7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSgpIHsgfQot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IERhdGEmIGRhdGEpIDogbV9kYXRhKGRhdGEpIHsg
fQorICAgIFNWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCisgICAg
ICAgIDogbV9kYXRhKFdURk1vdmUob3RoZXIubV9kYXRhKSkKKyAgICB7CisgICAgfQogICAgIAot
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0
CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQor
ICAgICAgICA6IG1fZGF0YShvdGhlci5tX2RhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbV9k
YXRhID09IG90aGVyLm1fZGF0YTsKICAgICB9CiAKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
U1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtJiBv
cGVyYXRvcj0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1fZGF0
YSA9IFdURk1vdmUob3RoZXIubV9kYXRhKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0K
KyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0b3I9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAg
ICAgbV9kYXRhID0gb3RoZXIubV9kYXRhOworICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQog
CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29u
c3QgeyByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsgfQorICAgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSAh
PSBvdGhlci5tX2RhdGE7IH0KKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVh
bT4gY29weSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxT
VkdQYXRoQnl0ZVN0cmVhbT4obV9kYXRhKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHUGF0aEJ5dGVTdHJlYW0+KCp0aGlzKTsKICAgICB9CiAKICAgICBEYXRhSXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2RhdGEuYmVnaW4oKTsgfQogICAgIERhdGFJdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZW5kKCk7IH0KIAogICAgIHZvaWQgYXBwZW5k
KHVuc2lnbmVkIGNoYXIgYnl0ZSkgeyBtX2RhdGEuYXBwZW5kKGJ5dGUpOyB9Ci0gICAgdm9pZCBh
cHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQotICAgIHsKLSAgICAgICAgZm9y
IChhdXRvIHN0cmVhbSA6IG90aGVyKQotICAgICAgICAgICAgYXBwZW5kKHN0cmVhbSk7Ci0gICAg
fQorICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgeyBtX2Rh
dGEuYXBwZW5kVmVjdG9yKG90aGVyLm1fZGF0YSk7IH0KICAgICB2b2lkIGNsZWFyKCkgeyBtX2Rh
dGEuY2xlYXIoKTsgfQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RhdGEu
c2l6ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzRW1w
dHkoKTsgfQogICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuc2l6ZSgp
OyB9CiAKICAgICAvLyBPbmx5IGRlZmluZWQgdG8gbGV0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
IHVzZSB0aGUgc3RhbmRhcmQgbGlzdCBjb2RlIHBhdGhzIC0gdGhpcyBtZXRob2QgaXMgbmV2ZXIg
Y2FsbGVkLgpAQCAtODIsNSArOTIsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEYXRhIG1f
ZGF0YTsKIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
UGF0aEJ5dGVTdHJlYW0+IHsKKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVTdHJlYW0gaW5pdGlhbFZh
bHVlKCkgeyByZXR1cm4gU1ZHUGF0aEJ5dGVTdHJlYW0oKTsgfQorICAgIHN0YXRpYyBTVkdQYXRo
Qnl0ZVN0cmVhbSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgU1ZHUGF0aEJ5dGVTdHJlYW0gYnl0ZVN0cmVhbTsKKyAgICAgICAgYnVpbGRTVkdQYXRoQnl0
ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5nLCBieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsK
KyAgICAgICAgcmV0dXJuIGJ5dGVTdHJlYW07CisgICAgfQorfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggNTRiMWRiNWIw
NWEzNDMzNDEwNzJiODUwNDk2MzJiNDYxOWIxZGE2Yy4uNTU5YzAwODFiYTg3NzY1OWRiYmRhODI4
YzFhNTE0NmNiYzU0MjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBA
IC04MCw3ICs4MCw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGlu
ZSBTVkdQYXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV9wYXRoU2VnTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSkK
KyAgICAsIG1fcGF0aFNlZ0xpc3QoU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoUGF0aFNlZ1VuYWx0ZXJl
ZFJvbGUpKQogICAgICwgbV9pc0FuaW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShTVkdOYW1lczo6cGF0aFRhZykpOwpAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIGlmIChtX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplICYm
ICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZvKCkp
LT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAgICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBuZXdM
aXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3BhdGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlzdCwg
VW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAgICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0gbmV3
TGlzdDsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1f
cGF0aFNlZ0xpc3QudmFsdWUpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChyZW5kZXJlcikKQEAgLTMyNyw4ICszMjcsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9w
ZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIoU1ZHRWxlbWVudCog
Y29udAogICAgIGlmIChhdXRvIHByb3BlcnR5ID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3Vw
V3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4oJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpKSkKICAgICAgICAgcmV0dXJuICpwcm9w
ZXJ0eTsKIAotICAgIGlmIChvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkp
Ci0gICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5
cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJUeXBlLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52
YWx1ZSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgaWYgKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpCisg
ICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUu
bV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJUeXBlLCBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZh
bHVlcyY+KCpvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSksIFVuYWx0ZXJlZFBhcnNpbmcp
OwogCiAgICAgcmV0dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3JhcHBl
cjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZiwg
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSwgb3duZXJU
eXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpOwogfQpAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgU1ZH
UGF0aEVsZW1lbnQ6OnN5bmNocm9uaXplRChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAg
ICBTVkdQYXRoRWxlbWVudCYgb3duZXJUeXBlID0gZG93bmNhc3Q8U1ZHUGF0aEVsZW1lbnQ+KCpj
b250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zaG91bGRT
eW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0
LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwg
b3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBvd25l
clR5cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZv
KCktPmF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93
bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lk
IFNWR1BhdGhFbGVtZW50OjphbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpCkBAIC0zOTIs
MTAgKzM5MiwxMCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQoU1ZH
UGF0aFNlZ1JvbGUgcm9sZSwgTGlzdE1vZGlmaWNhdGlvbiBsaQogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFBhdGhTZWdVbmFsdGVyZWRSb2xlOgogICAgICAgICBpZiAobGlzdE1vZGlmaWNhdGlv
biA9PSBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fcGF0
aFNlZ0xpc3QudmFsdWUuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIGFwcGVuZFNWR1BhdGhCeXRl
U3RyZWFtRnJvbVNWR1BhdGhTZWcobV9wYXRoU2VnTGlzdC52YWx1ZS5sYXN0KCkuY29weVJlZigp
LCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgICAgIEFTU0VS
VCghc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1
ZSkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNW
R1BhdGhTZWcoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlz
dC52YWx1ZSkubGFzdFByb3BlcnR5KCkuY29weVJlZigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFs
dGVyZWRQYXJzaW5nKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBidWlsZFNWR1BhdGhC
eXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUsIG1f
cGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICAgICAgYnVpbGRTVkdQ
YXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhzdGF0aWNfY2FzdDxTVkdQYXRo
U2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKSwgbV9wYXRoQnl0ZVN0cmVhbSwg
VW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIG1fY2FjaGVkUGF0aCA9IHN0ZDo6bnVsbG9wdDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5kZWZpbmVkUm9sZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCmluZGV4IGU1Y2NjOWMwZDc4NjRlYWU2NzE1MTkyMGYy
ZDAxNmNlZDMwZjcwMmUuLmMzMmZkZjQ2NzgzYWM1ODhlZDg0YTY0YTU0NmE4ODJjMjk4OWYzYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcApAQCAtMjgsMTUgKzI4LDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0
QW5kUm9sZXMoKQogewotICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgZm9yIChhdXRvJiBpdGVt
IDogKm1fdmFsdWVzKQorICAgIGZvciAoYXV0byYgaXRlbSA6IHZhbHVlc1Byb3BlcnR5KCkucHJv
cGVydGllcygpKQogICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnV2l0aENvbnRleHQqPihp
dGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUobnVsbHB0ciwgUGF0aFNlZ1VuZGVmaW5lZFJv
bGUpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdQYXRoU2VnTGlzdDo6Y2xlYXIoKQogewot
ICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCisgICAg
aWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAg
ICAgY2xlYXJDb250ZXh0QW5kUm9sZXMoKTsKQEAgLTUwLDggKzQ4LDggQEAgRXhjZXB0aW9uT3I8
UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6Z2V0SXRlbSh1bnNpZ25lZCBpbmRl
eCkKIAogRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVw
bGFjZUl0ZW0oUmVmPFNWR1BhdGhTZWc+JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgaWYgKGluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSkgewotICAgICAgICBMaXN0SXRlbVR5cGUg
cmVwbGFjZWRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSkgeworICAgICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVt
ID0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGluZGV4KTsKICAgICAgICAgQVNTRVJUKHJl
cGxhY2VkSXRlbSk7CiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+
KHJlcGxhY2VkSXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdV
bmRlZmluZWRSb2xlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCmluZGV4
IGVkMjZhYmQ0MjdlMGM1MDYxYWI3M2Y3NmEwOGUxZjU1ODkwOTQ5NTkuLmMzZGNjYmJlMGU4NjYw
ZTMxMTJiMTQwZTA4OGFhZmM1ZWY5ZTg2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dC5oCkBAIC0zMiwxMiArMzIsMTIgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2Vn
TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OjpMaXN0SXRlbVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNW
R1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1Jv
bGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdS
b2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRo
U2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIFBhdGhTZWdVbmRlZmluZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CkBAIC00NSwxMSArNDUsOSBAQCBwdWJsaWM6CiAKICAgICBpbnQgZmluZEl0ZW0oY29uc3Qg
TGlzdEl0ZW1UeXBlJiBpdGVtKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVz
KTsKLQotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAg
dW5zaWduZWQgc2l6ZSA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV92
YWx1ZXMtPmF0KGkpKQorICAgICAgICAgICAgaWYgKGl0ZW0gPT0gdmFsdWVzUHJvcGVydHkoKS5w
cm9wZXJ0eUF0KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAKQEAg
LTU4LDEwICs1Niw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNp
emVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IHZhbHVlc1Byb3Bl
cnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGl0ZW1JbmRleCk7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYg
KHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsK
QEAgLTkzLDcgKzkwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQYXRo
U2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZH
UGF0aFNlZ0xpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAg
ICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFNWR1BhdGhTZWdMaXN0VmFsdWVzPihyb2xlLCB2YWx1
ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHkoJmFuaW1hdGVkUHJv
cGVydHkpCiAgICAgICAgICwgbV9wYXRoU2VnUm9sZShwYXRoU2VnUm9sZSkKQEAgLTExNywxNCAr
MTE0LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAg
ewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hh
bmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRp
b25Vbmtub3duKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24p
OwogICAgIH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb24gbGlzdE1v
ZGlmaWNhdGlvbikgZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAg
ICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVs
ZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29t
bWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIGxpc3RNb2Rp
ZmljYXRpb24pOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1
ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKaW5k
ZXggMTU1OGY4MDhhNGUzZmQwZDViNjdlNTA4OGQ2ODg4ODJlODJhZDkzYi4uMmZjMzhlODJlM2I0
NWZjMzhhMTc2NWMxMjM2ZmI2ZDYxYTUyNWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKQEAgLTU4LDc4ICs1OCw3OCBAQCBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcihTVkdQYXRoRWxlbWVudCYgcGF0aEVsZW1l
bnQsIFNWR1BhdAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9h
dFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAg
ICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENv
b3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhT
ZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9B
YnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAg
ICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xp
bmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkp
KTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwoZmxv
YXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1
dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVu
dC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdSb2xlKSk7
CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNW
R1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFs
QWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0
LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
KHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhDb29yZGlu
YXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0g
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUp
KSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5
LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3Vy
dmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9p
bnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1v
ZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1
YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54
KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50
MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngo
KSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNv
bnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsK
ICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBvaW50
Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRy
YXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBv
aW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0
ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
KHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgp
LCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9w
YXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3Jl
YXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQx
LngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgdGFy
Z2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFi
c29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0
UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQot
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQu
eSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRl
cjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJnZUFyY0Zs
YWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENv
b3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFu
Z2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4o
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9w
YXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0
aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VB
cmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNl
Zz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xl
KSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNw
cAppbmRleCAwY2RkOGFmZWQ2N2I2YjI1NWY2Nzk2YmUzMTdkYjE3NjU2YjJkMGUxLi5lMmY0Yjhl
Y2NjNDQyZWUyY2M1ZTcwNjVlNWEzZWZiZmNlYzEyZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRo
U2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKSBjb25zdAogCiBib29sIFNWR1BhdGhTZWdMaXN0
U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2VnVHlwZSkK
IHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAg
IG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAg
ICBwYXRoU2VnVHlwZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBh
dGhTZWdUeXBlKCkpOwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdTZWdtZW50
VHlwZShTVkdQYXRoU2VnVHlwZSYgcGF0aFNlZ1R5cGUpCiAKIFNWR1BhdGhTZWdUeXBlIFNWR1Bh
dGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFuZChTVkdQYXRoU2VnVHlwZSkKIHsKLSAgICBtX3Nl
Z21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9
IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2Vn
VHlwZSBwYXRoU2VnVHlwZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQt
PnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNl
Z1R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCmluZGV4IGIy
ZWQxZGQ1YWE5MTRlYmVhN2NjODdjYzFkZGRjMmY3MTczZGU5ZTIuLmY4MmRlMGM1YTkxODQ4MzRk
NGQ1MDk5ZmE2NTM3YWQ2MTBkNDc3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFZhbHVlcy5oCkBAIC0xOSwxMCArMTksOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIlNWR0xpc3RQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNs
dWRlICJTVkdQYXRoU2VnLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDcgKzMyLDcgQEAgY2xhc3MgU1ZHUGF0aFNlZ0xpc3Q7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xh
c3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4geworY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxS
ZWZQdHI8U1ZHUGF0aFNlZz4+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRoU2VnTGlz
dFZhbHVlcyhTVkdQYXRoU2VnUm9sZSByb2xlKQogICAgICAgICA6IG1fcm9sZShyb2xlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmluZGV4IGNlNDYxM2E0ZTMzZjI2Zjdj
MmVkZjI2NGQ3NWZjZDUyZGViYjBhNTEuLjE2YTFkNDQzNDc4Nzc2MzlhNjY3NmQyM2YwMjA2OTU1
ODJmOTZiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKQEAgLTEy
MCw3ICsxMjAsNyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWco
UmVmUHRyPFNWR1BhdGhTZWc+JiYgcGF0aFNlZywgU1ZHUGF0aAogICAgIEFTU0VSVChwYXJzaW5n
TW9kZSA9PSBVbmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzIGFw
cGVuZGVkSXRlbUxpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpOwotICAgIGFwcGVuZGVkSXRlbUxp
c3QuYXBwZW5kKFdURk1vdmUocGF0aFNlZykpOworICAgIGFwcGVuZGVkSXRlbUxpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihXVEZNb3ZlKHBhdGhTZWcpKSk7
CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAgU1ZHUGF0
aFNlZ0xpc3RTb3VyY2Ugc291cmNlKGFwcGVuZGVkSXRlbUxpc3QpOwpAQCAtMjA2LDE1ICsyMDYs
MTQgQEAgYm9vbCBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5
dGVTdHJlYW0mIGZyb21TdHJlYW0sIGNvbnN0IFMKIAogYm9vbCBhZGRUb1NWR1BhdGhCeXRlU3Ry
ZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW1Ub0FwcGVuZFRvLCBjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgYnlTdHJlYW0sIHVuc2lnbmVkIHJlcGVhdENvdW50KQogewotICAgIC8vIFdoeSBy
ZXR1cm4gd2hlbiBzdHJlYW1Ub0FwcGVuZFRvIGlzIGVtcHR5PyBEb24ndCB3ZSBzdGlsbCBuZWVk
IHRvIGFwcGVuZD8KKyAgICAvLyBUaGUgYnlTdHJlYW0gd2lsbCBiZSBibGVuZGVkIHdpdGggc3Ry
ZWFtVG9BcHBlbmRUby4gU28gc3RyZWFtVG9BcHBlbmRUbyBoYXMgdG8gaGF2ZSBlbGVtZW50cy4K
ICAgICBpZiAoc3RyZWFtVG9BcHBlbmRUby5pc0VtcHR5KCkgfHwgYnlTdHJlYW0uaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIElzIGl0IE9LIHRvIG1ha2UgdGhlIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlciBmcm9tIGEgc3RyZWFtLCBhbmQgdGhlbiBjbGVhciB0aGF0
IHN0cmVhbT8KKyAgICAvLyBidWlsZGVyIGlzIHRoZSBkZXN0aW5hdGlvbiBvZiBibGVuZGluZyBm
cm9tU291cmNlIGFuZCBieVNvdXJjZS4gVGhlIHN0cmVhbSBvZiBidWlsZGVyCisgICAgLy8gKGku
ZS4gc3RyZWFtVG9BcHBlbmRUbykgaGFzIHRvIGJlIGNsZWFyZWQgYmVmb3JlIGNhbGxpbmcgYWRk
QW5pbWF0ZWRQYXRoLgogICAgIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlciBidWlsZGVyKHN0cmVh
bVRvQXBwZW5kVG8pOwotCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmVhbUNvcHkgPSBz
dHJlYW1Ub0FwcGVuZFRvOwotICAgIHN0cmVhbVRvQXBwZW5kVG8uY2xlYXIoKTsKKyAgICBTVkdQ
YXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IFdURk1vdmUoc3RyZWFtVG9BcHBlbmRUbyk7
CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBmcm9tU291cmNlKGZyb21TdHJlYW1Db3B5
KTsKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBieVNvdXJjZShieVN0cmVhbSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludC5oCmluZGV4IGIxNzY4NmU4ZWMzZThmYjEyNWU1NzUwZDNlMWE3NmI5ZjRjYTZi
NjguLjA2YjE3NDFhYzEzMzkxYjU5ZDUzZjlhNTRiN2Q2ZDk4NzRkYzU0NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHUG9pbnQgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVl
KQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2lu
dChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQzLDExICs0Myw2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5pdGlh
bFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKGNvbnN0
IEZsb2F0UG9pbnQqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1BvaW50KGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHUG9pbnQ+PiBjcmVhdGUoRXhjZXB0
aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVl
Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNTcsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB4
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngoKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS54KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0WChmbG9hdCB4VmFsdWUpCkBAIC02NSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0WCh4VmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WCh4VmFsdWUpOwogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzMsNyArNjgs
NyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS55KCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4VmFsdWUpCkBAIC04
MSw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAgICAgICB2YWx1ZVBy
b3BlcnR5KCkuc2V0WSh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtOTIsMTkgKzg3LDE5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gbmV3UG9pbnQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLm1hdHJpeFRyYW5zZm9ybShtYXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAg
ICAgIGF1dG8gbmV3UG9pbnQgPSB2YWx1ZVByb3BlcnR5KCkubWF0cml4VHJhbnNmb3JtKG1hdHJp
eC52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9
CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUp
CisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PihudWxs
cHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTEzLDExICsxMDgsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxW
YWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUG9pbnQoY29uc3QgRmxvYXRQ
b2ludCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBv
aW50Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAppbmRleCBiMGMyYTEwMzExZWY0NWExZjYx
MWQ0ZmIyOTc4NjViMGY1NmE4NDAyLi4wMmMzOTg3ZTM0ODgyZTI4ZWQyNjRlYjM4MTMzMzY0ZmQ1
YmJmNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCkBAIC0zNywxMyArMzcsMTMgQEAg
cHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVy
Q2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFNWR1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCmluZGV4IGQ4MWU2YTIzNzZlZTBh
YjY4MGQ4OGZhM2IxNDI5MWQ3NTI0N2ZhMzkuLjM1MGFkMWE4YWY2NDczYTBkNTk5ODg2NTYyMmMw
NzE2ZDQwNmYzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RW
YWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3Bw
CkBAIC0zNSw3ICszNSw3IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bmcoKSBjb25zdAogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAK
LSAgICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYg
cG9pbnQgPSBwcm9wZXJ0eUF0KGkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2lu
dC54KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihwb2ludC55KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVl
cy5oCmluZGV4IGFiYWI4MjIwNDY3NzBiZGM4ZWI3NDVhNWE2MGQwMjBjZWE2NWQzMzUuLmJkZWVh
NjU4YmFiNzE1MTNlYzNkOTVjY2UyYjkwZTMxODFlZGM2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9pbnRMaXN0VmFsdWVzLmgKQEAgLTIxLDIyICsyMSwyOCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50OwogY2xhc3MgU1ZHUG9pbnRMaXN0
OwogCi1jbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPEZsb2F0
UG9pbnQ+IHsKK2NsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0
VmFsdWVzPEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygp
IGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9p
bnRMaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
UG9pbnRMaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiB7IH07IH0KLQorICAgIHN0YXRpYyBTVkdQb2ludExpc3RWYWx1ZXMg
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1BvaW50
TGlzdFZhbHVlcyBsaXN0OworICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEobGlzdCwgc3Ry
aW5nKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHVzaW5nIExpc3RJdGVtVHlw
ZSA9IEZsb2F0UG9pbnQ7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHUG9pbnQ7CiAg
ICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR1BvaW50TGlzdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seUVsZW1lbnQuY3BwCmluZGV4IDkyMjVkYzBiYTc3MzQxMjc0MjA4NTJmZDczY2M5
ZmQxYjU0YzJhMDguLjYwOGVhMDBiZmQyY2Q4NWFiZGIyN2Q3MjVlNjI2NTZlZDUwOGI1ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lk
IFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9taWNTdHJpbgogICAgICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQb2x5RWxlbWVudCwgU1ZHQW5pbWF0ZWRQb2lu
dExpc3Q+KHRoaXMsIHBvaW50c1Byb3BlcnR5SW5mbygpKSkKICAgICAgICAgICAgIHN0YXRpY19w
b2ludGVyX2Nhc3Q8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KHdyYXBwZXIpLT5kZXRhY2hMaXN0V3Jh
cHBlcnMobmV3TGlzdC5zaXplKCkpOwogCi0gICAgICAgIG1fcG9pbnRzLnZhbHVlID0gbmV3TGlz
dDsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKm1fcG9pbnRzLnZh
bHVlKSA9IFdURk1vdmUobmV3TGlzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEw
OSw3ICsxMDksNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50cyhTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0g
ZG93bmNhc3Q8U1ZHUG9seUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25l
clR5cGUubV9wb2ludHMuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBv
d25lclR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJ
bmZvKCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3Ry
aW5nKCkpOworICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBw
b2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BvaW50cy52YWx1ZSkudmFsdWVBc1N0cmluZygpKTsK
IH0KIAogUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1BvbHlFbGVtZW50Ojpsb29rdXBPckNy
ZWF0ZVBvaW50c1dyYXBwZXIoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5oCmluZGV4IGIzZTI0YTI0NzVlNzQwMDNlYmQyMDI3NmVhOWFmOGQ2
YmFmZDdlZmIuLjNjYzgwZTg5NzgzYWNkNmU4MTgxNzE0NDk5OGIwY2EzMjllMGI0NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCkBAIC0zMyw3ICszMyw3IEBAIHB1YmxpYzoKICAg
ICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMoKTsKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBhbmlt
YXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25z
dCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsgfQorICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9p
bnRMaXN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4o
Km1fcG9pbnRzLnZhbHVlKTsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyog
cG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oCmluZGV4IGI5M2U0M2U2MWRmMTcwMjMxMzE2MWM3YmM4MTU3ZDk4OTc3YTIz
ODEuLjQ4MjA2NjRiYWM1MGIzOWY1YzQ0NjM0NGViNTZiZGRmZDBiOGNmNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaApAQCAtMzIsNyArMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJs
aWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MiwxMSAr
NDIsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpbz4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAg
ICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01Niw3ICs1MSw3IEBAIHB1
YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLmFsaWduKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3Bl
cnR5KCkuYWxpZ24oKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGlnbihm
bG9hdCB2YWx1ZSkKQEAgLTY0LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldEFsaWduKHZhbHVlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCku
c2V0QWxpZ24odmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApAQCAtNzQsNyArNjksNyBAQCBwdWJsaWM6CiAKICAg
ICB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKS5tZWV0T3JTbGljZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLm1lZXRPclNsaWNlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
TWVldE9yU2xpY2UoZmxvYXQgdmFsdWUpCkBAIC04Miw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdmFsdWVQcm9wZXJ0eSgpLnNldE1lZXRPclNsaWNlKHZhbHVlKTsKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTkx
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQorICAgIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTAwLDEx
ICs5NSw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBl
eHBsaWNpdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAppbmRleCA1NDBkNTIwMTQ5MjQ0NTkzNmZmYzU5
ZWUyM2I2YWQxNThhOTUwZjJkLi45ZDFiYjVlNzViMTQyZjFjNGZmMzU0NDYzNzg0ZmE2NTZiZmIz
N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmNwcApAQCAtMzUsNiArMzUsMTEgQEAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
OjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKQogewogfQogCitTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShjb25zdCBTdHJpbmcmIHN0
cmluZykKK3sKKyAgICBwYXJzZShzdHJpbmcpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OnNldEFsaWduKHVuc2lnbmVkIHNob3J0IGFsaWduKQog
ewogICAgIGlmIChhbGlnbiA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOIHx8IGFs
aWduID4gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKaW5kZXggYTFmYzExNGY2YzRi
NjlmZmU0MWU2ZDAzNDc4MzM5M2Q3ODNlNWYwZC4uMTU1MzBkNTBkOGVmZThjZmRiMzViNmUwMTQ0
ZjA2NTA5ODIyMWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOworICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsaWdu
KHVuc2lnbmVkIHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCBhbGlnbigpIGNvbnN0IHsgcmV0
dXJuIG1fYWxpZ247IH0KQEAgLTc3LDYgKzc4LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7CiAg
ICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKTsgfQorICAgIHN0YXRpYyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyBy
ZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKHN0cmluZyk7IH0KICAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggOTQ1NDdhZGI5ZmRhOWRi
OTgxOTlkN2I2NmI4NmMzNjk4ZmViM2NiYy4uOGYzZmMwOGRhMjVlNjViZjlkN2Q0ZGFhYjcyZDU0
MDFkYWU5NDllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAKQEAgLTU1LDEyICs1NSwxMiBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUwogCiBpbmxpbmUgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwg
bV9jeChMZW5ndGhNb2RlV2lkdGgsICI1MCUiKQotICAgICwgbV9jeShMZW5ndGhNb2RlSGVpZ2h0
LCAiNTAlIikKLSAgICAsIG1fcihMZW5ndGhNb2RlT3RoZXIsICI1MCUiKQotICAgICwgbV9meChM
ZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2Z5KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX2Zy
KExlbmd0aE1vZGVPdGhlciwgIjAlIikKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoLCAiNTAlIikpCisgICAgLCBtX2N5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQsICI1MCUiKSkKKyAgICAsIG1fcihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIs
ICI1MCUiKSkKKyAgICAsIG1fZngoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAg
ICAsIG1fZnkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX2ZyKFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYg
dGhlIGN4L2N5L3IvZnIgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMg
YXMgaWYgYSB2YWx1ZSBvZiAiNTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6cmFkaWFsR3JhZGllbnRUYWcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCmluZGV4
IGRmYzljYWM0NDlhNzAyMGI2ZWI1OTgyNTM1ZjYwNDQ4ZmVmZWRhYWQuLmRhZDRkMTU0OTJhMmE1
M2JiYmE1ZjEzMDdlZWVkMmZiMTc0NjlhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaApAQCAtMjAsMTMg
KzIwLDEzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VGVhck9mZi5o
IgotI2luY2x1ZGUgIlNWR1JlY3RUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0
cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1JlY3QgOiBwdWJsaWMgU1ZH
UHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZH
UmVjdD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBGbG9hdFJlY3QmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUmVj
dD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKICAgICB9CkBAIC0zNiwxMSArMzYsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1JlY3QoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0g
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRpYWxWYWx1ZSkp
OwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8U1ZHUmVjdD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01MCw3ICs0NSw3
IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkueCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLngoKTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU4
LDcgKzUzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJv
cGVydHkoKS5zZXRYKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAg
IHJldHVybiB7IH07CkBAIC02Niw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRZKGZsb2F0IHhWYWx1ZSkKQEAgLTc0LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRZ
KHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Miw3ICs3Nyw3IEBA
IHB1YmxpYzoKIAogICAgIGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCku
d2lkdGgoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXaWR0aChmbG9hdCB3
aWR0aFZhbHVlKQpAQCAtOTAsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFdpZHRoKHdpZHRo
VmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0V2lkdGgod2lkdGhWYWx1ZSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05OCw3ICs5
Myw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IGhlaWdodCgpCiAgICAgewotICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5oZWlnaHQoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJv
cGVydHkoKS5oZWlnaHQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWln
aHQoZmxvYXQgaGVpZ2h0VmFsdWUpCkBAIC0xMDYsMTQgKzEwMSwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRIZWln
aHQoaGVpZ2h0VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4geyB9OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFJlY3QmIHZh
bHVlKQorICAgIFNWR1JlY3QoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAg
ICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KCZhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTIyLDExICsxMTcsNiBAQCBwcml2YXRlOgog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KGluaXRpYWxWYWx1ZSkKICAg
ICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUmVjdChjb25zdCBGbG9hdFJlY3QqIGluaXRp
YWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihpbml0aWFs
VmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkODRjNmUyNTQzOTAwYmUyYTM0ZjQxYTM4
NWJlYjdiNzRkMmViMWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAorKysgL2Rldi9udWxsCkBA
IC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRl
PD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgRmxv
YXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHR5cGUueSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDExNTcyMTc3NTVh
OTEwYzc0ZmE5MDEzYjM1NDVlOWViM2QyNjRmYTEuLjU4ODgxODg5YTI2MzJlNmY4N2VlMDRmYzM2
MzQ3YjFlMTg2OTAxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTcx
LDExICs3MSwxMiBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUg
U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1v
ZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFsKCIx
MDAlIikpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEw
MCUiKSkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwg
bV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKSkKKyAgICAs
IG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgi
MTAwJSIpKSkKICAgICAsIG1fdGltZUNvbnRhaW5lcihTTUlMVGltZUNvbnRhaW5lcjo6Y3JlYXRl
KCp0aGlzKSkKKyAgICAsIG1fY3VycmVudFRyYW5zbGF0ZShTVkdWYWx1ZTo6Y3JlYXRlPEZsb2F0
UG9pbnQ+KCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1RhZykpOwog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU1ZHRWxlbWVudCgpOwpAQCAtMTk3
LDkgKzE5OCw5IEBAIFJlZjxTVkdQb2ludD4gU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0
ZSgpCiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZShjb25zdCBGbG9h
dFBvaW50JiB0cmFuc2xhdGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRlID09IHRy
YW5zbGF0aW9uKQorICAgIGlmIChzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRy
YW5zbGF0ZSkgPT0gdHJhbnNsYXRpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRU
cmFuc2xhdGUgPSB0cmFuc2xhdGlvbjsKKyAgICBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1f
Y3VycmVudFRyYW5zbGF0ZSkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRhdGVDdXJyZW50VHJhbnNs
YXRlKCk7CiB9CiAKQEAgLTMzNSwxMiArMzM2LDEyIEBAIFJlZjxOb2RlTGlzdD4gU1ZHU1ZHRWxl
bWVudDo6Y29sbGVjdEludGVyc2VjdGlvbk9yRW5jbG9zdXJlTGlzdChTVkdSZWN0JiByZWN0LCBT
CiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0aW5nTGF5b3V0KFNW
R0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIFJlbmRlclNW
R01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJlY3Qu
cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpj
aGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QudmFsdWVQcm9wZXJ0eSgp
KTsKIH0KICAgICAKIHN0YXRpYyBib29sIGNoZWNrRW5jbG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5
b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIFJl
bmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3VyZShlbGVtZW50LnJlbmRlcmVyKCksIHJl
Y3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0
OjpjaGVja0VuY2xvc3VyZShlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QudmFsdWVQcm9wZXJ0eSgp
KTsKIH0KIAogUmVmPE5vZGVMaXN0PiBTVkdTVkdFbGVtZW50OjpnZXRJbnRlcnNlY3Rpb25MaXN0
KFNWR1JlY3QmIHJlY3QsIFNWR0VsZW1lbnQqIHJlZmVyZW5jZUVsZW1lbnQpCkBAIC00MTQsNyAr
NDE1LDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNm
b3JtKCkKIAogUmVmPFNWR1RyYW5zZm9ybT4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKIHsKLSAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtOjpjcmVhdGUoU1ZHVHJhbnNmb3JtVmFsdWUgeyBtYXRyaXgucHJvcGVydHlSZWZlcmVuY2Uo
KSB9KTsKKyAgICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUoU1ZHVHJhbnNmb3JtVmFsdWUg
eyBtYXRyaXgudmFsdWVQcm9wZXJ0eSgpIH0pOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZH
RWxlbWVudDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1T
Y29wZSBtb2RlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggMTkxZWZm
NjhmYzJhZWNmODBlODYzMmI1ZTEyYjUzZTU3NGE2OWFhOS4uMmY1ZWQxZDJiMWM0YzkwNzEwM2Qz
ZTViZTFlNDQzZjc1ZTBjNTZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0x
NjMsNyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNlQ3VycmVudFZpZXcgeyBmYWxz
ZSB9OwogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21BbmRQYW5N
YWduaWZ5IH07CiAgICAgUmVmPFNNSUxUaW1lQ29udGFpbmVyPiBtX3RpbWVDb250YWluZXI7Ci0g
ICAgRmxvYXRQb2ludCBtX2N1cnJlbnRUcmFuc2xhdGU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X2N1cnJlbnRUcmFuc2xhdGU7CiAgICAgUmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVjOwog
ICAgIFN0cmluZyBtX2N1cnJlbnRWaWV3RnJhZ21lbnRJZGVudGlmaWVyOwogfTsKQEAgLTE3NSw3
ICsxNzUsNyBAQCBpbmxpbmUgYm9vbCBTVkdTVkdFbGVtZW50Ojp1c2VDdXJyZW50VmlldygpIGNv
bnN0CiAKIGlubGluZSBGbG9hdFBvaW50IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGVW
YWx1ZSgpCiB7Ci0gICAgcmV0dXJuIG1fY3VycmVudFRyYW5zbGF0ZTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RmxvYXRQb2ludCY+KCptX2N1cnJlbnRUcmFuc2xhdGUpOwogfQogCiBpbmxpbmUg
U1ZHWm9vbUFuZFBhblR5cGUgU1ZHU1ZHRWxlbWVudDo6em9vbUFuZFBhbigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAppbmRleCA3ZmU3ZjAwZmM1MmE1OGJjZDAwMWYyZmFiYzVi
MmZhMzhhMzdlZTg1Li43YjFjNThmYjg4OTNkZmNhNmI0NjgyNjU3OGQ3NTYxOGE0YjcyZTAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKQEAgLTM2LDEyICszNiwxMiBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFw
cGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7
CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250
ZXh0RWxlbWVudCwgU1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8
U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdTdHJpbmdMaXN0KCZjb250ZXh0RWxlbWVudCwgdmFsdWVzKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiwgU1ZHUHJvcGVydHlSb2xlLCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUmKQorICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJikKICAgICB7CiAgICAgICAgIC8v
IEZJWE1FOiBGaW5kIGEgd2F5IHRvIHJlbW92ZSB0aGlzLiBJdCdzIG9ubHkgbmVlZGVkIHRvIGtl
ZXAgV2luZG93cyBjb21waWxpbmcuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1N0cmluZ0xp
c3QoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVl
cykKKyAgICBTVkdTdHJpbmdMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHU3RhdGljTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdTdHJpbmdMaXN0VmFsdWVzPihjb250ZXh0RWxlbWVudCwgdmFsdWVzKQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKaW5k
ZXggM2ZmODk4YTkxMmI2MjAxODBlZDMzNmQxMzg3ZGVhYmI1MzdkOTQ3OC4uNWRiMTM3N2U4YzE2
YzlmODhmYjM1M2NhYmIyZjgyZDlhMzljNGMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RW
YWx1ZXM6OnJlc2V0KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiAgICAgLy8gQWRkIGVtcHR5IHN0
cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0eSgpKQotICAgICAgICBhcHBl
bmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0cmlu
Zz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNl
KGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIg
ZGVsaW1pdGVyKQogICAgICAgICAgICAgcHRyKys7CiAgICAgICAgIGlmIChwdHIgPT0gc3RhcnQp
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgYXBwZW5kKFN0cmluZyhzdGFydCwgcHRyIC0g
c3RhcnQpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U3RyaW5nPihTdHJpbmco
c3RhcnQsIHB0ciAtIHN0YXJ0KSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRl
bGltaXRlcihwdHIsIGVuZCwgZGVsaW1pdGVyKTsKICAgICB9CiB9CkBAIC03MCw3ICs3MCw3IEBA
IFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAg
ICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAg
ICBidWlsZGVyLmFwcGVuZChhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5
QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaAppbmRleCA4OTY1MWM3YWYwNDNmODliYmNj
ZGRhMTM2MWJjMzI2YWVlOTRmOTBlLi4wM2RhN2Q2YWYzMDdmYzA3ZjYxZjJjNzI3NzE0MWEyYjdh
YjkzOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgKQEAgLTIx
LDggKzIxLDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgor
I2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5o
IgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
Miw3ICszMiw3IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAK
IGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBm
aW5hbCA6IHB1YmxpYyBWZWN0b3I8U3RyaW5nPiB7CitjbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U3RyaW5nPiB7CiBwdWJsaWM6CiAgICAgU1ZH
U3RyaW5nTGlzdFZhbHVlcyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAg
ICAgICA6IG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5j
cHAKaW5kZXggNTk3Y2VkZDdjMGFhZDNlNjczMGZiMzgwNTE1NmE1NTA3OTMwMzg1NS4uMWNkOWM3
YTY2ZWEyMTU2ZjNiMjU1OTIxNmE2MjFkYWQ4YzI0MzkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMu
Y3BwCkBAIC0xMDcsOSArMTA3LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRTVkdGZWF0dXJlcygpCiB9CiAKIFNWR1Rl
c3RzOjpTVkdUZXN0cygpCi0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRGZWF0dXJl
c0F0dHIpCi0gICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRy
KQotICAgICwgbV9zeXN0ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgOiBtX3Jl
cXVpcmVkRmVhdHVyZXMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikp
CisgICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVpcmVk
RXh0ZW5zaW9uc0F0dHIpKQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdMaXN0VmFs
dWVzKHN5c3RlbUxhbmd1YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIwIEBAIGJv
b2wgU1ZHVGVzdHM6Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIAogYm9v
bCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDog
bV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKSB7CisgICAgYXV0byBmZWF0dXJlcyA9IHN0YXRpY19j
YXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKS5wcm9w
ZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVyZXMpIHsKICAgICAgICAg
aWYgKGZlYXR1cmUuaXNFbXB0eSgpIHx8ICFzdXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5z
KGZlYXR1cmUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3IgKGF1
dG8mIGxhbmd1YWdlIDogbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkgeworCisgICAgYXV0byBsYW5n
dWFnZXMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3Vh
Z2UudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3Vh
Z2VzKSB7CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSBkZWZhdWx0TGFuZ3VhZ2UoKS5zdWJzdHJp
bmcoMCwgMikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGZvciAoYXV0
byYgZXh0ZW5zaW9uIDogbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpIHsKKworICAgIGF1dG8g
ZXh0ZW5zaW9ucyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJl
ZEV4dGVuc2lvbnMudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGV4dGVuc2lv
biA6IGV4dGVuc2lvbnMpIHsKICAgICAgICAgaWYgKCFoYXNFeHRlbnNpb24oZXh0ZW5zaW9uKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNzIsMTEgKzE3NywxMSBAQCBi
b29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgU1ZHVGVzdHM6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRGZWF0dXJlc0F0
dHIpCi0gICAgICAgIG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAg
ICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEZlYXR1cmVz
LnZhbHVlKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRF
eHRlbnNpb25zQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUucmVzZXQo
dmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVx
dWlyZWRFeHRlbnNpb25zLnZhbHVlKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5h
bWUgPT0gc3lzdGVtTGFuZ3VhZ2VBdHRyKQotICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVl
LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+
KCptX3N5c3RlbUxhbmd1YWdlLnZhbHVlKS5yZXNldCh2YWx1ZSk7CiB9CiAKIGJvb2wgU1ZHVGVz
dHM6OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkK
QEAgLTIwOCw3ICsyMTMsNyBAQCB2b2lkIFNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShT
VkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgU1ZHU3luY2hyb25pemFibAogewogICAgIGlmICgh
cHJvcGVydHkuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlcXVp
cmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBw
cm9wZXJ0eS52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5z
eW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNW
R1N0cmluZ0xpc3RWYWx1ZXMmPigqcHJvcGVydHkudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9
CiAKIHZvaWQgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyhTVkdFbGVtZW50
JiBjb250ZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAKaW5kZXggM2E5ZWQ4NTZjYThkMWViMjgxODBkMzBhMzcxOGViYjNjMzA4YmY5ZS4u
ZTI4MmFiMzU3YTkzOWI3MGU1YzEwZDNhZTRjYWM0NWRiNjQwOTZlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTY2LDggKzY2LDggQEAgRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpT
VkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgbV90ZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVk
VGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKKyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVu
Z3RoQWRqdXN0U3BhY2luZykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R1RleHRDb250ZW50RWxlbWVudCgpOwpAQCAtOTUsNyArOTUsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IFNWR1RleHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0aEFuaW1hdGVkKCkKIHsKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoVmFsdWU+IGRlZmF1bHRUZXh0TGVuZ3Ro
KExlbmd0aE1vZGVPdGhlcik7CiAgICAgaWYgKG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9PSBkZWZh
dWx0VGV4dExlbmd0aCkKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOworICAg
ICAgICBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpLm5l
d1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVu
Z3RoKCkpOwogCiAgICAgbV90ZXh0TGVuZ3RoLnNob3VsZFN5bmNocm9uaXplID0gdHJ1ZTsKICAg
ICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNWR0FuaW1hdGVkTGVuZ3RoPihsb29rdXBP
ckNyZWF0ZVRleHRMZW5ndGhXcmFwcGVyKHRoaXMpKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBFeGNl
cHRpb25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1
bnNpZ25lZCBjaGFybnVtKQogaW50IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0
UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5k
ZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNl
KCkpOworICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVy
QXRQb3NpdGlvbihwb2ludC52YWx1ZVByb3BlcnR5KCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lk
PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBjaGFybnVt
LCB1bnNpZ25lZCBuY2hhcnMpCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b20KICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVu
Z3RoQWRqdXN0QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9
PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9
IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VF
cnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHTGVu
Z3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1
Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5n
dGhzKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1l
LCB2YWx1ZSk7CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICB9CiAKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyKQotICAg
ICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWU7CisgICAgICAg
IG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKm1f
dGV4dExlbmd0aC52YWx1ZSk7CiAKICAgICBpZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRl
cmVyKCkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDFhMjMyZWVk
ZDAwYzQ2ZDUyNzI3NjQ5MjBmMzUyNTkzMDA3ZGY4MzkuLjQwN2UzNGRhNTJjNWJmMzhhZWY5ZGE0
NjEyMjk3ZDQ3ZjdkZjkyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdUZXh0UGF0aEVsZW1lbnQ6OlNWR1RleHRQYXRoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdUZXh0
Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3N0YXJ0T2Zmc2V0KExl
bmd0aE1vZGVPdGhlcikKKyAgICAsIG1fc3RhcnRPZmZzZXQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyKSkKICAgICAsIG1fbWV0aG9kKFNWR1RleHRQYXRoTWV0aG9kQWxpZ24pCiAgICAg
LCBtX3NwYWNpbmcoU1ZHVGV4dFBhdGhTcGFjaW5nRXhhY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm0uY3BwCmluZGV4IDU5MDM3OTQ1YWI3MTRmNzUyMGUzMzY2YWQxNGJjMGZkZDNiY2Ex
NTkuLjhjYzk2ZWE4ZDc1YjhhNmE2M2ZhM2QyOTc0ZWEwNmQ4NmZiM2Y4MzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNmb3JtOjptYXRyaXgoKQogewotICAgIHJldHVy
biBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHByb3BlcnR5UmVmZXJlbmNlKCkuc3Zn
TWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHZh
bHVlUHJvcGVydHkoKS5zdmdNYXRyaXgoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAppbmRleCAxYjg2N2EzMzg1MTUwZTdkMDY5MWZhZjk1
NTM2MjkwY2FiM2UyZDZiLi5hMWRkNGYwNTlmYWRkNGQyNDM4ZjQ3ZDAwODZkY2IyMjUxZTA4YWIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHVHJh
bnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQzLDExICs0Myw2IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxW
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoY29u
c3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9y
bT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAg
IGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01NywxNCArNTIsMTQgQEAgcHVi
bGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
cHJvcGVydHlSZWZlcmVuY2UoKS50eXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5
KCkudHlwZSgpOwogICAgIH0KIAogICAgIFJlZjxTVkdNYXRyaXg+IG1hdHJpeCgpOwogCiAgICAg
ZmxvYXQgYW5nbGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
YW5nbGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5hbmdsZSgpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAg
LTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVm
ZXJlbmNlKCkpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0TWF0cml4KG1hdHJpeC52YWx1
ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtODMsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFRyYW5zbGF0ZSh0eCwgdHkp
OworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05NCw3ICs4OSw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0U2NhbGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgp
LnNldFNjYWxlKHN4LCBzeSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xMDUsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRSb3RhdGUoYW5n
bGUsIGN4LCBjeSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRSb3RhdGUoYW5nbGUsIGN4
LCBjeSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC0xMTYsNyArMTExLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRTa2V3WChhbmdsZSk7CisgICAgICAg
IHZhbHVlUHJvcGVydHkoKS5zZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMjcsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFNrZXdZKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFNrZXdZKGFu
Z2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1WYWx1ZSYg
dmFsdWUpCisgICAgU1ZHVHJhbnNmb3JtKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KCZhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTQzLDExICsxMzgs
NiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1W
YWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdUcmFu
c2Zvcm0oY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7
Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0LmgKaW5kZXggM2IzNDMzMzQ0ZTljY2ZmMjVlNDk2MWQxZmJjZjBiZTFkMGEx
ZTA5MC4uYWQyMmI3OTZmNDM0ZmRhOGI4NDY0MzY3OGMyMWY4NTFiZjEyOTBhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRl
ICJTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdMaXN0UHJv
cGVydHlUZWFyT2ZmLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMSwyMCAr
MzIsMTggQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9
IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjsK
ICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBj
cmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3Jh
cHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHVHJhbnNmb3JtTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZVNW
R1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiAgICAgewotICAgICAgICBB
U1NFUlQobV92YWx1ZXMpOwotICAgICAgICByZXR1cm4gbV92YWx1ZXMtPmNyZWF0ZVNWR1RyYW5z
Zm9ybUZyb21NYXRyaXgobWF0cml4KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCku
Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAg
ICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1MSwyMyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAg
ICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAg
ICAgLy8gU3BlYzogSWYgdGhlIGxpc3Qgd2FzIGVtcHR5LCB0aGVuIGEgdmFsdWUgb2YgbnVsbCBp
cyByZXR1cm5lZC4KLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCisgICAgICAgIGlm
ICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKICAgICAgICAgCi0gICAgICAgIFJl
ZlB0cjxTVkdUcmFuc2Zvcm0+IHdyYXBwZXIgPSBtX3ZhbHVlcy0+Y29uc29saWRhdGUoKTsKKyAg
ICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IHZhbHVlc1Byb3BlcnR5KCkuY29u
c29saWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXItPmNyZWF0ZVdl
YWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVy
cy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1f
d3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKHdyYXBwZXIpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAg
U1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCmluZGV4IDI1YjNjMzE2ZjJlZDc3OWM5NDZjOGU4ZTIy
NzY5YzFkODFmZTVlMjMuLmYyMWY3NzgyYjM2ZjExNjExMzlmOTI4ZDFkNmJkYzM4YmE3YmRhNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKQEAg
LTQxLDcgKzQxLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
Y29uc29saWRhdGUoKQogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7
CiAgICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNW
R1RyYW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9v
bCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZShBZmZpbmVUcmFuc2Zvcm0mIHJl
c3VsdCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcmVzdWx0ICo9IGF0KGkpLm1hdHJpeCgpOwor
ICAgICAgICByZXN1bHQgKj0gcHJvcGVydHlBdChpKS5tYXRyaXgoKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtNjUsNyArNjUsNyBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVB
c1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFz
U3RyaW5nKCkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAppbmRleCAyOTQwNzYyOGVk
ZmE2ZWYzNTVhMWYwYjBlMTYzYzk0NzQxN2VmNzI4Li5hNTIwN2I2MGJmNTUyMjYzNWY1MDlhYTIx
MWI3MmRmNzEwOTZiMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjAsMTggKzIxLDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZH
UHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1Ry
YW5zZm9ybVZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLWNsYXNzIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY7Ci0KK2NsYXNzIFNWR01hdHJpeDsK
K2NsYXNzIFNWR1RyYW5zZm9ybTsKIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3Q7CiAKLWNsYXNzIFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPFNWR1RyYW5zZm9ybVZh
bHVlLCAxPiB7CitjbGFzcyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNW
R0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKIHB1YmxpYzoKICAgICBSZWY8U1ZHVHJh
bnNmb3JtPiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCYpIGNvbnN0Owog
ICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNvbnNvbGlkYXRlKCk7CkBAIC00Miw4ICs0MSwxNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKIH07CiAKLXRlbXBsYXRlPD4g
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7
CiAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4geyB9OyB9CisgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICBBU1NFUlQobGlz
dC5zaXplKCkgPD0gMSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0
dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBT
VkdUcmFuc2Zvcm1WYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKaW5k
ZXggZmFkZDAzYTIzYTEwMmYwMDUxMjRlZWJkMzE5NDNiYTU5ZDZhZWExYy4uNzg3ZmY4YzFjZDdi
OGM3MmM2MTIwYzg2YmU5MzU3OTFhNGY2YmNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybVZhbHVlLmgKQEAgLTkxLDQgKzkxLDkgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBTVkdUcmFuc2Zvcm1WYWx1ZSYgYSwgY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIGIpCiAgICAg
cmV0dXJuICEoYSA9PSBiKTsKIH0KIAordGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtVmFsdWUgaW5p
dGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgdHJhbnNmb3JtKSB7IHJldHVybiB0cmFuc2Zvcm0udmFs
dWVBc1N0cmluZygpOyB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAKaW5kZXggYjhjMGJlZGFlMDRjMzJhYTU1MThkMjk3
ZTdkZjg5Y2ZkYTNlYjE1ZS4uMzNmODNmNmM1M2EwNTUxNjU5NTEyMjFkMjUxMWM3YzJmYTFjYjFm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcApAQCAtMTk3LDcgKzE5
Nyw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUoU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCwgY29uCiAgICAgICAgIGlmICghcGFyc2VUcmFuc2Zv
cm1WYWx1ZSh0eXBlLCBjdXJyVHJhbnNmb3JtLCBlbmQsIHRyYW5zZm9ybSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgbGlzdC5hcHBlbmQodHJhbnNmb3JtKTsKKyAgICAg
ICAgbGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNm
b3JtKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXJyVHJhbnNmb3JtLCBlbmQp
OwogICAgICAgICBpZiAoY3VyclRyYW5zZm9ybSA8IGVuZCAmJiAqY3VyclRyYW5zZm9ybSA9PSAn
LCcpIHsKICAgICAgICAgICAgIGRlbGltUGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAppbmRleCAwY2VhODgzZWE1MWRlMGY0M2JkOTQ5YmFmMDIyMDFmODcwNzFj
Y2YwLi5hOTc1OTI0MzZmYzVmODdlZjMwZGU2NmExOTYxN2U1ZGZiZDFhODY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC02MiwxMCArNjIsMTAgQEAgRU5EX1JFR0lTVEVS
X0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0
aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChM
ZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwg
bV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50Ojpz
dmdMb2FkRXZlbnRUaW1lckZpcmVkKQogewogICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJlc29s
dmVDYWxsYmFja3MoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNzQ5MTk1YTBh
NzBlOWM0NzZkMWQ4MDY5NmZiOGM0YmNkYjYwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmFsdWUuaApAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFs
dWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhW
YWx1ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQ
YXRoQnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5j
bHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJT
VkdTdHJpbmdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
IgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJp
YW50PAorICAgIFNWR0FuZ2xlVmFsdWUsICAgICAgICAgICAgICAgICAgLy8gIDA6IGFuZ2xlCisg
ICAgYm9vbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTogYm9vbGVhbgorICAgIENv
bG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDI6IGNvbG9yCisgICAgdW5zaWduZWQs
ICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzogZW51bWVyYXRpb24KKyAgICBpbnQsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vICA0OiBpbnRlZ2VyCisgICAgU1ZHTGVuZ3RoVmFsdWUs
ICAgICAgICAgICAgICAgICAvLyAgNTogbGVuZ3RoCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywg
ICAgICAgICAgICAvLyAgNjogbGVuZ3RoTGlzdAorICAgIFNWR01hdHJpeFZhbHVlLCAgICAgICAg
ICAgICAgICAgLy8gIDc6IG1hdHJpeAorICAgIGZsb2F0LCAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gIDg6IG51bWJlcgorICAgIFNWR051bWJlckxpc3RWYWx1ZXMsICAgICAgICAgICAgLy8g
IDk6IG51bWJlckxpc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSwgICAgICAgICAgICAgIC8vIDEw
OiBwYXRoCisgICAgUmVmUHRyPFNWR1BhdGhTZWc+LCAgICAgICAgICAgICAvLyAxMTogcGF0aFNl
ZworICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzLCAgICAgICAgICAgLy8gMTI6IHBhdGhTZWdMaXN0
CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLCAgICAvLyAxMzogcHJlc2VydmVBc3Bl
Y3RSYXRpbworICAgIEZsb2F0UG9pbnQsICAgICAgICAgICAgICAgICAgICAgLy8gMTQ6IHBvaW50
CisgICAgU1ZHUG9pbnRMaXN0VmFsdWVzLCAgICAgICAgICAgICAvLyAxNTogcG9pbnRMaXN0Cisg
ICAgRmxvYXRSZWN0LCAgICAgICAgICAgICAgICAgICAgICAvLyAxNjogcmVjdAorICAgIFN0cmlu
ZywgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTc6IHN0cmluZworICAgIFNWR1N0cmluZ0xp
c3RWYWx1ZXMsICAgICAgICAgICAgLy8gMTg6IHN0cmluZ0xpc3QKKyAgICBTVkdUcmFuc2Zvcm1W
YWx1ZSwgICAgICAgICAgICAgIC8vIDE5OiB0cmFuc2Zvcm0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzICAgICAgICAgIC8vIDIwOiB0cmFuc2Zvcm1MaXN0Cis+OworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHVHJhaXRIYXNUb1N0cmluZyB7CisgICAgdHlw
ZWRlZiBjaGFyIG9uZTsKKyAgICB0eXBlZGVmIGxvbmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IHN0YXRpYyBvbmUgdGVzdCh0eXBlb2YoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+Ojp0
b1N0cmluZykpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdvIHRlc3QoLi4u
KTsKKworcHVibGljOgorICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0PFByb3BlcnR5VHlw
ZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9OworfTsKKyAgICAKK3N0cnVjdCB0b1N0cmlu
Z1Zpc2l0b3IgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFi
bGVfaWZfdDxTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxs
cHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisg
ICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9T
dHJpbmcodmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0eVR5cGU+Ojp2
YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBTdHJpbmcgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5
cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biB7IH07CisgICAgfQorfTsKKyAgICAKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CitjbGFzcyBTVkdUcmFpdEhhc1BhcnNlIHsKKyAgICB0eXBlZGVmIGNoYXIgb25lOworICAgIHR5
cGVkZWYgbG9uZyB0d287CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIG9uZSB0
ZXN0KHR5cGVvZigmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnBhcnNlKSk7CisgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51bSB7
IHZhbHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNo
YXIpIH07Cit9OworCitzdHJ1Y3QgcGFyc2VWaXNpdG9yIHsKKyAgICBwYXJzZVZpc2l0b3IoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdWYWx1
ZVZhcmlhbnQmIHZhcmlhbnQpCisgICAgICAgIDogbV9hdHRyTmFtZShhdHRyTmFtZSkKKyAgICAg
ICAgLCBtX3N0cmluZyhzdHJpbmcpCisgICAgICAgICwgbV92YXJpYW50KHZhcmlhbnQpCisgICAg
eworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6
ZW5hYmxlX2lmX3Q8U1ZHVHJhaXRIYXNQYXJzZTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVs
bHB0cj4KKyAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvcGVydHlUeXBlPiByZXN1bHQgPSBTVkdQcm9wZXJ0eVRy
YWl0czxQcm9wZXJ0eVR5cGU+OjpwYXJzZShtX2F0dHJOYW1lLCBtX3N0cmluZyk7CisgICAgICAg
IGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX3Zhcmlh
bnQuZW1wbGFjZTxQcm9wZXJ0eVR5cGU+KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzUGFyc2U8UHJvcGVydHlU
eXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFByb3Bl
cnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIG1fYXR0ck5h
bWU7CisgICAgY29uc3QgU3RyaW5nJiBtX3N0cmluZzsKKyAgICBTVkdWYWx1ZVZhcmlhbnQmIG1f
dmFyaWFudDsKK307CisgICAgCitjbGFzcyBTVkdWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNW
R1ZhbHVlPiwgcHVibGljIFNWR1ZhbHVlVmFyaWFudCB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlPFByb3BlcnR5VHlwZT4oU1ZHUHJvcGVydHlU
cmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOworICAgIH0KKyAgICAKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51
bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNWR1Zh
bHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5z
aWduZWQmPihwcm9wZXJ0eSkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVy
dHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFs
dWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFBy
b3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdWYWx1ZShwcm9wZXJ0eSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVmPFNWR1Zh
bHVlPiBjcmVhdGUoY29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUodmFsdWUpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgYm9vbCBpcygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCp0aGlzKSB8fCAo
c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3Bl
cnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFs
dWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4o
KnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUHJvcGVydHlU
eXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUg
PGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3Bl
cnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIGNvbnN0IFByb3BlcnR5
VHlwZSYoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7
CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6
aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBQ
cm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQ
cm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2Vu
dW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgUHJvcGVy
dHlUeXBlJigpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAg
ICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAg
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNp
dCh0b1N0cmluZ1Zpc2l0b3IoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4o
KnRoaXMpKTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6
OnZpc2l0KHBhcnNlVmlzaXRvcihhdHRyTmFtZSwgc3RyaW5nLCBzdGF0aWNfY2FzdDxTVkdWYWx1
ZVZhcmlhbnQmPigqdGhpcykpLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPigq
dGhpcykpOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CisgICAgZXhwbGljaXQgU1ZHVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkK
KyAgICAgICAgOiBTVkdWYWx1ZVZhcmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQo
aXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICB9CisgICAgCisgICAgU1ZHVmFsdWUoY29uc3QgU1ZH
VmFsdWUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFyaWFudChzdGF0aWNfY2FzdDxjb25z
dCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXgo
KSA9PSB2YWx1ZS5pbmRleCgpKTsKKyAgICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKaW5kZXggMDRiN2U4MjM5YzNk
MmY0ZGRmN2YzNmMwNzNiMThjZGZkOTczMDA2My4uM2NiYTBlYjFkMjg3ZTk0YThlZmQ5MzlhNTVm
NTVkNTUxNGZlNTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCkBAIC00
MSw3ICs0MSw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiBpbmxpbmUgU1ZH
Vmlld0VsZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
CiAgICAgLCBtX3pvb21BbmRQYW4oU1ZHWm9vbUFuZFBhbk1hZ25pZnkpCi0gICAgLCBtX3ZpZXdU
YXJnZXQoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQorICAgICwgbV92aWV3VGFyZ2V0KFNWR1Zh
bHVlOjpjcmVhdGUoU1ZHU3RyaW5nTGlzdFZhbHVlcyhTVkdOYW1lczo6dmlld1RhcmdldEF0dHIp
KSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dmlld1RhZykpOwogICAgIHJl
Z2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVmlld0VsZW1lbnQoKTsKQEAgLTYwLDcgKzYw
LDcgQEAgUmVmPFNWR1N0cmluZ0xpc3Q+IFNWR1ZpZXdFbGVtZW50Ojp2aWV3VGFyZ2V0KCkKIHZv
aWQgU1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnZpZXdUYXJnZXRBdHRyKQotICAgICAgICBtX3ZpZXdUYXJnZXQucmVzZXQodmFsdWUpOwor
ICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fdmlld1RhcmdldCku
cmVzZXQodmFsdWUpOwogCiAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VBdHRyaWJ1
dGUodGhpcywgbmFtZSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAppbmRl
eCAwODFjZDFkNDkxM2YyNjQ4OTQ3YThhNzBiZjQwNTFmMDg3NjI5NjY4Li5mNTVkMzU0YWM2MWZj
OGQ1NDBjNDA5MGRlYmZiZTZjYmJjY2IwZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1l
bnQuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAgICBT
VkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1f
dmlld1RhcmdldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCmluZGV4IDA5OGExNzNkZDFmNmY3MWE3N2E0Mzk0YzI1YTJjYjZjNWMyZWZm
NjQuLjlmNmFjZTEyM2IxNzA2ZGNiN2JlNTQyMWM4MzJlYWFjYzhmY2IwYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdTcGVjLmNwcApAQCAtNzksNiArNzksOSBAQCBjb25zdCBTVkdQcm9wZXJ0eUlu
Zm8qIFNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1Qcm9wZXJ0eUluZm8oKQogCiBTVkdWaWV3U3BlYzo6
U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQpCiAgICAgOiBtX2NvbnRleHRF
bGVtZW50KCZjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fdHJhbnNmb3JtKFNWR1ZhbHVlOjpjcmVh
dGU8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSkKKyAgICAsIG1fdmlld0JveChTVkdWYWx1ZTo6
Y3JlYXRlPEZsb2F0UmVjdD4oKSkKKyAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhTVkdWYWx1
ZTo6Y3JlYXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSkKIHsKIH0KIApAQCAtMTA4
LDE3ICsxMTEsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVmlld1NwZWM6OnNldFpvb21BbmRQ
YW4odW5zaWduZWQgc2hvcnQpCiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3RyaW5n
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNmb3JtKTsKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0t
PnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dmlld0JveFN0cmluZygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5n
KG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1fdmlld0JveC0+dG9TdHJpbmcoKTsKIH0KIAogU3Ry
aW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6
dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXR1cm4gbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvLT50b1N0cmluZygpOwogfQogCiBTVkdFbGVtZW50KiBTVkdWaWV3U3BlYzo6dmll
d1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSArMTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVy
dHk+IFNWR1ZpZXdTcGVjOjpsb29rdXBPckNyZWF0ZVRyYW5zZm9ybVdyYXBwZXIoU1ZHVmlld1Nw
ZWMKIHZvaWQgU1ZHVmlld1NwZWM6OnJlc2V0KCkKIHsKICAgICBtX3pvb21BbmRQYW4gPSBTVkda
b29tQW5kUGFuTWFnbmlmeTsKLSAgICBtX3RyYW5zZm9ybS5jbGVhcigpOwotICAgIG1fdmlld0Jv
eCA9IHsgfTsKLSAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSB7IH07CisgICAgc3RhdGljX2Nh
c3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSkuY2xlYXIoKTsKKyAgICBz
dGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94KSA9IHsgfTsKKyAgICBzdGF0aWNfY2Fz
dDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKSA9
IHsgfTsKICAgICBtX3ZpZXdUYXJnZXRTdHJpbmcgPSBlbXB0eVN0cmluZygpOwogfQogCkBAIC0y
NjEsNyArMjY0LDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdHJp
bmcmIHZpZXdTcGVjKQogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1
cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgY3VyclZpZXdTcGVjKys7Ci0gICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJz
ZVRyYW5zZm9ybUF0dHJpYnV0ZShtX3RyYW5zZm9ybSwgY3VyclZpZXdTcGVjLCBlbmQsIFNWR1Ry
YW5zZm9ybWFibGU6OkRvTm90Q2xlYXJMaXN0KTsKKyAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFi
bGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMmPigqbV90cmFuc2Zvcm0pLCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJs
ZTo6RG9Ob3RDbGVhckxpc3QpOwogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQg
fHwgKmN1cnJWaWV3U3BlYyAhPSAnKScpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld1NwZWMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCmluZGV4
IDlmYjVkNDJiZWVlYTRlMjU1NTc2MjAyNThhNWI5NGRjYWY5MTEwYmUuLjRmOTI4ZWIxZGNiODRk
N2ZjMTJmMGJhZGM4MDFmZjE3NTVhNzVkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3U3BlYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCkBA
IC01NSwxNyArNTUsMTcgQEAgcHVibGljOgogCiAgICAgLy8gQ3VzdG9tIG5vbi1hbmltYXRlZCAn
dHJhbnNmb3JtJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gdHJhbnNm
b3JtKCk7Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMg
dHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSk7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRl
ZCAndmlld0JveCcgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdD4gdmlld0Jv
eEFuaW1hdGVkKCk7Ci0gICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gbV92aWV3Qm94
OyB9Ci0gICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0Jv
eCkgeyBtX3ZpZXdCb3ggPSB2aWV3Qm94OyB9CisgICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCk7IH0KKyAgICB2b2lkIHNl
dFZpZXdCb3hCYXNlVmFsdWUoY29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94KSB7IHN0YXRpY19jYXN0
PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpID0gdmlld0JveDsgfQogCiAgICAgLy8gQ3VzdG9tIGFu
aW1hdGVkICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0ZWQoKTsK
LSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSB7
IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KLSAgICB2b2lkIHNldFByZXNlcnZlQXNw
ZWN0UmF0aW9CYXNlVmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHByZXNlcnZlQXNwZWN0
UmF0aW87IH0KKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0
UmF0aW8oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
PigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsgfQorICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RS
YXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZl
QXNwZWN0UmF0aW8pIHsgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4o
Km1fcHJlc2VydmVBc3BlY3RSYXRpbykgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpAQCAtODQsOSArODQs
OSBAQCBwcml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAgICBT
Vkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9Owot
ICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0IG1f
dmlld0JveDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVj
dFJhdGlvOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ByZXNlcnZlQXNwZWN0
UmF0aW87CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9w
ZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
RW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAppbmRleCA0MTNjMmQzNmQ0NDAzM2U1ZjJmYmJm
OTUwZWMyOTdiMDFhNTgyYjQwLi5mMDg0NTY3YzcyMjRhZTA4ODdiMTUzOTM3ZDU5OWMyOTc5MDJj
YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCkBAIC01NSwy
MiArNTUsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmY8dW5zaWduZWQ+OjpzZXRCYXNlVmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5
cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBFbnVtVHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1l
cmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
YmFzZVZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVh
ck9mZjxFbnVtVHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7Ci0gICAg
fQotCi0gICAgRW51bVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKLSAgICB7Ci0gICAgICAg
IHVuc2lnbmVkJiBhbmltYXRlZFZhbHVlID0gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmY8dW5zaWduZWQ+OjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOwotICAgICAgICBBU1NFUlQoYW5p
bWF0ZWRWYWx1ZSA8PSBTVkdQcm9wZXJ0eVRyYWl0czxFbnVtVHlwZT46OmhpZ2hlc3RFbnVtVmFs
dWUoKSk7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEVudW1UeXBlJj4oYW5pbWF0
ZWRWYWx1ZSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB1bnNpZ25lZCYgcHJvcGVydHkp
Ci0gICAgICAgIDogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVy
dHkpCisgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIGJhc2VWYWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBiYXNlVmFsdWUpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYuaAppbmRleCA2MGM0YmEwNmUxMjI3OGNkMzY3YmQzYThlNjM1YTAxMGYwNGFlNTNiLi4x
MTA0OWE0MjAzMTQ5ZTBkMzQ3MTQ0MDg3MmUxMmY5ZDdkNTY4ODQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdFBy
b3BlcnR5VGVhck9mZiA9IHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46
Okxpc3RQcm9wZXJ0eVRlYXJPZmY7CiAgICAgdXNpbmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0eVR5
cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9w
ZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8
UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtODUsNDQgKzg1LDUwIEBAIHB1YmxpYzoKICAgICAgICAg
TGlzdFByb3BlcnR5OjpkZXRhY2hMaXN0V3JhcHBlcnNBbmRSZXNpemUoJm1fd3JhcHBlcnMsIG5l
d0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7
CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBj
dXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGlu
ZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CisgICAg
fQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlczsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1h
dGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsLCBib29sIHNob3VsZE93blZhbHVl
cyA9IGZhbHNlKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChSZWZQdHI8U1ZHVmFsdWU+IG5l
d0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAg
ICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0g
bV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlU
eXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsK
ICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkpOwogCiAgICAgICAg
IC8vIFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcgd3JhcHBlcnMgbGlz
dC4gVGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3IgdGhlIG5ldyB2YWx1
ZS4KLSAgICAgICAgaWYgKCFuZXdBbmltVmFsLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2Fu
aW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBuZXdBbmltVmFsLT5zaXplKCkpOworICAgICAgICBpZiAo
c2l6ZV90IHNpemUgPSBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbmV3QW5pbVZhbCkuc2l6
ZSgpKQorICAgICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAKICAg
ICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gYW5pbVZhbCgpOwotICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3Jh
cHBlcnMsIHNob3VsZE93blZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhu
ZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHkt
PndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0K
IAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5p
bWF0aW5nKCkpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMu
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJy
ZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFBy
b3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndy
YXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3Jh
cHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAg
bV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycygmbV92YWx1ZXMsICZtX3dy
YXBwZXJzLCBmYWxzZSk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVl
cygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAg
ICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhtX3ZhbHVlcywg
Jm1fd3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgp
KTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkg
PT0gbV93cmFwcGVycy5zaXplKCkpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5jbGVh
cigpOwpAQCAtMTQyLDM0ICsxNDgsMzQgQEAgcHVibGljOgogICAgICAgICAvLyBBbHNvIGV4aXN0
aW5nIHdyYXBwZXJzIHdoaWNoIHBvaW50IGRpcmVjdGx5IGF0IGVsZW1lbnRzIGluIHRoZSBleGlz
dGluZyBTVkdMZW5ndGhMaXN0VmFsdWVzIGhhdmUgdG8gYmUgZGV0YWNoZWQgKHNvIGEgY29weQog
ICAgICAgICAvLyBvZiB0aGVtIGlzIGNyZWF0ZWQsIHNvIGV4aXN0aW5nIGFuaW1WYWwgdmFyaWFi
bGVzIGluIEpTIGFyZSBrZXB0LWFsaXZlKS4gSWYgd2UnZCBkZXRhY2ggdGhlbSBsYXRlciB0aGUg
dW5kZXJseWluZwogICAgICAgICAvLyBTVkdMZW5ndGhMaXN0VmFsdWVzIHdhcyBhbHJlYWR5IG11
dGF0ZWQsIGFuZCBvdXIgbGlzdCBpdGVtIHdyYXBwZXIgdGVhciBvZmZzIHdvdWxkIHBvaW50IG5v
d2hlcmUuIEFzc2VydGlvbnMgd291bGQgZmlyZS4KLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5
LT5kZXRhY2hMaXN0V3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkp
OworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1h
dGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHkt
PnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMo
KS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygp
LnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAgICB9CiAKICAgICB2b2lk
IGFuaW1WYWxXaWxsQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXpl
KCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJv
cGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6
ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiAg
ICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBl
cnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBl
JiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1fdmFs
dWVzKHZhbHVlcykKICAgICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgaWYgKHNp
emVfdCBzaXplID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlcykuc2l6ZSgpKQor
ICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAsIHNpemUpOwogICAgIH0KIAotICAgIFByb3Bl
cnR5VHlwZSYgbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlczsKIAogICAg
IExpc3RXcmFwcGVyQ2FjaGUgbV93cmFwcGVyczsKICAgICBMaXN0V3JhcHBlckNhY2hlIG1fYW5p
bWF0ZWRXcmFwcGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApp
bmRleCAyZTNkMWY4MzA1ZTZhYjRjZDZjYTlhNzA2NTcwM2ZlZDQyMzBhNzIwLi42OWYyZTJjNDRk
MDczYjBjNmE4ZTcxYzljN2E2MjYxMjY5NjQ3ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZi5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw3ICszMiw3IEBAIGNsYXNzIFNWR0FuaW1hdGVk
UGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVyCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQo
Y29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC03Niw4ICs3Nyw4IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtID0gYnl0ZVN0cmVhbTsKIAogICAg
ICAgICAvLyBQYXNzIHNob3VsZE93blZhbHVlcz10cnVlLCBhcyB0aGUgU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMgbGlmZXRpbWUgaXMgc29sZWx5IG1hbmFnZWQgYnkgaXRzIHRlYXIgb2ZmIGNsYXNzLgot
ICAgICAgICBhdXRvKiBjb3B5ID0gbmV3IFNWR1BhdGhTZWdMaXN0VmFsdWVzKCpiYXNlVmFsdWUp
OwotICAgICAgICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHksIHRydWUpOworICAgICAgICBh
dXRvIGNvcHkgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpiYXNlVmFsdWUpOworICAgICAgICBCYXNlOjph
bmltYXRpb25TdGFydGVkKGNvcHkucHRyKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9u
RW5kZWQoKQpAQCAtOTUsNyArOTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElmIHRoZSBhbmlt
VmFsIGlzIG9ic2VydmVkIGZyb20gSlMsIHdlIGhhdmUgdG8gdXBkYXRlIGl0IG9uIGVhY2ggYW5p
bWF0aW9uIHN0ZXAuCiAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBh
bmQgb25seSBkb25lLCBpZiBzb21lb25lIGFjdHVhbGx5IG9ic2VydmVzIHRoZSBhbmltYXRlZFBh
dGhTZWdMaXN0KCkgd2hpbGUgYW4gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgICAgIGlmIChw
YXRoRWxlbWVudC0+aXNBbmltVmFsT2JzZXJ2ZWQoKSkgewotICAgICAgICAgICAgYXV0byYgYW5p
bWF0ZWRMaXN0ID0gY3VycmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIGF1dG8mIGFu
aW1hdGVkTGlzdCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmN1cnJlbnRB
bmltYXRlZFZhbHVlKCkpOwogICAgICAgICAgICAgYW5pbWF0ZWRMaXN0LmNsZWFyKCk7CiAgICAg
ICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0oKm1fYW5pbWF0
ZWRQYXRoQnl0ZVN0cmVhbSwgKnBhdGhFbGVtZW50LCBhbmltYXRlZExpc3QsIFVuYWx0ZXJlZFBh
cnNpbmcpOwogICAgICAgICB9CkBAIC0xMDYsNyArMTA3LDcgQEAgcHVibGljOgogICAgIFNWR1Bh
dGhCeXRlU3RyZWFtKiBhbmltYXRlZFBhdGhCeXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9h
bmltYXRlZFBhdGhCeXRlU3RyZWFtOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQYXRo
U2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICAgICAgOiBCYXNlKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgdmFsdWVzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbShu
dWxscHRyKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAppbmRleCA2NjI5NDEzODMwZjJkM2QyOTVlN2M3MGU0Yjc5MzJj
Yjk3MWMzZDNmLi43Y2ZhZGJhYjc3Mjc3NjE0NzQ0MjYzYjBjZTZmYjQzZmRmNjc0MDc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU1ZH
VmFsdWU7CiBjbGFzcyBTVkdFbGVtZW50OwogY2xhc3MgU1ZHUHJvcGVydHk7CiAKQEAgLTQ5LDcg
KzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkUHJvcGVydHkoKTsKIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwgdHlwZW5hbWUgVGVhck9mZlR5cGUsIHR5
cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBP
ckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8q
IGluZm8sIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlw
ZT4gbG9va3VwT3JDcmVhdGVXcmFwcGVyKE93bmVyVHlwZSogZWxlbWVudCwgY29uc3QgU1ZHUHJv
cGVydHlJbmZvKiBpbmZvLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpbmZvKTsKICAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0
aW9uIGtleShlbGVtZW50LCBpbmZvLT5wcm9wZXJ0eUlkZW50aWZpZXIpOwpAQCAtNTgsNyArNTks
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVhck9mZlR5cGUmPigqcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSk7CiAKLSAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2Zm
VHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVk
UHJvcGVydHlUeXBlLCBwcm9wZXJ0eSk7CisgICAgICAgIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5
PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0ZShlbGVtZW50LCBpbmZvLT5hdHRyaWJ1dGVO
YW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWUpOwogICAgICAgICBpZiAoaW5m
by0+YW5pbWF0ZWRQcm9wZXJ0eVN0YXRlID09IFByb3BlcnR5SXNSZWFkT25seSkKICAgICAgICAg
ICAgIHdyYXBwZXItPnNldElzUmVhZE9ubHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCmluZGV4IDMw
Zjg1NTY3OTQwOTkwNDM5YjhjZWQyZTU3YjJmZDUwYjExMzNhZTguLjYzNDlkNzc0MmM5YjRkNDMz
NGE0Y2E1MWQ4MzhkZWExYjY0M2UzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTI1LDYgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3Bl
cnR5LmgiCiAjaW5jbHVkZSAiU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5oIgogI2luY2x1ZGUg
IlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAg
LTM0LDI1ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5IHsK
ICAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoKQotICAgICAgICA6IHZhbHVl
KFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKQotICAgICAg
ICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCisg
ICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCkpCiAgICAgewog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMT4KLSAg
ICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQYXJh
bWV0ZXIxJiB2YWx1ZTEpCi0gICAgICAgIDogdmFsdWUodmFsdWUxKQotICAgICAgICAsIHNob3Vs
ZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCi0gICAgewotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMSwgdHlwZW5h
bWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIyPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQ
cm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSwgY29uc3QgQ29uc3Ry
dWN0b3JQYXJhbWV0ZXIyJiB2YWx1ZTIpCi0gICAgICAgIDogdmFsdWUodmFsdWUxLCB2YWx1ZTIp
Ci0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChm
YWxzZSkKKyAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgUHJvcGVy
dHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5
VHlwZT4odmFsdWUpKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDkgKzUwLDkgQEAgc3RydWN0IFNW
R1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSB7CiAgICAgICAgIG93bmVyRWxlbWVudC0+
c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyTmFtZSwgdmFsdWUpOwogICAgIH0KIAot
ICAgIFByb3BlcnR5VHlwZSB2YWx1ZTsKLSAgICBib29sIHNob3VsZFN5bmNocm9uaXplIDogMTsK
LSAgICBib29sIGlzVmFsaWQgOiAxOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFsdWU7CisgICAg
Ym9vbCBzaG91bGRTeW5jaHJvbml6ZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFs
c2UgfTsKIH07CiAKIC8vIFByb3BlcnR5IHJlZ2lzdHJhdGlvbiBoZWxwZXJzCkBAIC0xMjQsMTkg
KzExMywxOSBAQCBwdWJsaWM6IFwKICAgICB7IFwKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9
IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJUeXBlLCBUZWFyT2Zm
VHlwZT4odGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCkpKSB7IFwKICAgICAgICAg
ICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGluZygpKSBcCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7IFwKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZh
bHVlKCkpOyBcCiAgICAgICAgIH0gXAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHku
dmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMj
TG93ZXJQcm9wZXJ0eS52YWx1ZSk7IFwKICAgICB9IFwKIFwKICAgICBQcm9wZXJ0eVR5cGUmIExv
d2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNvbnN0IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7
IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUp
OyBcCiAgICAgfSBcCiBcCi0gICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShj
b25zdCBQcm9wZXJ0eVR5cGUmIHR5cGUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92
ZXJyaWRlU3BlY2lmaWVyIFwKKyAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVl
KGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUp
IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgbV8jI0xvd2VyUHJvcGVydHku
dmFsdWUgPSB0eXBlOyBcCisgICAgICAgIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMj
TG93ZXJQcm9wZXJ0eS52YWx1ZSkgPSB2YWx1ZTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0
eS5pc1ZhbGlkID0gdmFsaWRWYWx1ZTsgXAogICAgIH0gXAogXApAQCAtMTU2LDcgKzE0NSw3IEBA
IHByaXZhdGU6IFwKICAgICB7IFwKICAgICAgICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91
bGRTeW5jaHJvbml6ZSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCi0gICAgICAgIEF0b21pY1N0
cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMj
TG93ZXJQcm9wZXJ0eS52YWx1ZSkpOyBcCisgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQ
cm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhzdGF0aWNfY2FzdDxQcm9wZXJ0
eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpKSk7IFwKICAgICAgICAgbV8jI0xvd2Vy
UHJvcGVydHkuc3luY2hyb25pemUodGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCkt
PmF0dHJpYnV0ZU5hbWUsIHZhbHVlKTsgXAogICAgIH0gXAogXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgK
aW5kZXggZWU1ZjA2ZWIyOTJmY2M2MWFjZjYyYTlmYmZlZWNlYWIyYjM5NmNhNC4uZGIyZWYxZjQy
ZTIyYTk4NzFhZmY1YTA4ODQ1M2Y4NTJlMjg5ZTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCkBA
IC0zMiwxMCArMzIsMTAgQEAgcHVibGljOgogICAgIHVzaW5nIFByb3BlcnR5VHlwZSA9IHR5cGVu
YW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVydHlUeXBlOwogICAgIHVzaW5nIENvbnRlbnRUeXBl
ID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRp
YyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRl
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRl
eHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4oY29u
dGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFs
dWUpKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVydHlUZWFyT2ZmPiBiYXNlVmFsKCkKQEAgLTQz
LDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAobV9iYXNlVmFsKQogICAgICAgICAgICAg
cmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPihtX2Jhc2VWYWwuZ2V0KCkpOwog
Ci0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywg
QmFzZVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVy
dHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBtX2Jhc2VWYWx1ZSk7CiAgICAg
ICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVy
biBwcm9wZXJ0eTsKICAgICB9CkBAIC01MywzNiArNTMsNDIgQEAgcHVibGljOgogICAgICAgICBp
ZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRl
YXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAg
ICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1W
YWxSb2xlLCBtX2Jhc2VWYWx1ZSk7CiAgICAgICAgIG1fYW5pbVZhbCA9IHByb3BlcnR5LT5jcmVh
dGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CiAKICAgICBib29s
IGlzQW5pbWF0aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5OyB9
CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChp
c0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+cHJvcGVy
dHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUo
KTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBj
b25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIEFTU0VSVChp
c0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUo
KTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRCYXNlVmFsdWUo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYmFzZVZhbHVlOwogICAgIH0KIAotICAg
IHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9p
ZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIG5ld0FuaW1WYWwpCiAg
ICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3
QW5pbVZhbCk7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAg
ICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZSgqbmV3QW5pbVZhbCk7CisgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobmV3QW5pbVZhbCk7CiAgICAgfQogCiAgICAgdm9p
ZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7
Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobV9wcm9wZXJ0eSk7CisgICAg
ICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobV9iYXNlVmFsdWUpOwogICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KIApAQCAtMTA0LDEzICsxMTAsMTMg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFBy
b3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCi0gICAg
ICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKKyAgICAgICAgLCBtX2Jhc2VWYWx1ZShiYXNlVmFs
dWUpCiAgICAgewogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKKyAgICBS
ZWZQdHI8U1ZHVmFsdWU+IG1fYmFzZVZhbHVlOwogICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFy
T2ZmPFByb3BlcnR5VHlwZT4+IG1fYmFzZVZhbDsKICAgICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVh
ck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2FuaW1WYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oCmluZGV4IDI3ZmFhN2MzYzE4ZmZmOGY4YjExMGEyODI3YzRkNDdlNjhkOGIyYzguLjU2
YmJiZDFmZmU5ZGJjNjhhMTQyYmRjNzI1ODFhNDkyNmNhMTQ4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmYuaApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHVmFs
dWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw1MyArMzMsNTkgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgY29uc3QgUHJv
cGVydHlUeXBlJiBhbmltVmFsKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2FuaW1hdGVkUHJvcGVy
dHkpCi0gICAgICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKLSAgICAgICAgcmV0
dXJuIG1fcHJvcGVydHk7CisgICAgICAgIGlmIChtX2FuaW1hdGVkVmFsdWUpCisgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYW5pbWF0ZWRWYWx1ZSk7Cisg
ICAgICAgIHJldHVybiBiYXNlVmFsKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBFeGNlcHRpb25P
cjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgdmly
dHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgYmFz
ZVZhbHVlKQogICAgIHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgICBz
dGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpID0gYmFzZVZhbHVlOwogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBi
b29sIGlzQW5pbWF0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hbmltYXRlZFByb3Bl
cnR5OyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
YW5pbWF0ZWRWYWx1ZTsgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlU
eXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4g
Y3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0
ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3Bl
cnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmlt
YXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJuICpt
X2FuaW1hdGVkUHJvcGVydHk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkVmFsdWU7CiAgICAg
fQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAg
ICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBBU1NFUlQoaXNBbmltYXRp
bmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkVmFsdWU7CisgICAgfQorCisgICAgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0
ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChS
ZWZQdHI8U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5p
bWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAgIG1fYW5pbWF0
ZWRQcm9wZXJ0eSA9IG5ld0FuaW1WYWw7CisgICAgICAgIG1fYW5pbWF0ZWRWYWx1ZSA9IG5ld0Fu
aW1WYWw7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAgICAg
ICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51
bGxwdHI7CisgICAgICAgIG1fYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
dm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCkBAIC05OSwxNiArMTA2LDE2IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZihT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5
VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCi0gICAg
ICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKLSAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHko
bnVsbHB0cikKKyAgICAgICAgLCBtX2Jhc2VWYWx1ZShiYXNlVmFsdWUpCiAgICAgeworICAgICAg
ICBBU1NFUlRfSU1QTElFUyhtX2Jhc2VWYWx1ZSwgbV9iYXNlVmFsdWUtPmlzPFByb3BlcnR5VHlw
ZT4oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsK
LSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fYmFzZVZhbHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9hbmltYXRlZFZhbHVlOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAppbmRl
eCBhYTM1NGQ2YjhjOGI0N2E5ZmVkNGY1NjkwNDlmNGRlMjcyZjNmMDVlLi43YTdmZGI0ZjVjMmJi
MTI1NjExMzk2M2JiYzBmYjhmYWUzODk2OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBmaW5hbCA6
IHB1YmxpYyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxl
bWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
ZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQ
cm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNvbnRleHRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eS5oCmluZGV4IDgwNzQ5MmRkOTA1ZWM2ZDYxYjc1NGFiZDk4MGQxOWM1YzA3YWY3MmMuLjBk
ZjkwMWQzZDRjMzc1ZThjMjczOGRhMGJhMDM3ZGRiNGQwN2IyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCkBAIC0yNSwxNCArMjUsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gTGlzdE1vZGlmaWNhdGlvbiB7Ci0gICAg
TGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAotICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQg
PSAxLAotICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKLSAgICBMaXN0TW9kaWZpY2F0
aW9uUmVtb3ZlID0gMywKLSAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAotfTsKLQogdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOwogCkBAIC03NSwxOSArNjcsMTYgQEAgcHVibGljOgogICAgICAgICBkZXRhY2hM
aXN0V3JhcHBlcnNBbmRSZXNpemUobV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoUHJvcGVydHlUeXBlKiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUqIHdyYXBwZXJzLCBib29sIHNob3VsZE93blZhbHVlcykKKyAgICB2b2lkIHNl
dFZhbHVlc0FuZFdyYXBwZXJzKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSogd3JhcHBlcnMpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIG9ubHkgdXNl
ZCBmb3IgYW5pbVZhbCBzdXBwb3J0LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlpbmcgdmFsdWVzICYg
d3JhcHBlcnMKICAgICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQgdmFsdWVzLCBvbmNl
IGFuaW1hdGlvbiBmb3IgYSBsaXN0IHN0YXJ0cy4KICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsK
ICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogICAgICAgICBBU1NFUlQobV9yb2xlID09IEFu
aW1WYWxSb2xlKTsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAgICAgICAgICAgIGRlbGV0
ZSBtX3ZhbHVlczsKICAgICAgICAgbV92YWx1ZXMgPSB2YWx1ZXM7Ci0gICAgICAgIG1fb3duc1Zh
bHVlcyA9IHNob3VsZE93blZhbHVlczsKICAgICAgICAgbV93cmFwcGVycyA9IHdyYXBwZXJzOwot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjpjbGVhcigpCkBAIC05OCw3ICs4Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBt
X3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTEs
NyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFs
dWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTExOSw3ICsx
MDgsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6bnVtYmVyT2ZJdGVtcygpCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1
ZXMtPnNpemUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogICAg
IH0KIAogICAgIC8vIFNWR0xpc3Q6OmluaXRpYWxpemUoKQpAQCAtMTM0LDggKzEyMyw4IEBAIHB1
YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAwKTsK
IAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJv
bSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xl
IGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCi0gICAgICAgIG1fdmFsdWVzLT5jbGVh
cigpOwotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0xNTAs
NyArMTM5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwog
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAK
QEAgLTE1OSw5ICsxNDgsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogQ2xlYXJzIGFs
bCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJlLWluaXRpYWxpemVz
IHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBieSB0aGUgcGFyYW1l
dGVyLgogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFsdWVzLT5j
bGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAKLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFs
dWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAgICAgIG1fd3JhcHBl
cnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwpAQCAtMTcxLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdMaXN0OjpnZXRJ
dGVtKCkKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5HZXRJdGVtKHVuc2lnbmVkIGluZGV4KQog
ICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlm
IChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
MTg1LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0
ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFu
ZCBub3QgYSBjb3B5LgotICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbV92YWx1ZXMtPmF0
KGluZGV4KSB9OworICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgc3RhdGljX2Nhc3Q8TGlz
dEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSB9OwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPFJlZjxMaXN0SXRlbVRlYXJPZmY+PiBnZXRJdGVtVmFsdWVzQW5kV3JhcHBl
cnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZExpc3QsIHVuc2lnbmVkIGlu
ZGV4KQpAQCAtMTk5LDEzICsxODgsMTMgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IFJl
dHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSByZXR1cm5lZCBpdGVt
IGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KICAgICAgICAgLy8gQW55IGNoYW5n
ZXMgbWFkZSB0byB0aGUgaXRlbSBhcmUgaW1tZWRpYXRlbHkgcmVmbGVjdGVkIGluIHRoZSBsaXN0
LgotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3JhcHBlciA9IHN0YXRp
Y19jYXN0PExpc3RJdGVtVGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAg
ICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyB3cmFwcGVy
LCB3aGljaCBpcyBhbGxvd2VkIHRvIGRpcmVjdGx5IG1vZGlmeSB0aGUgaXRlbSBpbiB0aGUgbGlz
dCwgdy9vIGNvcHlpbmcgYW5kIGNhY2hlIHRoZSB3cmFwcGVyIGluIG91ciBtYXAuCiAgICAgICAg
ICAgICAvLyBJdCBpcyBhbHNvIGFzc29jaWF0ZWQgd2l0aCBvdXIgYW5pbWF0ZWQgcHJvcGVydHks
IHNvIGl0IGNhbiBub3RpZnkgdGhlIFNWRyBFbGVtZW50IHdoaWNoIGhvbGRzIHRoZSBTVkdBbmlt
YXRlZCpMaXN0CiAgICAgICAgICAgICAvLyB0aGF0IGl0IGhhcyBiZWVuIG1vZGlmaWVkIChhbmQg
dGh1cyBjYW4gY2FsbCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1l
KSkuCi0gICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0
ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAgICAg
IHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5l
ZFJvbGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKICAgICAgICAgICAgIG1fd3JhcHBl
cnMtPmF0KGluZGV4KSA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgfQogCkBA
IC0yMjEsOCArMjEwLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFw
cGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFs
dWVzLT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAg
ICAgIGlmIChpbmRleCA+IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5k
ZXggPSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJ
dGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3Vz
IGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICBpZiAo
IXByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgJmluZGV4KSkgewpAQCAtMjMy
LDcgKzIyMSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJbnNlcnRzIGEgbmV3IGl0
ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBUaGUgaW5kZXggb2Yg
dGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQogICAgICAgICAvLyBp
bnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBpbmRleCBpcyBlcXVh
bCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUgZnJvbnQgb2YgdGhl
IGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOworICAgICAg
ICB2YWx1ZXNQcm9wZXJ0eSgpLmluc2VydChpbmRleCwgU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRl
bVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTI0OCwxMCArMjM3LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAg
ICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1i
ZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRo
ZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAg
ICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUHJvcGVydHkoKS5z
aXplKCk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShp
dGVtKTsKIApAQCAtMjYxLDcgKzI1MCw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJ
bnNlcnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9u
LiBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBi
ZQogICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRo
ZSBpbmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0
aGUgZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5l
d0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmlu
c2VydChpbmRleCwgbmV3SXRlbS0+dmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3RvcmUgbmV3IHdy
YXBwZXIgYXQgcG9zaXRpb24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5aW5nIHZhbHVlLCBz
byBtdXRhdGlvbnMgb2YgbmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBpdGVtIGluIHRoZSBs
aXN0LgogICAgICAgICBtX3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPmNyZWF0ZVdl
YWtQdHIoKSk7CkBAIC0yNzgsNyArMjY3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgp
KQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTI5OCwxMyArMjg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV92
YWx1ZXMtPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBsaXN0
LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVyZSdz
IG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRl
eFNpemVFcnJvciB9OwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBh
dCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGlu
ZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIHN0YXRpY19jYXN0PExpc3RJdGVtVHlwZSY+KCp2YWx1
ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSkgPSBuZXdJdGVtOwogCiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMzE5LDcg
KzMwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBA
IC0zMjgsNyArMzE3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIXByb2Nlc3NJbmNvbWluZ0xp
c3RJdGVtV3JhcHBlcihuZXdJdGVtLCAmaW5kZXgpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUobmV3SXRlbSk7CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQo
bV93cmFwcGVycy0+aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5
IGxpdmVkIGluIG91ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3
aGljaCBtZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwpAQCAtMzQwLDcgKzMyOSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKIAogICAgICAgICAvLyBV
cGRhdGUgdGhlIHZhbHVlIGFuZCB0aGUgd3JhcHBlciBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAn
aW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPnByb3BlcnR5
UmVmZXJlbmNlKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpID0gbmV3SXRl
bS0+dmFsdWUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+Y3Jl
YXRlV2Vha1B0cigpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtMzU1LDcgKzM0NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAg
ICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
ZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsOCArMzU3LDgg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAg
IExpc3RJdGVtVHlwZSBvbGRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKLSAgICAgICAgbV92
YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gc3Rh
dGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKKyAg
ICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShvbGRJdGVtKTsKQEAgLTM4NCwxNiArMzcz
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
ICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKIAogICAgICAgICAvLyBEZXRhY2ggdGhlIGV4aXN0aW5nIHdyYXBwZXIuCiAgICAgICAgIFJl
ZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJP
ZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBpZiAoIW9sZEl0ZW0p
Ci0gICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRM
aXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAgICAgIG9s
ZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJv
bGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKIAogICAgICAgICBvbGRJdGVtLT5kZXRh
Y2hXcmFwcGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpbmRleCk7Ci0gICAgICAg
IG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92
ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBvbGRJ
dGVtLnJlbGVhc2VOb25OdWxsKCk7CkBAIC00MTEsNyArNDAwLDcgQEAgcHVibGljOgogICAgICAg
ICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8v
IEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1
ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRD
aGFuZ2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5
cGUgeyBuZXdJdGVtIH07CkBAIC00MjYsNyArNDE1LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgp
ID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRl
YXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTQzNCwxOSArNDIzLDI1IEBAIHB1YmxpYzoKICAg
ICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sIDApOwogCiAgICAg
ICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYW5kIHdyYXBwZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlz
dC4KLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgp
KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAg
ICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAg
ICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0
dXJuIFdURk1vdmUobmV3SXRlbSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMo
KQorICAgIFJlZjxTVkdWYWx1ZT4gdmFsdWVzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7CiAgICAgICAgIHJldHVybiAqbV92YWx1ZXM7CiAgICAgfQogCisgICAgUHJv
cGVydHlUeXBlJiB2YWx1ZXNQcm9wZXJ0eSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
bV92YWx1ZXMpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1f
dmFsdWVzKTsKKyAgICB9CisKICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycygpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CkBAIC00NTksMjAgKzQ1NCwxMyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5KFNWR1By
b3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSog
d3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQog
ICAgICAgICA6IG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fb3duc1ZhbHVlcyhmYWxzZSkKLSAg
ICAgICAgLCBtX3ZhbHVlcygmdmFsdWVzKQorICAgICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAg
ICAgICAgLCBtX3dyYXBwZXJzKHdyYXBwZXJzKQogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IH5TVkdMaXN0UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAg
ICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlczsKLSAgICB9Ci0KICAgICB2b2lkIGNvbW1pdENoYW5n
ZSgpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKExpc3RNb2Rp
ZmljYXRpb24pCiAgICAgewpAQCAtNDgzLDggKzQ3MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKFJlZjxMaXN0SXRlbVRlYXJP
ZmY+JiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlmeSkgPSAwOwogCiAgICAgU1ZHUHJv
cGVydHlSb2xlIG1fcm9sZTsKLSAgICBib29sIG1fb3duc1ZhbHVlczsKLSAgICBQcm9wZXJ0eVR5
cGUqIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7CiAgICAgTGlzdFdy
YXBwZXJDYWNoZSogbV93cmFwcGVyczsKICAgICBXZWFrUHRyRmFjdG9yeTxTVkdMaXN0UHJvcGVy
dHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDFlMDQ5ZGUxMzA1NWMw
YmQ0ZjcxYmUwMjQ3MDA5YzNjNDdiYWEyMGIuLmVjMzdkM2U2MTQ4OGY4NDkwYWY5MGEzMTg2MjI0
ODYwOTRjYTNlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTM1LDIyICszNSwyMSBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9
IHR5cGVuYW1lIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpM
aXN0V3JhcHBlckNhY2hlOwogCisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVydHk7CiAgICAg
dXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwogICAgIHVzaW5n
IEJhc2U6Om1fd3JhcHBlcnM7CiAKLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVz
LCB3cmFwcGVycykpOwogICAgIH0KIAogICAgIGludCBmaW5kSXRlbShMaXN0SXRlbVRlYXJPZmYq
IGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBB
U1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMt
PnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAg
ICAgIEFTU0VSVChzaXplID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlmIChpdGVtID09
IG1fd3JhcHBlcnMtPmF0KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwpAQCAtNjEsMTUg
KzYwLDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBp
dGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVycy0+YXQoaXRl
bUluZGV4KTsKICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBw
ZXJzLT5yZW1vdmUoaXRlbUluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5k
ZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgpOwogCiAgICAg
ICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CkBAIC0xMTIsNyArMTEwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgot
ICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBl
Pihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHko
YW5pbWF0ZWRQcm9wZXJ0eSkKICAgICB7CkBAIC0xMjksMTggKzEyNywxNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgLy8g
VXBkYXRlIGV4aXN0aW5nIHdyYXBwZXJzLCBhcyB0aGUgaW5kZXggaW4gdGhlIHZhbHVlcyBsaXN0
IGhhcyBjaGFuZ2VkLgogICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgp
OwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBtX3dy
YXBwZXJzLT5hdChpKTsKICAgICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHkobV9hbmltYXRl
ZFByb3BlcnR5LnB0cigpKTsKLSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5h
dChpKSk7CisgICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNQcm9wZXJ0eSgpLmF0KGkp
KTsKICAgICAgICAgfQogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdl
KCk7CkBAIC0xNjksNyArMTY2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gU1ZHUmVj
dEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoICd3aWR0aCcgcHJvcGVydHkgYmFzZVZhbCBwb2lu
dHMgdG8gdGhlIHNhbWUgdGVhciBvZmYgb2JqZWN0CiAgICAgICAgICAgICAvLyB0aGF0J3MgaW5z
ZXJ0ZWQgaW50byBTVkdUZXh0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICd4Jy4gdGV4
dEVsZW1lbnQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgKz0gMTUwIHdvdWxkCiAgICAgICAg
ICAgICAvLyBtdXRhdGUgdGhlIHJlY3RFbGVtZW50IHdpZHRoIF9hbmRfIHRoZSB0ZXh0RWxlbWVu
dCB4IGxpc3QuIFRoYXQncyBvYnZpb3VzbHkgd3JvbmcsIHRha2UgY2FyZSBvZiB0aGF0LgotICAg
ICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0tPnByb3Bl
cnR5UmVmZXJlbmNlKCkpOworICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6
Y3JlYXRlKG5ld0l0ZW0tPnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdNYXRyaXhUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
YXRyaXhUZWFyT2ZmLmgKaW5kZXggZTBiZjBkMDgyN2U3M2Y3ZmM4ZmZkMjA5MzA5ZGYwMWUzYzI5
OWExNS4uMTRjMWMyZWJiNDFkNjk5Yjk4YTY1OTRiZGUwZDkwYjY3MjRmMDBlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaApAQCAtMjgs
MTkgKzI4LDE5IEBAIGNsYXNzIFNWR01hdHJpeFRlYXJPZmYgZmluYWwgOiBwdWJsaWMgU1ZHTWF0
cml4IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0ZShT
VkdUcmFuc2Zvcm0mIHBhcmVudCwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQogICAgIHsKLSAgICAg
ICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgJnBhcmVudC5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01h
dHJpeCgpID09ICZ2YWx1ZSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQu
dmFsdWVQcm9wZXJ0eSgpLnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CiAgICAgICAgIFJlZjxTVkdN
YXRyaXhUZWFyT2ZmPiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFNWR01hdHJpeFRlYXJPZmYocGFy
ZW50KSk7CiAgICAgICAgIHBhcmVudC5hZGRDaGlsZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAg
ICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3Bh
cmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQorICAgIFNWR01hdHJpeFZh
bHVlJiB2YWx1ZVByb3BlcnR5KCkgZmluYWwgeyByZXR1cm4gbV9wYXJlbnQtPnZhbHVlUHJvcGVy
dHkoKS5zdmdNYXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShTVkdNYXRyaXhWYWx1ZSYg
dmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZh
bHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
IGZpbmFsIHsgbV9wYXJlbnQtPnZhbHVlUHJvcGVydHkoKS5zZXRNYXRyaXgoc3RhdGljX2Nhc3Q8
U1ZHTWF0cml4VmFsdWUmPigqdmFsdWUpKTsgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBm
aW5hbAogICAgIHsKLSAgICAgICAgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkudXBkYXRl
U1ZHTWF0cml4KCk7CisgICAgICAgIG1fcGFyZW50LT52YWx1ZVByb3BlcnR5KCkudXBkYXRlU1ZH
TWF0cml4KCk7CiAgICAgICAgIG1fcGFyZW50LT5jb21taXRDaGFuZ2UoKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9m
Zi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgK
aW5kZXggNmY2M2IxNjRhYjM1YTk4MGQwNmY3NThiMGZmZDcxMTYxMzY5ZDM3OC4uNTc1YTQxMzI4
MDk2ZGQ1NDRiODAxMmMzYmEyMWI3NGYzYzc3MmRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHku
aCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcgKzY2
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5
VHlwZSYgdmFsdWVQcm9wZXJ0eSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCptX3ZhbHVlKTsgfQogICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHko
KSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlm
IChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAg
ICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAg
ICB9CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSBmYWxzZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2
YWx1ZTsKKyAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIHZvaWQgc2V0QW5p
bWF0ZWRQcm9wZXJ0eShTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KQpAQCAt
MTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gaXRlbS52YWx1ZSBzdGlsbCBoYXMg
dG8gcmVwb3J0ICc1MCcgYW5kIGl0IGhhcyB0byBiZSBwb3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0n
CiAgICAgICAgIC8vIHcvbyBjaGFuZ2luZyB0aGUgIm5ldyBpdGVtIiAod2l0aCB4PTEwMCkgaW4g
dGhlIHRleHQgZWxlbWVudC4KICAgICAgICAgLy8gV2hlbmV2ZXIgdGhlIFhNTCBET00gbW9kaWZp
ZXMgdGhlICJ4IiBhdHRyaWJ1dGUsIGFsbCBleGlzdGluZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQs
IHVzaW5nIHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIG1fdmFsdWUgPSBuZXcgUHJvcGVydHlUeXBl
KCptX3ZhbHVlKTsKKyAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKm1fdmFsdWUpKTsKICAgICAgICAgbV92YWx1ZUlzQ29weSA9IHRy
dWU7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTM2
LDEwICsxMzYsMTAgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1Byb3Bl
cnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJP
ZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0
ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAg
ICAgICAsIG1fdmFsdWUoJnZhbHVlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAg
ICwgbV92YWx1ZUlzQ29weShmYWxzZSkKICAgICB7CiAgICAgfQpAQCAtMTUyLDE3ICsxNTIsMTYg
QEAgcHJvdGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUq
IGluaXRpYWxWYWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAg
ICAgICAgLCBtX3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxW
YWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAg
ICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUp
CisgICAgICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAg
ICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAg
ICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0g
ICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3NiwxMCAr
MTc1LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBt
X2FuaW1hdGVkUHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9w
ZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZl
Y3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAg
ICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5Owot
ICAgIGJvb2wgbV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmgKaW5kZXggYWZkYWQ5NThhOWFjYTc2Y2Q2M2Y5OGRiMDFmZGU2ODU3ODgzYzYw
Ny4uMTJiNTIyODliZTk5MzA3MDdhZDBjMGE2MWE4NDUxMTQ4Zjk5MzIxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCkBAIC0yMCwx
OSArMjAsNDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0g
TGlzdE1vZGlmaWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAg
IExpc3RNb2RpZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNl
ID0gMiwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0
aW9uQXBwZW5kID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKSB7IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9
OwogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+IHsKKyAgICBz
dGF0aWMgQ29sb3IgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gQ29sb3IoKTsgfQorICAgIHN0YXRp
YyBDb2xvciBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBDU1NQYXJz
ZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsgfQorICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENvbG9yPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFy
c2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICByZXR1cm4gY29sb3Iu
aXNWYWxpZCgpID8gY29sb3IgOiBzdGQ6Om9wdGlvbmFsPENvbG9yPigpOworICAgIH0KKyAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IENvbG9yJiB0eXBlKSB7IHJldHVybiB0eXBlLnNl
cmlhbGl6ZWQoKTsgfQorfTsKKwogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PHVuc2lnbmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IDA7IH0KQEAgLTQyLDE5ICs3MCwxMDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2ln
bmVkPiB7CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8aW50PiB7CiAgICAg
c3RhdGljIGludCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGludCBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyZzdHJpbmcpIHsgcmV0dXJuIHN0cmluZy50b0ludFN0cmlj
dCgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgdHlwZSkgeyByZXR1cm4gU3Ry
aW5nOjpudW1iZXIodHlwZSk7IH0KIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8c3RkOjpwYWlyPGludCwgaW50Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8
aW50LCBpbnQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBzdGQ6
OnBhaXI8aW50LCBpbnQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICBmbG9hdCBmaXJzdE51bWJlciA9IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAgICAg
IGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNv
bmROdW1iZXIpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikp
LCBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNvbmROdW1iZXIpKSk7CisgICAgfQorfTsKIAog
dGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0PiB7CiAgICAgc3RhdGlj
IGZsb2F0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgZmxvYXQgZnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IHR5cGUg
PSAwOworICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgdHlwZSkg
PyB0eXBlIDogMDsKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHBhcnNl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAg
ICAgIGZsb2F0IG51bWJlcjsKKyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhz
dHJpbmcsIG51bWJlcikgPyBudW1iZXIgOiBzdGQ6Om9wdGlvbmFsPGZsb2F0PigpOworICAgIH0K
ICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGZsb2F0IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6
bnVtYmVyKHR5cGUpOyB9CiB9OwogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+IHsKKyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0
LCBmbG9hdD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAg
eworICAgICAgICBmbG9hdCBmaXJzdE51bWJlciA9IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAg
ICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBz
ZWNvbmROdW1iZXIpKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3BhaXIoZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcik7CisgICAgfQorfTsKKwor
dGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+IHsKKyAgICBz
dGF0aWMgRmxvYXRQb2ludCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBGbG9hdFBvaW50KCk7IH0K
KyAgICBzdGF0aWMgRmxvYXRQb2ludCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUG9p
bnQoc3RyaW5nLCBwb2ludCkgPyBwb2ludCA6IEZsb2F0UG9pbnQoKTsKKyAgICB9CisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRQb2ludCBwb2ludDsK
KyAgICAgICAgcmV0dXJuIHBhcnNlUG9pbnQoc3RyaW5nLCBwb2ludCkgPyBwb2ludCA6IHN0ZDo6
b3B0aW9uYWw8RmxvYXRQb2ludD4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBGbG9hdFBvaW50JiB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUu
eSgpKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9OworCit0
ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CisgICAgc3Rh
dGljIEZsb2F0UmVjdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAg
IHN0YXRpYyBGbG9hdFJlY3QgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7
CisgICAgICAgIEZsb2F0UmVjdCByZWN0OworICAgICAgICByZXR1cm4gcGFyc2VSZWN0KHN0cmlu
ZywgcmVjdCkgPyByZWN0IDogRmxvYXRSZWN0KCk7CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0OworICAg
ICAgICByZXR1cm4gcGFyc2VSZWN0KHN0cmluZywgcmVjdCkgPyByZWN0IDogc3RkOjpvcHRpb25h
bDxGbG9hdFJlY3Q+KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3Qg
RmxvYXRSZWN0JiB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
dHlwZS53aWR0aCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgfQorfTsKKwogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFN0cmluZz4gewogICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4gU3RyaW5nKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFN0cmluZyYg
dHlwZSkgeyByZXR1cm4gdHlwZTsgfQorICAgIHN0YXRpYyBTdHJpbmcgZnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgRW51bVR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggNzg2ODc0ZGNhMDEx
NjhjMmVjNGM0NzBhMmQ3MzcwYTI2ZmIyMmNjNS4uODlmZGE0NDdhYTEwMTQyZTU3N2ZjYjgwZTc2
ZTdjNDExNDZkYjI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtMzMsNyArMzMsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFz
ZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZh
bHVlc1Byb3BlcnR5OwogCiAgICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxlbWVudCYg
Y29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQogICAgIHsKQEAgLTc2LDcgKzc2
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFs
dWVzKQorICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNl
KFVuZGVmaW5lZFJvbGUsIHZhbHVlcywgbnVsbHB0cikKICAgICAgICAgLCBtX2NvbnRleHRFbGVt
ZW50KCpjb250ZXh0RWxlbWVudCkKICAgICB7CkBAIC04OSw4ICs4OSw3IEBAIHByb3RlY3RlZDoK
IAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxl
bWVudCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVs
ZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShj
b25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCmlu
ZGV4IDVlMmNhMDlhMGRkOWZhZjQ2ODUzZWJkYTk3YzlmODBmMzA1NjUxZTcuLjVkNTNlOTk0Yjc1
MjRhOGIxNDc0NmY4NzEyNTc1YmJhNTVhYTFhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCkBAIC0zNiw3
ICszNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFVzZWQgZm9yIG5vbi1hbmltYXRlZCBQT0QgdHlw
ZXMgdGhhdCBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBhIFNWR0FuaW1hdGVkUHJvcGVydHkgb2Jq
ZWN0LCBub3Igd2l0aCBhIFhNTCBET00gYXR0cmlidXRlCiAgICAgLy8gKGZvciBleGFtcGxlOiBT
VkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlKS4KLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNy
ZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWUs
IFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQ29udGV4
dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwg
VXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNlbGYoY29udGV4dEVsZW1lbnQsIHZhbHVlLCB1cGRhdGUpKTsKICAgICB9CkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsIHsgKG1fY29udGV4
dEVsZW1lbnQuZ2V0KCktPiptX3VwZGF0ZSkoKTsgfQogCiBwcml2YXRlOgotICAgIFNWR1N0YXRp
Y1Byb3BlcnR5VGVhck9mZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5
VHlwZSYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgU1ZHU3RhdGljUHJvcGVydHlU
ZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAgICAgICAgIDogUHJvcGVydHlUZWFy
T2ZmKFVuZGVmaW5lZFJvbGUsIHZhbHVlKQogICAgICAgICAsIG1fdXBkYXRlKHVwZGF0ZSkKICAg
ICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCZjb250ZXh0RWxlbWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333621</attachid>
            <date>2018-02-12 12:58:18 -0800</date>
            <delta_ts>2018-02-12 13:48:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180212125817.patch</filename>
            <type>text/plain</type>
            <size>372440</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwODBjMmI0MzBiMGMz
NmQwMTQ5MzJkYjkyMjMwMjUzZGY5NGM0Ni4uZjZhODc2NTcyNDI4MjA1YzI5NTU3ZjI5MjZmZTk0
ZjdjMDc1MWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5NyBAQAorMjAxOC0wMi0xMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
YWxsIHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVh
ci1vZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2Ut
YWZ0ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBv
biBkZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdo
ZW4gYW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcg
YQorICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMg
dGhlc2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0
aGUgU1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwK
KyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2Vk
IHRvIGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2lu
ZyBhIG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAg
ICAgICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25l
IHNpZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBo
YXBwZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAg
dGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBh
dHRyaWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRl
YXItb2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFw
cGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhl
IGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5
IG9mIHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYg
b2JqZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhp
cyBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNv
dW50ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3Ig
ZXZlcnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBu
b3QgbG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3
aGVyZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVz
ZW50IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0
aGlzIHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2gg
aXMgYSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRh
IHR5cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRy
aWJ1dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlw
ZSB0byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAg
ICAgIGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBk
YXRhIHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRv
IGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRo
ZSBTVkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1
ZT4+LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9s
ZCBSZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZl
cmVuY2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5nbGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZv
ckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6
OlNWR0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNU
b1RhcmdldCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmlt
YXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0
cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVu
dW1lcmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0
QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJP
cHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3Ro
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RB
bmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VO
dW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZE51bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Ry
aW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1h
dGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50
ZWdlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3Bl
Y3RSYXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24p
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1l
bnQ6OlNWR0VsbGlwc2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpz
ZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVT
cGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1
ZXM+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5n
dGhMaXN0VmFsdWVzPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhWYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+Ojpw
YXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1
ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTGlzdFZhbHVlcy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29w
eSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzOjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1
ZXM6OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFz
dFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01h
cmtlclVuaXRzVHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVt
VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46Omhp
Z2hlc3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1W
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmll
bnRUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRz
PFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVt
ZW50OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRC
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0
ZUZyb21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051
bWJlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRz
TGlzdEZyb21TVkdEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVh
bTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjppc0VtcHR5
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRl
U3RyZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRo
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVh
dGVEV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25p
emVEKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdM
aXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICAqIHN2Zy9T
VkdQYXRoU2VnTGlzdFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dFNvdXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlz
dFZhbHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAg
ICAoV2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1Bv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
aW50OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcv
U1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAg
ICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2lu
dExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1Bv
aW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToK
KyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
bHlFbGVtZW50Ojpwb2ludExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NW
R1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0
OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6Omhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoK
KyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJp
bmdMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9y
bTo6bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm06OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFu
c2Zvcm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21T
dHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+
Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6OnBhcnNlVmlzaXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFs
dWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6aXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
U1ZHVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmll
d0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmll
d1NwZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJz
ZVZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJl
bnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5p
bWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5
bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6
Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZh
bHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xp
c3RQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpzZXRWYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFy
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXNB
bmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Om51bWJlck9m
SXRlbXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFs
aXplVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6
ZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6
Y2FuR2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1W
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVz
QW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJ
dGVtQmVmb3JlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5z
ZXJ0SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6Y2FuUmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5OjpyZXBsYWNlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjpjYW5SZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXNQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQcm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2Zm
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZy
b21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRl
YXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZVByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOiBEZWxl
dGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRv
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQ
cm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTEy
ICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIyODM3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMmU1M2YwYTlhOGNhOWZkOTBk
Zjk0YTI2ZWFiYTMwMDIxNDQ4YjU1OS4uNDUzMjdhZmZiZjg2YjVhMzEwODc5MDUwYWZkZWQxYmYw
Mjc0ODY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwNzEsNyArMjA3MSw2IEBAIHN2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCiBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAogc3Zn
L1NWR0FuaW1hdGVkU3RyaW5nLmNwcAogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAK
LXN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3Bw
CiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApA
QCAtMjEzNSw2ICsyMTM0LDcgQEAgc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCiBzdmcvU1ZH
TGVuZ3RoVmFsdWUuY3BwCiBzdmcvU1ZHTGluZUVsZW1lbnQuY3BwCiBzdmcvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmNwcAorc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCiBzdmcvU1ZHTG9jYXRhYmxl
LmNwcAogc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKIHN2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDAyNDM4NTM2YzlhMmM4MGFjNDY4NmJlMTk3NDY5YzQzY2E0ZmY2YWYuLjFlNWVhOTE1YTYz
NTJhODYwOTYyN2JmNWEwNmIzZTkwMTUxMTU4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2MzIsNyArMTYzMiwxNSBAQAog
CQk1NTUwQ0I0MjFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MENCNDExRTk1NUUzQzAwMTExQUEw
IC8qIEltYWdlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1NTUxMzAwMTFFN0NDQ0NCMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTUxMzAwMDFF
N0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8q
IEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLzsg
fTsKKwkJNTU2MjdCNzgyMDI5MkJGNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NjI3Qjc2MjAyOEVEQzQw
MDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU3NkE1NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJh
bWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NzZB
NTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OTgyMDI1NDU2RDAwNEQ3NUY0IC8q
IFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5OTIwMjU0NUFDMDA0RDc1
RjQgLyogU1ZHQW5nbGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M4RjIyNDMxREQzQjNCOTAwRTkyREEzIC8qIFNWR0FuZ2xlVmFsdWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5
QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjkxRERCODZEMzAwRkVGQjI5
IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5QzIwMjU0NjA1MDA0RDc1RjQgLyogU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlE
MjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzZCMUREQjg3MUMwMEZFRkIyOSAv
KiBTVkdQb2ludExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk1NThCNjk5RTIwMjU0NjJCMDA0RDc1RjQgLyogU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTU4QjY5OUYyMDI1NDY3NTAwNEQ3NUY0IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzZEMURE
QjhCQjAwMEZFRkIyOSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTVBMzM2RjcxRDgyMDlGNDAwMjJD
NEM3IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLzsg
fTsKIAkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGODFEODIx
RTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUFGMTRFNjFFQUFDNTlCMDAyNkVFQUEgLyog
VVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xOTMwLDcgKzE5MzgsNyBA
QAogCQk3MTU1NkNCRDFGOUYwQTQ5MDBFNzhEMDggLyogSlNBbmltYXRpb25FZmZlY3RUaW1pbmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxNTU2Q0I5
MUY5RjA5RkQwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVjdFRpbWluZy5oICovOyB9OwogCQk3
MTU1NkNCRTFGOUYwQTQ5MDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1NTZDQjcxRjlGMDlGQzAwRTc4
RDA4IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCAqLzsgfTsKIAkJNzFBMUI2MDgxREVFNUFENzAwNzNC
Q0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncy5qcyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBMUI2MDYxREVFNUE4
MjAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncy5qcyAq
LzsgfTsKLQkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTU3REYwMTU0
QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IH07CisJCTcxQTU3REYyMTU0
QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE1N0RGMDE1NEJFMjVDMDAwOUQxMjAgLyogU1ZH
UGF0aFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTcxQzkxNjA4MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcx
RENCNzAyMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21BbmRQYW4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRENCNzAwMTU2ODE5NzYwMDg2MjI3
MSAvKiBKU1NWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJNzFFMjE4M0ExNzM1OUZCODAwNkU2RTRE
IC8qIFBsdWdJbnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxRTIxODM4MTczNTlGQjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVzb3VyY2Vz
LmggKi87IH07CkBAIC0yMDMyLDcgKzIwNDAsNyBAQAogCQk3QzMwRDk4NjFGODE1QUVDMDAyNjgz
NTYgLyogSlNBYm9ydFNpZ25hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0MzMEQ5ODExRjgxNUFDMTAwMjY4MzU2IC8qIEpTQWJvcnRTaWduYWwuaCAq
LzsgfTsKIAkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzMw
QTA4MURGOUY5NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMzBBMDYxREY5Rjk1MTAwRDMzOTVD
IC8qIEpTUG9zaXRpb25PcHRpb25zLmggKi87IH07Ci0JCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIy
OSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5oICovOyB9OworCQk3QzM5QzM2NTFEREE4NjUyMDBGRUZCMjkgLyogU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzM5QzM3NzFE
REJFMTcwMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjcxRERCODJDRjAwRkVGQjI5IC8q
IFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QzNBOTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNj
ZXNzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzNBOTFFNTFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzQjc5NzEx
OTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNCNzk2RjE5MDg3NTdCMDBCNDdBMkQg
LyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLzsgfTsKQEAgLTIxNjQsMTAgKzIxNzIsOSBAQAog
CQk3Q0UxOTE3OTFGMkFCRTcxMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UxOTE2QzFGMkFCNzBB
MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RNb2RlLmggKi87IH07CiAJCTdDRTE5MTdCMUYyQUJF
NzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UxOTE2QTFGMkFCNzA2MDAyNzJGNzggLyog
SlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oICovOyB9OwogCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1
NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oICovOyB9OwotCQk3
Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENEQxREQ2OTRGRTAwMTI4NTUy
IC8qIFNWR1JlY3RUcmFpdHMuaCAqLzsgfTsKIAkJN0NFNThENTAxREQ2OUExRTAwMTI4NTUyIC8q
IFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICovOyB9OwotCQk3Q0U1
OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1
MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1
NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5o
ICovOyB9OworCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDU2
MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1
MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNjgz
NDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNjgzNDIxOTIx
NDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwICovOyB9Owog
CQk3Q0U2ODM0NTE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNjgz
NDMxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0U2ODM0NzE5
MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0NjE5MjE4
MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIzMDksNyArMjMx
Niw3IEBACiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTQxREE5RjE2
NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFCNjAwMzcyMzdDIC8qIEV2ZW50TW9k
aWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZFOTAyNzFFMzA3
QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFFMzA3QzFDMDAzRTkxOTkgLyogUGVy
Zm9ybWFuY2VNb25pdG9yLmggKi87IH07Ci0JCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmgg
Ki87IH07CisJCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQxOUQyQTkxMjBEOTJEMDAwMTQxRjhG
IC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhC
eXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwogCQk4NDE5RDJBRDEyMEQ5MkZDMDAxNDFGOEYgLyog
U1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0MTlEMkFCMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbVNvdXJjZS5oICovOyB9OwogCQk4NDE5RDJCQTEyMEUwQzc2MDAxNDFGOEYgLyogU1ZHUGF0
aFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0MTlEMkI4MTIwRTBDNzYwMDE0MUY4RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5o
ICovOyB9OwpAQCAtMjMzNiw3ICsyMzQzLDcgQEAKIAkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5
IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5o
ICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2
QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggKi87IH07CiAJ
CTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTgxMURGNkEyOTAwNTU1
QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07Ci0JCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIw
MiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIu
aCAqLzsgfTsKKwkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkx
MURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0NzZDOUYwMTFERjZBNTgwMDU1NUIwMiAv
KiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oICovOyB9
OwogCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODAxOTUzMTA4QkFGQjMw
MENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9OwogCQk4NDgyQjc0NjExOThDMzU0MDBC
RkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBENDk0NjkgLyogSGFzaENoYW5nZUV2
ZW50LmggKi87IH07CkBAIC0zMjgxLDkgKzMyODgsOSBAQAogCQlCMjIyN0E0QjBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhCNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0YWRh
dGFFbGVtZW50LmggKi87IH07CiAJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCAqLzsgfTsKIAkJ
QjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEJCMEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIy
Mjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oICovOyB9OworCQlC
MjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bh
dGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCAqLzsgfTsKLQkJ
QjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAv
KiBTVkdQYXRoU2VnLmggKi87IH07CisJCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
YXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyMjI3QTVFMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMjIyNzhDODBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0FyYy5oICov
OyB9OwogCQlCMjIyN0E2MjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4Q0Mw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaCAqLzsgfTsKIAkJQjIyMjdB
NjUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OENGMEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmggKi87IH07CkBAIC03MjgzLDcgKzcyOTAs
NiBAQAogCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5RDMzNDIxM0E2OTExQzAw
QzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDNBMEYwQjAxM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkTnVtYmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNBMEYwQjUxM0FDQ0NGRjAwQTVGMEE3IC8q
IFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBbmltYXRlZFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0E2
MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29s
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0E2MjY2NjEzQjNEMTEwMDBB
Qzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODE3NCwxMCArODE4MCwxMyBAQAogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYg
LyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTQ2NzU3NzFGRDFGQzFBMDAzQjEwQjAg
LyogSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTQ2NzU3ODFGRDFGQzFBMDAzQjEwQjAgLyog
SW1hZ2VTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VTb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8qIFNWR0xpc3RWYWx1
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlVHlwZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4IC8qIERlY29k
aW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWNvZGluZ09w
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUExQ0FBRjBBQjAw
MzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xpc3RWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYyMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZy
YW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRnJhbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2MzFEODhBNzA4MDBDQ0Mw
NEMgLyogSW1hZ2VGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QTMzNkY2MUQ4MjA5RjQw
MDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE4NSw2ICs4
MTk0LDcgQEAKIAkJNTVBRjE0RTMxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFVUSVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVUSVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1
RDQwOEY3MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNsaWVudHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyogQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlw
dG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcwNDQwNTkxRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDVCMUU1MzkzNzkwMDM1NjYwMSAvKiBKU0Flc0NiY0Nm
YlBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Flc0Ni
Y0NmYlBhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDY2LDcgKzk0
NzYsNiBAQAogCQk3Q0UxOTE2RTFGMkFCNzBEMDAyNzJGN0IgLyogSlNDYWNoZVF1ZXJ5T3B0aW9u
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhY2hlUXVlcnlPcHRpb25zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFMTkxNkYxRjJBQjcwRjAwMjcyRjc4IC8qIEpTRmV0
Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlcXVlc3RS
ZWRpcmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDQ5MURENjRB
NUIwMDEyODU1MiAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3Q0U1OEQ0RDFERDY5
NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdSZWN0VHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDRTU4RDUxMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5ndGguaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdDRTU4RDUyMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5ndGhWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMZW5ndGhWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQzMSw3ICsyMjQ0MCw2IEBACiAJCQkJNzE1N0Yw
NjExNTBCNjU2NDAwNkVBQUJEIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAgKi8sCiAJ
CQkJMDgyNTA5MzgxMjhCRDREODAwRTJFRDhFIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5o
ICovLAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaWRsICovLAotCQkJCTQzQTBGMEI1MTNBQ0NDRkYwMEE1RjBBNyAvKiBTVkdBbmltYXRl
ZFR5cGUuY3BwICovLAogCQkJCTQzOUQzMzQwMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRl
ZFR5cGUuaCAqLywKIAkJCQk4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuY3BwICovLAogCQkJCTQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdB
bmltYXRlZFR5cGVBbmltYXRvci5oICovLApAQCAtMjI2MzIsMTEgKzIyNjQwLDE0IEBACiAJCQkJ
QjIyMjc4QTUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzhBNjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIy
NzhBNzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1lbnQuaWRsICovLAorCQkJCTU1NTA0
RTk0MjAyQ0RGRDIwMDUwN0M3MyAvKiBTVkdMaXN0VmFsdWVzLmNwcCAqLywKKwkJCQk1NTYyN0I3
NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oICovLAogCQkJCUIyMjI3OEFBMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuY3BwICovLAogCQkJCUIyMjI3OEFCMEQwMEJG
MjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCAqLywKIAkJCQlCMjIyNzhBRDBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QUUwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzhBRjBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5pZGwgKi8sCisJCQkJNTU3NTA1NkMxRTUzQjMwQzAw
OERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggKi8sCiAJCQkJQjIyMjc4QjAwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR01hc2tFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhCMTBEMDBCRjIwMDA3MUI3
ODIgLyogU1ZHTWFza0VsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzhCMjBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHTWFza0VsZW1lbnQuaWRsICovLApAQCAtMjI3NzAsNyArMjI3ODEsNiBAQAogCQkJCUIy
MjI3OTA3MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIy
Mjc5MDgwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5
MDkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmlkbCAqLywKLQkJCQk3Q0U1OEQ0
RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovLAogCQkJCUIyMjI3OTBBMEQw
MEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaCAqLywKIAkJCQlCMjIyNzkwQjBE
MDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmlkbCAqLywKIAkJCQlCMjIyNzkw
QzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHU2NyaXB0RWxlbWVudC5jcHAgKi8sCkBAIC0yMjg0Nyw2
ICsyMjg1Nyw3IEBACiAJCQkJQjIyMjc5NTYwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVsZW1l
bnQuY3BwICovLAogCQkJCUIyMjI3OTU3MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50
LmggKi8sCiAJCQkJQjIyMjc5NTgwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaWRs
ICovLAorCQkJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdWYWx1ZS5oICovLAogCQkJ
CUIyMjI3OTU5MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5jcHAgKi8sCiAJCQkJ
QjIyMjc5NUEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmggKi8sCiAJCQkJQjIy
Mjc5NUIwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmlkbCAqLywKQEAgLTI5Njkz
LDYgKzI5NzA0LDcgQEAKIAkJCQk2NTY1M0YyRTBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5MTJCODEzQ0E5QTY5MDBEMjE5MTUg
LyogU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5Nzcw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5
OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjc5N0EwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFu
Z2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU3OTcwOTEyNzgzOTRDMDBBOEVDNUYgLyogU1ZH
QW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODA0LDYgKzI5ODE2LDcgQEAK
IAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNCQSAvKiBTVkdMaXN0UHJvcGVydHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA5MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NTYyN0I3ODIwMjkyQkY0MDAy
RDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDEwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4
RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5ODE2LDYgKzI5ODI5LDcgQEAKIAkJCQlCMjIyN0E0RTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1MDFERDY5
QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1MTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4
QjY5OUIyMDI1NDVFQTAwNEQ3NUY0IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0EwRTM2MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJz
aW5nRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QzY3ODREMTIxNDgxNDcwMEE5MjkwMiAv
KiBTVkdQYXRoQmxlbmRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg1NCw2ICsyOTg2OCw3IEBA
CiAJCQkJQjIyMjdBODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEI2Qjk3ODEyMEYxM0U1MDBCOEVGQUYgLyog
U1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlDMjAyNTQ2
MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRv
UmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODJERTQyRDEyOTI2MjE2MDBEOTIzREYgLyogU1ZH
UGF0aFNlZ1dpdGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODY1LDEwICsyOTg4MCwx
MiBAQAogCQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXR0ZXJuRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENEExREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4QzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9p
bnRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5RDIwMjU0NjEyMDA0RDc1RjQgLyog
U1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4RjBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHUG9seUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTkx
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlsaW5lRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlFMjAyNTQ2MkIwMDRENzVGNCAv
KiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEw
RTBBMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgxREQ0OUMxM0JBMUE2MDAwREM3NjI3IC8qIFNWR1Byb3BlcnR5SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMEIxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VGVhck9mZi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTg3Niw3ICsyOTg5Myw2IEBACiAJCQkJQjIyMjdBOUEwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNWR1JlY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJN0NFNThENEUxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdSZW5k
ZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBMDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzQ3OTBF
ODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjk5
MjEsNiArMjk5MzcsNyBAQAogCQkJCUIyMjI3QURBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFu
c2Zvcm1hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FERDBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QURGMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUU1MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdUU3BhbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk5MjgsNiArMjk5NDUs
NyBAQAogCQkJCTM3QzczOEVEMUVEQkQ1QkMwMDNGMkIwQiAvKiBTVkdVbmtub3duRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1VSSVJl
ZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRUQwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR1VzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTk4MjAyNTQ1NkQwMDRE
NzVGNCAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRjAwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FGMzBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld1NwZWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0ODUy
MjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAppbmRleCA1YmE5
MjgxZTJlMGM3ZTcyYWIxOWI2NTA4MzAxYjMwNmNkMDc1YmIyLi5jOTVlMWI1YWZhYzdhYzMxMmM5
MjljYTZlYThjYjY3ZWQxYzk5MDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1BhdGhEYXRhLmNwcApAQCAtMTAwLDE2ICsxMDAsMTYgQEAgc3RhdGljIFBhdGggcGF0aEZy
b21QYXRoRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogCiBzdGF0aWMgUGF0aCBwYXRoRnJv
bVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRz
ID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCkt
PnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50
PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlmIChw
b2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwot
ICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMu
Zmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGguYWRk
TGluZVRvKHBvaW50cy5hdChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5wcm9w
ZXJ0eUF0KGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CiAgICAgcmV0dXJuIHBhdGg7
CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25FbGVtZW50
KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9seWxpbmVFbGVt
ZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8
U1ZHUG9seWxpbmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsK
KyAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQp
LmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlc1Byb3BlcnR5KCk7CiAgICAgaWYgKHBvaW50cy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBQYXRoIHBhdGg7Ci0gICAgcGF0aC5t
b3ZlVG8ocG9pbnRzLmZpcnN0KCkpOworICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdFByb3Bl
cnR5KCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5zaXplKCk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9p
bnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLnByb3BlcnR5QXQoaSkp
OwogICAgIHJldHVybiBwYXRoOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKaW5k
ZXggNWU5OTkzODYyOWRiMzljMzBmNjYxNTIzMmJlODI3NGY0Mjc1ODdjNS4uZWFiZDg0ZGE0NWU3
MzA0YjcyZGU3MGRlMmNjYjQ0ZDQ3MDFkN2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVy
LmNwcApAQCAtMTYzLDE1ICsxNjMsMTUgQEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXI6OmJ1aWxkQ2hhcmFjdGVyRGF0YU1hcChSZW5kZXJTVkdUZXh0JiB0ZXh0Um8KIHN0YXRp
YyBpbmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0
Um90YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQm
IGxlbmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHhMaXN0LCBjb25zdCBT
VkdMZW5ndGhMaXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHhM
aXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxp
c3RWYWx1ZXMqIHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQotICAgICAgICBkYXRhLngg
PSB4TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEueCA9IHhM
aXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmICh5TGlzdCkK
LSAgICAgICAgZGF0YS55ID0geUxpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAg
ICAgICBkYXRhLnkgPSB5TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsK
ICAgICBpZiAoZHhMaXN0KQotICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5hdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+cHJvcGVydHlBdChpKS52
YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQotICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keSA9IGR5
TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAocm90YXRl
TGlzdCkgewotICAgICAgICBkYXRhLnJvdGF0ZSA9IHJvdGF0ZUxpc3QtPmF0KGkpOworICAgICAg
ICBkYXRhLnJvdGF0ZSA9IHJvdGF0ZUxpc3QtPnByb3BlcnR5QXQoaSk7CiAgICAgICAgIGxhc3RS
b3RhdGlvbiA9IGRhdGEucm90YXRlOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmdsZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKaW5kZXgg
MDQzMjk0M2FlYmI0NGZhMGFjM2NmYmQyNGZiNWE5YTU4NDMzZWUxZi4uNDg1NjA2MmYxOTllMzE5
ZmQ4NGNlMjViMWY3NzYyODIzMjBmM2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKQEAgLTMyLDcg
KzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbmdsZSA6IHB1YmxpYyBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGlj
IFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShpbml0aWFsVmFsdWUpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoY29uc3QgU1ZHQW5nbGVWYWx1
ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5nbGUoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdBbmdsZT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYm
IGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0
aW9uKCkpCkBAIC01Niw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIFNWR0FuZ2xlVmFsdWU6OlR5
cGUgdW5pdFR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
dW5pdFR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS51bml0VHlwZSgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQg
dmFsdWUpCkBAIC02NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFsdWUpOwor
ICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWUodmFsdWUpOwogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzIsNyArNjcsNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLnZhbHVlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVJ
blNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKQEAgLTgwLDcgKzc1
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNp
ZmllZFVuaXRzKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlSW5TcGVjaWZpZWRV
bml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAg
ICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OCw3ICs4Myw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAg
IHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZh
bHVlKQpAQCAtOTYsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgp
LnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMDYsNyArMTAx
LDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVBc1N0cmluZygpOworICAgICAgICBy
ZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRU
eXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMTQsNyArMTA5LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUs
IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9w
ZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRV
bml0cyk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEyNyw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3Bl
cnR5UmVmZXJlbmNlKCkuY29udmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUpOworICAgICAg
ICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1
bml0VHlwZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEzNiw3ICsxMzEsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdBbmdsZVZhbHVlJiB2YWx1ZSkK
KyAgICBTVkdBbmdsZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTQ1LDExICsxNDAsNiBAQCBwcml2YXRlOgog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVlPihpbml0aWFsVmFsdWUp
CiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR0FuZ2xlKGNvbnN0IFNWR0FuZ2xlVmFs
dWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVW
YWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCmlu
ZGV4IGNiMzM2MmZkOTlkMTA3Yzc1Mjg4Y2FlY2UzMjFjZjUyZjY1MTY5MTguLjYyM2JjNGI5ZTFm
MjA5MGQ4ZDhkZjIzNzI3NThmNjFhYjczNjMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgdm9pZCBTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKICAgICBpZiAoIW1fYW5pbWF0ZWRU
eXBlKQogICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IGFuaW1hdG9yLT5jb25zdHJ1Y3RGcm9tU3Ry
aW5nKGJhc2VWYWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBtX2FuaW1hdGVkVHlwZS0+c2V0VmFs
dWVBc1N0cmluZyhhdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUpOworICAgICAgICBtX2FuaW1hdGVk
VHlwZS0+cGFyc2UoYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKTsKIH0KIAogc3RhdGljIGlubGlu
ZSB2b2lkIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldChTVkdFbGVtZW50JiB0YXJnZXRFbGVtZW50
LCBDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMzQ0LDE0ICszNDQs
MTQgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkK
ICAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIENT
UyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBhdGguCiAgICAgICAgIC8vIENvbnZlcnQgdGhl
IHJlc3VsdCBvZiB0aGUgYW5pbWF0aW9uIHRvIGEgU3RyaW5nIGFuZCBhcHBseSBpdCBhcyBDU1Mg
cHJvcGVydHkgb24gdGhlIHRhcmdldCAmIGFsbCBpbnN0YW5jZXMuCi0gICAgICAgIGFwcGx5Q1NT
UHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIGFwcGx5Q1NTUHJv
cGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
bV9hbmltYXRlZFR5cGUtPnRvU3RyaW5nKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgLy8gV2UgZG8gdXBkYXRlIHRoZSBzdHlsZSBhbmQgdGhlIGFuaW1hdGlvbiBwcm9wZXJ0eSBp
bmRlcGVuZGVudCBvZiBlYWNoIG90aGVyLgogICAgIFNob3VsZEFwcGx5QW5pbWF0aW9uIHNob3Vs
ZEFwcGx5ID0gc2hvdWxkQXBwbHlBbmltYXRpb24odGFyZ2V0RWxlbWVudC5nZXQoKSwgYXR0cmli
dXRlTmFtZSk7CiAgICAgaWYgKHNob3VsZEFwcGx5ID09IEFwcGx5WE1MYW5kQ1NTQW5pbWF0aW9u
KQotICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOwor
ICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKIAogICAgIC8v
IFNWRyBET00gYW5pbVZhbCBhbmltYXRpb24gY29kZS1wYXRoLgogICAgIC8vIEF0IHRoaXMgcG9p
bnQgdGhlIFNWRyBET00gdmFsdWVzIGFyZSBhbHJlYWR5IGNoYW5nZWQsIHVubGlrZSBmb3IgQ1NT
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5k
ZXggOTY2ZjQ2MzZhZGE1ZjYwZTgwZGE1MjNlOTY1MWY2YzdlZDBhMDc1MC4uYTliZTlmMTk0MDg5
NzRjMjJiNWNlOWIyMmU0NDI1YmZhNjkyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC0xMzYsMzEgKzEzNiw2IEBAIHZvaWQgU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvblBhdGgoKQogICAgIHVwZGF0ZUFu
aW1hdGlvbk1vZGUoKTsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2VQb2ludChjb25zdCBTdHJpbmcm
IHMsIEZsb2F0UG9pbnQmIHBvaW50KQotewotICAgIGlmIChzLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5nVmll
dyhzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKLSAgICBjb25zdCBVQ2hhciogY3VyID0gdXBj
b252ZXJ0ZWRDaGFyYWN0ZXJzOwotICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjdXIgKyBzLmxlbmd0
aCgpOwotICAgIAotICAgIGlmICghc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZsb2F0IHggPSAwOwotICAgIGlmICghcGFy
c2VOdW1iZXIoY3VyLCBlbmQsIHgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAg
ZmxvYXQgeSA9IDA7Ci0gICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBwb2ludCA9IEZsb2F0UG9pbnQoeCwgeSk7Ci0gICAg
Ci0gICAgLy8gZGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0IHNwYWNlcyBhdCB0aGUgZW5kCi0gICAg
cmV0dXJuICFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpOwotfQotICAgIAogdm9pZCBT
VkdBbmltYXRlTW90aW9uRWxlbWVudDo6cmVzZXRBbmltYXRlZFR5cGUoKQogewogICAgIGlmICgh
aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRBbmdsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAKaW5kZXggYzU3MzI1NWVjMDFkNDNlMzQyMGM0NjFjNjIxMzExMDZmM2Q1MjMwMS4uOWVl
YzgzOGZhM2MyMjc1ZmRjN2JmYmMxYzQxZWFiMTlkOTljN2NlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcApAQCAtMzIsMjIgKzMyLDEyIEBAIFNWR0FuaW1hdGVkQW5n
bGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQq
IGFuaW1hdGlvCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
QW5nbGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVB
bmRFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1
bnNpZ25lZD4+KCkpOwotICAgIGF1dG8mIGFuaW1hdGVkUGFpciA9IGFuaW1hdGVkVHlwZS0+YW5n
bGVBbmRFbnVtZXJhdGlvbigpOwotCi0gICAgU1ZHQW5nbGVWYWx1ZSBhbmdsZTsKLSAgICBTVkdN
YXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJP
cmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKLSAgICBpZiAob3JpZW50VHlw
ZSA+IDApCi0gICAgICAgIGFuaW1hdGVkUGFpci5zZWNvbmQgPSBvcmllbnRUeXBlOwotICAgIGlm
IChvcmllbnRUeXBlID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICBhbmltYXRlZFBh
aXIuZmlyc3QgPSBhbmdsZTsKLQotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVB
bmRFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBT
VkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNTcsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVB
bmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cAogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTc1LDEzICs2NSwxMyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6
YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdAogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5
cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uID0gZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVB
bmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29uc3QgYXV0
byYgZnJvbUFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52YWx1ZXNb
MF0pOworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRpY19jYXN0
PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlv
biA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOwogICAgIC8vIE9ubHkg
cmVzcGVjdCBieSBhbmltYXRpb25zLCBpZiBmcm9tIGFuZCBieSBhcmUgYm90aCBzcGVjaWZpZWQg
aW4gYW5nbGVzIChhbmQgbm90IGVnLiAnYXV0bycpLgotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVt
ZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCB8fCBmcm9tQW5n
bGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgaWYg
KGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uIHx8IGZyb21FbnVtZXJhdGlvbiAhPSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnN0IGF1dG8mIGZy
b21BbmdsZSA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgIGF1dG8mIHRvQW5n
bGUgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CiAgICAgdG9BbmdsZS5zZXRWYWx1ZSh0
b0FuZ2xlLnZhbHVlKCkgKyBmcm9tQW5nbGUudmFsdWUoKSk7CiB9CiAKQEAgLTkwLDQ4ICs4MCw0
OSBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZy
b21BbmdsZUFuZEVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+YW5nbGVBbmRFbnVtZXJhdGlvbigpIDogZnJv
bS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVBbmRFbnVtZXJhdGlv
biA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFuZ2xlQW5kRW51bWVy
YXRpb24oKTsKLSAgICBhdXRvJiBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24gPSBhbmltYXRl
ZC0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZSA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGlj
X2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0
PFNWR0FuZ2xlVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiBmcm9t
RW51bWVyYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0Fu
aW1hdGlvbiA/IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDog
c3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0Fu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBh
dXRvJiB0b0VudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1sx
XSk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0Fu
Z2xlVmFsdWUmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5p
bWF0ZWRBbmdsZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kKSB7CisgICAgaWYg
KGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uKSB7CiAgICAgICAgIC8vIERpc2NyZXRl
IGFuaW1hdGlvbiAtIG5vIGxpbmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFs
dWVzIChlLmcuIGF1dG8gdG8gYW5nbGUpLgogICAgICAgICBpZiAocGVyY2VudGFnZSA8IDAuNWYp
IHsKLSAgICAgICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBmcm9t
QW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgICAgICBpZiAoZnJvbUFuZ2xlQW5k
RW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICAgICAg
ICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uLmZpcnN0OworICAgICAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVt
ZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCisgICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZSA9IGZyb21BbmdsZTsKICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRW
YWx1ZSgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29u
ZDsKLSAgICAgICAgaWYgKHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2Vy
T3JpZW50QW5nbGUpCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmly
c3QgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgIGFuaW1hdGVkRW51bWVy
YXRpb24gPSB0b0VudW1lcmF0aW9uOworICAgICAgICBpZiAodG9FbnVtZXJhdGlvbiA9PSBTVkdN
YXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUgPSB0b0FuZ2xlOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmly
c3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9u
LnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgeworICAgIGlmIChmcm9tRW51bWVyYXRp
b24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpIHsKICAgICAgICAgLy8gUmVndWxhciBmcm9tIGFu
Z2xlIHRvIGFuZ2xlIGFuaW1hdGlvbiwgd2l0aCBzdXBwb3J0IGZvciBzbW9vdGggaW50ZXJwb2xh
dGlvbiwgYW5kIGFkZGl0aXZlIGFuZCBhY2N1bXVsYXRlZCBhbmltYXRpb24uCi0gICAgICAgIGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVudEFuZ2xlOwogCi0g
ICAgICAgIGF1dG8mIGFuaW1hdGVkU1ZHQW5nbGUgPSBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uZmlyc3Q7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUg
PSB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7Ci0gICAgICAgIGZs
b2F0IGFuaW1hdGVkQW5nbGUgPSBhbmltYXRlZFNWR0FuZ2xlLnZhbHVlKCk7Ci0gICAgICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgpLCB0b0FuZ2xlQW5k
RW51bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25TVkdBbmdsZS52YWx1
ZSgpLCBhbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgYW5pbWF0ZWRTVkdBbmdsZS5zZXRWYWx1ZShh
bmltYXRlZEFuZ2xlKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZVZhbHVlID0gYW5pbWF0
ZWRBbmdsZS52YWx1ZSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRp
dGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xlLnZhbHVlKCksIHRv
QW5nbGUudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25BbmdsZS52YWx1ZSgpLCBhbmltYXRlZEFu
Z2xlVmFsdWUpOworICAgICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKGFuaW1hdGVkQW5nbGVW
YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBhdXRvLCBhdXRvLXN0YXJ0
LXJldmVyc2UsIG9yIHVua25vd24uCi0gICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0LnNldFZhbHVlKDApOworICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAKLSAgICBp
ZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEF1dG8g
fHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEF1dG9T
dGFydFJldmVyc2UpCi0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7CisgICAgaWYgKGZyb21FbnVtZXJhdGlv
biA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJP
cmllbnRBdXRvU3RhcnRSZXZlcnNlKQorICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gZnJv
bUVudW1lcmF0aW9uOwogICAgIGVsc2UKLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9IFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIGFuaW1hdGVkRW51
bWVyYXRpb24gPSBTVkdNYXJrZXJPcmllbnRVbmtub3duOwogfQogCiBmbG9hdCBTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
Qm9vbGVhbi5jcHAKaW5kZXggZWMwODQyYTczY2UzNmI3YzE0Y2RiNWQxZDk5N2Y4MTZjZTU0NWIx
OC4uMWI0NDY3OGI3MDI2N2ZjYzk0MGU5OWE1ZTcyNmMyMWRmMDIxMTFiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcjo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3IoU1ZHQW5p
bWF0aW9uRWxlbWVudCogYW5pbQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlQm9vbGVhbihzdGQ6Om1ha2VfdW5pcXVlPGJvb2w+KCkpOwotICAgIGFuaW1hdGVkVHlw
ZS0+Ym9vbGVhbigpID0gKHN0cmluZyA9PSAidHJ1ZSIpOyAvLyB3YXQ/Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8Ym9vbD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFuaW1W
YWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFu
aW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0Fu
aW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRC
b29sZWFuPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVz
LCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtNzEsOSArNjksOSBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbgogICAgIEFTU0VS
VChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAot
ICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5ib29sZWFuKCkgOiBmcm9tLT5ib29sZWFuKCk7
Ci0gICAgYm9vbCB0b0Jvb2xlYW4gPSB0by0+Ym9vbGVhbigpOwotICAgIGJvb2wmIGFuaW1hdGVk
Qm9vbGVhbiA9IGFuaW1hdGVkLT5ib29sZWFuKCk7CisgICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGlj
X2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGJvb2wmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBib29sIHRvQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wm
PigqdG8tPnZhbHVlc1swXSk7CisgICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gc3RhdGljX2Nh
c3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxib29sPihwZXJjZW50YWdlLCBmcm9tQm9vbGVhbiwgdG9C
b29sZWFuLCBhbmltYXRlZEJvb2xlYW4pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
Q29sb3IuY3BwCmluZGV4IDE2NzBmZmJhYjM1NjZjZjkxYzllYTVmOWJjYzQwNTM0YTM0YTM3OWEu
LjE3OTVhZWE5ZGQ1MGQ3NWJmY2U4NDAzMWJlYzJlNTBjOWUzODM4OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgU1ZHQW5pbWF0ZWRD
b2xvckFuaW1hdG9yOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVu
dCYgYW5pbWF0aW8KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6bWFrZV91
bmlxdWU8Q29sb3I+KENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNl
KCkpKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJh
aXRzPENvbG9yPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZENv
bG9yQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdB
bmltYXRlZFR5cGUqIHRvKQpAQCAtNDQsOCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JB
bmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1h
dAogICAgIEFTU0VSVCh0by0+dHlwZSgpID09IEFuaW1hdGVkQ29sb3IpOwogCiAgICAgLy8gSWdu
b3JlcyBhbnkgYWxwaGEgYW5kIHNldHMgYWxwaGEgb24gcmVzdWx0IHRvIDEwMCUgb3BhcXVlLgot
ICAgIGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmNvbG9yKCk7Ci0gICAgYXV0byYgdG9Db2xvciA9
IHRvLT5jb2xvcigpOworICAgIGF1dG8mIGZyb21Db2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9Db2xvciA9IHN0YXRpY19jYXN0PENvbG9y
Jj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHRvQ29sb3IgPSB7IHJvdW5kQW5kQ2xhbXBDb2xvckNo
YW5uZWwodG9Db2xvci5yZWQoKSArIGZyb21Db2xvci5yZWQoKSksCiAgICAgICAgIHJvdW5kQW5k
Q2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ncmVlbigpICsgZnJvbUNvbG9yLmdyZWVuKCkpLAog
ICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuYmx1ZSgpICsgZnJvbUNv
bG9yLmJsdWUoKSkgfTsKQEAgLTY5LDggKzY5LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQK
ICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxl
bWVudCk7CiAKLSAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5jb2xvcigpIDogZnJvbS0+Y29s
b3IoKTsKLSAgICBDb2xvciB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgQ29sb3IgZnJvbUNv
bG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBzdGF0aWNfY2FzdDxDb2xvciY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0
PENvbG9yJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgQ29sb3IgdG9Db2xvciA9IHN0YXRpY19j
YXN0PENvbG9yJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRh
bmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8
Q29sb3I+KHBhcnNlQ29sb3JGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9w
ZXJ0eVZhbHVlVHlwZSgpLCBmcm9tQ29sb3IsIG1fY29udGV4dEVsZW1lbnQpOwpAQCAtODIsOCAr
ODIsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZAogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1l
bnQtPnRvUHJvcGVydHlWYWx1ZVR5cGUoKSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAg
dG9Db2xvciA9IGN1cnJlbnRDb2xvcigqbV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0
b0F0RW5kT2ZEdXJhdGlvbkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAg
YXV0byYgYW5pbWF0ZWRDb2xvciA9IGFuaW1hdGVkLT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0b0F0RW5kT2ZEdXJhdGlv
bi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xv
ciAtIHRoaXMgd2lsbCBuZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBk
aWZmZXJlbnQgY29sb3Igc3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBb
MC0yNTVdIENvbG9ycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0
aW9uLmNwcAppbmRleCBjMTA3OTI5NGQ4NWMxMmE5MTU5MzgxNmQ4YWM1NjIwYTRjMTVjYzBjLi43
NWUwZGU2NjY5NTE0MjM0MDZjNDQyM2QzNWI3ZDkzOGNmZjc3ZWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCkBAIC0xMDksMTQgKzEwOSwxMiBA
QCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25B
bmltYXRvcihTVkdBbmltYXRpb25FbGVtZQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlv
bihzdGQ6Om1ha2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmVudW1l
cmF0aW9uKCkgPSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9u
RWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5h
bWUoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1f
YW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0
dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
IHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihjb25zdHJ1
Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9u
PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjQsNyBAQCB2b2lkIFNWR0FuaW1hdGVk
RW51bWVyYXRpb25BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdAogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0
ZWRUeXBlOjplbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
RW51bWVyYXRpb25BbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgdW5zaWduZWQgZnJvbUVudW1lcmF0
aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+ZW51bWVyYXRpb24oKSA6IGZyb20tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5z
aWduZWQgdG9FbnVtZXJhdGlvbiA9IHRvLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkJiBh
bmltYXRlZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmVudW1lcmF0aW9uKCk7CisgICAgdW5zaWdu
ZWQgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgdW5z
aWduZWQgdG9FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNb
MF0pOworICAgIHVuc2lnbmVkJiBhbmltYXRlZEVudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVEaXNjcmV0ZVR5cGU8dW5zaWduZWQ+KHBlcmNlbnRhZ2UsIGZyb21FbnVtZXJhdGlv
biwgdG9FbnVtZXJhdGlvbiwgYW5pbWF0ZWRFbnVtZXJhdGlvbik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCmluZGV4IGMzZjhjOGU3ODE1ODFjYTA1ZDY4ZTRm
MGJhMzA2OTBkOGEyNDUxMTcuLmViNGY1ZjlmNWNmNjljMGE4NTc5YzZiODhkMzU4ZGNkODllMWIw
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCkBAIC0zMywx
NCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVkSW50ZWdl
ckFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW0KIAogc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjptYWtlX3VuaXF1ZTxpbnQ+KCkpOwot
ICAgIGFuaW1hdGVkVHlwZS0+aW50ZWdlcigpID0gc3RyaW5nLnRvSW50U3RyaWN0KCk7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUo
U1ZHUHJvcGVydHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50
ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50
ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZElu
dGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHIKIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Omlu
dGVnZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC02OCw3ICs2Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltCiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEludGVnZXIpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+aW50ZWdlcigpICs9IGZyb20t
PmludGVnZXIoKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3Rh
dGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVt
ZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQgdG9JbnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRp
b25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50ZWdlcikKQEAgLTgzLDEwICs4MSwxMCBAQCB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9tSW50ZWdlciA9IG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQt
PmludGVnZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9JbnRlZ2VyID0gdG8tPmlu
dGVnZXIoKTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9BdEVuZE9mRHVy
YXRpb24tPmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkLT5p
bnRlZ2VyKCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQt
PnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBp
bnQgdG9JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGlu
dCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9m
RHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBzdGF0aWNf
Y2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBjYWxjdWxhdGVBbmltYXRl
ZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bUludGVnZXIsIHRvSW50ZWdlciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmltYXRlZElu
dGVnZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAppbmRleCA1YjU2N2VkMmE5OWUxZmQ4MTMyMGNjYmY5
NDlkNGZlZTMzODcyZDY0Li45ZjZmYjQxOTllNTI5ZTQ1ODgxYzYwYTA5MjBjNDE3MjcyM2Y0YTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyLmNwcApAQCAtMzMsMjMgKzMzLDEyIEBAIFNWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXJBbmltCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWly
PGludCwgaW50Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2Vy
ID0gYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgZmxvYXQgZmly
c3ROdW1iZXIgPSAwOwotICAgIGZsb2F0IHNlY29uZE51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJz
ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikp
IHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWRJ
bnRlZ2VyLnNlY29uZCA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2Vy
LmZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmlyc3ROdW1iZXIpKTsKLSAgICAgICAg
YW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51
bWJlcikpOwotICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9w
dGlvbmFsSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIs
IFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1
Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4o
YW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzQ4LDcgQEAgdm9pZCBTVkdB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWwKIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJB
bmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAg
IHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVn
ZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25h
bEludGVnZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBT
VkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03
NywxMSArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1h
dG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZQogICAgIEFTU0VSVChmcm9tLT50
eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50
PiYgZnJvbUludGVnZXJQYWlyID0gZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlvbmFs
SW50ZWdlcigpOwotCi0gICAgdG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIu
Zmlyc3Q7Ci0gICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29u
ZDsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8
aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1
ZXNbMV0pICs9IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMV0pOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9B
dEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04OSwxMyArNzUs
MTcgQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXIKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBzdGQ6OnBh
aXI8aW50LCBpbnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyKCkgOiBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpw
YWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9BdEVuZE9mRHVyYXRpb25JbnRl
Z2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0g
ICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyUGFpciA9IGFuaW1hdGVkLT5p
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0KLSAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFpci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJz
dCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFp
ci5maXJzdCk7Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBm
cm9tSW50ZWdlclBhaXIuc2Vjb25kLCB0b0ludGVnZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVy
YXRpb25JbnRlZ2VyUGFpci5zZWNvbmQsIGFuaW1hdGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKKyAg
ICBjb25zdCBpbnQmIGZvcm1GaXJzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNb
MF0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgaW50
JiBmb3JtU2Vjb25kID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0
aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBpbnQmIHRvRmlyc3Qg
PSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgaW50JiB0b1Nl
Y29uZCA9IHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBpbnQm
IHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9mRHVy
YXRpb24tPnZhbHVlc1swXSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5kT2ZEdXJhdGlvblNlY29u
ZCA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzFdKTsKKyAg
ICBpbnQmIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CisgICAgaW50JiBhbmltYXRlZFNlY29uZCA9IHN0YXRpY19jYXN0PGludCY+KCphbmlt
YXRlZC0+dmFsdWVzWzFdKTsKKworICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZm9ybUZpcnN0LCB0b0ZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0LCBhbmlt
YXRlZEZpcnN0KTsKKyAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGZvcm1TZWNvbmQsIHRvU2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlvblNlY29uZCwgYW5pbWF0ZWRT
ZWNvbmQpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmlt
YXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCmluZGV4IDI1Y2YzZjM4YzUyZTA5
MDhlOTMyNzhmODQ3OGRlNWRiNDk1N2RjNjAuLmMxYjI5MzhhMmJmNDA1NDVlNWZlMDE5OGIwNDZh
OTliNDM0Njk4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExl
bmd0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcApA
QCAtMzMsMTIgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OlNWR0FuaW1hdGVk
TGVuZ3RoQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1f
bGVuZ3RoTW9kZSwgc3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR0xlbmd0aFZhbHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBybwogCiB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5n
dGg+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk7CisgICAg
cmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzLCB0eXBl
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBA
IC02Nyw4ICs2Nyw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YWRkQW5pbWF0
ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hCiAgICAgQVNTRVJUKGZyb20t
PnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29u
dGV4dChtX2NvbnRleHRFbGVtZW50KTsKLSAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gZnJv
bS0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgdG9MZW5ndGggPSB0by0+bGVuZ3RoKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUxlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9MZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhW
YWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVuZ3Ro
LnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSwg
bGVuZ3RoQ29udGV4dCk7CiB9CkBAIC04NSwxMCArODUsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250
ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGgoKSA6
IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+bGVuZ3RoKCk7Ci0g
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+
bGVuZ3RoKCk7CisgICAgYXV0byBmcm9tU1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1
ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byB0b1NWR0xlbmd0aCA9IHN0YXRpY19jYXN0PFNW
R0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG9BdEVu
ZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAg
IC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFkanVzdEZvckluaGVyaXRhbmNlPFNWR0xlbmd0aFZhbHVlPihwYXJzZUxlbmd0aEZyb21TdHJp
bmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21TVkdM
ZW5ndGgsIG1fY29udGV4dEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmNwcAppbmRleCA5NWZmYjZhODFjMDQzZDQ1ZDBlYWFkMDk1YzVhMjIzN2Vm
ODAzZWRjLi40MDdlZGUwNzU3ZGRmMDRmY2U5MWY1OWNiNWNhNDI4YWUwZjc0YjIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcApAQCAtMzMsMTQgKzMz
LDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aExp
c3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5sZW5ndGhMaXN0KCkucGFyc2Uoc3Ry
aW5nLCBtX2xlbmd0aE1vZGUpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RW
YWx1ZXM+Ojpmcm9tU3RyaW5nKHN0cmluZywgbV9sZW5ndGhNb2RlKSk7CiB9CiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxl
bmd0aExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFu
aW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlCiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6
OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAm
U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsOCArNjYsOCBA
QCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNW
R0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5p
bWF0ZWRMZW5ndGhMaXN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkp
OwogCi0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExpc3QgPSBmcm9tLT5sZW5ndGhMaXN0KCk7
Ci0gICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0xlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxT
VkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJv
bUxlbmd0aExpc3RTaXplID0gZnJvbUxlbmd0aExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbUxl
bmd0aExpc3RTaXplIHx8IGZyb21MZW5ndGhMaXN0U2l6ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgp
KQpAQCAtNzcsNyArNzUsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQQogCiAgICAgU1ZHTGVu
Z3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmcm9tTGVuZ3RoTGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9MZW5n
dGhMaXN0W2ldLnNldFZhbHVlKHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSAr
IGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsK
KyAgICAgICAgdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkuc2V0VmFsdWUodG9MZW5ndGhMaXN0
LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoTGlzdC5wcm9w
ZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KIAogc3Rh
dGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgcGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZyhTVkdBbmlt
YXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykKQEAg
LTkyLDEwICs5MCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVucwogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1
dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBmcm9tLT5sZW5ndGhMaXN0
KCk7Ci0gICAgYXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOwotICAgIGNvbnN0
IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5s
ZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0ZWQtPmxl
bmd0aExpc3QoKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhM
aXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBj
b25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdM
ZW5ndGhMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1
dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMm
PigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2Ug
cnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdM
ZW5ndGhMaXN0VmFsdWVzPihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3RoTGlzdCwgbV9jb250ZXh0
RWxlbWVudCk7CkBAIC0xMTAsMTggKzEwOCwxOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVucwog
CiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b0xlbmd0aExpc3RTaXplOyArK2kpIHsKLSAg
ICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZExlbmd0aExpc3RbaV0udmFsdWUo
bGVuZ3RoQ29udGV4dCk7Ci0gICAgICAgIFNWR0xlbmd0aFR5cGUgdW5pdFR5cGUgPSB0b0xlbmd0
aExpc3RbaV0udW5pdFR5cGUoKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmlt
YXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAg
ICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVu
aXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSAwOwogICAgICAgICBpZiAo
ZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBpZiAocGVyY2VudGFnZSA8IDAuNSkK
LSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7
Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0aExpc3RbaV0udmFsdWUobGVu
Z3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5cGUgPSBmcm9tTGVuZ3RoTGlzdC5w
cm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CisgICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJv
bUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICAgICAg
fQotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9u
TGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29u
dGV4dCkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QucHJvcGVydHlB
dChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAgICAgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVj
dGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSwgZWZmZWN0aXZl
VG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBhbmltYXRlZExlbmd0aExpc3RbaV0u
c2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1iZXIsIG1fbGVuZ3RoTW9kZSwgdW5p
dFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJl
cihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0LnBy
b3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCksIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1h
dGVkTnVtYmVyKTsKKyAgICAgICAgYW5pbWF0ZWRMZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkuc2V0
VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1iZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5
cGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAK
aW5kZXggNGYxZWE5YThkNGUwOTBkZmMwMjFjMTA4ZWNiY2ZkYWM4NzQ4MTRmMy4uODQ5YWJjOGE1
YWVkNWEwZmMxZmY1MGRhOTIxYzcxNGFkZDQ2MDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXIuY3BwCkBAIC0zMiwxNiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJB
bmltYXRvcjo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBh
bmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0
ZDo6bWFrZV91bmlxdWU8ZmxvYXQ+KCkpOwotICAgIGZsb2F0JiBhbmltYXRlZE51bWJlciA9IGFu
aW1hdGVkVHlwZS0+bnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3Ry
aW5nLCBhbmltYXRlZE51bWJlcikpCi0gICAgICAgIGFuaW1hdGVkTnVtYmVyID0gMDsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShT
VkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVt
YmVyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlw
ZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJl
cj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVy
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
bwogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNW
R0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlcik7
CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVz
LCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphbmltVmFsV2ls
bENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWEKICAgICBBU1NF
UlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlw
ZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPm51bWJlcigpICs9IGZyb20tPm51bWJlcigp
OworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHN0YXRpYyBmbG9hdCBwYXJzZU51bWJl
ckZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCosIGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIGZsb2F0IG51bWJlciA9IDA7Ci0gICAgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmlu
ZywgbnVtYmVyKTsKLSAgICByZXR1cm4gbnVtYmVyOworICAgIHJldHVybiBTVkdQcm9wZXJ0eVRy
YWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51
bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlw
ZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlw
ZSogYW5pbWF0ZWQpCkBAIC04NCwxMCArNzgsMTAgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmUK
ICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxl
bWVudCk7CiAKLSAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bnVtYmVyKCkgOiBmcm9tLT5u
dW1iZXIoKTsKLSAgICBmbG9hdCB0b051bWJlciA9IHRvLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0
b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXIoKTsKLSAg
ICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZC0+bnVtYmVyKCk7CisgICAgZmxvYXQg
ZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5p
bWF0aW9uID8gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0
aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGZsb2F0IHRvTnVtYmVyID0g
c3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgZmxvYXQgdG9BdEVuZE9m
RHVyYXRpb25OdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+
dmFsdWVzWzBdKTsKKyAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9h
dCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5j
ZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPGZs
b2F0PihwYXJzZU51bWJlckZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3Bl
cnR5VmFsdWVUeXBlKCksIGZyb21OdW1iZXIsIG1fY29udGV4dEVsZW1lbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAppbmRleCA4N2Y5NzNhMWJhMmQz
NDkyYjFmMmRiMGQwNzNjYzM1OWQ2NmNiNTdkLi45ZDYyNGFhMWFmZjA3NjAxNWE2MzgyMWQ5Mjc4
Mzg2N2NiYjk1YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmNwcApAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50CiAKIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1
dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6
bWFrZV91bmlxdWU8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5u
dW1iZXJMaXN0KCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1i
ZXJMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlz
dChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVt
YmVyTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGUKIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmlt
YXRlZFR5cGU6Om51bWJlckxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
TnVtYmVyTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02NywyNSArNjUsMjUgQEAgdm9p
ZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0EKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
TnVtYmVyTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAot
ICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJvbS0+bnVtYmVyTGlzdCgpOwotICAg
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYg
ZnJvbU51bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVt
YmVyTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21OdW1i
ZXJMaXN0U2l6ZSA9IGZyb21OdW1iZXJMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21OdW1iZXJM
aXN0U2l6ZSB8fCBmcm9tTnVtYmVyTGlzdFNpemUgIT0gdG9OdW1iZXJMaXN0LnNpemUoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyb21OdW1iZXJM
aXN0U2l6ZTsgKytpKQotICAgICAgICB0b051bWJlckxpc3RbaV0gKz0gZnJvbU51bWJlckxpc3Rb
aV07CisgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvTnVtYmVyTGlzdFtpXSkgKz0gc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqZnJvbU51bWJlckxpc3RbaV0pOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0Fu
aW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0Fu
aW1hdGVkVHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7
CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlckxpc3QoKSA6
IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+
bnVtYmVyTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlz
dCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRO
dW1iZXJMaXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9t
TnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5p
bWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFs
dWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVz
WzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1i
ZXJMaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigq
dG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWROdW1iZXJM
aXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKTsKICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVl
czxTVkdOdW1iZXJMaXN0VmFsdWVzPihmcm9tTnVtYmVyTGlzdCwgdG9OdW1iZXJMaXN0LCBhbmlt
YXRlZE51bWJlckxpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk0LDkg
KzkyLDkgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZE
dXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxp
c3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAg
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRv
QXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDog
MDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlv
blNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7Cisg
ICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3QucHJvcGVydHlBdChp
KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXIuY3BwCmluZGV4IDNjNGNhODY0ZDIzMmNkMzhkNzQxYjMzNGU1NDlh
ODkyYzg4MWQwOGUuLjZkNWUxMGQ5MTkxYzU1ODE4MTZkN2Q1ZDBlM2VhNDM4N2E5NzkzMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlci5jcHAKQEAgLTMzLDE4ICszMywxMiBAQCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcgog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9wdGlv
bmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4+KCkpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlciA9IGFu
aW1hdGVkVHlwZS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVy
T3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBhbmltYXRlZE51bWJlci5maXJzdCwgYW5pbWF0ZWROdW1i
ZXIuc2Vjb25kKSkgewotICAgICAgICBhbmltYXRlZE51bWJlci5maXJzdCA9IDA7Ci0gICAgICAg
IGFuaW1hdGVkTnVtYmVyLnNlY29uZCA9IDA7Ci0gICAgfQotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRz
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZH
QW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTQsNyArNDgs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0Fu
aW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1i
ZXJPcHRpb25hbE51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51
bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNzIsMTEgKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKgogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9IGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0g
ICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJPcHRp
b25hbE51bWJlcigpOwotCi0gICAgdG9OdW1iZXJQYWlyLmZpcnN0ICs9IGZyb21OdW1iZXJQYWly
LmZpcnN0OwotICAgIHRvTnVtYmVyUGFpci5zZWNvbmQgKz0gZnJvbU51bWJlclBhaXIuc2Vjb25k
OworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8t
PnZhbHVlc1sxXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNW
R0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBl
KiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEz
ICs3NSwxNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZQogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0
ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlck9wdGlv
bmFsTnVtYmVyKCkgOiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBjb25zdCBz
dGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFs
TnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJPcHRpb25hbE51bWJl
cigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlclBhaXIgPSBh
bmltYXRlZC0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLQotICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVt
YmVyUGFpci5maXJzdCwgdG9OdW1iZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJl
clBhaXIuZmlyc3QsIGFuaW1hdGVkTnVtYmVyUGFpci5maXJzdCk7Ci0gICAgbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZy
b21OdW1iZXJQYWlyLnNlY29uZCwgdG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRp
b25OdW1iZXJQYWlyLnNlY29uZCwgYW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CisgICAgY29u
c3QgYXV0byYgZm9ybUZpcnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBd
KSA6IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0
byYgZm9ybVNlY29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBz
dGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1dG8mIHRv
Rmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBh
dXRvJiB0b1NlY29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pOworICAg
IGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+
KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvblNlY29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMV0pOworICAgIGF1dG8mIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9h
dCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFNlY29uZCA9IHN0
YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOworCisgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGZvcm1GaXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJz
dCk7CisgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGZvcm1TZWNvbmQsIHRvU2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlv
blNlY29uZCwgYW5pbWF0ZWRTZWNvbmQpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCmluZGV4IGEz
M2ExNDlkNzBiZGZkNmFlYzgxZGNhZWZhNmE2MGY1Yjk3Yjg3MzAuLmQ1NmZkMmNmNTNjNmQ2MTdi
MzI4NjY5ZDVmMjdiMGRhYjZkOWM1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBhdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBh
dGguY3BwCkBAIC0yMiw3ICsyMiw2IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJh
c2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgi
Ci0jaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTMzLDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdGlvbkUKIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBieXRlU3RyZWFtID0g
c3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhC
eXRlU3RyZWFtRnJvbVN0cmluZyhzdHJpbmcsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5n
KTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0
cmVhbSkpOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRy
YWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNDMsOSArNDAsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKAog
ICAgIEFTU0VSVChhbmltYXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKIAogICAgIC8vIEJ1aWxkIGlu
aXRpYWwgcGF0aCBieXRlIHN0cmVhbS4KLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChh
bmltYXRlZFR5cGVzLCBieXRlU3RyZWFtLmdldCgpKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGU8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CisgICAg
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsICphbmltYXRlZFR5cGUpOworICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU4LDcgKzU1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3AKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gcHJv
cGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhT
ZWdMaXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0
KCkpOwogICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZh
bHVlKCk7CiAKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFs
dWVzKGJhc2VWYWx1ZSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIGJ1aWxk
U1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3RhdGljX2Nhc3Q8U1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMmPigqYmFzZVZhbHVlKSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBh
cnNpbmcpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPj4gcmVzdWx0OwogCkBAIC03Miw3ICs2OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wCiAgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0VsZW1lbnQ6
Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2VyKCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQo
KSk7CiAgICAgICAgIGZvciAoYXV0byYgc2VnbWVudCA6IHJlc3VsdCkKLSAgICAgICAgICAgIHNl
Z21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJmJhc2VWYWx1ZSk7CisgICAgICAg
ICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0sICZzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpiYXNlVmFsdWUpKTsKICAgICB9CiB9CiAKQEAgLTgwLDcg
Kzc3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNl
VmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3AKIHsKICAgICBBU1NFUlQoYW5pbWF0ZWRU
eXBlcy5zaXplKCkgPj0gMSk7CiAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7Ci0g
ICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIHR5cGUucGF0aCgpKTsKKyAg
ICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgJnN0YXRpY19jYXN0PFNWR1Bh
dGhCeXRlU3RyZWFtJj4oKnR5cGUudmFsdWVzWzBdKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTk3LDEzICs5NCwxMyBAQCB2b2lkIFNWR0Fu
aW1hdGVkUGF0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJv
bSwgU1ZHQW5pbWF0ZQogewogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQYXRo
KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwotCi0gICAgU1ZHUGF0
aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21QYXRoU2l6ZSA9IGZy
b21QYXRoLT5zaXplKCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9
IHRvUGF0aC0+c2l6ZSgpKQorICAgIAorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0gc3RhdGlj
X2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0
b1BhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVzWzBdKTsK
KyAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAgaWYgKCFm
cm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0aCk7Cisg
ICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAogdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJj
ZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdB
bmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdB
bmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVCht
X2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZy
b20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsK
LSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gdG9BdEVuZE9m
RHVyYXRpb24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0g
YW5pbWF0ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19jYXN0PFNWR1Bh
dGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9QYXRoID0gc3Rh
dGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYg
dG9BdEVuZE9mRHVyYXRpb25QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigq
dG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQYXRoID0g
c3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHVuZGVybHlpbmdQYXRoOwog
ICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1RvQW5pbWF0aW9uKSB7Ci0gICAgICAgIHVu
ZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7Ci0gICAgICAgIGZyb21QYXRoID0g
dW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAgIGlmIChpc1RvQW5pbWF0aW9uKQorICAg
ICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIENhY2hlIHRoZSBjdXJyZW50
IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFt
KCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVT
dHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+c2l6ZSgpIHx8ICht
X2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCi0gICAg
ICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKKyAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBhdGguc2l6ZSgpIHx8
IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCisg
ICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBQYXNzIGZh
bHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5p
bWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0
aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlv
bkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9t
UGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFsc2UpKQorICAgIGlm
ICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRl
U3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNl
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFt
KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CisgICAgYnVp
bGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0
aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1bScuCi0gICAgaWYg
KGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1h
dGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFuaW1hdGVkUGF0aC5p
c0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBs
YXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRlPSdzdW0nLgogICAg
IGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkK
LSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9m
RHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJl
YW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVhdENvdW50KTsKIH0K
IAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
UG9pbnRMaXN0LmNwcAppbmRleCA1ZjA3ODBkNTJjNTQ2MmFkNDkwYzhmMjFlZmIyNGNhZmI1OGJm
MTYzLi5hNWZiYTY2YzRkNzc5YWM5Mjc1YWRlMzRlYmY2NDA4NWM1NjIyNTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAKQEAgLTM0LDE0ICszNCwxMiBA
QCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1BvaW50TGlzdFZhbHVl
cz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFuaW1hdGVkVHlwZS0+cG9pbnRMaXN0
KCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6
ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QoY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVy
biBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5
cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkCiAKIHZvaWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0
ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50
TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0KTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlw
ZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTY4LDI2ICs2NiwyNiBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbgogewog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQb2ludHMpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7Ci0KLSAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRM
aXN0ID0gZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cG9p
bnRMaXN0KCk7CisgICAgCisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IHN0YXRpY19j
YXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRv
UG9pbnRMaXN0ID0gIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0by0+dmFsdWVz
WzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21Qb2ludExpc3RTaXplID0gZnJvbVBvaW50TGlzdC5z
aXplKCk7CiAgICAgaWYgKCFmcm9tUG9pbnRMaXN0U2l6ZSB8fCBmcm9tUG9pbnRMaXN0U2l6ZSAh
PSB0b1BvaW50TGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBmcm9tUG9pbnRMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b1BvaW50TGlz
dFtpXSArPSBmcm9tUG9pbnRMaXN0W2ldOworICAgICAgICB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0
KGkpICs9IGZyb21Qb2ludExpc3QucHJvcGVydHlBdChpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRh
Z2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1h
dGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1h
dGVkVHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAK
LSAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cG9pbnRMaXN0KCkgOiBmcm9t
LT5wb2ludExpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b1BvaW50TGlzdCA9IHRvLT5wb2ludExp
c3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdCA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZFBvaW50TGlzdCA9
IGFuaW1hdGVkLT5wb2ludExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0g
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0
aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0
aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25z
dCBhdXRvJiB0b1BvaW50TGlzdCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlz
dCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+
dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFBvaW50TGlzdCA9IHN0YXRpY19jYXN0PFNW
R1BvaW50TGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKICAgICBpZiAoIW1fYW5p
bWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQb2ludExpc3RWYWx1ZXM+
KGZyb21Qb2ludExpc3QsIHRvUG9pbnRMaXN0LCBhbmltYXRlZFBvaW50TGlzdCwgcGVyY2VudGFn
ZSkpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTgsMTQgKzk2LDE0IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50
YWdlLCB1bnNpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvUG9pbnRMaXN0U2l6ZTsg
KytpKSB7CiAgICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlRnJvbTsKICAgICAgICAgaWYgKGZy
b21Qb2ludExpc3RTaXplKQotICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2ludExp
c3RbaV07Ci0gICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5k
T2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdFtpXSA6IEZsb2F0UG9p
bnQoKTsKLQotICAgICAgICBmbG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdFtpXS54
KCk7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLnkoKTsK
LSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueCgpLCB0b1BvaW50TGlzdFtpXS54KCks
IGVmZmVjdGl2ZVRvQXRFbmQueCgpLCBhbmltYXRlZFgpOwotICAgICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZm
ZWN0aXZlRnJvbS55KCksIHRvUG9pbnRMaXN0W2ldLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCks
IGFuaW1hdGVkWSk7Ci0gICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0W2ldID0gRmxvYXRQb2ludChh
bmltYXRlZFgsIGFuaW1hdGVkWSk7CisgICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbVBv
aW50TGlzdC5wcm9wZXJ0eUF0KGkpOworICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2ZVRvQXRF
bmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Qb2ludExp
c3QucHJvcGVydHlBdChpKSA6IEZsb2F0UG9pbnQoKTsKKworICAgICAgICBmbG9hdCBhbmltYXRl
ZFggPSBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLngoKTsKKyAgICAgICAgZmxvYXQg
YW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3QucHJvcGVydHlBdChpKS55KCk7CisgICAgICAg
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJl
cGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLngoKSwgdG9Qb2ludExpc3QucHJvcGVydHlBdChpKS54
KCksIGVmZmVjdGl2ZVRvQXRFbmQueCgpLCBhbmltYXRlZFgpOworICAgICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwg
ZWZmZWN0aXZlRnJvbS55KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueSgpLCBlZmZlY3Rp
dmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsKKyAgICAgICAgYW5pbWF0ZWRQb2ludExpc3QucHJv
cGVydHlBdChpKSA9IEZsb2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcAppbmRleCA4MDEwMjViNDVmYTYxYjdlZWI1MDU5MGIzYWU4NTdhOWE5YjY5ZTkx
Li40OWE4MDcxYWQ4YWJkNzA3NDY3Y2VmOGZkZmYzODA3OWEwYWNlMjVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcApA
QCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9y
OjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcihTCiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1
dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJh
dGlvKHN0ZDo6bWFrZV91bmlxdWU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAg
ICBhbmltYXRlZFR5cGUtPnByZXNlcnZlQXNwZWN0UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJp
bmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1h
dGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3
ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lCiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwcmVzZXJ2
ZUFzcGVjdFJhdGlvKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzEsOSArNjks
OSBAQCB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZy
b21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJlc2VydmVBc3BlY3RSYXRpbygpIDogZnJv
bS0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3Bl
Y3RSYXRpbyA9IHRvLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKKyAg
ICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KHBlcmNlbnRhZ2Us
IGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZlQXNwZWN0UmF0aW8sIGFuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3Qu
Y3BwCmluZGV4IGI5NGFiZjU5YzcwODQ4YTZiYWNiN2I4MDViOThkOTVmMmI5ZWY3ZjIuLmNiYzQ5
OWQ1MjY2MjkwNmFmYmMxOTRmYzA0OGJiMGM0ZjNhYmMxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFJlY3QuY3BwCkBAIC0zMiwxNCArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1h
dGlvbkUKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3RkOjpt
YWtlX3VuaXF1ZTxGbG9hdFJlY3Q+KCkpOwotICAgIHBhcnNlUmVjdChzdHJpbmcsIGFuaW1hdGVk
VHlwZS0+cmVjdCgpKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3Ry
aW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWRSZWN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDksNyArNDcsNyBAQCB2b2lkIFNW
R0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlw
ZTo6cmVjdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTY3LDcgKzY1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGUKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUmVjdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5
cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5yZWN0KCkgKz0gZnJvbS0+cmVjdCgpOwor
ICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2Fz
dDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFJl
Y3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUq
IHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUq
IGFuaW1hdGVkKQpAQCAtNzUsMTAgKzczLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQKICAg
ICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVu
dCk7CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cmVjdCgpIDogZnJv
bS0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0ID0gdG8tPnJlY3QoKTsKLSAg
ICBjb25zdCBGbG9hdFJlY3QmIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRPZkR1cmF0
aW9uLT5yZWN0KCk7Ci0gICAgRmxvYXRSZWN0JiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+cmVj
dCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVz
WzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1JlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigq
dG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0g
c3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIGFuaW1hdGVkUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRl
ZC0+dmFsdWVzWzBdKTsKIAogICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUmVjdC54KCk7
CiAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRSZWN0LnkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCmluZGV4IDY5ODVlY2JlZGFkMWVmZWQ4ZDc0MjgxNTVh
NzkwN2ZiYTM3OTBkNzAuLmVmMTM2ZmY5Yzc0YzNiOGUxZDcxZTRmZjM4Y2M5YmFiOGY2ODM5NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsMTQgKzMyLDEy
IEBAIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3Io
U1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4oKSk7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5zdHJpbmcoKSA9IHN0cmluZzsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTdHJp
bmc+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTQ4LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm8KIAogdm9pZCBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5
cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzYsOSArNzUsOSBA
QCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUo
ZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFN0cmluZyBmcm9tU3RyaW5n
ID0gZnJvbS0+c3RyaW5nKCk7Ci0gICAgU3RyaW5nIHRvU3RyaW5nID0gdG8tPnN0cmluZygpOwot
ICAgIFN0cmluZyYgYW5pbWF0ZWRTdHJpbmcgPSBhbmltYXRlZC0+c3RyaW5nKCk7CisgICAgU3Ry
aW5nIGZyb21TdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBTdHJpbmcgdG9TdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqdG8tPnZhbHVlc1sw
XSk7CisgICAgU3RyaW5nJiBhbmltYXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCph
bmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxl
cy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFN0cmluZz4o
cGFyc2VTdHJpbmdGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZh
bHVlVHlwZSgpLCBmcm9tU3RyaW5nLCBtX2NvbnRleHRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKaW5kZXggMjAzNTZlMGJiNmM1
MjMxMzY3YjZiNmI5MjRjNTFjZmI0ZWY3MjQyOS4uZWVlMGNhNzlmYTY0ODYxMzA3OWYzZTBlZGVi
NjYzM2MwNGM3OTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAKQEAgLTQxLDE1ICs0MSwxMiBAQCBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3IoU1ZHQW5pbWF0aW9u
RQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNm
b3JtTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpOwotICAg
IGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3JtVHlwZVN0cmlu
ZyArIHN0cmluZyArICcpJyk7Ci0gICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlz
dCgpLnNpemUoKSA8PSAxKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzPjo6ZnJvbVN0cmluZyhtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBl
cyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0b3BBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTU5LDcgKzU2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RB
bmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW0KIAogdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnRy
YW5zZm9ybUxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxNSArNzQsMTUgQEAgdm9pZCBT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFMKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkVHJh
bnNmb3JtTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAot
ICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJhbnNmb3JtTGlzdCgp
OwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1MaXN0KCk7CisgICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsK
ICAgICBhdXRvIGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUo
KTsKICAgICBpZiAoIWZyb21UcmFuc2Zvcm1MaXN0U2l6ZSB8fCBmcm9tVHJhbnNmb3JtTGlzdFNp
emUgIT0gdG9UcmFuc2Zvcm1MaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNT
RVJUKGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJh
bnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0
b1RyYW5zZm9ybUxpc3RbMF07CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21U
cmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1Ry
YW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtLnR5
cGUoKSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRvVHJhbnNmb3JtID0gU1ZHVHJhbnNm
b3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm0p
OwpAQCAtOTgsMTAgKzk1LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwKICAgICAvLyBTcGVj
OiBUbyBhbmltYXRpb25zIHByb3ZpZGUgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSB0byBnZXQgYSBz
bW9vdGggY2hhbmdlIGZyb20gdGhlIHVuZGVybHlpbmcgdmFsdWUgdG8gdGhlCiAgICAgLy8g4oCY
dG/igJkgYXR0cmlidXRlIHZhbHVlLCB3aGljaCBjb25mbGljdHMgbWF0aGVtYXRpY2FsbHkgd2l0
aCB0aGUgcmVxdWlyZW1lbnQgZm9yIGFkZGl0aXZlIHRyYW5zZm9ybSBhbmltYXRpb25zCiAgICAg
Ly8gdG8gYmUgcG9zdC1tdWx0aXBsaWVkLiBBcyBhIGNvbnNlcXVlbmNlLCBpbiBTVkcgMS4xIHRo
ZSBiZWhhdmlvciBvZiB0byBhbmltYXRpb25zIGZvciDigJhhbmltYXRlVHJhbnNmb3Jt4oCZIGlz
IHVuZGVmaW5lZC4KLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRy
YW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJh
bnNmb3JtTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3Jt
TGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0ID0gYW5pbWF0ZWQtPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25z
dCBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybUxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdCA9IHN0YXRp
Y19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVl
c1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIFBh
c3MgZmFsc2UgdG8gJ3Jlc2l6ZUFuaW1hdGVkTGlzdElmTmVlZGVkJyBoZXJlLCBhcyB0aGUgc3Bl
Y2lhbCBwb3N0LW11bHRpcGxpY2F0aW9uIGJlaGF2aW9yIG9mIDxhbmltYXRlVHJhbnNmb3JtPiBu
ZWVkcyB0byBiZSByZXNwZWN0ZWQgYmVsb3cuCiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQt
PmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oZnJvbVRyYW5z
Zm9ybUxpc3QsIHRvVHJhbnNmb3JtTGlzdCwgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LCBwZXJjZW50
YWdlLCBmYWxzZSkpCkBAIC0xMTIsMTQgKzEwOSwxNCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
CiAgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5jbGVhcigpOwogCiAgICAgYXV0byBmcm9t
VHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7Ci0gICAgY29uc3Qg
YXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3RbMF07Ci0gICAgY29uc3QgYXV0byBl
ZmZlY3RpdmVGcm9tID0gZnJvbVRyYW5zZm9ybUxpc3RTaXplID8gZnJvbVRyYW5zZm9ybUxpc3Rb
MF0gOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZh
bHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9y
bSA9IHRvVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApOworICAgIGNvbnN0IGF1dG8gZWZmZWN0
aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1MaXN0LnByb3Bl
cnR5QXQoMCkgOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5z
Zm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKICAgICBhdXRvIGN1cnJlbnRUcmFu
c2Zvcm0gPSBTVkdUcmFuc2Zvcm1EaXN0YW5jZShlZmZlY3RpdmVGcm9tLCB0b1RyYW5zZm9ybSku
c2NhbGVkRGlzdGFuY2UocGVyY2VudGFnZSkuYWRkVG9TVkdUcmFuc2Zvcm0oZWZmZWN0aXZlRnJv
bSk7CiAgICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+aXNBY2N1bXVsYXRlZCgpICYmIHJlcGVh
dENvdW50KSB7Ci0gICAgICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRFbmRP
ZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9y
bUxpc3RbMF0gOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5z
Zm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKLSAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNmb3Jtcyhj
dXJyZW50VHJhbnNmb3JtLCBlZmZlY3RpdmVUb0F0RW5kLCByZXBlYXRDb3VudCkpOworICAgICAg
ICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9y
bUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQo
MCkgOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZh
bHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihTVkdUcmFuc2Zv
cm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNmb3JtcyhjdXJyZW50VHJhbnNmb3JtLCBlZmZlY3RpdmVU
b0F0RW5kLCByZXBlYXRDb3VudCkpKTsKICAgICB9IGVsc2UKLSAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChjdXJyZW50VHJhbnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihjdXJy
ZW50VHJhbnNmb3JtKSk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0
cmluZyYgdG9TdHJpbmcpCkBAIC0xMzEsMjAgKzEyOCwyMCBAQCBmbG9hdCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9t
U3RyaQogICAgIGF1dG8gZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CiAg
ICAgYXV0byB0byA9IGNvbnN0cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0gICAgYXV0byYg
ZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9U
cmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBmcm9tVHJhbnNm
b3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFs
dWVzWzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHVuc2lnbmVkIGl0ZW1zQ291
bnQgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFpdGVtc0NvdW50IHx8IGl0
ZW1zQ291bnQgIT0gdG9UcmFuc2Zvcm1MaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuIC0xOwog
CiAgICAgQVNTRVJUKGl0ZW1zQ291bnQgPT0gMSk7Ci0gICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0
WzBdLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3RbMF0udHlwZSgpKQorICAgIGlmIChmcm9tVHJh
bnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVy
dHlBdCgwKS50eXBlKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIC8vIFNwZWM6IGh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0bWwjY29tcGxleERpc3RhbmNlcwogICAgIC8v
IFBhY2VkIGFuaW1hdGlvbnMgYXNzdW1lIGEgbm90aW9uIG9mIGRpc3RhbmNlIGJldHdlZW4gdGhl
IHZhcmlvdXMgYW5pbWF0aW9uIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSDigJh0b+KAmSwg4oCYZnJv
beKAmSwg4oCYYnnigJkgYW5kIOKAmHZhbHVlc+KAmSBhdHRyaWJ1dGVzLgogICAgIC8vIERpc3Rh
bmNlIGlzIGRlZmluZWQgb25seSBmb3Igc2NhbGFyIHR5cGVzIChzdWNoIGFzIDxsZW5ndGg+KSwg
Y29sb3JzIGFuZCB0aGUgc3Vic2V0IG9mIHRyYW5zZm9ybWF0aW9uIHR5cGVzIHRoYXQgYXJlIHN1
cHBvcnRlZCBieSDigJhhbmltYXRlVHJhbnNmb3Jt4oCZLgotICAgIHJldHVybiBTVkdUcmFuc2Zv
cm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdFswXSwgdG9UcmFuc2Zvcm1MaXN0WzBdKS5kaXN0
YW5jZSgpOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlz
dC5wcm9wZXJ0eUF0KDApLCB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSkuZGlzdGFuY2Uo
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTYzZjIyOGEwN2M5ZGI0ZDIwMDU5Njk1MmNiMjA0ZWNhZGEy
YWM1Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMy
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRUeXBlLmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNpbmNsdWRl
ICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBl
KEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0KLQot
U1ZHQW5pbWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKLXsKLSAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5hbmds
ZUFuZEVudW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVh
bjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5ib29sZWFuOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuY29sb3I7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICAgICAgZGVsZXRlIG1f
ZGF0YS5lbnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEludGVn
ZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2Rh
dGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLmxl
bmd0aExpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJMaXN0OwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgICAg
IGRlbGV0ZSBtX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBhdGg7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEu
cG9pbnRMaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0
YS5yZWN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAgICAg
ICBkZWxldGUgbV9kYXRhLnN0cmluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRl
ZFRyYW5zZm9ybUxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJh
dGlvbihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4g
YW5nbGVBbmRFbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVtZXJhdGlvbik7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlw
ZT4oQW5pbWF0ZWRBbmdsZSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGVBbmRFbnVt
ZXJhdGlvbiA9IGFuZ2xlQW5kRW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9vbGVhbikKLXsK
LSAgICBBU1NFUlQoYm9vbGVhbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmltYXRlZFR5
cGUtPm1fZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9yKQotewotICAg
IEFTU0VSVChjb2xvcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2Rh
dGEuY29sb3IgPSBjb2xvci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8dW5zaWduZWQ+IGVudW1lcmF0aW9uKQotewot
ICAgIEFTU0VSVChlbnVtZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEuZW51bWVyYXRpb24gPSBlbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+
IGludGVnZXIpCi17Ci0gICAgQVNTRVJUKGludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBl
ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlcik7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlciA9IGludGVnZXIucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVu
aXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4gaW50ZWdlck9wdGlvbmFsSW50ZWdlcikKLXsK
LSAgICBBU1NFUlQoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyID0gaW50ZWdlck9wdGlvbmFsSW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPiBs
ZW5ndGgpCi17Ci0gICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGgpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aCA9IGxlbmd0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhM
aXN0VmFsdWVzPiBsZW5ndGhMaXN0KQotewotICAgIEFTU0VSVChsZW5ndGhMaXN0KTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZExlbmd0aExpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aExpc3QgPSBs
ZW5ndGhMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJl
cihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+IG51bWJlcikKLXsKLSAgICBBU1NFUlQobnVtYmVyKTsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihBbmltYXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyID0gbnVt
YmVyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qo
c3RkOjp1bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3QpCi17Ci0gICAg
QVNTRVJUKG51bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRy
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiBudW1iZXJPcHRpb25hbE51bWJlcikKLXsKLSAgICBB
U1NFUlQobnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1i
ZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0gbnVt
YmVyT3B0aW9uYWxOdW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhdGgpCi17Ci0gICAg
QVNTRVJUKHBhdGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUGF0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEu
cGF0aCA9IHBhdGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9p
bnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+IHBvaW50TGlzdCkKLXsK
LSAgICBBU1NFUlQocG9pbnRMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRyPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLSAgICBB
U1NFUlQocHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2Vy
dmVBc3BlY3RSYXRpby5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQot
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVS
ZWN0KHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJUKHJlY3Qp
OwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5
cGU+KEFuaW1hdGVkUmVjdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9IHJlY3Qu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6dW5p
cXVlX3B0cjxTdHJpbmc+IHN0cmluZykKLXsKLSAgICBBU1NFUlQoc3RyaW5nKTsKLSAgICBhdXRv
IGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRl
ZFN0cmluZyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuc3RyaW5nID0gc3RyaW5nLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1
bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHRyYW5zZm9ybUxpc3QpCi17Ci0gICAg
QVNTRVJUKHRyYW5zZm9ybUxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEudHJhbnNmb3JtTGlzdCA9IHRyYW5zZm9ybUxpc3QucmVsZWFzZSgp
OwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLVN0cmluZyBTVkdBbmltYXRlZFR5cGU6
OnZhbHVlQXNTdHJpbmcoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmlt
YXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgcmV0dXJu
IG1fZGF0YS5jb2xvci0+c2VyaWFsaXplZCgpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0g
ICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5n
dGgtPnZhbHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAg
ICAgQVNTRVJUKG1fZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5n
dGhMaXN0LT52YWx1ZUFzU3RyaW5nKCk7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAg
ICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIo
Km1fZGF0YS5udW1iZXIpOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQo
bV9kYXRhLnJlY3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3Qt
PngoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwotICAg
ICAgICAgICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsg
U3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKLSAgICBjYXNlIEFuaW1hdGVk
U3RyaW5nOgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLnN0cmluZzsKLQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUg
dGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24n
dCBuZWVkIHZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LgotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToK
LSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246
Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0gICAgY2FzZSBBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgIGNh
c2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86
Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZFVua25v
d246Ci0gICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmltYXRpb25zIHVzZSB0aGVzZSBwcm9wZXJ0
eSB0eXBlcyAtIHRoYXQgbWVhbnMgdmFsdWVBc1N0cmluZygpIGlzIG5ldmVyIHVzZWQgZm9yIHRo
b3NlLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQot
Ym9vbCBTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUp
IHsKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3Ip
OwotICAgICAgICAqbV9kYXRhLmNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHZhbHVlLnN0
cmlwV2hpdGVTcGFjZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRl
ZExlbmd0aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4g
IW1fZGF0YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjps
ZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRp
b24oKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0
YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgbV9kYXRhLmxlbmd0aExpc3QtPnBhcnNlKHZhbHVlLCBT
VkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJO
YW1lKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0g
ICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1iZXJGcm9tU3Ry
aW5nKHZhbHVlLCAqbV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNh
c2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwotICAgICAgICBw
YXJzZVJlY3QodmFsdWUsICptX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAg
ICAgICAgKm1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAg
ICAvLyBUaGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1lbnQ6
OmNzc1Byb3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCBzZXRWYWx1ZUFzU3Ry
aW5nKCkgc3VwcG9ydC4gCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2UgQW5pbWF0
ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNlIEFuaW1h
dGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAg
ICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50
czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFuaW1h
dGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgLy8g
T25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0gdGhhdCBt
ZWFucyBzZXRWYWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzdXBwb3J0c0FuaW1WYWwoQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLXsKLSAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkgdXNl
ZCBmb3IgQ1NTIHByb3BlcnR5IGFuaW1hdGlvbnMuCi0gICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0
ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCmluZGV4IGEwYzExYWQxZTRj
MmE0ZDRlMzFjN2U0NmNlMjhmNjI4YWE5OTIyNzQuLmZjMmNlMmY1ZjIwZTNkMWNkNGI0ZmVmOTg2
YTYzNTcwM2FjYjJhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI4
NCArMjAsMTI5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCi0jaW5jbHVkZSAi
U1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5j
bHVkZSAiU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVl
cy5oIgotI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUg
IlNWR1Byb3BlcnR5SW5mby5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIK
KyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNW
R1BhdGhCeXRlU3RyZWFtOwotCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFBy
b3BlcnR5VHlwZSk7Ci0gICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCk7Ci0KLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQW5nbGVBbmRFbnVtZXJh
dGlvbihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4p
OwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVCb29s
ZWFuKHN0ZDo6dW5pcXVlX3B0cjxib29sPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4pOwotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVFbnVtZXJhdGlv
bihzdGQ6OnVuaXF1ZV9wdHI8dW5zaWduZWQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50Pik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUludGVnZXJP
cHRpb25hbEludGVnZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxpbnQsIGludD4+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKHN0
ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhWYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdM
ZW5ndGhMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IGNyZWF0ZU51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+KTsKLSAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVu
aXF1ZV9wdHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5
dGVTdHJlYW0+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y3JlYXRlUG9pbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUHJlc2VydmVB
c3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPik7
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVJlY3Qo
c3RkOjp1bmlxdWVfcHRyPEZsb2F0UmVjdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4pOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVUcmFuc2Zv
cm1MaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPik7Ci0gICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLQotICAgIEFu
aW1hdGVkUHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLQotICAg
IC8vIE5vbi1tdXRhYmxlIGFjY2Vzc29ycy4KLSAgICBjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVW
YWx1ZSwgdW5zaWduZWQ+JiBhbmdsZUFuZEVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgfQotCi0gICAgY29uc3QgYm9vbCYgYm9vbGVh
bigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVh
bik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmJvb2xlYW47Ci0gICAgfQotCi0gICAgY29uc3Qg
Q29sb3ImIGNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAg
IGNvbnN0IHVuc2lnbmVkJiBlbnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5lbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBpbnQmIGludGVnZXIoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAgICAg
ICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IHN0ZDo6cGFpcjxp
bnQsIGludD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAg
ICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIGNv
bnN0IFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0
aDsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9Ci0KLSAgICBjb25z
dCBmbG9hdCYgbnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQot
Ci0gICAgY29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpIGNvbnN0CitzdHJ1
Y3QgU1ZHQW5pbWF0ZWRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgICAgICA6
IHZhbHVlcyB7IFNWR1ZhbHVlOjpjcmVhdGUoV1RGTW92ZShwcm9wZXJ0eSkpIH0KICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEubnVtYmVyTGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0PiYgbnVtYmVyT3B0aW9uYWxOdW1iZXIoKSBjb25zdAorICAgIFNWR0FuaW1hdGVk
VHlwZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92
ZSh2YWx1ZSkgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyT3B0aW9uYWxO
dW1iZXI7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKSBjb25z
dAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5
VHlwZTI+CisgICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9w
ZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6OmNy
ZWF0ZShwcm9wZXJ0aWVzLmZpcnN0KSwgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVzLnNlY29u
ZCkgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwotICAg
ICAgICByZXR1cm4gbV9kYXRhLnBhdGg7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUG9pbnRMaXN0
VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IHZh
bHVlcyB7IFdURk1vdmUodmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpIH0KICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5wb2ludExpc3Q7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0
aW87CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZH
UHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAot
ICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCiAgICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShw
cm9wZXJ0eSkpOwogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxT
VkdWYWx1ZT4mJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAg
IH0KIAotICAgIGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKSBj
b25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3Jt
TGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8
c3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+Pjo6aW5pdGlhbFZhbHVlKCkp
OwogICAgIH0KIAotICAgIC8vIE11dGFibGUgYWNjZXNzb3JzLgotICAgIHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJv
cGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
YW5nbGVBbmRFbnVtZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKLSAgICBib29sJiBi
b29sZWFuKCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIp
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAg
ICAgIHJldHVybiAqbV9kYXRhLmJvb2xlYW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwog
ICAgIH0KIAotICAgIENvbG9yJiBjb2xvcigpCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlw
ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3Ip
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCYg
ZW51bWVyYXRpb24oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVu
dW1lcmF0aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQot
Ci0gICAgaW50JiBpbnRlZ2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKLSAgICB9Ci0K
LSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICB9
Ci0KLSAgICBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7
Ci0gICAgfQotCi0gICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpCi0gICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWVzWzBd
KTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMSA9IHZhbHVlQW5p
bWF0ZWRUeXBlKCp2YWx1ZXNbMF0pOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFR5cGUyID0gdmFsdWVzWzFdID8gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1sxXSkgOiBB
bmltYXRlZFVua25vd247CiAKLSAgICBmbG9hdCYgbnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5u
dW1iZXI7Ci0gICAgfQorICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEFuZ2xl
KSB7CisgICAgICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEVudW1lcmF0
aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICB9CiAKLSAg
ICBTVkdOdW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
bnVtYmVyTGlzdDsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVk
SW50ZWdlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkSW50ZWdlcikKKyAgICAgICAgICAg
IHJldHVybiBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI7CiAKLSAgICBzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0PiYgbnVtYmVyT3B0aW9uYWxOdW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgfQorICAgICAgICBpZiAoYW5p
bWF0ZWRUeXBlMSA9PSBBbmltYXRlZE51bWJlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVk
TnVtYmVyKQorICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI7
CiAKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKKyAg
ICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRVbmtub3duKTsKKyAgICAgICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTE7CiAgICAgfQogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBw
b2ludExpc3QoKQorICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
cG9pbnRMaXN0OworICAgICAgICBBU1NFUlQodmFsdWVzWzBdICYmICF2YWx1ZXNbMV0pOworICAg
ICAgICByZXR1cm4gdmFsdWVzWzBdLT50b1N0cmluZygpOwogICAgIH0KIAotICAgIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCisgICAgYm9vbCBwYXJz
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAg
ICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
byk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAg
IEFTU0VSVCh2YWx1ZXNbMF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNb
MF0tPnBhcnNlKGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCYgcmVj
dCgpCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBl
IHR5cGUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMg
b25seSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0dXJuIHR5
cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAK
LSAgICBTdHJpbmcmIHN0cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZh
bHVlQW5pbWF0ZWRUeXBlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5z
dHJpbmc7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAg
ICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAgICAgeyByZXR1cm4g
QW5pbWF0ZWRBbmdsZTsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wmKSAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisgICAgICAgICAgICBb
XShjb25zdCBDb2xvciYpICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRD
b2xvcjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAgICAgICAgICAgICAg
ICAgICB7IHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAgICAgICAgW10oY29u
c3QgaW50JikgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkSW50ZWdl
cjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikgICAgICAgICAgICAg
ICB7IHJldHVybiBBbmltYXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xl
bmd0aExpc3RWYWx1ZXMmKSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7IH0s
CisgICAgICAgICAgICBbXShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgeyBy
ZXR1cm4gQW5pbWF0ZWROdW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdOdW1iZXJM
aXN0VmFsdWVzJikgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OyB9LAorICAg
ICAgICAgICAgW10oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAgICAgIHsgcmV0dXJu
IEFuaW1hdGVkUGF0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSYpICB7IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87IH0sCisg
ICAgICAgICAgICBbXShjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAgICAgICAgeyByZXR1
cm4gQW5pbWF0ZWRQb2ludHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBGbG9hdFJlY3QmKSAg
ICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAorICAgICAgICAgICAg
W10oY29uc3QgU3RyaW5nJikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVk
U3RyaW5nOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYp
ICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAgICAgICAgICAgIFtd
KGNvbnN0IGF1dG8mKSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFVu
a25vd247IH0KKyAgICAgICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4o
dmFsdWUpKTsKICAgICB9CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1M
aXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgbV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAg
RGF0YVVuaW9uKCkKLSAgICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAg
ICAgICAgfQotCi0gICAgICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFu
Z2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9y
KiBjb2xvcjsKLSAgICAgICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGlu
dGVnZXI7Ci0gICAgICAgIHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVn
ZXI7Ci0gICAgICAgIFNWR0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExp
c3RWYWx1ZXMqIGxlbmd0aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNW
R051bWJlckxpc3RWYWx1ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+KiBudW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0q
IHBhdGg7Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3Bl
Y3RSYXRpbzsKLSAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAg
IEZsb2F0UmVjdCogcmVjdDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVm
UHRyPFNWR1ZhbHVlPiB2YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCmluZGV4IDc0ZTlh
YTgyMDA0NTY0MDE4NGM4YTRhMzZiZTVjYjQ3OTYyOTMzZDUuLmExZWM0MzdiN2FkOTkzNGY0Zjhm
Y2VmMmIwNDAzYzdmZTAzZTQzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFR5cGVBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGVBbmltYXRvci5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS0yMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjMsMjggKzY0LDMyIEBAIHByb3RlY3RlZDoK
IAogICAgIC8vIEhlbHBlcnMgZm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gc2luZ2xlIHR5
cGVzLCBlZy4ganVzdCBvbmUgU1ZHQW5pbWF0ZWRJbnRlZ2VyLgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEFuaW1WYWxUeXBlPgotICAgIHN0ZDo6dW5pcXVlX3B0cjx0eXBlbmFtZSBBbmltVmFsVHlw
ZTo6Q29udGVudFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMSk7Ci0gICAgICAgIGNvbnN0
IHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlID0gY2FzdEFu
aW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29uc3Qg
QW5pbVZhbFR5cGUqIGFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwor
ICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlLT5pc0FuaW1hdGluZygpKSB7CisgICAgICAgICAgICBS
ZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUtPmN1cnJlbnRBbmlt
YXRlZFZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUo
V1RGTW92ZShhbmltYXRlZFZhbHVlKSk7CisgICAgICAgIH0KIAotICAgICAgICBhdXRvIGNvcHkg
PSBzdGQ6Om1ha2VfdW5pcXVlPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4oYW5p
bWF0ZWRUeXBlKTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmlt
YXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGNvcHkuZ2V0KCkpOwotICAgICAgICByZXR1
cm4gY29weTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gU1ZHVmFs
dWU6OmNyZWF0ZSgqYW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCkpOworICAgICAgICBl
eGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRU
eXBlcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShXVEZNb3ZlKGFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVk
VHlwZSYgdHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiAoU1ZHQW5pbWF0
ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllcy5zaXplKCkgPT0gMSk7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUp
OwotICAgICAgICBhdXRvKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwot
ICAgICAgICBwcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0KLSAgICAg
ICAgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGVWYWx1ZSA9
ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlID0gcHJvcGVydHkt
PmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgQW5pbVZhbFR5cGUqIGFuaW1hdGVkVHlwZSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5
cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOworICAgICAgICBhbmltYXRlZFR5cGUtPnN5bmNo
cm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZh
bFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRU
eXBlVmFsdWUpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGJhc2VWYWx1ZSA9IGFuaW1hdGVk
VHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGFuaW1h
dGVkVmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUg
QW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJj4oKmFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8
dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJj4oKmJhc2VWYWx1ZSk7CisgICAgICAg
IGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRl
ZFR5cGVzLCAwLCBhbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBbmltVmFsVHlwZT4KQEAgLTExMCwzNCArMTE1LDQ1IEBAIHByb3RlY3RlZDoKIAogICAgIC8v
IEhlbHBlcnMgZm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gcGFpciB0eXBlcywgZWcuIGEg
cGFpciBvZiBTVkdBbmltYXRlZEludGVnZXJzLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1W
YWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgotICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6
OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZh
bFR5cGUyOjpDb250ZW50VHlwZT4+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKLSAgICAg
ICAgY29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSYgZmlyc3RUeXBlID0g
Y2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5
cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAg
IGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmIHNlY29uZFR5cGUgPSBj
YXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAg
Y29uc3QgQW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKTsKKyAgICAgICAgY29uc3QgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5
cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1h
dGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7CisKKyAgICAgICAgaWYgKGZpcnN0QW5p
bWF0ZWRUeXBlLT5pc0FuaW1hdGluZygpICYmIHNlY29uZEFuaW1hdGVkVHlwZS0+aXNBbmltYXRp
bmcoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUg
PSBmaXJzdEFuaW1hdGVkVHlwZS0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAg
IFJlZlB0cjxTVkdWYWx1ZT4gc2Vjb25kQW5pbWF0ZWRWYWx1ZSA9IHNlY29uZEFuaW1hdGVkVHlw
ZS0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZpcnN0QW5pbWF0ZWRWYWx1ZSksIFdURk1vdmUoc2Vjb25k
QW5pbWF0ZWRWYWx1ZSkpOworICAgICAgICB9CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjpt
YWtlX3VuaXF1ZTxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwg
dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KGZpcnN0VHlwZSwgc2Vjb25kVHlw
ZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmNvcHktPmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFj
dGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAx
LCAmY29weS0+c2Vjb25kKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxT
VkdWYWx1ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqZmlyc3RBbmlt
YXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4g
c2Vjb25kQW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKnNlY29uZEFuaW1hdGVkVHlw
ZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxU
eXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGZpcnN0QW5pbWF0
ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgc2Vjb25kQW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZpcnN0QW5pbWF0ZWRW
YWx1ZSksIFdURk1vdmUoc2Vjb25kQW5pbWF0ZWRWYWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgotICAgIHZv
aWQgcmVzZXRGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSwgc3RkOjpwYWlyPHR5cGVu
YW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29u
dGVudFR5cGU+JiAoU1ZHQW5pbWF0ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVzZXRG
cm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChh
bmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDIpOwogICAgICAgICBBU1NFUlQo
dHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogZmlyc3RQcm9wZXJ0eSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICAgICAgYXV0byogc2Vjb25kUHJvcGVydHkg
PSAgY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRl
ZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOwotICAgICAgICBmaXJzdFByb3BlcnR5LT5z
eW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLSAgICAgICAgc2Vjb25kUHJvcGVydHktPnN5
bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotCi0gICAgICAgIHN0ZDo6cGFpcjx0eXBlbmFt
ZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRl
bnRUeXBlPiYgYW5pbWF0ZWRUeXBlVmFsdWUgPSAodHlwZS4qZ2V0dGVyKSgpOwotICAgICAgICBh
bmltYXRlZFR5cGVWYWx1ZS5maXJzdCA9IGZpcnN0UHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUo
KTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kID0gc2Vjb25kUHJvcGVydHktPmN1
cnJlbnRCYXNlVmFsdWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4o
U3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5cGVWYWx1
ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJmFuaW1hdGVkVHlwZVZhbHVlLnNlY29uZCk7
CisgICAgICAgIEFuaW1WYWxUeXBlMSogZmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1swXS5nZXQoKSk7CisgICAgICAgIEFuaW1WYWxUeXBlMiogc2Vjb25kQW5pbWF0ZWRUeXBl
ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRl
ZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOworICAgICAgICBmaXJzdEFuaW1hdGVkVHlw
ZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CisgICAgICAgIHNlY29uZEFuaW1hdGVk
VHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CisKKyAgICAgICAgUmVmUHRyPFNW
R1ZhbHVlPiBmaXJzdEJhc2VWYWx1ZSA9IGZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZh
bHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0gdHlw
ZS52YWx1ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6
Q29udGVudFR5cGUmPigqZmlyc3RBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1l
IEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmPigqZmlyc3RCYXNlVmFsdWUpOworICAgICAgICBl
eGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
VHlwZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1ZSk7CisKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVl
PiBzZWNvbmRCYXNlVmFsdWUgPSBzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUo
KTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBzZWNvbmRBbmltYXRlZFZhbHVlID0gdHlwZS52
YWx1ZXNbMV07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29u
dGVudFR5cGUmPigqc2Vjb25kQW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0eXBlbmFtZSBB
bmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJj4oKnNlY29uZEJhc2VWYWx1ZSk7CisgICAgICAgIGV4
ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRU
eXBlcywgMSwgc2Vjb25kQW5pbWF0ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xOTAsMzMgKzIw
NiwzMyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFs
VHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCB1bnNpZ25l
ZCB3aGljaFByb3BlcnR5LCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUqIHR5cGUg
PSAwKQorICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2lnbmVk
IHdoaWNoUHJvcGVydHksIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHIp
CiAgICAgewogICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgdXNlIFNWR0VsZW1lbnQ6Okluc3RhbmNl
VXBkYXRlQmxvY2tlciBiZWNhdXNlIG9mIGNpcmN1bGFyIGhlYWRlciBkZXBlbmRlbmN5LiBXb3Vs
ZCBiZSBuaWNlIHRvIHVudGFuZ2xlIHRoaXMuCiAgICAgICAgIHNldEluc3RhbmNlVXBkYXRlc0Js
b2NrZWQoKmFuaW1hdGVkVHlwZXNbMF0uZWxlbWVudCwgdHJ1ZSk7CiAKICAgICAgICAgZm9yIChh
dXRvJiBhbmltYXRlZFR5cGUgOiBhbmltYXRlZFR5cGVzKSB7CiAgICAgICAgICAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih3aGljaFByb3BlcnR5IDwgYW5pbWF0ZWRUeXBlLnBy
b3BlcnRpZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBwcm9wZXJ0eSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUu
cHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7CisgICAgICAgICAgICBBbmltVmFsVHlw
ZSogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFu
aW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7
CiAKICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgICAgICAgICBjYXNlIFN0YXJ0
QW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCh0eXBlKTsKLSAgICAgICAg
ICAgICAgICBpZiAoIXByb3BlcnR5LT5pc0FuaW1hdGluZygpKQotICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZCh0eXBlKTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbmltYXRlZFByb3BlcnR5
LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5h
bmltYXRpb25TdGFydGVkKGFuaW1hdGVkVmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBTdG9wQW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAgIEFT
U0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LT5pc0FuaW1hdGluZygp
KQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uRW5kZWQoKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChh
bmltYXRlZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBhbmlt
YXRlZFByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBBbmltVmFsV2lsbENoYW5nZUFjdGlvbjoKLSAgICAgICAgICAgICAg
ICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltVmFsV2lsbENo
YW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAg
ICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbFdpbGxDaGFuZ2UoKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQW5pbVZhbERpZENoYW5nZUFjdGlvbjoK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5
LT5hbmltVmFsRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZh
bHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsRGlkQ2hhbmdl
KCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCmluZGV4IGQyMDA2ZjM1NmJlYTk5
NzUwZmU2ZDc5M2RkOGM4MDM2YmE2YjNkMDAuLjJhMzcwMGMzNTcxMWMyZDI2YWUyOGY3ODNmMWU1
NmVhMDdiMjczZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaApA
QCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb25kaXRpb25F
dmVudExpc3RlbmVyOwotY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlOworc3RydWN0IFNWR0FuaW1hdGVk
VHlwZTsKIGNsYXNzIFRpbWVDb250YWluZXI7CiAKIGVudW0gQW5pbWF0aW9uTW9kZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50LmNwcAppbmRleCAzNjRmYWJiMGVlODRjNWNhNjIwYzAzZGMzYmY4NTZiZDdlMzAy
MzhmLi43YTlhMjA1YWVhZDY1Y2IzYjVjNTgyZDgxMjgwMzA5YjgxNzRiOWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uKAog
ICAgIGZ1bmMuYW1wbGl0dWRlID0gYW1wbGl0dWRlKCk7CiAgICAgZnVuYy5leHBvbmVudCA9IGV4
cG9uZW50KCk7CiAgICAgZnVuYy5vZmZzZXQgPSBvZmZzZXQoKTsKLSAgICBmdW5jLnRhYmxlVmFs
dWVzID0gdGFibGVWYWx1ZXMoKTsKKyAgICBmdW5jLnRhYmxlVmFsdWVzID0gdGFibGVWYWx1ZXMo
KS5wcm9wZXJ0aWVzKCk7CiAgICAgcmV0dXJuIGZ1bmM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDdXJzb3JFbGVtZW50LmNwcAppbmRleCA1NTAyZDUxMjE2N2E5ZmM1ZjVhZjlkOTI5ZTYwYTk4
Njk3OTMxMWM1Li40MGM0NjhjYjgyNDA3ZGNhNmYwNDc0NzYzZTdiZWM5ZjBlOTM2ZTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCkBAIC00Niw4ICs0Niw4IEBAIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdDdXJzb3JFbGVtZW50
OjpTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBt
X3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBt
X3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6Y3Vyc29yVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdDdXJz
b3JFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAppbmRl
eCA5NmVjNmE1MGUwZmRkM2JhNjJjZDdhZmM4ODdmMDcwMDY0MjhlN2M3Li5iZjY0ZTZiZTJjYmQ4
NDFjOTY1YjdhOGVkYTk0YTNjNDk3M2E2M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRWxsaXBzZUVsZW1lbnQ6OlNWR0VsbGlwc2VFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3Ro
TW9kZVdpZHRoKQotICAgICwgbV9jeShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9yeChMZW5n
dGhNb2RlV2lkdGgpCi0gICAgLCBtX3J5KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX2N4KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2N5KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV9yeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
V2lkdGgpKQorICAgICwgbV9yeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZWxsaXBzZVRhZykpOwogICAgIHJlZ2lz
dGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRWxsaXBzZUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDg5MTEwYTk5NjZm
NjlmMDg5YWFhNDYyY2FkNzM4YjY2ZDViNmQwZGEuLjdiMGNkY2Q2OWQ1NDE3MzQ5YzQzYjM5N2I1
ODViZDY3YjhjNjY2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmNwcApAQCAtODMsNyArODMsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbgog
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0dHIpCiAgICAgICAgIHJldHVybiBj
b2xvck1hdHJpeC0+c2V0VHlwZSh0eXBlKCkpOwogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1l
czo6dmFsdWVzQXR0cikKLSAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFs
dWVzKCkpOworICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFZhbHVlcyh2YWx1ZXMoKS5w
cm9wZXJ0aWVzKCkpOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVl
cyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS5wcm9wZXJ0aWVz
KCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBmaWx0ZXJWYWx1ZXMuc2l6ZSgpOwogCiAgICAg
ICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYICYmIHNpemUg
IT0gMjApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcAppbmRleCBiYzE3ZjdlOTJlZDc0ODdjNjI3MDFmNmZkZjEyYjhkYWUyNGRhZTQwLi5l
ZjY3OGI5ZmFmNTg2Y2M3MzI4MmRkZTM4ZTlkNDBhYTYxMmM0MWVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKQEAgLTI4MiwxMiAr
MjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmICghaGFzQXR0cmlidXRlKFNWR05hbWVzOjpkaXZpc29yQXR0cikpIHsKICAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrZXJuZWxNYXRyaXhTaXplOyArK2kpCi0gICAgICAgICAg
ICBkaXZpc29yVmFsdWUgKz0ga2VybmVsTWF0cml4LmF0KGkpOworICAgICAgICAgICAgZGl2aXNv
clZhbHVlICs9IGtlcm5lbE1hdHJpeC5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBpZiAoIWRpdmlz
b3JWYWx1ZSkKICAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSA9IDE7CiAgICAgfQogCi0gICAgYXV0
byBlZmZlY3QgPSBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoZmlsdGVyLCBJbnRTaXplKG9yZGVy
WFZhbHVlLCBvcmRlcllWYWx1ZSksIGRpdmlzb3JWYWx1ZSwgYmlhcygpLCBJbnRQb2ludCh0YXJn
ZXRYVmFsdWUsIHRhcmdldFlWYWx1ZSksIGVkZ2VNb2RlKCksIEZsb2F0UG9pbnQoa2VybmVsVW5p
dExlbmd0aFhWYWx1ZSwga2VybmVsVW5pdExlbmd0aFlWYWx1ZSksIHByZXNlcnZlQWxwaGEoKSwg
a2VybmVsTWF0cml4KTsKKyAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0
ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVl
LCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUo
KSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZh
bHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgucHJvcGVydGllcygpKTsKICAgICBl
ZmZlY3QtPmlucHV0RWZmZWN0cygpLmFwcGVuZChpbnB1dDEpOwogICAgIHJldHVybiBXVEZNb3Zl
KGVmZmVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXgg
NzhiOGMxMmEwMzBjZmE2OTU2YmE3NTJiNWRjZDM0MDE0YzRkMjY3MS4uMWQ4ZTdlYmVhNjYxZjMx
Yzk3OTdkZGI3NDQ1MmVhZTQwZWQ5M2I2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpT
VkdGaWx0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50CiAg
ICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9maWx0ZXJVbml0cyhT
VkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX3By
aW1pdGl2ZVVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkK
LSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICItMTAlIikKLSAgICAsIG1feShMZW5ndGhNb2Rl
SGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKQot
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKQorICAgICwgbV94KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4
L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1
ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hl
aWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZh
bHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKaW5kZXgg
MzJiZmViYmRjYjJkMzMyYzhkOWM2Yzg3NTA3MGQxZGY3YjQxMmFiZC4uMGM1YzBmZGRmZWE3ODE0
YzliYmMxNDRiZGEzYjFlZDc2MDhmMTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTUx
LDEwICs1MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0
aE1vZGVXaWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKQotICAg
ICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0
aE1vZGVIZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
V2lkdGgsICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQs
ICIwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIx
MDAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAi
MTAwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVj
aWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lmaWVk
LgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVj
aWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZp
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApp
bmRleCBlMWE4NDE5Mzg5MjcxNTIwZjc2MWI2M2IxOTZjNmU2ZDFhNDhlN2JmLi5jZWE3MmVlNjFl
NzhmZjk4OTMyNmRhMDE1YzZmOThkZjI2NjQxMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTUzLDEwICs1MywxMCBAQCBFTkRfUkVH
SVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQ6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9k
ZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQo
TGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwg
bV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJv
cGVydGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IDQyOGFmODBkMmY4MTBlN2MzMjZhNDY5MDFkMmFkMzMxN2Q2
MjZiMjQuLjIxZmZjZjVmYTA0NTE3ODM4Mzg2Yjk0YjY4YzJkYzg1OGU0MjcwYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ltYWdlRWxlbWVudDo6U1ZH
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAs
IG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAs
IG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdo
dCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVyKCp0aGlzKQogewogICAgIHJl
Z2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVtZW50KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmgKaW5kZXggY2M4OTExMDY1ODgyNjIzOWE0MjM2YWZkNDYxOTI2MWRmNDNlZDM4YS4u
MDhmMDE4NjZiNjc5ZmZlMmY5NDEzNzZlNzI3NGI4NTVjYWU4YjZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGguaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBF
X1BDID0gTGVuZ3RoVHlwZVBDCiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0
aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xl
LCB2YWx1ZSkpOwogICAgIH0KQEAgLTU3LDExICs1Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRp
YWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChp
bml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMg
RXhjZXB0aW9uT3I8UmVmPFNWR0xlbmd0aD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRp
YWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkp
CkBAIC03MSwxMiArNjYsMTIgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgdW5pdFR5
cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudW5pdFR5cGUo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS51bml0VHlwZSgpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPGZsb2F0PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29u
dGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5
KCkudmFsdWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZs
b2F0IHZhbHVlKQpAQCAtODQsNyArNzksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0VmFsdWUodmFsdWUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwor
ICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZSh2YWx1ZSwgU1ZH
TGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAg
LTk0LDcgKzg5LDcgQEAgcHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUlu
U3BlY2lmaWVkVW5pdHMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1
ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtMTAyLDcg
Kzk3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlSW5TcGVjaWZp
ZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMTAsNyArMTA1LDcgQEAgcHVibGlj
OgogICAgIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUHJvcGVydHkoKS52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0VmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMTE4LDcgKzEx
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
KTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWVBc1N0cmlu
Zyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEzMSw3ICsxMjYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCku
bmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgIApAQCAtMTQ0LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4
dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9w
ZXJ0eSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCBTVkdMZW5ndGhDb250ZXh0
IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTUzLDcgKzE0OCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5n
dGhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KCZh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTYyLDExICsx
NTcsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhW
YWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdMZW5n
dGgoY29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgK
aW5kZXggOWFiYWE0ZmZlODM3YThhMzk4NDlmN2ViYTEzOGEwMWIzZmI2YmYwMS4uMTNkMDA1MTU0
NTFjYTM1ZjMzNjJlYmYxNWIwMDVhMzQ5ZjQ1NGYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
TGlzdC5oCkBAIC0zNiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5n
dGhMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdM
ZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHTGVuZ3RoTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBw
ZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aExpc3QoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2
YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAKaW5kZXggYmEyMDY0ODIzYTI4MzIxYTczYWU1NGM2MDM3OWU1Y2Y5
MmIxYjM0My4uZmFhZGY3Mzk1YmI1YmI4MDM2MDIxZGZkYWE3NzhhNzYwMzIyMzEzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcApAQCAtMjIsNiArMjIsNyBA
QAogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIKIAogI2luY2x1ZGUgIlNWR1BhcnNl
clV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Nyw3IEBA
IHZvaWQgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZH
TGVuZ3RoTW9kZSBtb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAobGVuZ3Ro
LnNldFZhbHVlQXNTdHJpbmcodmFsdWVTdHJpbmcpLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8U1ZHTGVuZ3RoVmFsdWU+KGxlbmd0aCkpOwogICAgICAgICBza2lwT3B0aW9u
YWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCk7CiAgICAgfQogfQpAQCAtNjAsNyArNjEs
NyBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAg
ICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAogICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuaAppbmRleCBmZGM4MzlmYzEwZGVlOTdjMjAxZTM1ZTRjODc0NjUwMDVhYmJlNjhj
Li5mZGZkNmRjMWE4ZjhiMmYwOWQ5MGU2MjAxYTY3OTNmOGJkNmM0NWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMjYgKzIyLDM5IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7CiBjbGFzcyBTVkdMZW5ndGhMaXN0OwogCi1jbGFz
cyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTVkdMZW5ndGhWYWx1
ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFs
dWVzPFNWR0xlbmd0aFZhbHVlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJp
bmcmIHZhbHVlLCBTVkdMZW5ndGhNb2RlKTsKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNv
bnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xl
bmd0aExpc3RWYWx1ZXM+IHsKKyAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiAgeyB9OyB9CisgICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMg
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhNb2Rl
KQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0
LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0K
KyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhMaXN0VmFsdWVzPiBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3Ry
aW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRl
KGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKyAgICBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxp
c3QudmFsdWVBc1N0cmluZygpOyB9CisgICAgCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gU1ZH
TGVuZ3RoVmFsdWU7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTGVuZ3RoOwogICAg
IHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdMZW5ndGhMaXN0OwotCi0gICAgc3RhdGlj
IFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gIHsgfTsgfQotICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgKaW5kZXggY2M0YWFkZTIyMmFjZjRm
ZjY0ZDBlNDc4YzE5ZTY2ZjFjYTg2M2NkYi4uZjg0YmYwM2I2NjdmODI5NGU3ODI3OTAxMzk4OTRh
Yzg2YWRjMmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgKQEAgLTE0Nyw3ICsx
NDcsMTMgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTGVuZ3RoVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHTGVuZ3RoVmFsdWUgaW5pdGlhbFZhbHVl
KCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdM
ZW5ndGhWYWx1ZSYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhWYWx1ZT4gcGFyc2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZH
TGVuZ3RoVmFsdWUgbGVuZ3RoOworICAgICAgICBsZW5ndGguc2V0VmFsdWVBc1N0cmluZyhzdHJp
bmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUo
YXR0ck5hbWUpKS5oYXNFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9
CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3Ro
KSB7IHJldHVybiBsZW5ndGgudmFsdWVBc1N0cmluZygpOyB9CiB9OwogCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5k
ZXggZTNmOTc5NTk4ODRiNDk0OThhZjQxYzJlODUxZTVmNmJmOWQxMmQwYy4uYjE3NzIyYzdiYTVm
YTAwMzNiZmNiZTAyNWFhODU5ZGYzZmI5YzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTUxLDEwICs1MSwxMCBAQCBFTkRfUkVH
SVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQotICAgICwgbV94MShMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kxKExlbmd0
aE1vZGVIZWlnaHQpCi0gICAgLCBtX3gyKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAgICwg
bV95MihMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgpKQorICAgICwgbV95MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkK
KyAgICAsIG1feDIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAg
ICwgbV95MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAvLyBTcGVj
OiBJZiB0aGUgeDIgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMg
aWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRpZW50VGFnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZh
bHVlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2EzZjZkYzI5ZGFiYmE3ZGVjNzdjNzY3NzhlYjJmZGVhNzRj
YTU1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVz
LmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cit2b2lkIFNWR0xpc3RWYWx1ZXM8UHJvcGVy
dHlUeXBlPjo6cmVzaXplKHNpemVfdCBuZXdTaXplKQoreworICAgIHNpemVfdCBpbmRleCA9IHNp
emUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj46OnJlc2l6ZShuZXdTaXplKTsKKyAg
ICBmb3IgKDsgaW5kZXggPCBuZXdTaXplOyArK2luZGV4KQorICAgICAgICBhdChpbmRleCkgPSBT
VkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK1ZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFBy
b3BlcnR5VHlwZT46OmRlZXBDb3B5KCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4gdmFsdWVzOworICAgIGZvciAoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUgOiAq
dGhpcykKKyAgICAgICAgdmFsdWVzLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlKCp2YWx1ZSkpOwor
ICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIGV4cGxpY2l0IGlu
c3RhbnRpYXRpb24uCit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+OjpyZXNpemUo
c2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6cmVzaXpl
KHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+Ojpy
ZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1W
YWx1ZT46OnJlc2l6ZShzaXplX3QpOworCit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gU1ZHTGlzdFZhbHVlczxmbG9hdD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0
b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OmRlZXBD
b3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZh
bHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGlzdFZhbHVlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYzVjNzAwODcyODgxNjkzOTYzNWY4ZWRl
ZjEzMmE2MGUxYmJiZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGlzdFZhbHVlcy5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFNWR1ZhbHVlOworICAgIAor
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHTGlzdFZhbHVlcyA6IHB1
YmxpYyBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4geworcHVibGljOgorICAgIFNWR0xpc3RWYWx1
ZXMoKSA9IGRlZmF1bHQ7CisKKyAgICBTVkdMaXN0VmFsdWVzKGNvbnN0IFNWR0xpc3RWYWx1ZXMm
IG90aGVyKQorICAgICAgICA6IFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PihvdGhlci5kZWVwQ29w
eSgpKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHJlc2l6ZShzaXplX3QpOworICAgIFZlY3Rv
cjxSZWZQdHI8U1ZHVmFsdWU+PiBkZWVwQ29weSgpIGNvbnN0OworCisgICAgY29uc3QgUHJvcGVy
dHlUeXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5QXQoc2l6ZV90IGluZGV4KSB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigq
YXQoaW5kZXgpKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBmaXJzdFByb3BlcnR5KCkg
Y29uc3QgeyByZXR1cm4gcHJvcGVydHlBdCgwKTsgfQorICAgIFByb3BlcnR5VHlwZSYgZmlyc3RQ
cm9wZXJ0eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoMCk7IH0KKworICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgbGFzdFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlBdChzaXplKCkgLSAx
KTsgfQorICAgIFByb3BlcnR5VHlwZSYgbGFzdFByb3BlcnR5KCkgeyByZXR1cm4gcHJvcGVydHlB
dChzaXplKCkgLSAxKTsgfQorCisgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllcygp
IGNvbnN0CisgICAgeworICAgICAgICBWZWN0b3I8UHJvcGVydHlUeXBlPiBwcm9wZXJ0aWVzOwor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHZhbHVlIDogKnRoaXMpCisgICAgICAgICAgICBwcm9w
ZXJ0aWVzLmFwcGVuZChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqdmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIHByb3BlcnRpZXM7CisgICAgfQorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCmluZGV4IGM3ZTIwZjFkYThmZWEyNGI1OGY1OTc3YzQ1YmRhNjc4
MmQ5ODY5ZjQuLjI3YWJkZmQ3MTZiZTVkZWVlMjAxYjVhNDFlNWEzZjEyOTU3NmMyMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTcxLDEwICs3MSwxMCBAQCBF
TkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTWFya2VyRWxlbWVu
dDo6U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwg
bV9yZWZYKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcmVmWShMZW5ndGhNb2RlSGVpZ2h0KQot
ICAgICwgbV9tYXJrZXJXaWR0aChMZW5ndGhNb2RlV2lkdGgsICIzIikKLSAgICAsIG1fbWFya2Vy
SGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIzIikgCisgICAgLCBtX3JlZlgoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fcmVmWShTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlSGVpZ2h0KSkKKyAgICAsIG1fbWFya2VyV2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZVdpZHRoLCAiMyIpKQorICAgICwgbV9tYXJrZXJIZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCwgIjMiKSkKICAgICAsIG1fbWFya2VyVW5pdHMoU1ZHTWFya2VyVW5pdHNTdHJv
a2VXaWR0aCkKICAgICAsIG1fb3JpZW50VHlwZShTVkdNYXJrZXJPcmllbnRBbmdsZSkKIHsKQEAg
LTIxMSw3ICsyMTEsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQXV0bygp
CiAKIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShTVkdBbmdsZSYgYW5n
bGUpCiB7Ci0gICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS5wcm9wZXJ0
eVJlZmVyZW5jZSgpKTsKKyAgICBzZXRPcmllbnQoU1ZHTWFya2VyT3JpZW50QW5nbGUsIGFuZ2xl
LnZhbHVlUHJvcGVydHkoKSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXJr
ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQgU1ZHTWFy
a2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJl
dmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3Rh
cnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBh
bHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93
bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykgeworICAg
IGlmIChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVu
dFR5cGUudmFsdWUpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBl
Lm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJ
bmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3Jp
ZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50
VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRB
dXRvU3RhcnRSZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9u
aXplKCZvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwg
YXV0b1N0YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI1OSwxMSArMjU5LDExIEBAIFNWR01h
cmtlck9yaWVudFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUoKSBjb25zdAogewog
ICAgIGlmIChhdXRvIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVy
PFVzZU93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4odGhpcywgb3JpZW50VHlwZVBy
b3BlcnR5SW5mbygpKSkgewogICAgICAgICBpZiAod3JhcHBlci0+aXNBbmltYXRpbmcoKSkgewot
ICAgICAgICAgICAgQVNTRVJUKHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkgPCBTVkdN
YXJrZXJPcmllbnRNYXgpOwotICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U1ZH
TWFya2VyT3JpZW50VHlwZSY+KHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOworICAg
ICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqd3JhcHBl
ci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSkgPCBTVkdNYXJrZXJPcmllbnRNYXgpOworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqd3JhcHBlci0+
Y3VycmVudEFuaW1hdGVkVmFsdWUoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIG1f
b3JpZW50VHlwZS52YWx1ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50
VHlwZSY+KCptX29yaWVudFR5cGUudmFsdWUpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvblByb3BlcnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gU1ZHTWFya2VyRWxlbWVu
dDo6b3JpZW50VHlwZUFuaW1hdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CmluZGV4IGM3NTdkMWQ5MmI0MDgyNTk0MGMzOTkyYjAyYTEwNzRiZTEwZTE0MzEuLmMwNzYzZTUy
ZWFiZDIyNjIzZjU0ZGFlZTM3OGUwMjMyNWVhZGIxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaApAQCAtMjksNzUgKzI5LDEwIEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJT
VkdGaXRUb1ZpZXdCb3guaCIKKyNpbmNsdWRlICJTVkdNYXJrZXJUeXBlcy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWVudW0gU1ZHTWFya2VyVW5pdHNUeXBlIHsKLSAgICBTVkdNYXJrZXJV
bml0c1Vua25vd24gPSAwLAotICAgIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2UsCi0gICAg
U1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aAotfTsKLQotZW51bSBTVkdNYXJrZXJPcmllbnRUeXBl
IHsKLSAgICBTVkdNYXJrZXJPcmllbnRVbmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJPcmllbnRB
dXRvLAotICAgIFNWR01hcmtlck9yaWVudEFuZ2xlLAotICAgIFNWR01hcmtlck9yaWVudEF1dG9T
dGFydFJldmVyc2UsCi0KLSAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgotICAg
IFNWR01hcmtlck9yaWVudE1heAotfTsKLQotdGVtcGxhdGU8Pgotc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0
RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsgfQotCi0gICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhTVkdNYXJrZXJVbml0c1R5cGUgdHlwZSkKLSAgICB7Ci0g
ICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVW5rbm93
bjoKLSAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgICAgICBjYXNlIFNWR01h
cmtlclVuaXRzVXNlclNwYWNlT25Vc2U6Ci0gICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJ1c2VyU3BhY2VPblVzZSIpOwotICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg6Ci0gICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdHJva2VXaWR0aCIpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwotICAgIH0KLQotICAgIHN0YXRpYyBTVkdNYXJrZXJVbml0c1R5cGUgZnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlID09
ICJ1c2VyU3BhY2VPblVzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVc2Vy
U3BhY2VPblVzZTsKLSAgICAgICAgaWYgKHZhbHVlID09ICJzdHJva2VXaWR0aCIpCi0gICAgICAg
ICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsKLSAgICAgICAgcmV0dXJuIFNW
R01hcmtlclVuaXRzVW5rbm93bjsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+Ci1pbmxpbmUgdW5z
aWduZWQgU1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9z
ZWRFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsgfQotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7Ci0gICAg
c3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmll
bnRBdXRvU3RhcnRSZXZlcnNlOyB9Ci0KLSAgICAvLyB0b1N0cmluZyBpcyBub3QgbmVlZGVkLCBz
eW5jaHJvbml6ZU9yaWVudFR5cGUoKSBoYW5kbGVzIHRoaXMgb24gaXRzIG93bi4KLQotICAgIHN0
YXRpYyBTVkdNYXJrZXJPcmllbnRUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSwg
U1ZHQW5nbGVWYWx1ZSYgYW5nbGUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8i
KQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG87Ci0gICAgICAgIGlmICh2
YWx1ZSA9PSAiYXV0by1zdGFydC1yZXZlcnNlIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJr
ZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOwotICAgICAgICBhdXRvIHNldFZhbHVlUmVzdWx0ID0g
YW5nbGUuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgIGlmIChzZXRWYWx1ZVJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRVbmtu
b3duOwotICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7Ci0gICAgfQotfTsKLQog
Y2xhc3MgU1ZHTWFya2VyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdC
b3ggewpAQCAtMTY0LDggKzk5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHN5bmNocm9u
aXplT3JpZW50VHlwZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgc3RhdGljIFJl
ZjxTVkdBbmltYXRlZFByb3BlcnR5PiBsb29rdXBPckNyZWF0ZU9yaWVudFR5cGVXcmFwcGVyKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKICAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmll
bnRUeXBlKCkgY29uc3Q7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50VHlwZS52YWx1ZTsgfQotICAgIHZvaWQgc2V0
T3JpZW50VHlwZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG1f
b3JpZW50VHlwZS52YWx1ZSA9IHR5cGU7IH0KKyAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmll
bnRUeXBlQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3Jp
ZW50VHlwZSY+KCptX29yaWVudFR5cGUudmFsdWUpOyB9CisgICAgdm9pZCBzZXRPcmllbnRUeXBl
QmFzZVZhbHVlKGNvbnN0IFNWR01hcmtlck9yaWVudFR5cGUmIHR5cGUpIHsgb3JpZW50VHlwZUJh
c2VWYWx1ZSgpID0gdHlwZTsgfQogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBvcmllbnRUeXBlQW5pbWF0ZWQoKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlMDVk
OGIyZDdhOTQ3YjA2NzcwYjg2MjdmZDU5NzI4ZWViODM2ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJUeXBlcy5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIFNWR01hcmtlclVuaXRzVHlwZSB7CisgICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0g
MCwKKyAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlLAorICAgIFNWR01hcmtlclVuaXRz
U3Ryb2tlV2lkdGgKK307CisKK2VudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7CisgICAgU1ZHTWFy
a2VyT3JpZW50VW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0bywKKyAgICBTVkdN
YXJrZXJPcmllbnRBbmdsZSwKKyAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAor
ICAgIAorICAgIC8vIEFkZCBuZXcgZWxlbWVudHMgYmVmb3JlIGhlcmUuCisgICAgU1ZHTWFya2Vy
T3JpZW50TWF4Cit9OworICAgIAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR01hcmtlclVuaXRzVHlwZT4geworICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZh
bHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsgfQorICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5cGUpCisgICAgeworICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246CisgICAg
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0
c1VzZXJTcGFjZU9uVXNlOgorICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNw
YWNlT25Vc2UiKTsKKyAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgorICAg
ICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOworICAgIH0KKyAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAi
dXNlclNwYWNlT25Vc2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNw
YWNlT25Vc2U7CisgICAgICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQorICAgICAgICAg
ICAgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7CisgICAgICAgIHJldHVybiBTVkdN
YXJrZXJVbml0c1Vua25vd247CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQg
aGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVy
c2U7IH0KKyAgICBzdGF0aWMgU1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFuZ2xlKQorICAgIHsKKyAgICAgICAgaWYgKHZh
bHVlID09ICJhdXRvIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwor
ICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCisgICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsKKyAgICAgICAgYXV0byBzZXRW
YWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBpZiAo
c2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFy
a2VyT3JpZW50VW5rbm93bjsKKyAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBh
aXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PiB7CisgICAgc3RhdGljIHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAg
ICB7CisgICAgICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7CisgICAgICAgIFNWR01hcmtlck9yaWVu
dFR5cGUgb3JpZW50VHlwZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+
Ojpmcm9tU3RyaW5nKHN0cmluZywgYW5nbGUpOworICAgICAgICBpZiAob3JpZW50VHlwZSAhPSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgIGFuZ2xlID0geyB9OworICAgICAgICBy
ZXR1cm4gc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPihhbmdsZSwgb3JpZW50VHlw
ZSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8PgoraW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1M
aW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggMGEyOGJjMTk1ZmY2YzRkMGJm
Nzc3MWNiM2U3MDkwNDI4ZjZlMTBlYy4uOWI4ZWZhMjhkZjM3YjcxZmNhYzViYmQxNDE2ZTdlNTM4
ODJiZjkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBAIC02MCwxMCAr
NjAsMTAgQEAgaW5saW5lIFNWR01hc2tFbGVtZW50OjpTVkdNYXNrRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG8KICAgICA6IFNWR0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZ
UEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5
cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVX
aWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAs
IG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhN
b2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdp
ZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQs
ICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwg
IjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQs
ICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNw
ZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNp
ZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3Bl
Y2lmaWVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCmluZGV4IGUyNGFkYWQzYzgyZjM4Y2VkMGMyMTgx
MGM3NjZjYmE2ZWRkNmYxNWMuLmFhOGEyYmEwOTA0MGQ4M2JjNDE4NzBlMzczZjdmOTM0NjU3MTYw
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogLy8gRklYTUU6IFJlbW92ZSB0aGlzIGNsYXNzIG9uY2UgU1ZHTWF0cml4IGJlY29t
ZXMgYW4gYWxpYXMgdG8gRE9NTWF0cml4LgogY2xhc3MgU1ZHTWF0cml4IDogcHVibGljIFNWR1By
b3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U1ZHTWF0cml4PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgog
CiAgICAgZG91YmxlIGEoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNl
KCkuYSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmEoKTsKICAgICB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBKGRvdWJsZSB2YWx1ZSkKQEAgLTY1LDcgKzY1LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRBKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEEo
dmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpA
QCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYigpCiAgICAgewotICAgICAg
ICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5iKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkuYigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEIoZG91Ymxl
IHZhbHVlKQpAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEIodmFsdWUpOworICAg
ICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0Qih2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAogICAg
IGRvdWJsZSBjKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmMo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5jKCk7CiAgICAgfQogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0Qyhkb3VibGUgdmFsdWUpCkBAIC05Nyw3ICs5Nyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2V0Qyh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRDKHZhbHVl
KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEw
NSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZCgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5kKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3Bl
cnR5KCkuZCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEQoZG91YmxlIHZh
bHVlKQpAQCAtMTEzLDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0RCh2YWx1ZSk7CisgICAg
ICAgIHZhbHVlUHJvcGVydHkoKS5zZXREKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAKICAg
ICBkb3VibGUgZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5l
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuZSgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEUoZG91YmxlIHZhbHVlKQpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0RSh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRFKHZh
bHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZigpCiAgICAgewotICAgICAg
ICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5mKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkuZigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEYoZG91Ymxl
IHZhbHVlKQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Rih2YWx1ZSk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRGKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LnByb3BlcnR5UmVmZXJlbmNl
KCkpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5tdWx0aXBseShzZWNv
bmRNYXRyaXgudmFsdWVQcm9wZXJ0eSgpKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAg
ICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0
byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuaW52ZXJzZSgpOwogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAgICAgICAgIApAQCAtMTgwLDcgKzE4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKS50cmFuc2xhdGUoeCwgeSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1
ZVByb3BlcnR5KCkudHJhbnNsYXRlKHgsIHkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAog
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTE5MSw3ICsxOTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAg
ICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNjYWxlKHNjYWxlRmFj
dG9yKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJp
eDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7ICAg
ICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2NhbGVOb25Vbmlm
b3JtKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMTMsNyAr
MjEzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7ICAgICAg
ICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkucm90YXRlKGFuZ2xlKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3Jl
YXRlKHJlc3VsdCk7CkBAIC0yMjQsNyArMjI0LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQg
PSB2YWx1ZVByb3BlcnR5KCkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTIzNyw3ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5
UmVmZXJlbmNlKCkuZmxpcFgoKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVl
UHJvcGVydHkoKS5mbGlwWCgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFkoKTsgICAgICAgIAorICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5mbGlwWSgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
IAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI1OSw3ICsy
NTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAg
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNrZXdYKGFuZ2xlKTsKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRl
KHJlc3VsdCk7CkBAIC0yNzAsMTQgKzI3MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkuc2tld1koYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9w
ZXJ0eSgpLnNrZXdZKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAg
cmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHTWF0cml4VmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAg
ICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCmluZGV4IGUxMmU3Y2NhZWQzMDhjODI4MThm
YmRhYzZkYWQ0NzNjOWFlMjM0NDkuLmM2ZDY0Zjg1MDM1NGQxYTg4OWVhMWJhZTY4ZTUzMDNjYTc5
M2Q0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXIgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2Zm
PGZsb2F0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
ZmxvYXQmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHTnVtYmVyKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpA
QCAtNDEsMTEgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdOdW1iZXIoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1i
ZXI+IGNyZWF0ZShjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTnVtYmVyPj4g
Y3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYg
KGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU1LDcgKzUwLDcgQEAgcHVibGljOgog
CiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVl
KQpAQCAtNjMsMTQgKzU4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkgPSB2YWx1ZTsKKyAgICAgICAgdmFs
dWVQcm9wZXJ0eSgpID0gdmFsdWU7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR051bWJlcihTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxvYXQm
IHZhbHVlKQorICAgIFNWR051bWJlcihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PigmYW5pbWF0ZWRQcm9wZXJ0eSwg
cm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTc5LDExICs3NCw2IEBAIHByaXZhdGU6CiAg
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0Pihpbml0aWFsVmFsdWUpCiAgICAgewog
ICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR051bWJlcihjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVl
KQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlckxpc3QuaAppbmRleCAxZTVjZjhiNWEwYjBhMWNlNjM3YzBiNzc5OGIxNGZhNTllNjE4YWU1
Li5kZjU2YWE5MjNkNWNhZTRiN2E4M2NmMzRmMzIyMTg3ZjRiYWQyN2ExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXJMaXN0LmgKQEAgLTM2LDEzICszNiwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0
aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0VmFs
dWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8
U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTnVtYmVyTGlzdChB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQorICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBT
VkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAppbmRleCA2ZGZkOTkzYjJiNGFkODdiYjBiMGRj
ZjYyNjdmMzIyYjUzMjY1OTg5Li5kNjMzYTZjNjk1MmZiNThjODI4ODM3ZGE3YzcyYTkwZmZlMTgz
YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCkBAIC0z
OSw3ICszOSw3IEBAIHZvaWQgU1ZHTnVtYmVyTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKICAgICB3aGlsZSAocHRyIDwgZW5kKSB7CiAgICAgICAgIGlmICghcGFyc2VOdW1i
ZXIocHRyLCBlbmQsIG51bWJlcikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVu
ZChudW1iZXIpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxmbG9hdD4obnVtYmVy
KSk7CiAgICAgfQogfQogCkBAIC01Miw3ICs1Miw3IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihh
dChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHByb3BlcnR5QXQoaSkpOwogICAg
IH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuaAppbmRleCA3YjRhYzc3ODk3YmQ2MGRhYmJkYmNjYmVkZjliY2Nk
MjhiNWQyMWYzLi45YzNiMjM1YzkzOWNjMjUwMTZlOGJiNWRkYzA2Mjg5MmRlY2Q4NDk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKQEAgLTIwLDI0ICsyMCwzMSBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRl
ICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXI7CiBjbGFzcyBTVkdOdW1iZXJMaXN0Owog
Ci1jbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxmbG9hdD4g
eworY2xhc3MgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVz
PGZsb2F0PiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKICAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OworICAgIAogfTsKIAotdGVtcGxhdGU8PiBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKICAgICBzdGF0
aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAg
ICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBs
aXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0
dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9Ci0KICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBm
bG9hdDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdOdW1iZXI7CiAgICAgdXNpbmcg
TGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR051bWJlckxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXJzZXJVdGlsaXRpZXMuY3BwCmluZGV4IDdlMmQzMTNhMzFiZDIwNTIxNTJlMjJlMzg1YTQ4
Nzk1MDZjNjNmYmQuLmZhNjM1NzkwMjRkOTY5MmEyZWI1OWNjYmYyYWRiYThlYWVlYzk1MmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCkBAIC0yMTksNiArMjE5
LDMxIEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHJpbmcmIHMsIGZs
b2F0JiB4LCBmbG9hdCYgeSkKICAgICByZXR1cm4gY3VyID09IGVuZDsKIH0KIAorYm9vbCBwYXJz
ZVBvaW50KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgaWYgKHMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byB1cGNvbnZlcnRlZENo
YXJhY3RlcnMgPSBTdHJpbmdWaWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOworICAgIGNv
bnN0IFVDaGFyKiBjdXIgPSB1cGNvbnZlcnRlZENoYXJhY3RlcnM7CisgICAgY29uc3QgVUNoYXIq
IGVuZCA9IGN1ciArIHMubGVuZ3RoKCk7CisKKyAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNl
cyhjdXIsIGVuZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZsb2F0IHggPSAwOwor
ICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOwor
CisgICAgLy8gZGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0IHNwYWNlcyBhdCB0aGUgZW5kCisgICAg
cmV0dXJuICFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpOworfQorCiBib29sIHBhcnNl
UmVjdChjb25zdCBTdHJpbmcmIHN0cmluZywgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGF1dG8g
dXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5nVmlldyhzdHJpbmcpLnVwY29udmVydGVkQ2hh
cmFjdGVycygpOwpAQCAtMjY0LDcgKzI4OSw3IEBAIGJvb2wgcG9pbnRzTGlzdEZyb21TVkdEYXRh
KFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRzTGlzdCwgY29uc3QgU3RyaW5nJiBwb2ludHMpCiAg
ICAgICAgIH0KICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKIAotICAg
ICAgICBwb2ludHNMaXN0LmFwcGVuZChGbG9hdFBvaW50KHhQb3MsIHlQb3MpKTsKKyAgICAgICAg
cG9pbnRzTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50PihGbG9hdFBvaW50
KHhQb3MsIHlQb3MpKSk7CiAgICAgfQogICAgIHJldHVybiBjdXIgPT0gZW5kICYmICFkZWxpbVBh
cnNlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAppbmRleCAzMjgz
ODcxNDJlOTZhMWIxZDVhOWY3NmRjOTZkNjk2ODA2ZTNkYjQwLi44M2YyZTg0YjY4NTQ2Yjk4Njgy
OWMwNjliM2IzZWE0MDQ1NzZmYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGFyc2VyVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxp
dGllcy5oCkBAIC00Myw2ICs0Myw3IEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihj
b25zdCBTdHJpbmcmIHMsIGZsb2F0JiBoLCBmbG9hdCYgdik7CiBib29sIHBhcnNlQXJjRmxhZyhj
b25zdCBMQ2hhciomIHB0ciwgY29uc3QgTENoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBib29sIHBh
cnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxh
Zyk7CiBib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmLCBGbG9hdFJlY3QmKTsKK2Jvb2wgcGFy
c2VQb2ludChjb25zdCBTdHJpbmcmLCBGbG9hdFBvaW50Jik7CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBwYXJzZUZsb2F0UG9pbnQoY29uc3QgQ2hhcmFjdGVyVHlw
ZSomIGN1cnJlbnQsIGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgRmxvYXRQb2ludCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAppbmRleCBiMmQ4NTg5MDRlNzYyMTdkZTAx
YWU2ZDIyNzkzZWZlODBiZmFiZTNiLi5kOWQ0ZTQxNTdlMjZhMWI0ZTliMGM0ZDRiMDNlNDljMDMz
ZTI5NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaApAQCAtMTksNiAr
MTksOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIK
KyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMzQgKzQ4LDQyIEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIERhdGE6OmNvbnN0X2l0ZXJhdG9yIERhdGFJdGVyYXRvcjsKIAogICAgIFNWR1BhdGhC
eXRlU3RyZWFtKCkgeyB9Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgRGF0YSYgZGF0YSkg
OiBtX2RhdGEoZGF0YSkgeyB9CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJl
YW0mJiBvdGhlcikKKyAgICAgICAgOiBtX2RhdGEoV1RGTW92ZShvdGhlci5tX2RhdGEpKQorICAg
IHsKKyAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3Ry
ZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpCisgICAgICAgIDogbV9kYXRhKG90aGVyLm1fZGF0YSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOwogICAgIH0KIAotICAgIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0CisgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShTVkdQYXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAg
IHsKKyAgICAgICAgbV9kYXRhID0gV1RGTW92ZShvdGhlci5tX2RhdGEpOworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorICAgIFNWR1BhdGhCeXRlU3RyZWFtJiBvcGVyYXRvcj0oY29uc3Qg
U1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOworICAgICAgICBtX2RhdGEgPSBvdGhlci5tX2RhdGE7CisgICAgICAgIHJldHVy
biAqdGhpczsKICAgICB9CiAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVT
dHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOyB9Cisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNWR1BhdGhCeXRlU3RyZWFtPiBjb3B5KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPihtX2RhdGEpOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKnRoaXMpOwogICAgIH0KIAog
ICAgIERhdGFJdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5iZWdpbigpOyB9
CiAgICAgRGF0YUl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5lbmQoKTsgfQog
CiAgICAgdm9pZCBhcHBlbmQodW5zaWduZWQgY2hhciBieXRlKSB7IG1fZGF0YS5hcHBlbmQoYnl0
ZSk7IH0KLSAgICB2b2lkIGFwcGVuZChjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCi0g
ICAgewotICAgICAgICBmb3IgKGF1dG8gc3RyZWFtIDogb3RoZXIpCi0gICAgICAgICAgICBhcHBl
bmQoc3RyZWFtKTsKLSAgICB9CisgICAgdm9pZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJl
YW0mIG90aGVyKSB7IG1fZGF0YS5hcHBlbmRWZWN0b3Iob3RoZXIubV9kYXRhKTsgfQogICAgIHZv
aWQgY2xlYXIoKSB7IG1fZGF0YS5jbGVhcigpOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gIW1fZGF0YS5zaXplKCk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGEuaXNFbXB0eSgpOyB9CiAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGF0YS5zaXplKCk7IH0KIAogICAgIC8vIE9ubHkgZGVmaW5lZCB0byBsZXQgU1ZHQW5p
bWF0ZWRQYXRoQW5pbWF0b3IgdXNlIHRoZSBzdGFuZGFyZCBsaXN0IGNvZGUgcGF0aHMgLSB0aGlz
IG1ldGhvZCBpcyBuZXZlciBjYWxsZWQuCkBAIC04Miw1ICs5MiwxNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIERhdGEgbV9kYXRhOwogfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT4geworICAgIHN0YXRpYyBTVkdQYXRoQnl0
ZVN0cmVhbSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTVkdQYXRoQnl0ZVN0cmVhbSgpOyB9Cisg
ICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBTVkdQYXRoQnl0ZVN0cmVhbSBieXRlU3RyZWFtOworICAgICAg
ICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJpbmcsIGJ5dGVTdHJlYW0sIFVu
YWx0ZXJlZFBhcnNpbmcpOworICAgICAgICByZXR1cm4gYnl0ZVN0cmVhbTsKKyAgICB9Cit9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAppbmRleCA1NGIxZGI1YjA1YTM0MzM0MTA3MmI4NTA0OTYzMmI0NjE5YjFkYTZjLi41NTljMDA4
MWJhODc3NjU5ZGJiZGE4MjhjMWE1MTQ2Y2JjNTQyMGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFw
aGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhT
ZWdVbmFsdGVyZWRSb2xlKQorICAgICwgbV9wYXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdFZhbHVl
cyhQYXRoU2VnVW5hbHRlcmVkUm9sZSkpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNl
KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7CkBAIC0yNTUs
NyArMjU1LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYgKG1fcGF0aFNlZ0xpc3Quc2hv
dWxkU3luY2hyb25pemUgJiYgIVNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZH
UGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KHRoaXMs
IGRQcm9wZXJ0eUluZm8oKSktPmlzQW5pbWF0aW5nKCkpIHsKICAgICAgICAgICAgIFNWR1BhdGhT
ZWdMaXN0VmFsdWVzIG5ld0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpOwogICAgICAgICAgICAg
YnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG1fcGF0aEJ5dGVTdHJlYW0s
ICp0aGlzLCBuZXdMaXN0LCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICAgICAgICAgIG1fcGF0aFNl
Z0xpc3QudmFsdWUgPSBuZXdMaXN0OworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSkgPSBXVEZNb3ZlKG5ld0xpc3QpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlbmRlcmVyKQpAQCAtMzI3LDggKzMyNyw4IEBAIFJl
ZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVEV3Jh
cHBlcihTVkdFbGVtZW50KiBjb250CiAgICAgaWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmltYXRl
ZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhT
ZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQogICAg
ICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0gICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0
LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21C
eXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVyVHlw
ZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICBpZiAoc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFs
dWUpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRl
U3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIHN0YXRpY19jYXN0
PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKSwg
VW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9v
a3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVyVHlwZSwgZFByb3Bl
cnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBAIC0zMzksNyAr
MzM5LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxT
VkdQYXRoRWxlbWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3Bh
dGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJU
eXBlLm1fcGF0aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygp
LT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3Ry
aW5nKCkpOworICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5
cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLnZhbHVlQXNTdHJp
bmcoKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVE
ZWxldGVkKCkKQEAgLTM5MiwxMCArMzkyLDEwIEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhT
ZWdMaXN0Q2hhbmdlZChTVkdQYXRoU2VnUm9sZSByb2xlLCBMaXN0TW9kaWZpY2F0aW9uIGxpCiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuYWx0ZXJlZFJvbGU6CiAgICAgICAgIGlm
IChsaXN0TW9kaWZpY2F0aW9uID09IExpc3RNb2RpZmljYXRpb25BcHBlbmQpIHsKLSAgICAgICAg
ICAgIEFTU0VSVCghbV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpOwotICAgICAgICAgICAg
YXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhtX3BhdGhTZWdMaXN0LnZhbHVl
Lmxhc3QoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwor
ICAgICAgICAgICAgQVNTRVJUKCFzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpt
X3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpOworICAgICAgICAgICAgYXBwZW5kU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVl
cyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKS5sYXN0UHJvcGVydHkoKS5jb3B5UmVmKCksIG1fcGF0
aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRo
U2VnTGlzdC52YWx1ZSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAg
ICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0
YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLCBt
X3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgbV9jYWNoZWRQYXRo
ID0gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdGhTZWdVbmRlZmlu
ZWRSb2xlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKaW5kZXggZTVjY2M5YzBk
Nzg2NGVhZTY3MTUxOTIwZjJkMDE2Y2VkMzBmNzAyZS4uYzMyZmRmNDY3ODNhYzU4OGVkODRhNjRh
NTQ2YTg4MmMyOTg5ZjNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCkBA
IC0yOCwxNSArMjgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFNWR1BhdGhTZWdM
aXN0OjpjbGVhckNvbnRleHRBbmRSb2xlcygpCiB7Ci0gICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAg
ICBmb3IgKGF1dG8mIGl0ZW0gOiAqbV92YWx1ZXMpCisgICAgZm9yIChhdXRvJiBpdGVtIDogdmFs
dWVzUHJvcGVydHkoKS5wcm9wZXJ0aWVzKCkpCiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhT
ZWdXaXRoQ29udGV4dCo+KGl0ZW0uZ2V0KCkpLT5zZXRDb250ZXh0QW5kUm9sZShudWxscHRyLCBQ
YXRoU2VnVW5kZWZpbmVkUm9sZSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdM
aXN0OjpjbGVhcigpCiB7Ci0gICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMt
PmlzRW1wdHkoKSkKKyAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICBjbGVhckNvbnRleHRBbmRSb2xlcygpOwpAQCAtNTAsOCArNDgs
OCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTZWdMaXN0OjpnZXRJ
dGVtKHVuc2lnbmVkIGluZGV4KQogCiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNW
R1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbShSZWY8U1ZHUGF0aFNlZz4mJiBuZXdJdGVtLCB1bnNp
Z25lZCBpbmRleCkKIHsKLSAgICBpZiAoaW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKSB7Ci0gICAg
ICAgIExpc3RJdGVtVHlwZSByZXBsYWNlZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgpOworICAg
IGlmIChpbmRleCA8IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKSB7CisgICAgICAgIExpc3RJdGVt
VHlwZSByZXBsYWNlZEl0ZW0gPSB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaW5kZXgpOwog
ICAgICAgICBBU1NFUlQocmVwbGFjZWRJdGVtKTsKICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0
aFNlZ1dpdGhDb250ZXh0Kj4ocmVwbGFjZWRJdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUo
bnVsbHB0ciwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmgKaW5kZXggZWQyNmFiZDQyN2UwYzUwNjFhYjczZjc2YTA4ZTFmNTU4OTA5NDk1
OS4uYzNkY2NiYmUwZTg2NjBlMzExMmIxNDBlMDg4YWFmYzVlZjllODZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0LmgKQEAgLTMyLDEyICszMiwxMiBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdFZhbHVlcz46Okxpc3RJdGVtVHlwZTsKIAot
ICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRo
U2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3Jl
YXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGlj
IFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUs
IHZhbHVlcywgd3JhcHBlcnMpKTsKQEAgLTQ1LDExICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIGlu
dCBmaW5kSXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+
c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzaXplID0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisgICAgICAgICAgICBpZiAoaXRlbSA9PSB2
YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7
CiAgICAgICAgIH0KIApAQCAtNTgsMTAgKzU2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1v
dmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdy
YXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUlu
ZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5yZW1v
dmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaXRlbUluZGV4
KTsKIAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwpAQCAtOTMsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhT
ZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBw
YXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RW
YWx1ZXM+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9w
ZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdS
b2xlKQpAQCAtMTE3LDE0ICsxMTQsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkgZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1f
dmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQo
KSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNv
bW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0TW9k
aWZpY2F0aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoTGlzdE1v
ZGlmaWNhdGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5hbAogICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFBy
b3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9kaWZpY2F0aW9uKTsKKyAgICAgICAgdmFs
dWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVs
ZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5j
b21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQq
IGluZGV4VG9Nb2RpZnkpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdMaXN0QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyLmNwcAppbmRleCAxNTU4ZjgwOGE0ZTNmZDBkNWI2N2U1MDg4ZDY4ODg4MmU4MmFk
OTNiLi4yZmMzOGU4MmUzYjQ1ZmMzOGExNzY1YzEyMzZmYjZkNjFhNTI1YTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcApAQCAtNTgsNzggKzU4LDc4
IEBAIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyKFNWR1BhdGhF
bGVtZW50JiBwYXRoRWxlbWVudCwgU1ZHUGF0CiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
bW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBib29sLCBQYXRoQ29vcmRpbmF0
ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdN
b3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2Vn
Um9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJl
ZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVs
KHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQog
CiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQ
b2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9w
YXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGlu
ZVRvSG9yaXpvbnRhbChmbG9hdCB4LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBp
ZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgs
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCh4LCBtX3BhdGhTZWdSb2xl
KSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvVmVydGljYWwoZmxv
YXQgeSwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1
dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVu
dC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoeSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMo
eSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKHksIG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25z
dCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRo
Q29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5h
dGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9p
bnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBl
bHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJl
ZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1
YmljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2
b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljU21vb3RoKGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50MiwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGlu
YXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0g
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdS
b2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBv
aW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyOjpjdXJ2ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxv
YXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlm
IChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50
MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgp
LCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQog
CiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAg
ICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Nt
b290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkp
OworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxT
VkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9s
ZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjphcmNUbyhmbG9hdCByMSwgZmxvYXQgcjIsIGZsb2F0IGFuZ2xl
LCBib29sIGxhcmdlQXJjRmxhZywgYm9vbCBzd2VlcEZsYWcsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdS
b2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVm
UHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxh
Zywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjUmVsKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcs
IHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVu
ZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQXJjUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwg
cjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKIH0K
IAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCgpCiB7Ci0gICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRoKG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRl
PFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ2xvc2VQ
YXRoKG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3RTb3VyY2UuY3BwCmluZGV4IDBjZGQ4YWZlZDY3YjZiMjU1ZjY3OTZiZTMxN2RiMTc2
NTZiMmQwZTEuLmUyZjRiOGVjY2M0NDJlZTJjYzVlNzA2NWU1YTNlZmJmY2VjMTJkNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcApAQCAtNDMsNyArNDMs
NyBAQCBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpoYXNNb3JlRGF0YSgpIGNvbnN0CiAKIGJv
b2wgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWVudFR5cGUoU1ZHUGF0aFNlZ1R5
cGUmIHBhdGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9p
dGVtQ3VycmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5wcm9wZXJ0eUF0KG1f
aXRlbUN1cnJlbnQpOwogICAgIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1R5
cGU+KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0ZW1DdXJyZW50OwogICAg
IHJldHVybiB0cnVlOwpAQCAtNTEsNyArNTEsNyBAQCBib29sIFNWR1BhdGhTZWdMaXN0U291cmNl
OjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2VnVHlwZSkKIAogU1ZH
UGF0aFNlZ1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5kKFNWR1BhdGhTZWdU
eXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9pdGVtQ3VycmVudCk7
CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5wcm9wZXJ0eUF0KG1faXRlbUN1cnJlbnQp
OwogICAgIFNWR1BhdGhTZWdUeXBlIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNl
Z1R5cGU+KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0ZW1DdXJyZW50Owog
ICAgIHJldHVybiBwYXRoU2VnVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
VmFsdWVzLmgKaW5kZXggYjJlZDFkZDVhYTkxNGViZWE3Y2M4N2NjMWRkZGMyZjcxNzNkZTllMi4u
ZjgyZGUwYzVhOTE4NDgzNGQ0ZDUwOTlmYTY1MzdhZDYxMGQ0Nzc5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgKQEAgLTE5LDEwICsxOSw5IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHTGlzdFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHTGlz
dFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0
eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzMsNyArMzIsNyBAQCBjbGFz
cyBTVkdQYXRoU2VnTGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVy
dHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBWZWN0b3I8
UmVmUHRyPFNWR1BhdGhTZWc+PiB7CitjbGFzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1Ymxp
YyBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj4gewogcHVibGljOgogICAgIGV4cGxp
Y2l0IFNWR1BhdGhTZWdMaXN0VmFsdWVzKFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgICAgIDog
bV9yb2xlKHJvbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxp
dGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKaW5kZXgg
Y2U0NjEzYTRlMzNmMjZmN2MyZWRmMjY0ZDc1ZmNkNTJkZWJiMGE1MS4uMTZhMWQ0NDM0Nzg3NzYz
OWE2Njc2ZDIzZjAyMDY5NTU4MmY5NmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRp
bGl0aWVzLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJl
YW1Gcm9tU1ZHUGF0aFNlZyhSZWZQdHI8U1ZHUGF0aFNlZz4mJiBwYXRoU2VnLCBTVkdQYXRoCiAg
ICAgQVNTRVJUKHBhcnNpbmdNb2RlID09IFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXMgYXBwZW5kZWRJdGVtTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7Ci0g
ICAgYXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoV1RGTW92ZShwYXRoU2VnKSk7CisgICAgYXBwZW5k
ZWRJdGVtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KFdU
Rk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtIGFwcGVuZGVkQnl0ZVN0
cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBwZW5kZWRJdGVtTGlzdCk7
CkBAIC0yMDYsMTUgKzIwNiwxNCBAQCBib29sIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVh
bShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgZnJvbVN0cmVhbSwgY29uc3QgUwogCiBib29sIGFk
ZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0cmVhbVRvQXBwZW5kVG8s
IGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBieVN0cmVhbSwgdW5zaWduZWQgcmVwZWF0Q291bnQp
CiB7Ci0gICAgLy8gV2h5IHJldHVybiB3aGVuIHN0cmVhbVRvQXBwZW5kVG8gaXMgZW1wdHk/IERv
bid0IHdlIHN0aWxsIG5lZWQgdG8gYXBwZW5kPworICAgIC8vIFRoZSBieVN0cmVhbSB3aWxsIGJl
IGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0FwcGVuZFRvLiBTbyBzdHJlYW1Ub0FwcGVuZFRvIGhhcyB0
byBoYXZlIGVsZW1lbnRzLgogICAgIGlmIChzdHJlYW1Ub0FwcGVuZFRvLmlzRW1wdHkoKSB8fCBi
eVN0cmVhbS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSXMgaXQg
T0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGZyb20gYSBzdHJlYW0sIGFu
ZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFtPworICAgIC8vIGJ1aWxkZXIgaXMgdGhlIGRlc3RpbmF0
aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3VyY2UgYW5kIGJ5U291cmNlLiBUaGUgc3RyZWFtIG9mIGJ1
aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJlYW1Ub0FwcGVuZFRvKSBoYXMgdG8gYmUgY2xlYXJlZCBi
ZWZvcmUgY2FsbGluZyBhZGRBbmltYXRlZFBhdGguCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1CdWls
ZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBlbmRUbyk7Ci0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSBm
cm9tU3RyZWFtQ29weSA9IHN0cmVhbVRvQXBwZW5kVG87Ci0gICAgc3RyZWFtVG9BcHBlbmRUby5j
bGVhcigpOworICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gV1RGTW92ZShz
dHJlYW1Ub0FwcGVuZFRvKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGZyb21Tb3Vy
Y2UoZnJvbVN0cmVhbUNvcHkpOwogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGJ5U291cmNl
KGJ5U3RyZWFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgKaW5kZXggYjE3Njg2ZThlYzNlOGZiMTI1ZTU3
NTBkM2UxYTc2YjlmNGNhNmI2OC4uMDZiMTc0MWFjMTMzOTFiNTlkNTNmOWE1NGI3ZDZkOTg3NGRj
NTQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8Rmxv
YXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
RmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAg
fQpAQCAtNDMsMTEgKzQzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdQb2ludChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1Bv
aW50PiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQot
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdQb2lu
dD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAg
IGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01Nyw3ICs1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkueCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLngoKTsKICAgICB9CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTY1LDcgKzYwLDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5z
ZXRYKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC03Myw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICByZXR1cm4gdmFs
dWVQcm9wZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRZKGZs
b2F0IHhWYWx1ZSkKQEAgLTgxLDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7
CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05MiwxOSArODcsMTkgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byBuZXdQb2lu
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubWF0cml4VHJhbnNmb3JtKG1hdHJpeC5wcm9wZXJ0eVJl
ZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byBuZXdQb2ludCA9IHZhbHVlUHJvcGVydHkoKS5tYXRy
aXhUcmFuc2Zvcm0obWF0cml4LnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdQb2ludDo6Y3JlYXRlKG5ld1BvaW50KTsKICAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQb2ludChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAg
U1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWUpCiAgICAgewogICAgIH0KIAotICAgIFNWR1BvaW50KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBG
bG9hdFBvaW50JiB2YWx1ZSkKKyAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2Zm
PEZsb2F0UG9pbnQ+KG51bGxwdHIsIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMTMs
MTEgKzEwOCw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8Rmxv
YXRQb2ludD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdQ
b2ludChjb25zdCBGbG9hdFBvaW50KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVy
dHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvaW50TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCmluZGV4IGIw
YzJhMTAzMTFlZjQ1YTFmNjExZDRmYjI5Nzg2NWIwZjU2YTg0MDIuLjAyYzM5ODdlMzQ4ODJlMjhl
ZDI2NGViMzgxMzMzNjRmZDViYmY3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKQEAg
LTM3LDEzICszNywxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdFZhbHVl
cz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBj
cmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50
TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHUG9pbnRMaXN0
KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2lu
dExpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAg
ICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RW
YWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKaW5k
ZXggZDgxZTZhMjM3NmVlMGFiNjgwZDg4ZmEzYjE0MjkxZDc1MjQ3ZmEzOS4uMzUwYWQxYThhZjY0
NzNhMGQ1OTk4ODY1NjIyYzA3MTZkNDA2ZjMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
aW50TGlzdFZhbHVlcy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZh
bHVlczo6dmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7IC8vIEZJWE1FOiBTaG91bGRuJ3Qgd2UgdXNlIGNvbW1h
cyB0byBzZXBlcmF0ZT8KIAotICAgICAgICBjb25zdCBhdXRvJiBwb2ludCA9IGF0KGkpOworICAg
ICAgICBjb25zdCBhdXRvJiBwb2ludCA9IHByb3BlcnR5QXQoaSk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHBvaW50LngoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9pbnRMaXN0VmFsdWVzLmgKaW5kZXggYWJhYjgyMjA0Njc3MGJkYzhlYjc0NWE1YTYwZDAy
MGNlYTY1ZDMzNS4uYmRlZWE2NThiYWI3MTUxM2VjM2Q5NWNjZTJiOTBlMzE4MWVkYzZiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaApAQCAtMjEsMjIgKzIxLDI4IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJTVkdM
aXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9pbnQ7CiBj
bGFzcyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1
YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFs
IDogcHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD4gewogcHVibGljOgogICAgIFN0cmlu
ZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHUG9pbnRM
aXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCisgICAgc3RhdGljIFNW
R1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsK
KyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIHBvaW50c0xpc3RGcm9t
U1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAg
dXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJP
ZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHUG9pbnRM
aXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggOTIyNWRjMGJhNzcz
NDEyNzQyMDg1MmZkNzNjYzlmZDFiNTRjMmEwOC4uNjA4ZWEwMGJmZDJjZDg1YWJkYjI3ZDcyNWU2
MjY1NmVkNTA4YjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgICAgIGlmIChhdXRvIHdy
YXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BvbHlFbGVtZW50
LCBTVkdBbmltYXRlZFBvaW50TGlzdD4odGhpcywgcG9pbnRzUHJvcGVydHlJbmZvKCkpKQogICAg
ICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdBbmltYXRlZFBvaW50TGlzdD4od3JhcHBl
ciktPmRldGFjaExpc3RXcmFwcGVycyhuZXdMaXN0LnNpemUoKSk7CiAKLSAgICAgICAgbV9wb2lu
dHMudmFsdWUgPSBuZXdMaXN0OworICAgICAgICBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqbV9wb2ludHMudmFsdWUpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN5bmNo
cm9uaXplUG9pbnRzKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgIFNWR1BvbHlFbGVt
ZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5RWxlbWVudD4oKmNvbnRleHRFbGVtZW50
KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBl
LCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcG9pbnRz
LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9u
aXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBzdGF0
aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlKS52
YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUG9seUVs
ZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKaW5kZXggYjNlMjRhMjQ3NWU3NDAw
M2ViZDIwMjc2ZWE5YWY4ZDZiYWZkN2VmYi4uM2NjODBlODk3ODNhY2Q2ZTgxODE3MTQ0OTk4YjBj
YTMyOWUwYjQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKQEAgLTMzLDcgKzMz
LDcgQEAgcHVibGljOgogICAgIFJlZjxTVkdQb2ludExpc3Q+IHBvaW50cygpOwogICAgIFJlZjxT
VkdQb2ludExpc3Q+IGFuaW1hdGVkUG9pbnRzKCk7CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMm
IHBvaW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRzLnZhbHVlOyB9CisgICAgU1ZHUG9p
bnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdQ
b2ludExpc3RWYWx1ZXMmPigqbV9wb2ludHMudmFsdWUpOyB9CiAKICAgICBzdGF0aWMgY29uc3Qg
U1ZHUHJvcGVydHlJbmZvKiBwb2ludHNQcm9wZXJ0eUluZm8oKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKaW5kZXggYjkzZTQzZTYxZGYxNzAyMzEzMTYx
YzdiYzgxNTdkOTg5NzdhMjM4MS4uNDgyMDY2NGJhYzUwYjM5ZjVjNDQ2MzQ0ZWI1NmJkZGZkMGI4
Y2Y2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCkBA
IC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAg
c3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwog
ICAgIH0KQEAgLTQyLDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShjb25zdCBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7Ci0g
ICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZh
bHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAg
LTU2LDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgYWxpZ24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYWxpZ24oKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUHJvcGVydHkoKS5hbGlnbigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEFsaWduKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2V0QWxpZ24odmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9
IHZhbHVlUHJvcGVydHkoKS5zZXRBbGlnbih2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC03NCw3ICs2OSw3
IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1lZXRPclNsaWNlKCk7CisgICAgICAg
IHJldHVybiB2YWx1ZVByb3BlcnR5KCkubWVldE9yU2xpY2UoKTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRNZWV0T3JTbGljZShmbG9hdCB2YWx1ZSkKQEAgLTgyLDcgKzc3LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0
byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1lZXRPclNsaWNlKHZhbHVlKTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0TWVldE9yU2xpY2UodmFsdWUp
OwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKIApAQCAtOTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSYgdmFsdWUpCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsK
ICAgICB9CkBAIC0xMDAsMTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAg
ewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQot
ICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCmluZGV4IDU0MGQ1
MjAxNDkyNDQ1OTM2ZmZjNTllZTIzYjZhZDE1OGE5NTBmMmQuLjlkMWJiNWU3NWIxNDJmMWM0ZmYz
NTQ0NjM3ODRmYTY1NmJmYjM3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCkBAIC0zNSw2ICszNSwxMSBAQCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpCiB7CiB9CiAK
K1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHBhcnNlKHN0cmluZyk7Cit9CisKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6c2V0QWxpZ24odW5zaWdu
ZWQgc2hvcnQgYWxpZ24pCiB7CiAgICAgaWYgKGFsaWduID09IFNWR19QUkVTRVJWRUFTUEVDVFJB
VElPX1VOS05PV04gfHwgYWxpZ24gPiBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaApp
bmRleCBhMWZjMTE0ZjZjNGI2OWZmZTQxZTZkMDM0NzgzMzkzZDc4M2U1ZjBkLi4xNTUzMGQ1MGQ4
ZWZlOGNmZGIzNWI2ZTAxNDRmMDY1MDk4MjIxY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFs
aWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRl
OgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9Cisg
ICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5n
KTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRl
eCA5NDU0N2FkYjlmZGE5ZGI5ODE5OWQ3YjY2Yjg2YzM2OThmZWIzY2JjLi44ZjNmYzA4ZGEyNWU2
NWJmOWQ3ZDRkYWFiNzJkNTQwMWRhZTk0OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcApAQCAtNTUsMTIgKzU1LDEyIEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCi0gICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5
KExlbmd0aE1vZGVIZWlnaHQsICI1MCUiKQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUw
JSIpCi0gICAgLCBtX2Z4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhl
aWdodCkKLSAgICAsIG1fZnIoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVPdGhlciwgIjUwJSIpKQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV9meShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1fZnIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsK
ICAgICAvLyBTcGVjOiBJZiB0aGUgY3gvY3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmll
ZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0LmgKaW5kZXggZGZjOWNhYzQ0OWE3MDIwYjZlYjU5ODI1MzVmNjA0NDhmZWZlZGFh
ZC4uZGFkNGQxNTQ5MmEyYTUzYmJiYTVmMTMwN2VlZWQyZmIxNzQ2OWFjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdC5oCkBAIC0yMCwxMyArMjAsMTMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZH
UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUmVjdFRyYWl0cy5oIgorI2luY2x1ZGUg
IlNWR1Byb3BlcnR5VHJhaXRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZH
UmVjdCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAg
c3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTM2LDExICszNiw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChpbml0aWFsVmFsdWUpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJlY3Qq
IGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Jl
Y3QoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdSZWN0Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5p
dGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24o
KSkKQEAgLTUwLDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgeCgpCiAgICAgewotICAg
ICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS54KCk7CisgICAgICAgIHJldHVybiB2YWx1
ZVByb3BlcnR5KCkueCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFgoZmxv
YXQgeFZhbHVlKQpAQCAtNTgsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFgoeFZhbHVlKTsK
KyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFgoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY2LDcgKzYxLDcgQEAgcHVibGljOgog
CiAgICAgZmxvYXQgeSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS55KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkueSgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxvYXQgeFZhbHVlKQpAQCAtNzQsNyArNjksNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFko
eFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTgyLDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgd2lkdGgoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkud2lkdGgoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUHJvcGVydHkoKS53aWR0aCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFdpZHRoKGZsb2F0IHdpZHRoVmFsdWUpCkBAIC05MCw3ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0V2lkdGgod2lkdGhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRXaWR0
aCh3aWR0aFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTk4LDcgKzkzLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgaGVpZ2h0KCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmhlaWdodCgpOworICAgICAg
ICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmhlaWdodCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEhlaWdodChmbG9hdCBoZWlnaHRWYWx1ZSkKQEAgLTEwNiwxNCArMTAxLDE0
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhlaWdodFZhbHVlKTsKKyAgICAgICAgdmFsdWVQ
cm9wZXJ0eSgpLnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1JlY3Qo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4oJmFu
aW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMjIsMTEgKzEx
Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4o
aW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdSZWN0KGNvbnN0
IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxG
bG9hdFJlY3Q+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RUcmFpdHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q4NGM2ZTI1
NDM5MDBiZTJhMzRmNDFhMzg1YmViN2I3NGQyZWIxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMu
aCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdGVtcGxhdGU8Pgotc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4g
ewotICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0g
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5cGUpCi0gICAgewot
ICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHR5cGUueCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhl
aWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICB9Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAK
aW5kZXggMTE1NzIxNzc1NWE5MTBjNzRmYTkwMTNiMzU0NWU5ZWIzZDI2NGZhMS4uNTg4ODE4ODlh
MjYzMmU2Zjg3ZWUwNGZjMzYzNDdiMWUxODY5MDEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcApAQCAtNzEsMTEgKzcxLDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9Q
RVJUSUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNz
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0g
ICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRo
LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQs
IEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFs
KCIxMDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdo
dCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVyKFNNSUxUaW1l
Q29udGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNsYXRlKFNWR1Zh
bHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTVkdF
bGVtZW50KCk7CkBAIC0xOTcsOSArMTk4LDkgQEAgUmVmPFNWR1BvaW50PiBTVkdTVkdFbGVtZW50
OjpjdXJyZW50VHJhbnNsYXRlKCkKIAogdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJh
bnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9uKQogewotICAgIGlmIChtX2N1cnJl
bnRUcmFuc2xhdGUgPT0gdHJhbnNsYXRpb24pCisgICAgaWYgKHN0YXRpY19jYXN0PEZsb2F0UG9p
bnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKSA9PSB0cmFuc2xhdGlvbikKICAgICAgICAgcmV0dXJu
OwotICAgIG1fY3VycmVudFRyYW5zbGF0ZSA9IHRyYW5zbGF0aW9uOworICAgIHN0YXRpY19jYXN0
PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKSA9IHRyYW5zbGF0aW9uOwogICAgIHVw
ZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKTsKIH0KIApAQCAtMzM1LDEyICszMzYsMTIgQEAgUmVmPE5v
ZGVMaXN0PiBTVkdTVkdFbGVtZW50Ojpjb2xsZWN0SW50ZXJzZWN0aW9uT3JFbmNsb3N1cmVMaXN0
KFNWR1JlY3QmIHJlY3QsIFMKIAogc3RhdGljIGJvb2wgY2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0
VXBkYXRpbmdMYXlvdXQoU1ZHRWxlbWVudCYgZWxlbWVudCwgU1ZHUmVjdCYgcmVjdCkKIHsKLSAg
ICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrSW50ZXJzZWN0aW9uKGVsZW1lbnQu
cmVuZGVyZXIoKSwgcmVjdC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICByZXR1cm4gUmVuZGVy
U1ZHTW9kZWxPYmplY3Q6OmNoZWNrSW50ZXJzZWN0aW9uKGVsZW1lbnQucmVuZGVyZXIoKSwgcmVj
dC52YWx1ZVByb3BlcnR5KCkpOwogfQogICAgIAogc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmVX
aXRob3V0VXBkYXRpbmdMYXlvdXQoU1ZHRWxlbWVudCYgZWxlbWVudCwgU1ZHUmVjdCYgcmVjdCkK
IHsKLSAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKGVsZW1l
bnQucmVuZGVyZXIoKSwgcmVjdC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICByZXR1cm4gUmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKGVsZW1lbnQucmVuZGVyZXIoKSwgcmVj
dC52YWx1ZVByb3BlcnR5KCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6Omdl
dEludGVyc2VjdGlvbkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJlbmNlRWxl
bWVudCkKQEAgLTQxNCw3ICs0MTUsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50
OjpjcmVhdGVTVkdUcmFuc2Zvcm0oKQogCiBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50
OjpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQogewotICAg
IHJldHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZSB7IG1hdHJpeC5w
cm9wZXJ0eVJlZmVyZW5jZSgpIH0pOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZShT
VkdUcmFuc2Zvcm1WYWx1ZSB7IG1hdHJpeC52YWx1ZVByb3BlcnR5KCkgfSk7CiB9CiAKIEFmZmlu
ZVRyYW5zZm9ybSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShT
VkdMb2NhdGFibGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaAppbmRleCAxOTFlZmY2OGZjMmFlY2Y4MGU4NjMyYjVlMTJiNTNlNTc0YTY5YWE5Li4yZjVl
ZDFkMmIxYzRjOTA3MTAzZDNlNWJlMWU0NDNmNzVlMGM1NmE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmgKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VD
dXJyZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFu
IHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250YWluZXI+IG1f
dGltZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0ZTsKKyAgICBS
ZWZQdHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8U1ZHVmlld1Nw
ZWM+IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVudElkZW50aWZp
ZXI7CiB9OwpAQCAtMTc1LDcgKzE3NSw3IEBAIGlubGluZSBib29sIFNWR1NWR0VsZW1lbnQ6OnVz
ZUN1cnJlbnRWaWV3KCkgY29uc3QKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6
Y3VycmVudFRyYW5zbGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRl
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0
ZSk7CiB9CiAKIGlubGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5k
UGFuKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCmluZGV4IDdmZTdmMDBmYzUy
YTU4YmNkMDAxZjJmYWJjNWIyZmEzOGEzN2VlODUuLjdiMWM1OGZiODg5M2RmY2E2YjQ2ODI2NTc4
ZDc1NjE4YTRiNzJlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaApAQCAtMzYsMTIg
KzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz47CiAg
ICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6
TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRl
KFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMp
CisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4
dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50LCB2YWx1
ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmluZ0xpc3RW
YWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxTVkdTdHJp
bmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVydHlS
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmKQog
ICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMuIEl0J3Mg
b25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHU3RyaW5n
TGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdT
dGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRleHRFbGVt
ZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdM
aXN0VmFsdWVzLmNwcAppbmRleCAzZmY4OThhOTEyYjYyMDE4MGVkMzM2ZDEzODdkZWFiYjUzN2Q5
NDc4Li41ZGIxMzc3ZThjMTZjOWY4OGZiMzUzY2FiYjJmODJkOWEzOWM0YzI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZv
aWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAKICAg
ICAvLyBBZGQgZW1wdHkgc3RyaW5nLCBpZiBsaXN0IGlzIGVtcHR5LgogICAgIGlmIChpc0VtcHR5
KCkpCi0gICAgICAgIGFwcGVuZChlbXB0eVN0cmluZygpKTsKKyAgICAgICAgYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8U3RyaW5nPihlbXB0eVN0cmluZygpKSk7CiB9CiAKIHZvaWQgU1ZHU3RyaW5n
TGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiBkYXRhLCBVQ2hhciBkZWxpbWl0ZXIpCkBA
IC01Niw3ICs1Niw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3Ry
aW5nJiBkYXRhLCBVQ2hhciBkZWxpbWl0ZXIpCiAgICAgICAgICAgICBwdHIrKzsKICAgICAgICAg
aWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBhcHBlbmQoU3Ry
aW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKSk7CiAgICAgICAgIHNraXBPcHRp
b25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5kLCBkZWxpbWl0ZXIpOwogICAgIH0KIH0K
QEAgLTcwLDcgKzcwLDcgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bmcoKSBjb25zdAogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQocHJvcGVydHlBdChpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFs
dWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCmluZGV4IDg5
NjUxYzdhZjA0M2Y4OWJiY2NkZGExMzYxYmMzMjZhZWU5NGY5MGUuLjAzZGE3ZDZhZjMwN2ZjMDdm
NjFmMmM3Mjc3MTQxYTJiN2FiOTM5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xp
c3RWYWx1ZXMuaApAQCAtMjEsOCArMjEsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJR
dWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNW
R1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdT
dHJpbmdMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNW
R1N0cmluZ0xpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTdHJpbmc+IHsK
IHB1YmxpYzoKICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1Rlc3RzLmNwcAppbmRleCA1OTdjZWRkN2MwYWFkM2U2NzMwZmIzODA1MTU2YTU1
MDc5MzAzODU1Li4xY2Q5YzdhNjZlYTIxNTZmM2IyNTU5MjE2YTYyMWRhZDhjMjQzOTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXN0cy5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCBzdGF0aWMgY29uc3QgSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFNWR0ZlYXR1
cmVzKCkKIH0KIAogU1ZHVGVzdHM6OlNWR1Rlc3RzKCkKLSAgICA6IG1fcmVxdWlyZWRGZWF0dXJl
cyhyZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAsIG1fcmVxdWlyZWRFeHRlbnNpb25zKHJlcXVp
cmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgLCBtX3N5c3RlbUxhbmd1YWdlKHN5c3RlbUxhbmd1YWdl
QXR0cikKKyAgICA6IG1fcmVxdWlyZWRGZWF0dXJlcyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVp
cmVkRmVhdHVyZXNBdHRyKSkKKyAgICAsIG1fcmVxdWlyZWRFeHRlbnNpb25zKFNWR1N0cmluZ0xp
c3RWYWx1ZXMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikpCisgICAgLCBtX3N5c3RlbUxhbmd1YWdl
KFNWR1N0cmluZ0xpc3RWYWx1ZXMoc3lzdGVtTGFuZ3VhZ2VBdHRyKSkKIHsKIH0KIApAQCAtMTU0
LDE1ICsxNTQsMjAgQEAgYm9vbCBTVkdUZXN0czo6aGFzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uKQogCiBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHsKLSAgICBmb3Ig
KGF1dG8mIGZlYXR1cmUgOiBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpIHsKKyAgICBhdXRvIGZl
YXR1cmVzID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRmVh
dHVyZXMudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmZWF0
dXJlcykgewogICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNWR0Zl
YXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlKSB7
CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMm
PigqbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAoYXV0byYg
bGFuZ3VhZ2UgOiBsYW5ndWFnZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRlZmF1bHRM
YW5ndWFnZSgpLnN1YnN0cmluZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9Ci0gICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1
ZSkgeworCisgICAgYXV0byBleHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZh
bHVlcyY+KCptX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZv
ciAoYXV0byYgZXh0ZW5zaW9uIDogZXh0ZW5zaW9ucykgewogICAgICAgICBpZiAoIWhhc0V4dGVu
c2lvbihleHRlbnNpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE3
MiwxMSArMTc3LDExIEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdU
ZXN0czo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBy
ZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJl
c2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCpt
X3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRl
TmFtZSA9PSByZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRXh0ZW5z
aW9ucy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xp
c3RWYWx1ZXMmPigqbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpLnJlc2V0KHZhbHVlKTsKICAg
ICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5ndWFnZUF0dHIpCi0gICAgICAgIG1fc3lz
dGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdT
dHJpbmdMaXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpLnJlc2V0KHZhbHVlKTsK
IH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQgU1ZHVGVzdHM6OnN5bmNo
cm9uaXplQXR0cmlidXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTeW5jaHJvbml6
YWJsCiB7CiAgICAgaWYgKCFwcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQs
IGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgbV9y
ZXF1aXJlZEZlYXR1cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCpwcm9wZXJ0eS52YWx1ZSkudmFs
dWVBc1N0cmluZygpKTsKIH0KIAogdm9pZCBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEZl
YXR1cmVzKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCAzYTllZDg1NmNhOGQxZWIyODE4MGQzMGEz
NzE4ZWJiM2MzMDhiZjllLi5lMjgyYWIzNTdhOTM5YjcwZTVjMTBkM2FlNGNhYzQ1ZGI2NDA5NmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAt
NjYsOCArNjYsOCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3RleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQot
ICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKKyAgICAsIG1fdGV4
dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQorICAgICwgbV9zcGVjaWZp
ZWRUZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX2xl
bmd0aEFkanVzdChTVkdMZW5ndGhBZGp1c3RTcGFjaW5nKQogewogICAgIHJlZ2lzdGVyQW5pbWF0
ZWRQcm9wZXJ0aWVzRm9yU1ZHVGV4dENvbnRlbnRFbGVtZW50KCk7CkBAIC05NSw3ICs5NSw3IEBA
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojp0ZXh0TGVuZ3Ro
QW5pbWF0ZWQoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTVkdMZW5ndGhWYWx1ZT4g
ZGVmYXVsdFRleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKTsKICAgICBpZiAobV9zcGVjaWZpZWRU
ZXh0TGVuZ3RoID09IGRlZmF1bHRUZXh0TGVuZ3RoKQotICAgICAgICBtX3RleHRMZW5ndGgudmFs
dWUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5ndGhUeXBlTnVtYmVyLCBnZXRDb21wdXRlZFRl
eHRMZW5ndGgoKSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKm1fdGV4
dExlbmd0aC52YWx1ZSkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5ndGhUeXBlTnVtYmVyLCBn
ZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CiAKICAgICBtX3RleHRMZW5ndGguc2hvdWxkU3luY2hy
b25pemUgPSB0cnVlOwogICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U1ZHQW5pbWF0
ZWRMZW5ndGg+KGxvb2t1cE9yQ3JlYXRlVGV4dExlbmd0aFdyYXBwZXIodGhpcykpOwpAQCAtMTU4
LDcgKzE1OCw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6Omdl
dFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiBpbnQgU1ZHVGV4dENvbnRlbnRFbGVt
ZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbihTVkdQb2ludCYgcG9pbnQpCiB7CiAgICAgZG9jdW1l
bnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKLSAgICByZXR1cm4g
U1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24ocG9pbnQu
cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigp
KS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHBvaW50LnZhbHVlUHJvcGVydHkoKSk7CiB9CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6c2VsZWN0U3ViU3RyaW5n
KHVuc2lnbmVkIGNoYXJudW0sIHVuc2lnbmVkIG5jaGFycykKQEAgLTIyOSw3ICsyMjksNyBAQCB2
b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbQogICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA+IDApCiAg
ICAgICAgICAgICBzZXRMZW5ndGhBZGp1c3RCYXNlVmFsdWUocHJvcGVydHlWYWx1ZSk7CiAgICAg
fSBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV90
ZXh0TGVuZ3RoLnZhbHVlID0gU1ZHTGVuZ3RoVmFsdWU6OmNvbnN0cnVjdChMZW5ndGhNb2RlT3Ro
ZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpOworICAgICAgICBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpID0gU1ZHTGVu
Z3RoVmFsdWU6OmNvbnN0cnVjdChMZW5ndGhNb2RlT3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBG
b3JiaWROZWdhdGl2ZUxlbmd0aHMpOwogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgU1ZH
VGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgIH0KIAogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGV4
dExlbmd0aEF0dHIpCi0gICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0
aC52YWx1ZTsKKyAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZH
TGVuZ3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKTsKIAogICAgIGlmIChhdXRvIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1
YXJkIGd1YXJkKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHAKaW5kZXggMWEyMzJlZWRkMDBjNDZkNTI3Mjc2NDkyMGYzNTI1OTMwMDdkZjgzOS4uNDA3ZTM0
ZGE1MmM1YmYzOGFlZjlkYTQ2MTIyOTdkNDdmN2RmOTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBh
dGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IFNWR1RleHRDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAs
IG1fc3RhcnRPZmZzZXQoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV9zdGFydE9mZnNldChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9tZXRob2QoU1ZHVGV4dFBhdGhN
ZXRob2RBbGlnbikKICAgICAsIG1fc3BhY2luZyhTVkdUZXh0UGF0aFNwYWNpbmdFeGFjdCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKaW5kZXggNTkwMzc5NDVhYjcxNGY3NTIwZTMz
NjZhZDE0YmMwZmRkM2JjYTE1OS4uOGNjOTZlYThkNzViOGE2YTYzZmEzZDI5NzRlYTA2ZDg2ZmIz
ZjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8U1ZHTWF0cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJp
eCgpCiB7Ci0gICAgcmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVy
dHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7CisgICAgcmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6
OmNyZWF0ZSgqdGhpcywgdmFsdWVQcm9wZXJ0eSgpLnN2Z01hdHJpeCgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCmluZGV4IDFiODY3YTMz
ODUxNTBlN2QwNjkxZmFmOTU1MzYyOTBjYWIzZTJkNmIuLmExZGQ0ZjA1OWZhZGQ0ZDI0MzhmNDdk
MDA4NmRjYjIyNTFlMDhhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKQEAgLTMzLDcg
KzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJs
aWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAt
NDMsMTEgKzQzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdU
cmFuc2Zvcm0oaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFu
c2Zvcm0+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1
ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25P
cjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVl
KQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU3
LDE0ICs1MiwxNCBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnR5cGUoKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlUHJvcGVydHkoKS50eXBlKCk7CiAgICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4g
bWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmdsZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgp
LmFuZ2xlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWF0cml4KFNWR01h
dHJpeCYgbWF0cml4KQpAQCAtNzIsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCht
YXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRN
YXRyaXgobWF0cml4LnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0
VHJhbnNsYXRlKHR4LCB0eSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRUcmFuc2xhdGUo
dHgsIHR5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTk0LDcgKzg5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRTY2FsZShzeCwgc3kpOworICAgICAg
ICB2YWx1ZVByb3BlcnR5KCkuc2V0U2NhbGUoc3gsIHN5KTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEwNSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNl
dFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAg
ICAgcmV0dXJuIHsgfTsKQEAgLTExNiw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdY
KGFuZ2xlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFNrZXdYKGFuZ2xlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNywxNCArMTIy
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0U2tld1koYW5nbGUpOworICAgICAgICB2YWx1ZVByb3Bl
cnR5KCkuc2V0U2tld1koYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFu
c2Zvcm1WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9
CkBAIC0xNDMsMTEgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR1RyYW5zZm9ybVZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAg
IGV4cGxpY2l0IFNWR1RyYW5zZm9ybShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZh
bHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oaW5p
dGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAppbmRleCAzYjM0MzMzNDRlOWNjZmYyNWU0
OTYxZDFmYmNmMGJlMWQwYTFlMDkwLi5hZDIyYjc5NmY0MzRmZGE4Yjg0NjQzNjc4YzIxZjg1MWJm
MTI5MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKQEAgLTIyLDYgKzIy
LDcgQEAKIAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2lu
Y2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0u
aCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTMxLDIwICszMiwxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNW
R1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZH
VHJhbnNmb3JtTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJh
bnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVl
cy0+Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4g
dmFsdWVzUHJvcGVydHkoKS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1RyYW5zZm9ybT4+IGNvbnNvbGlkYXRl
KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dy
YXBwZXJzKTsKIAogICAgICAgICBhdXRvIHJlc3VsdCA9IGNhbkFsdGVyTGlzdCgpOwpAQCAtNTIs
MjMgKzUxLDIzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgbGlzdCB3YXMgZW1wdHksIHRoZW4g
YSB2YWx1ZSBvZiBudWxsIGlzIHJldHVybmVkLgotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1w
dHkoKSkKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAg
ICAgICAKLSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5j
b25zb2xpZGF0ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFs
dWVzUHJvcGVydHkoKS5jb25zb2xpZGF0ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQo
d3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVy
dHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUod3JhcHBlcik7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKKyAgICBTVkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAg
IDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKaW5kZXggMjViM2MzMTZm
MmVkNzc5Yzk0NmM4ZThlMjI3NjljMWQ4MWZlNWUyMy4uZjIxZjc3ODJiMzZmMTE2MTEzOWY5Mjhk
MWQ2YmRjMzhiYTdiZGE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzLmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSgpCiAKICAgICBTVkdUcmFuc2Zvcm1WYWx1ZSB0
cmFuc2Zvcm0obWF0cml4KTsKICAgICBjbGVhcigpOwotICAgIGFwcGVuZCh0cmFuc2Zvcm0pOwor
ICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPih0cmFuc2Zvcm0p
KTsKICAgICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUodHJhbnNmb3JtKTsKIH0KIApAQCAt
NTIsNyArNTIsNyBAQCBib29sIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM6OmNvbmNhdGVuYXRlKEFm
ZmluZVRyYW5zZm9ybSYgcmVzdWx0KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQgKj0g
YXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkpLm1hdHJpeCgp
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmluZyBTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAgICAgICAgaWYgKGkgPiAw
KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFw
cGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9w
ZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
CmluZGV4IDI5NDA3NjI4ZWRmYTZlZjM1NWExZjBiMGUxNjNjOTQ3NDE3ZWY3MjguLmE1MjA3YjYw
YmY1NTIyNjM1ZjUwOWFhMjExYjcyZGY3MTA5NmIxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgi
CisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKLQor
Y2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3Jt
TGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0
b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMg
ZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGlj
OgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZH
TWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAg
LTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7Cisg
ICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7Cisg
ICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5n
IExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtVmFsdWUuaAppbmRleCBmYWRkMDNhMjNhMTAyZjAwNTEyNGVlYmQzMTk0M2JhNTlkNmFl
YTFjLi43ODdmZjhjMWNkN2I4YzcyYzYxMjBjODZiZTkzNTc5MWE0ZjZiY2MwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuaApAQCAtOTEsNCArOTEsOSBAQCBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiBhLCBjb25zdCBTVkdUcmFuc2Zv
cm1WYWx1ZSYgYikKICAgICByZXR1cm4gIShhID09IGIpOwogfQogCit0ZW1wbGF0ZTw+IHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT4geworICAgIHN0YXRpYyBTVkdU
cmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIHsgcmV0
dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5nKCk7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAppbmRleCBiOGMwYmVk
YWUwNGMzMmFhNTUxOGQyOTdlN2RmODljZmRhM2ViMTVlLi4zM2Y4M2Y2YzUzYTA1NTE2NTk1MTIy
MWQyNTExYzdjMmZhMWNiMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUu
Y3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5z
Zm9ybUF0dHJpYnV0ZShTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiBsaXN0LCBjb24KICAgICAgICAg
aWYgKCFwYXJzZVRyYW5zZm9ybVZhbHVlKHR5cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNm
b3JtKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0
cmFuc2Zvcm0pOworICAgICAgICBsaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5z
Zm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1
cnJUcmFuc2Zvcm0sIGVuZCk7CiAgICAgICAgIGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpj
dXJyVHJhbnNmb3JtID09ICcsJykgewogICAgICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDBjZWE4ODNlYTUxZGUwZjQzYmQ5
NDliYWYwMjIwMWY4NzA3MWNjZjAuLmE5NzU5MjQzNmZjNWY4N2VmMzBkZTY2YTE5NjE3ZTVkZmJk
MWE4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTYyLDEwICs2Miwx
MCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHVXNlRWxl
bWVudDo6U1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
Ci0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQp
Ci0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1v
ZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAg
ICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogICAgICwgbV9zdmdMb2FkRXZlbnRUaW1lcigqdGhp
cywgJlNWR0VsZW1lbnQ6OnN2Z0xvYWRFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhh
c0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGM3NDkxOTVhMGE3MGU5YzQ3NmQxZDgwNjk2ZmI4YzRiY2RiNjBiMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCkBAIC0wLDAgKzEsMjI1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgorI2luY2x1ZGUg
IlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgorI2lu
Y2x1ZGUgIlNWR01hdHJpeFZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdFZhbHVlcy5o
IgorI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCisjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0
cy5oIgorI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFNWR1Zh
bHVlVmFyaWFudCA9IFZhcmlhbnQ8CisgICAgU1ZHQW5nbGVWYWx1ZSwgICAgICAgICAgICAgICAg
ICAvLyAgMDogYW5nbGUKKyAgICBib29sLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAx
OiBib29sZWFuCisgICAgQ29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjogY29s
b3IKKyAgICB1bnNpZ25lZCwgICAgICAgICAgICAgICAgICAgICAgIC8vICAzOiBlbnVtZXJhdGlv
bgorICAgIGludCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDQ6IGludGVnZXIKKyAg
ICBTVkdMZW5ndGhWYWx1ZSwgICAgICAgICAgICAgICAgIC8vICA1OiBsZW5ndGgKKyAgICBTVkdM
ZW5ndGhMaXN0VmFsdWVzLCAgICAgICAgICAgIC8vICA2OiBsZW5ndGhMaXN0CisgICAgU1ZHTWF0
cml4VmFsdWUsICAgICAgICAgICAgICAgICAvLyAgNzogbWF0cml4CisgICAgZmxvYXQsICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAgODogbnVtYmVyCisgICAgU1ZHTnVtYmVyTGlzdFZhbHVl
cywgICAgICAgICAgICAvLyAgOTogbnVtYmVyTGlzdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtLCAg
ICAgICAgICAgICAgLy8gMTA6IHBhdGgKKyAgICBSZWZQdHI8U1ZHUGF0aFNlZz4sICAgICAgICAg
ICAgIC8vIDExOiBwYXRoU2VnCisgICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMsICAgICAgICAgICAv
LyAxMjogcGF0aFNlZ0xpc3QKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUsICAgIC8v
IDEzOiBwcmVzZXJ2ZUFzcGVjdFJhdGlvCisgICAgRmxvYXRQb2ludCwgICAgICAgICAgICAgICAg
ICAgICAvLyAxNDogcG9pbnQKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsICAgICAgICAgICAgIC8v
IDE1OiBwb2ludExpc3QKKyAgICBGbG9hdFJlY3QsICAgICAgICAgICAgICAgICAgICAgIC8vIDE2
OiByZWN0CisgICAgU3RyaW5nLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNzogc3RyaW5n
CisgICAgU1ZHU3RyaW5nTGlzdFZhbHVlcywgICAgICAgICAgICAvLyAxODogc3RyaW5nTGlzdAor
ICAgIFNWR1RyYW5zZm9ybVZhbHVlLCAgICAgICAgICAgICAgLy8gMTk6IHRyYW5zZm9ybQorICAg
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgICAgICAgICAgLy8gMjA6IHRyYW5zZm9ybUxpc3QKKz47
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdUcmFpdEhhc1Rv
U3RyaW5nIHsKKyAgICB0eXBlZGVmIGNoYXIgb25lOworICAgIHR5cGVkZWYgbG9uZyB0d287CisK
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIG9uZSB0ZXN0KHR5cGVvZigmU1ZHUHJv
cGVydHlUcmFpdHM8VD46OnRvU3RyaW5nKSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0
YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9m
KHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNoYXIpIH07Cit9OworICAg
IAorc3RydWN0IHRvU3RyaW5nVmlzaXRvciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBl
Pjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgU3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVy
dHlUeXBlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQ
cm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyh2YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1RvU3RyaW5n
PFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigp
KGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9Cit9OworICAgIAordGVtcGxhdGUgPHR5cGVu
YW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1RyYWl0SGFzUGFyc2UgeworICAgIHR5cGVkZWYg
Y2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25nIHR3bzsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBzdGF0aWMgb25lIHRlc3QodHlwZW9mKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6cGFyc2Up
KTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3byB0ZXN0KC4uLik7CisKK3B1
YmxpYzoKKyAgICBlbnVtIHsgdmFsdWUgPSBzaXplb2YodGVzdDxQcm9wZXJ0eVR5cGU+KG51bGxw
dHIpKSA9PSBzaXplb2YoY2hhcikgfTsKK307CisKK3N0cnVjdCBwYXJzZVZpc2l0b3IgeworICAg
IHBhcnNlVmlzaXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIFNWR1ZhbHVlVmFyaWFudCYgdmFyaWFudCkKKyAgICAgICAgOiBtX2F0dHJOYW1l
KGF0dHJOYW1lKQorICAgICAgICAsIG1fc3RyaW5nKHN0cmluZykKKyAgICAgICAgLCBtX3Zhcmlh
bnQodmFyaWFudCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBy
b3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlw
ZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0
eVR5cGUmKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQcm9wZXJ0eVR5cGU+IHJlc3Vs
dCA9IFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBhcnNlKG1fYXR0ck5hbWUsIG1f
c3RyaW5nKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIG1fdmFyaWFudC5lbXBsYWNlPFByb3BlcnR5VHlwZT4oV1RGTW92ZShyZXN1bHQu
dmFsdWUoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRI
YXNQYXJzZTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBib29sIG9wZXJh
dG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgUXVhbGlm
aWVkTmFtZSYgbV9hdHRyTmFtZTsKKyAgICBjb25zdCBTdHJpbmcmIG1fc3RyaW5nOworICAgIFNW
R1ZhbHVlVmFyaWFudCYgbV92YXJpYW50OworfTsKKyAgICAKK2NsYXNzIFNWR1ZhbHVlIDogcHVi
bGljIFJlZkNvdW50ZWQ8U1ZHVmFsdWU+LCBwdWJsaWMgU1ZHVmFsdWVWYXJpYW50IHsKK3B1Ymxp
YzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIFJlZjxT
VkdWYWx1ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGU8UHJvcGVydHlU
eXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7Cisg
ICAgfQorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAg
IHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1bnNpZ25lZCY+KHByb3BlcnR5KSkpOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVl
PiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHByb3BlcnR5KSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZSh2YWx1ZSkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBib29sIGlzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFByb3BlcnR5
VHlwZT4oKnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWUgJiYgV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBjb25zdCBQcm9w
ZXJ0eVR5cGUmKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFz
dGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0
b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM8
UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4o
KnRoaXMpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRy
PgorICAgIG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykp
OworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAg
ICBvcGVyYXRvciBQcm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9w
ZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhp
cyk7CisgICAgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBXVEY6OnZpc2l0KHRvU3RyaW5nVmlzaXRvcigpLCBzdGF0aWNfY2FzdDxjb25zdCBT
VkdWYWx1ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKworICAgIGJvb2wgcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFdURjo6dmlzaXQocGFyc2VWaXNpdG9yKGF0dHJOYW1lLCBzdHJpbmcsIHN0
YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSksIHN0YXRpY19jYXN0PGNvbnN0IFNW
R1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBleHBsaWNpdCBTVkdWYWx1ZShjb25zdCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFyaWFudCh2YWx1ZSkKKyAgICB7
CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgIH0KKyAgICAKKyAgICBT
VkdWYWx1ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50
KHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVlKSkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpbmRleCgpID09IHZhbHVlLmluZGV4KCkpOworICAgIH0KK307CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApp
bmRleCAwNGI3ZTgyMzljM2QyZjRkZGY3ZjM2YzA3M2IxOGNkZmQ5NzMwMDYzLi4zY2JhMGViMWQy
ODdlOTRhOGVmZDkzOWE1NWY1NWQ1NTE0ZmU1ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3
RWxlbWVudC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBhbihTVkdab29tQW5kUGFuTWFnbmlm
eSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCisgICAgLCBt
X3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJpbmdMaXN0VmFsdWVzKFNWR05hbWVz
Ojp2aWV3VGFyZ2V0QXR0cikpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp2
aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3RWxlbWVu
dCgpOwpAQCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHU3RyaW5nTGlzdD4gU1ZHVmlld0VsZW1lbnQ6
OnZpZXdUYXJnZXQoKQogdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBp
ZiAobmFtZSA9PSBTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCi0gICAgICAgIG1fdmlld1Rhcmdl
dC5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMm
PigqbV92aWV3VGFyZ2V0KS5yZXNldCh2YWx1ZSk7CiAKICAgICBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3
Qm94OjpwYXJzZUF0dHJpYnV0ZSh0aGlzLCBuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5oCmluZGV4IDA4MWNkMWQ0OTEzZjI2NDg5NDdhOGE3MGJmNDA1MWYwODc2Mjk2
NjguLmY1NWQzNTRhYzYxZmM4ZDU0MGM0MDkwZGViZmJlNmNiYmNjYjBkNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgRU5E
X0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogCiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96
b29tQW5kUGFuOwotICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMgbV92aWV3VGFyZ2V0OworICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gbV92aWV3VGFyZ2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggMDk4YTE3M2RkMWY2ZjcxYTc3YTQz
OTRjMjVhMmNiNmM1YzJlZmY2NC4uOWY2YWNlMTIzYjE3MDZkY2I3YmU1NDIxYzgzMmVhYWNjOGZj
YjBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC03OSw2ICs3OSw5IEBAIGNv
bnN0IFNWR1Byb3BlcnR5SW5mbyogU1ZHVmlld1NwZWM6OnRyYW5zZm9ybVByb3BlcnR5SW5mbygp
CiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkK
ICAgICA6IG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQorICAgICwgbV90cmFuc2Zv
cm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICwgbV92
aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRSZWN0PigpKQorICAgICwgbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigp
KQogewogfQogCkBAIC0xMDgsMTcgKzExMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTVkdWaWV3
U3BlYzo6c2V0Wm9vbUFuZFBhbih1bnNpZ25lZCBzaG9ydCkKIAogU3RyaW5nIFNWR1ZpZXdTcGVj
Ojp0cmFuc2Zvcm1TdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0
czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjo6dG9TdHJpbmcobV90cmFuc2Zvcm0pOworICAgIHJl
dHVybiBtX3RyYW5zZm9ybS0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp2
aWV3Qm94U3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8Rmxv
YXRSZWN0Pjo6dG9TdHJpbmcobV92aWV3Qm94KTsKKyAgICByZXR1cm4gbV92aWV3Qm94LT50b1N0
cmluZygpOwogfQogCiBTdHJpbmcgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJp
bmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWU+Ojp0b1N0cmluZyhtX3ByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgIHJl
dHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnRvU3RyaW5nKCk7CiB9CiAKIFNWR0VsZW1lbnQq
IFNWR1ZpZXdTcGVjOjp2aWV3VGFyZ2V0KCkgY29uc3QKQEAgLTE3Nyw5ICsxODAsOSBAQCBSZWY8
U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHVmlld1NwZWM6Omxvb2t1cE9yQ3JlYXRlVHJhbnNmb3Jt
V3JhcHBlcihTVkdWaWV3U3BlYwogdm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQoKQogewogICAgIG1f
em9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5NYWduaWZ5OwotICAgIG1fdHJhbnNmb3JtLmNsZWFy
KCk7Ci0gICAgbV92aWV3Qm94ID0geyB9OwotICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHsg
fTsKKyAgICBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJhbnNmb3Jt
KS5jbGVhcigpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpID0geyB9
OworICAgIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNl
cnZlQXNwZWN0UmF0aW8pID0geyB9OwogICAgIG1fdmlld1RhcmdldFN0cmluZyA9IGVtcHR5U3Ry
aW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZp
ZXdTcGVjKGNvbnN0IFN0cmluZyYgdmlld1NwZWMpCiAgICAgICAgICAgICBpZiAoY3VyclZpZXdT
cGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgIFNWR1Ry
YW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJhbnNmb3JtLCBjdXJyVmll
d1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOworICAgICAgICAg
ICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUoc3RhdGljX2Nhc3Q8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSksIGN1cnJWaWV3U3BlYywgZW5k
LCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBpZiAoY3Vy
clZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmgKaW5kZXggOWZiNWQ0MmJlZWVhNGUyNTU1NzYyMDI1OGE1Yjk0ZGNhZjkxMTBi
ZS4uNGY5MjhlYjFkY2I4NGQ3ZmMxMmYwYmFkYzgwMWZmMTc1NWE3NWRjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmgKQEAgLTU1LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDdXN0
b20gbm9uLWFuaW1hdGVkICd0cmFuc2Zvcm0nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdUcmFu
c2Zvcm1MaXN0PiB0cmFuc2Zvcm0oKTsKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5z
Zm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9CisgICAgU1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJhbnNmb3JtKTsgfQogCiAgICAg
Ly8gQ3VzdG9tIGFuaW1hdGVkICd2aWV3Qm94JyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHQW5p
bWF0ZWRSZWN0PiB2aWV3Qm94QW5pbWF0ZWQoKTsKLSAgICBGbG9hdFJlY3QmIHZpZXdCb3goKSB7
IHJldHVybiBtX3ZpZXdCb3g7IH0KLSAgICB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3Qg
RmxvYXRSZWN0JiB2aWV3Qm94KSB7IG1fdmlld0JveCA9IHZpZXdCb3g7IH0KKyAgICBGbG9hdFJl
Y3QmIHZpZXdCb3goKSB7IHJldHVybiBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94
KTsgfQorICAgIHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdC
b3gpIHsgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCkgPSB2aWV3Qm94OyB9CiAK
ICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHByb3BlcnR5Lgog
ICAgIFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0
UmF0aW9BbmltYXRlZCgpOwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2Vy
dmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotICAgIHZv
aWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlv
ID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0UmF0aW8pOyB9CisgICAgdm9pZCBz
ZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKSA9IHByZXNlcnZlQXNwZWN0
UmF0aW87IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTVkdWaWV3U3BlYyhTVkdFbGVtZW50
Jik7CkBAIC04NCw5ICs4NCw5IEBAIHByaXZhdGU6CiAKICAgICBTVkdFbGVtZW50KiBtX2NvbnRl
eHRFbGVtZW50OwogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21B
bmRQYW5NYWduaWZ5IH07Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBtX3RyYW5zZm9ybTsK
LSAgICBGbG9hdFJlY3QgbV92aWV3Qm94OwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3RyYW5zZm9y
bTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld0JveDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKICAgICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5nOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCmluZGV4IDQxM2My
ZDM2ZDQ0MDMzZTVmMmZiYmY5NTBlYzI5N2IwMWE1ODJiNDAuLmYwODQ1NjdjNzIyNGFlMDg4N2Ix
NTM5MzdkNTk5YzI5NzkwMmNiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlU
ZWFyT2ZmLmgKQEAgLTU1LDIyICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OnNldEJhc2VWYWwocHJvcGVy
dHkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3Bl
cnR5VGVhck9mZjxFbnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIEVudW1UeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4
dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1l
cmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQmPihw
cm9wZXJ0eSkpKTsKLSAgICB9Ci0KLSAgICBFbnVtVHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUo
KQotICAgIHsKLSAgICAgICAgdW5zaWduZWQmIGFuaW1hdGVkVmFsdWUgPSBTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7Ci0g
ICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJhaXRzPEVudW1UeXBl
Pjo6aGlnaGVzdEVudW1WYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RW51bVR5cGUmPihhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUpKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHVu
c2lnbmVkJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlU
ZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQorICAgICAgICA6IFNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDYwYzRiYTA2ZTEyMjc4Y2QzNjdiZDNhOGU2
MzVhMDEwZjA0YWU1M2IuLjExMDQ5YTQyMDMxNDllMGQzNDcxNDQwODcyZTEyZjlkN2Q1Njg4NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFp
dHM8UHJvcGVydHlUeXBlPjo6TGlzdFByb3BlcnR5VGVhck9mZjsKICAgICB1c2luZyBDb250ZW50
VHlwZSA9IFByb3BlcnR5VHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNy
ZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250
ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC04NSw0NCArODUsNTAgQEAg
cHVibGljOgogICAgICAgICBMaXN0UHJvcGVydHk6OmRldGFjaExpc3RXcmFwcGVyc0FuZFJlc2l6
ZSgmbV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYg
Y3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1h
dGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwogICAgICAg
ICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKICAgICB9CiAKLSAgICBjb25z
dCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5
LT52YWx1ZXMoKTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRC
YXNlVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWVzOwogICAgIH0K
IAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwsIGJv
b2wgc2hvdWxkT3duVmFsdWVzID0gZmFsc2UpCisgICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFJl
ZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmlt
YXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzdGF0
aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93
cmFwcGVycy5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFdyYXBwZXJzLmlzRW1w
dHkoKSk7CiAKICAgICAgICAgLy8gU3dpdGNoIHRvIG5ldyBwYXNzZWQgaW4gdmFsdWUgdHlwZSAm
IG5ldyB3cmFwcGVycyBsaXN0LiBUaGUgbmV3IHdyYXBwZXJzIGxpc3QgbXVzdCBiZSBjcmVhdGVk
IGZvciB0aGUgbmV3IHZhbHVlLgotICAgICAgICBpZiAoIW5ld0FuaW1WYWwtPmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIG5ld0FuaW1WYWwtPnNpemUo
KSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCpuZXdBbmltVmFsKS5zaXplKCkpCisgICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmls
bCgwLCBzaXplKTsKIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0g
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5pbVZh
bCwgJm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxkT3duVmFsdWVzKTsKLSAgICAgICAgQVNTRVJU
KG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0
eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZh
bHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3JhcHBlcnMpOworICAgICAg
ICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBt
X2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJz
LnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXpl
KCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJv
cGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6
ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXpl
KCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFT
U0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmlt
YXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6
ZSgpKTsKIAotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJz
KCZtX3ZhbHVlcywgJm1fd3JhcHBlcnMsIGZhbHNlKTsKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdy
YXBwZXJzKG1fdmFsdWVzLCAmbV93cmFwcGVycyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVk
UHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53
cmFwcGVycygpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKICAgICAgICAgbV9hbmlt
YXRlZFdyYXBwZXJzLmNsZWFyKCk7CkBAIC0xNDIsMzQgKzE0OCwzNCBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIEFsc28gZXhpc3Rpbmcgd3JhcHBlcnMgd2hpY2ggcG9pbnQgZGlyZWN0bHkgYXQgZWxl
bWVudHMgaW4gdGhlIGV4aXN0aW5nIFNWR0xlbmd0aExpc3RWYWx1ZXMgaGF2ZSB0byBiZSBkZXRh
Y2hlZCAoc28gYSBjb3B5CiAgICAgICAgIC8vIG9mIHRoZW0gaXMgY3JlYXRlZCwgc28gZXhpc3Rp
bmcgYW5pbVZhbCB2YXJpYWJsZXMgaW4gSlMgYXJlIGtlcHQtYWxpdmUpLiBJZiB3ZSdkIGRldGFj
aCB0aGVtIGxhdGVyIHRoZSB1bmRlcmx5aW5nCiAgICAgICAgIC8vIFNWR0xlbmd0aExpc3RWYWx1
ZXMgd2FzIGFscmVhZHkgbXV0YXRlZCwgYW5kIG91ciBsaXN0IGl0ZW0gd3JhcHBlciB0ZWFyIG9m
ZnMgd291bGQgcG9pbnQgbm93aGVyZS4gQXNzZXJ0aW9ucyB3b3VsZCBmaXJlLgotICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHkt
PnZhbHVlcygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlz
dFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwog
Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBt
X2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFBy
b3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwog
ICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VS
VChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkg
PT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBzeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVk
ZWQoKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxEaWRDaGFuZ2UoKQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAg
IEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5z
aXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBzeW5jaHJvbml6ZVdyYXBwZXJz
SWZOZWVkZWQoKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUp
CiAgICAgICAgICwgbV92YWx1ZXModmFsdWVzKQogICAgIHsKLSAgICAgICAgaWYgKCF2YWx1ZXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAsIHZhbHVlcy5zaXplKCkp
OworICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigq
dmFsdWVzKS5zaXplKCkpCisgICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAg
ICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IG1fdmFsdWVzOwogCiAgICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwogICAgIExpc3RX
cmFwcGVyQ2FjaGUgbV9hbmltYXRlZFdyYXBwZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oCmluZGV4IDJlM2QxZjgzMDVlNmFiNGNkNmNhOWE3MDY1NzAzZmVkNDIz
MGE3MjAuLjY5ZjJlMmM0NGQwNzNiMGM2YThlNzFjOWM3YTYyNjEyNjk2NDdmYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLCAyMDEyLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDcgKzMyLDcgQEAg
Y2xhc3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZiBmaW5hbCA6IHB1Ymxp
YyBTVkdBbmltYXRlZExpc3RQcm9wZXIKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKIAotICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7
CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoY29udGV4dEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTc2
LDggKzc3LDggQEAgcHVibGljOgogICAgICAgICBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0gPSBi
eXRlU3RyZWFtOwogCiAgICAgICAgIC8vIFBhc3Mgc2hvdWxkT3duVmFsdWVzPXRydWUsIGFzIHRo
ZSBTVkdQYXRoU2VnTGlzdFZhbHVlcyBsaWZldGltZSBpcyBzb2xlbHkgbWFuYWdlZCBieSBpdHMg
dGVhciBvZmYgY2xhc3MuCi0gICAgICAgIGF1dG8qIGNvcHkgPSBuZXcgU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMoKmJhc2VWYWx1ZSk7Ci0gICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weSwg
dHJ1ZSk7CisgICAgICAgIGF1dG8gY29weSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmJhc2VWYWx1ZSk7
CisgICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weS5wdHIoKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCkBAIC05NSw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICAg
ICAgLy8gSWYgdGhlIGFuaW1WYWwgaXMgb2JzZXJ2ZWQgZnJvbSBKUywgd2UgaGF2ZSB0byB1cGRh
dGUgaXQgb24gZWFjaCBhbmltYXRpb24gc3RlcC4KICAgICAgICAgLy8gVGhpcyBpcyBhbiBleHBl
bnNpdmUgb3BlcmF0aW9uIGFuZCBvbmx5IGRvbmUsIGlmIHNvbWVvbmUgYWN0dWFsbHkgb2JzZXJ2
ZXMgdGhlIGFuaW1hdGVkUGF0aFNlZ0xpc3QoKSB3aGlsZSBhbiBhbmltYXRpb24gaXMgcnVubmlu
Zy4KICAgICAgICAgaWYgKHBhdGhFbGVtZW50LT5pc0FuaW1WYWxPYnNlcnZlZCgpKSB7Ci0gICAg
ICAgICAgICBhdXRvJiBhbmltYXRlZExpc3QgPSBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAg
ICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMmPigqY3VycmVudEFuaW1hdGVkVmFsdWUoKSk7CiAgICAgICAgICAgICBhbmltYXRlZExp
c3QuY2xlYXIoKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0
ZVN0cmVhbSgqbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtLCAqcGF0aEVsZW1lbnQsIGFuaW1hdGVk
TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDcsNyBAQCBw
dWJsaWM6CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFuaW1hdGVkUGF0aEJ5dGVTdHJlYW0oKSBj
b25zdCB7IHJldHVybiBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW07IH0KIAogcHJpdmF0ZToKLSAg
ICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZh
bHVlcykKKyAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgICAgICwgbV9hbmltYXRl
ZFBhdGhCeXRlU3RyZWFtKG51bGxwdHIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCmluZGV4IDY2Mjk0MTM4MzBmMmQz
ZDI5NWU3YzcwZTRiNzkzMmNiOTcxYzNkM2YuLjdjZmFkYmFiNzcyNzc2MTQ3NDQyNjNiMGNlNmZi
NDNmZGY2NzQwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBTVkdWYWx1ZTsKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9w
ZXJ0eTsKIApAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0
ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFt
ZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBSZWY8VGVh
ck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0
IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0
aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVt
ZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZm8pOwogICAgICAgICBTVkdBbmltYXRl
ZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRlbnRpZmll
cik7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdF
bnRyeSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpyZXN1
bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAotICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4g
d3JhcHBlciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFt
ZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAgUmVmPFNW
R0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQs
IGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSk7
CiAgICAgICAgIGlmIChpbmZvLT5hbmltYXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJc1Jl
YWRPbmx5KQogICAgICAgICAgICAgd3JhcHBlci0+c2V0SXNSZWFkT25seSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFj
cm9zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
TWFjcm9zLmgKaW5kZXggMzBmODU1Njc5NDA5OTA0MzliOGNlZDJlNTdiMmZkNTBiMTEzM2FlOC4u
NjM0OWQ3NzQyYzliNGQ0MzM0YTRjYTUxZDgzOGRlYTFiNjQzZTMzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNy
b3MuaApAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLTIwMTEuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNiArMjYsNyBAQAogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5
TWFwLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdWYWx1
ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdTeW5jaHJvbml6YWJsZUFu
aW1hdGVkUHJvcGVydHkgewogICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSgp
Ci0gICAgICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlh
bFZhbHVlKCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwg
aXNWYWxpZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5
VHlwZT4oKSkKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uc3RydWN0
b3JQYXJhbWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25z
dCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkKLSAgICAgICAgOiB2YWx1ZSh2YWx1ZTEp
Ci0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChm
YWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQ
YXJhbWV0ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjI+Ci0gICAgU1ZHU3luY2hy
b25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFs
dWUxLCBjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjImIHZhbHVlMikKLSAgICAgICAgOiB2YWx1
ZSh2YWx1ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAg
ICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9w
ZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IHZhbHVlKFNWR1ZhbHVl
OjpjcmVhdGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAgICAgewogICAgIH0KIApAQCAtNjEsOSAr
NTAsOSBAQCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5IHsKICAgICAg
ICAgb3duZXJFbGVtZW50LT5zZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJOYW1lLCB2
YWx1ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlIHZhbHVlOwotICAgIGJvb2wgc2hvdWxk
U3luY2hyb25pemUgOiAxOwotICAgIGJvb2wgaXNWYWxpZCA6IDE7CisgICAgUmVmUHRyPFNWR1Zh
bHVlPiB2YWx1ZTsKKyAgICBib29sIHNob3VsZFN5bmNocm9uaXplIHsgZmFsc2UgfTsKKyAgICBi
b29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKIAogLy8gUHJvcGVydHkgcmVnaXN0cmF0aW9uIGhl
bHBlcnMKQEAgLTEyNCwxOSArMTEzLDE5IEBAIHB1YmxpYzogXAogICAgIHsgXAogICAgICAgICBp
ZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VP
d25lclR5cGUsIFRlYXJPZmZUeXBlPih0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8o
KSkpIHsgXAogICAgICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIFwKLSAgICAg
ICAgICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsgXAorICAg
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqd3JhcHBlci0+
Y3VycmVudEFuaW1hdGVkVmFsdWUoKSk7IFwKICAgICAgICAgfSBcCi0gICAgICAgIHJldHVybiBt
XyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJv
cGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKTsgXAogICAgIH0gXAogXAogICAg
IFByb3BlcnR5VHlwZSYgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3QgT3ZlcnJpZGVT
cGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFs
dWU7IFwKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93
ZXJQcm9wZXJ0eS52YWx1ZSk7IFwKICAgICB9IFwKIFwKLSAgICB2b2lkIHNldCMjVXBwZXJQcm9w
ZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdHlwZSwgY29uc3QgYm9vbCB2YWxp
ZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZpZXIgXAorICAgIHZvaWQgc2V0IyNVcHBlclBy
b3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSwgY29uc3QgYm9vbCB2
YWxpZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICBt
XyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSA9IHR5cGU7IFwKKyAgICAgICAgc3RhdGljX2Nhc3Q8UHJv
cGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSA9IHZhbHVlOyBcCiAgICAgICAg
IG1fIyNMb3dlclByb3BlcnR5LmlzVmFsaWQgPSB2YWxpZFZhbHVlOyBcCiAgICAgfSBcCiBcCkBA
IC0xNTYsNyArMTQ1LDcgQEAgcHJpdmF0ZTogXAogICAgIHsgXAogICAgICAgICBpZiAoIW1fIyNM
b3dlclByb3BlcnR5LnNob3VsZFN5bmNocm9uaXplKSBcCiAgICAgICAgICAgICByZXR1cm47IFwK
LSAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlw
ZT46OnRvU3RyaW5nKG1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSk7IFwKKyAgICAgICAgQXRvbWlj
U3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKHN0
YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkpKTsgXAog
ICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5zeW5jaHJvbml6ZSh0aGlzLCBMb3dlclByb3BlcnR5
IyNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgdmFsdWUpOyBcCiAgICAgfSBcCiBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVRlYXJPZmYuaAppbmRleCBlZTVmMDZlYjI5MmZjYzYxYWNmNjJhOWZiZmVlY2VhYjJi
Mzk2Y2E0Li5kYjJlZjFmNDJlMjJhOTg3MWFmZjVhMDg4NDUzZjg1MmUyODllM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlUZWFyT2ZmLmgKQEAgLTMyLDEwICszMiwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUHJv
cGVydHlUeXBlID0gdHlwZW5hbWUgUHJvcGVydHlUZWFyT2ZmOjpQcm9wZXJ0eVR5cGU7CiAgICAg
dXNpbmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJv
cGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAg
ICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJv
cGVydHlUZWFyT2ZmPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAgIH0KIAogICAgIFJlZjxQcm9wZXJ0eVRlYXJPZmY+
IGJhc2VWYWwoKQpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2Jhc2VW
YWwpCiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1f
YmFzZVZhbC5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9m
Zjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV9wcm9wZXJ0eSk7CisgICAgICAgIGF1dG8g
cHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQmFzZVZhbFJvbGUsIG1f
YmFzZVZhbHVlKTsKICAgICAgICAgbV9iYXNlVmFsID0gcHJvcGVydHktPmNyZWF0ZVdlYWtQdHIo
KTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KQEAgLTUzLDM2ICs1Myw0MiBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICByZXR1cm4gKnN0YXRp
Y19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYW5pbVZhbC5nZXQoKSk7CiAKLSAgICAgICAgYXV0
byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwg
bV9wcm9wZXJ0eSk7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNy
ZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUsIG1fYmFzZVZhbHVlKTsKICAgICAgICAgbV9hbmltVmFs
ID0gcHJvcGVydHktPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5Owog
ICAgIH0KIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Fu
aW1hdGVkUHJvcGVydHk7IH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFs
dWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gbV9hbmltYXRl
ZFByb3BlcnR5LT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gbV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZSgpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3Vy
cmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsK
KyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZSgpOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4g
Y3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9iYXNlVmFs
dWU7CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3
QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAg
ICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0g
YW5pbVZhbCgpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKCpuZXdBbmlt
VmFsKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZShuZXdBbmltVmFsKTsK
ICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZSht
X3Byb3BlcnR5KTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZShtX2Jhc2VW
YWx1ZSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQogCkBA
IC0xMDQsMTMgKzExMCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZFBy
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICAgICAgOiBTVkdB
bmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFBy
b3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQorICAgICAgICAsIG1f
YmFzZVZhbHVlKGJhc2VWYWx1ZSkKICAgICB7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBt
X3Byb3BlcnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9iYXNlVmFsdWU7CiAgICAgV2Vha1B0
cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gbV9iYXNlVmFsOwogICAgIFdlYWtQ
dHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYW5pbVZhbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggMjdmYWE3YzNjMThmZmY4ZjhiMTEwYTI4Mjdj
NGQ0N2U2OGQ4YjJjOC4uNTZiYmJkMWZmZTlkYmM2OGExNDJiZGM3MjU4MWE0OTI2Y2ExNDhjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIK
KyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDUz
ICszMyw1OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYmFz
ZVZhbCgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX2Jhc2VWYWx1ZSk7CiAgICAgfQogCiAgICAg
dmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwoKQogICAgIHsKLSAgICAgICAgaWYg
KG1fYW5pbWF0ZWRQcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3Bl
cnR5OwotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgaWYgKG1fYW5pbWF0ZWRW
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV9h
bmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGJhc2VWYWwoKTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJhc2VWYWwoY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJhc2VWYWwoY29uc3Qg
UHJvcGVydHlUeXBlJiBiYXNlVmFsdWUpCiAgICAgewotICAgICAgICBtX3Byb3BlcnR5ID0gcHJv
cGVydHk7CisgICAgICAgIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX2Jhc2VWYWx1ZSkg
PSBiYXNlVmFsdWU7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIAotICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2FuaW1hdGVkUHJvcGVydHk7IH0KKyAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9hbmltYXRlZFZhbHVlOyB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0Fu
aW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYg
cHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
ZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAg
ewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVy
dHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAgIH0KIAotICAgIFByb3BlcnR5
VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVu
dEFuaW1hdGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwot
ICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fYW5p
bWF0ZWRWYWx1ZTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNl
VmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVk
VmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAg
IEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZTsK
KyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYmFzZVZhbHVlOwogICAgIH0KIAotICAgIHZv
aWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9pZCBh
bmltYXRpb25TdGFydGVkKFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsK
LSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbmV3QW5pbVZhbDsKKyAgICAgICAgbV9hbmlt
YXRlZFZhbHVlID0gbmV3QW5pbVZhbDsKICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVk
KCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmlt
YXRlZFByb3BlcnR5ID0gbnVsbHB0cjsKKyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKQEAgLTk5LDE2ICsxMDYs
MTYgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICAgICAgOiBTVkdB
bmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFBy
b3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQotICAgICAgICAsIG1f
YW5pbWF0ZWRQcm9wZXJ0eShudWxscHRyKQorICAgICAgICAsIG1fYmFzZVZhbHVlKGJhc2VWYWx1
ZSkKICAgICB7CisgICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fYmFzZVZhbHVlLCBtX2Jhc2VWYWx1
ZS0+aXM8UHJvcGVydHlUeXBlPigpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUHJvcGVydHlU
eXBlJiBtX3Byb3BlcnR5OwotICAgIFByb3BlcnR5VHlwZSogbV9hbmltYXRlZFByb3BlcnR5Owor
ICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9iYXNlVmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X2FuaW1hdGVkVmFsdWU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3Bl
cnR5VGVhck9mZi5oCmluZGV4IGFhMzU0ZDZiOGM4YjQ3YTlmZWQ0ZjU2OTA0OWY0ZGUyNzJmM2Yw
NWUuLjdhN2ZkYjRmNWMyYmIxMjU2MTEzOTYzYmJjMGZiOGZhZTM4OTY4YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFBy
b3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0yNiw3ICsyNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVy
dHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMm
IHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5
VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC01Myw3ICs1Myw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICAgICAgOiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCB2YWx1ZXMpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgKaW5kZXggODA3NDkyZGQ5MDVlYzZkNjFiNzU0YWJkOTgw
ZDE5YzVjMDdhZjcyYy4uMGRmOTAxZDNkNGMzNzVlOGMyNzM4ZGEwYmEwMzdkZGI0ZDA3YjJjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgK
QEAgLTI1LDE0ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBMaXN0TW9k
aWZpY2F0aW9uIHsKLSAgICBMaXN0TW9kaWZpY2F0aW9uVW5rbm93biA9IDAsCi0gICAgTGlzdE1v
ZGlmaWNhdGlvbkluc2VydCA9IDEsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlcGxhY2UgPSAyLAot
ICAgIExpc3RNb2RpZmljYXRpb25SZW1vdmUgPSAzLAotICAgIExpc3RNb2RpZmljYXRpb25BcHBl
bmQgPSA0Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBjbGFzcyBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7CiAKQEAgLTc1LDE5ICs2NywxNiBAQCBwdWJsaWM6
CiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVyc0FuZFJlc2l6ZShtX3dyYXBwZXJzLCBuZXdMaXN0
U2l6ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhQcm9wZXJ0eVR5
cGUqIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMsIGJvb2wgc2hvdWxkT3duVmFs
dWVzKQorICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIC8v
IFRoaXMgaXMgb25seSB1c2VkIGZvciBhbmltVmFsIHN1cHBvcnQsIHRvIHN3aXRjaCB0aGUgdW5k
ZXJseWluZyB2YWx1ZXMgJiB3cmFwcGVycwogICAgICAgICAvLyB0byB0aGUgY3VycmVudCBhbmlt
YXRlZCB2YWx1ZXMsIG9uY2UgYW5pbWF0aW9uIGZvciBhIGxpc3Qgc3RhcnRzLgogICAgICAgICBB
U1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIEFT
U0VSVChtX3JvbGUgPT0gQW5pbVZhbFJvbGUpOwotICAgICAgICBpZiAobV9vd25zVmFsdWVzKQot
ICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWVzOwogICAgICAgICBtX3ZhbHVlcyA9IHZhbHVlczsK
LSAgICAgICAgbV9vd25zVmFsdWVzID0gc2hvdWxkT3duVmFsdWVzOwogICAgICAgICBtX3dyYXBw
ZXJzID0gd3JhcHBlcnM7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkK
QEAgLTk4LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0
eSgpLmNsZWFyKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KQEAgLTExMSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygw
KTsKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
Y2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgfQpAQCAtMTE5LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdMaXN0OjpudW1iZXJP
Zkl0ZW1zKCkKICAgICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVy
dHkoKS5zaXplKCk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0x
MzQsOCArMTIzLDggQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZh
bHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3Rpbmcg
Y3VycmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0
byBob2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAg
ICAgbV92YWx1ZXMtPmNsZWFyKCk7Ci0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7
CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVy
dHkoKS5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5l
d0l0ZW0gfTsKQEAgLTE1MCw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93
cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgp
ID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4g
bmV3SXRlbShpdGVtKTsKIApAQCAtMTU5LDkgKzE0OCw5IEBAIHB1YmxpYzoKIAogICAgICAgICAv
LyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBh
bmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lm
aWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAg
ICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIo
KTsKIAotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNl
KCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsK
ICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0xNzEsNyArMTYwLDcgQEAgcHVibGljOgogICAg
IC8vIFNWR0xpc3Q6OmdldEl0ZW0oKQogICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGNhbkdldEl0ZW0o
dW5zaWduZWQgaW5kZXgpCiAgICAgewotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNp
emUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xODUsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5z
IHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0
aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5
cGUgeyBtX3ZhbHVlcy0+YXQoaW5kZXgpIH07CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUg
eyBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkp
IH07CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmPExpc3RJdGVtVGVhck9mZj4+IGdldEl0
ZW1WYWx1ZXNBbmRXcmFwcGVycyhBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVk
TGlzdCwgdW5zaWduZWQgaW5kZXgpCkBAIC0xOTksMTMgKzE4OCwxMyBAQCBwdWJsaWM6CiAKICAg
ICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4g
VGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgogICAg
ICAgICAvLyBBbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSBpdGVtIGFyZSBpbW1lZGlhdGVseSByZWZs
ZWN0ZWQgaW4gdGhlIGxpc3QuCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1f
d3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUo
KSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2Zm
PiB3cmFwcGVyID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQo
aW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBD
cmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRo
ZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4g
b3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91ciBh
bmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2gg
aG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFzIGJl
ZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2Np
YXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJP
ZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRl
eCkpOworICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1h
dGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogICAg
ICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigp
OwogICAgICAgICB9CiAKQEAgLTIyMSw4ICsyMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRo
ZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0
aGUgbmV3IGl0ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAg
aWYgKGluZGV4ID4gbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1
ZXMtPnNpemUoKTsKKyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkp
CisgICAgICAgICAgICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCiAgICAgICAg
IC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQg
ZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxp
c3QuCiAgICAgICAgIGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAm
aW5kZXgpKSB7CkBAIC0yMzIsNyArMjIxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6
IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRp
b24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRv
IGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYg
dGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0
IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwg
bmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBTVkdWYWx1
ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMjQ4LDEw
ICsyMzcsMTAgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFu
IG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVk
IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5z
aXplKCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlm
IChpbmRleCA+IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUo
KSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHko
KS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1U
ZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0yNjEsNyArMjUwLDcgQEAgcHVibGljOgogCiAg
ICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBz
cGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhl
IG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBp
cyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVt
IGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMt
Pmluc2VydChpbmRleCwgbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZh
bHVlc1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBuZXdJdGVtLT52YWx1ZSgpKTsKIAogICAgICAg
ICAvLyBTdG9yZSBuZXcgd3JhcHBlciBhdCBwb3NpdGlvbiAnaW5kZXgnLCBjaGFuZ2UgaXRzIHVu
ZGVybHlpbmcgdmFsdWUsIHNvIG11dGF0aW9ucyBvZiBuZXdJdGVtLCBkaXJlY3RseSBhZmZlY3Qg
dGhlIGl0ZW0gaW4gdGhlIGxpc3QuCiAgICAgICAgIG1fd3JhcHBlcnMtPmluc2VydChpbmRleCwg
bmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKQEAgLTI3OCw3ICsyNjcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49
IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgp
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9
OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjk4LDEzICsyODcsMTMgQEAgcHVibGljOgog
ICAgICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQ
cm9wZXJ0eSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkg
bGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdo
aWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBV
cGRhdGUgdGhlIHZhbHVlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAg
ICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TGlz
dEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSA9IG5ld0l0ZW07CiAKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJ
dGVtIH07CkBAIC0zMTksNyArMzA4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5l
d0l0ZW0oaXRlbSk7CiAKQEAgLTMyOCw3ICszMTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICgh
cHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sICZpbmRleCkpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKIAotICAgICAgICBpZiAobV92YWx1ZXMtPmlz
RW1wdHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzLT5pc0VtcHR5KCkpOwogICAgICAgICAgICAgLy8g
J25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBu
b3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CkBAIC0zNDAs
NyArMzI5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigp
OwogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBk
ZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0g
bmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5h
dChpbmRleCkgPSBuZXdJdGVtLT52YWx1ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRl
eCkgPSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CkBAIC0zNTUsNyArMzQ0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAg
ICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTM2OCw4ICszNTcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAKLSAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5k
ZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1U
eXBlIG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHko
KS5hdChpbmRleCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpbmRleCk7CiAK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG9sZEl0ZW0p
OwpAQCAtMzg0LDE2ICszNzMsMTYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBt
X3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIERldGFjaCB0aGUgZXhpc3Rpbmcgd3Jh
cHBlci4KICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gb2xkSXRlbSA9IHN0YXRpY19j
YXN0PExpc3RJdGVtVGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAgICAg
ICAgIGlmICghb2xkSXRlbSkKLSAgICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6
OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkp
OworICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVk
TGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogCiAgICAg
ICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3Zl
KGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIHZhbHVl
c1Byb3BlcnR5KCkucmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAg
ICAgICAgcmV0dXJuIG9sZEl0ZW0ucmVsZWFzZU5vbk51bGwoKTsKQEAgLTQxMSw3ICs0MDAsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwg
MCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0
LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQcm9w
ZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwog
CiAgICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAg
cmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTQyNiw3ICs0MTUsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAg
ICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAg
ICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5ICs0MjMs
MjUgQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3
SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0
aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnBy
b3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJ
dGVtLT52YWx1ZSgpKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0
ZVdlYWtQdHIoKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBl
bmQpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKICAgICB9CiAKLSAgICBQcm9w
ZXJ0eVR5cGUmIHZhbHVlcygpCisgICAgUmVmPFNWR1ZhbHVlPiB2YWx1ZXMoKSBjb25zdAogICAg
IHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgcmV0dXJuICptX3ZhbHVlczsK
ICAgICB9CiAKKyAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlc1Byb3BlcnR5KCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVR5cGUmPigqbV92YWx1ZXMpOworICAgIH0KKwogICAgIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKQEAg
LTQ1OSwyMCArNDU0LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdM
aXN0UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSogd3JhcHBlcnMpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9vd25z
VmFsdWVzKGZhbHNlKQotICAgICAgICAsIG1fdmFsdWVzKCZ2YWx1ZXMpCisgICAgICAgICwgbV92
YWx1ZXModmFsdWVzKQogICAgICAgICAsIG1fd3JhcHBlcnMod3JhcHBlcnMpCiAgICAgewogICAg
IH0KIAotICAgIHZpcnR1YWwgflNWR0xpc3RQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICBpZiAo
bV9vd25zVmFsdWVzKQotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWVzOwotICAgIH0KLQogICAg
IHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21t
aXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbikKICAgICB7CkBAIC00ODMsOCArNDcxLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIo
UmVmPExpc3RJdGVtVGVhck9mZj4mIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSA9
IDA7CiAKICAgICBTVkdQcm9wZXJ0eVJvbGUgbV9yb2xlOwotICAgIGJvb2wgbV9vd25zVmFsdWVz
OwotICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Zh
bHVlczsKICAgICBMaXN0V3JhcHBlckNhY2hlKiBtX3dyYXBwZXJzOwogICAgIFdlYWtQdHJGYWN0
b3J5PFNWR0xpc3RQcm9wZXJ0eT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5k
ZXggMWUwNDlkZTEzMDU1YzBiZDRmNzFiZTAyNDcwMDljM2M0N2JhYTIwYi4uZWMzN2QzZTYxNDg4
Zjg0OTBhZjkwYTMxODYyMjQ4NjA5NGNhM2VlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApAQCAtMzUsMjIgKzM1
LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjsKICAgICB1c2luZyBM
aXN0V3JhcHBlckNhY2hlID0gdHlwZW5hbWUgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2FjaGU7CiAKKyAgICB1c2luZyBCYXNlOjp2YWx1
ZXNQcm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92
YWx1ZXM7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAotICAgIHN0YXRpYyBSZWY8U2Vs
Zj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihhbmltYXRlZFByb3Bl
cnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgaW50IGZpbmRJdGVt
KExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICB1bnNpZ25lZCBz
aXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVl
cy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXpl
KCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAg
ICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+YXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGk7CkBAIC02MSwxNSArNjAsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVt
RnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJz
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aXRlbUluZGV4IDwgbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBhdXRvIGl0ZW0gPSBt
X3dyYXBwZXJzLT5hdChpdGVtSW5kZXgpOwogICAgICAgICBpdGVtLT5kZXRhY2hXcmFwcGVyKCk7
CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpdGVtSW5kZXgpOwotICAgICAgICBtX3ZhbHVl
cy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0
ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAg
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQ
cm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZH
TGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9w
ZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1f
YW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgIHsKQEAgLTEyOSwxOCArMTI3
LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJz
KTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBp
biB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBt
X3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXpl
KCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAg
IGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpOwogICAgICAgICAgICAgaWYgKCFpdGVtKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQ
cm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkucHRyKCkpOwotICAgICAgICAgICAgaXRlbS0+c2V0
VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKHZhbHVl
c1Byb3BlcnR5KCkuYXQoaSkpOwogICAgICAgICB9CiAKICAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5LT5jb21taXRDaGFuZ2UoKTsKQEAgLTE2OSw3ICsxNjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgICAgICAvLyBTVkdSZWN0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGggJ3dpZHRoJyBwcm9w
ZXJ0eSBiYXNlVmFsIHBvaW50cyB0byB0aGUgc2FtZSB0ZWFyIG9mZiBvYmplY3QKICAgICAgICAg
ICAgIC8vIHRoYXQncyBpbnNlcnRlZCBpbnRvIFNWR1RleHRFbGVtZW50cyBTVkdBbmltYXRlZExl
bmd0aExpc3QgJ3gnLiB0ZXh0RWxlbWVudC54LmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSArPSAx
NTAgd291bGQKICAgICAgICAgICAgIC8vIG11dGF0ZSB0aGUgcmVjdEVsZW1lbnQgd2lkdGggX2Fu
ZF8gdGhlIHRleHRFbGVtZW50IHggbGlzdC4gVGhhdCdzIG9idmlvdXNseSB3cm9uZywgdGFrZSBj
YXJlIG9mIHRoYXQuCi0gICAgICAgICAgICBuZXdJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVh
dGUobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgICAgICBuZXdJdGVtID0g
TGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUobmV3SXRlbS0+dmFsdWVQcm9wZXJ0eSgpKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAppbmRleCBlMGJmMGQwODI3ZTczZjdmYzhm
ZmQyMDkzMDlkZjAxZTNjMjk5YTE1Li4xNGMxYzJlYmI0MWQ2OTliOThhNjU5NGJkZTBkOTBiNjcy
NGYwMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRy
aXhUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4
VGVhck9mZi5oCkBAIC0yOCwxOSArMjgsMTkgQEAgY2xhc3MgU1ZHTWF0cml4VGVhck9mZiBmaW5h
bCA6IHB1YmxpYyBTVkdNYXRyaXggewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4
VGVhck9mZj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFyZW50LCBTVkdNYXRyaXhWYWx1ZSYgdmFs
dWUpCiAgICAgewotICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5
UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsKKyAgICAgICAgQVNTRVJUX1VOVVNF
RCh2YWx1ZSwgJnBhcmVudC52YWx1ZVByb3BlcnR5KCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsK
ICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4VGVhck9mZihwYXJlbnQpKTsKICAgICAgICAgcGFyZW50LmFkZENoaWxkKHJlc3VsdC0+
bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKHJlc3VsdCkpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KIAotICAgIFNWR01hdHJpeFZhbHVlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZp
bmFsIHsgcmV0dXJuIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9
CisgICAgU1ZHTWF0cml4VmFsdWUmIHZhbHVlUHJvcGVydHkoKSBmaW5hbCB7IHJldHVybiBtX3Bh
cmVudC0+dmFsdWVQcm9wZXJ0eSgpLnN2Z01hdHJpeCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVl
KFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRNYXRyaXgodmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+dmFsdWVQcm9wZXJ0eSgpLnNldE1h
dHJpeChzdGF0aWNfY2FzdDxTVkdNYXRyaXhWYWx1ZSY+KCp2YWx1ZSkpOyB9CiAKICAgICB2b2lk
IGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewotICAgICAgICBtX3BhcmVudC0+cHJvcGVydHlS
ZWZlcmVuY2UoKS51cGRhdGVTVkdNYXRyaXgoKTsKKyAgICAgICAgbV9wYXJlbnQtPnZhbHVlUHJv
cGVydHkoKS51cGRhdGVTVkdNYXRyaXgoKTsKICAgICAgICAgbV9wYXJlbnQtPmNvbW1pdENoYW5n
ZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVRlYXJPZmYuaAppbmRleCA2ZjYzYjE2NGFiMzVhOTgwZDA2Zjc1OGIwZmZkNzExNjEz
NjlkMzc4Li41NzVhNDEzMjgwOTZkZDU0NGI4MDEyYzNiYTIxYjc0ZjNjNzcyZGQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaApA
QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisjaW5jbHVkZSAi
U1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC02NSwxNyArNjYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gY3JlYXRlKGlu
aXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQ
cm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJlbmNlKCkgeyByZXR1cm4gKm1fdmFsdWU7IH0KKyAg
ICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAg
IHZpcnR1YWwgUHJvcGVydHlUeXBlJiB2YWx1ZVByb3BlcnR5KCkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKm1fdmFsdWUpOyB9CiAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSog
YW5pbWF0ZWRQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQo
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKFByb3BlcnR5VHlwZSYgdmFsdWUpCisg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJ
c0NvcHkpCiAgICAgICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRl
IG1fdmFsdWU7Ci0gICAgICAgIH0KICAgICAgICAgbV92YWx1ZUlzQ29weSA9IGZhbHNlOwotICAg
ICAgICBtX3ZhbHVlID0gJnZhbHVlOworICAgICAgICBtX3ZhbHVlID0gdmFsdWU7CiAgICAgfQog
CiAgICAgdm9pZCBzZXRBbmltYXRlZFByb3BlcnR5KFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1h
dGVkUHJvcGVydHkpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICAvLyBpdGVt
LnZhbHVlIHN0aWxsIGhhcyB0byByZXBvcnQgJzUwJyBhbmQgaXQgaGFzIHRvIGJlIHBvc3NpYmxl
IHRvIG1vZGlmeSAnaXRlbScKICAgICAgICAgLy8gdy9vIGNoYW5naW5nIHRoZSAibmV3IGl0ZW0i
ICh3aXRoIHg9MTAwKSBpbiB0aGUgdGV4dCBlbGVtZW50LgogICAgICAgICAvLyBXaGVuZXZlciB0
aGUgWE1MIERPTSBtb2RpZmllcyB0aGUgIngiIGF0dHJpYnV0ZSwgYWxsIGV4aXN0aW5nIHdyYXBw
ZXJzIGFyZSBkZXRhY2hlZCwgdXNpbmcgdGhpcyBmdW5jdGlvbi4KLSAgICAgICAgbV92YWx1ZSA9
IG5ldyBQcm9wZXJ0eVR5cGUoKm1fdmFsdWUpOworICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6
OmNyZWF0ZShzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV92YWx1ZSkpOwogICAgICAgICBt
X3ZhbHVlSXNDb3B5ID0gdHJ1ZTsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbnVsbHB0
cjsKICAgICB9CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAg
IFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwg
bV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV92YWx1ZSgmdmFsdWUpCisgICAgICAgICwgbV92YWx1
ZSh2YWx1ZSkKICAgICAgICAgLCBtX3ZhbHVlSXNDb3B5KGZhbHNlKQogICAgIHsKICAgICB9CkBA
IC0xNTIsMTcgKzE1MiwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKGNv
bnN0IFByb3BlcnR5VHlwZSogaW5pdGlhbFZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9w
ZXJ0eShudWxscHRyKQogICAgICAgICAsIG1fcm9sZShVbmRlZmluZWRSb2xlKQotICAgICAgICAs
IG1fdmFsdWUoaW5pdGlhbFZhbHVlID8gbmV3IFByb3BlcnR5VHlwZSgqaW5pdGlhbFZhbHVlKSA6
IG51bGxwdHIpCiAgICAgICAgICwgbV92YWx1ZUlzQ29weSh0cnVlKQogICAgIHsKKyAgICAgICAg
aWYgKGluaXRpYWxWYWx1ZSkKKyAgICAgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRl
KCppbml0aWFsVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflNWR1Byb3BlcnR5VGVhck9m
ZigpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92
YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBk
ZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgZGV0YWNoQ2hpbGRy
ZW4oKQpAQCAtMTc2LDEwICsxNzUsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPFNWR0Fu
aW1hdGVkUHJvcGVydHk+IG1fYW5pbWF0ZWRQcm9wZXJ0eTsKICAgICBTVkdQcm9wZXJ0eVJvbGUg
bV9yb2xlOwotICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IG1fdmFsdWU7CiAgICAgVmVjdG9yPFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmQmFzZT4+IG1f
Y2hpbGRUZWFyT2ZmczsKICAgICBXZWFrUHRyRmFjdG9yeTxTVkdQcm9wZXJ0eVRlYXJPZmY+IG1f
d2Vha1B0ckZhY3Rvcnk7Ci0gICAgYm9vbCBtX3ZhbHVlSXNDb3B5OworICAgIGJvb2wgbV92YWx1
ZUlzQ29weSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAppbmRleCBhZmRhZDk1OGE5YWNhNzZjZDYzZjk4
ZGIwMWZkZTY4NTc4ODNjNjA3Li4xMmI1MjI4OWJlOTkzMDcwN2FkMGMwYTYxYTg0NTExNDhmOTkz
MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
VHJhaXRzLmgKQEAgLTIwLDE5ICsyMCw0NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5o
IgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNp
bmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorZW51bSBMaXN0TW9kaWZpY2F0aW9uIHsKKyAgICBMaXN0TW9kaWZpY2F0aW9u
VW5rbm93biA9IDAsCisgICAgTGlzdE1vZGlmaWNhdGlvbkluc2VydCA9IDEsCisgICAgTGlzdE1v
ZGlmaWNhdGlvblJlcGxhY2UgPSAyLAorICAgIExpc3RNb2RpZmljYXRpb25SZW1vdmUgPSAzLAor
ICAgIExpc3RNb2RpZmljYXRpb25BcHBlbmQgPSA0Cit9OworICAgIAogdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlPgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzIHsgfTsKIAogdGVtcGxh
dGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9vbCBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0YXRpYyBib29sIGZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0KICAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVl
IiA6ICJmYWxzZSI7IH0KIH07CiAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxDb2xvcj4geworICAgIHN0YXRpYyBDb2xvciBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBDb2xv
cigpOyB9CisgICAgc3RhdGljIENvbG9yIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
IHsgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkp
OyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29sb3I+IHBhcnNlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIENvbG9yIGNvbG9y
ID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAg
ICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCkgPyBjb2xvciA6IHN0ZDo6b3B0aW9uYWw8Q29sb3I+
KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgQ29sb3ImIHR5cGUp
IHsgcmV0dXJuIHR5cGUuc2VyaWFsaXplZCgpOyB9Cit9OworCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3Qg
U1ZHUHJvcGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4gMDsgfQpAQCAtNDIsMTkgKzcwLDEwOSBAQCBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czxpbnQ+IHsKICAgICBzdGF0aWMgaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0K
KyAgICBzdGF0aWMgaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJnN0cmluZykgeyByZXR1cm4g
c3RyaW5nLnRvSW50U3RyaWN0KCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0
eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKKyAgICAKK3RlbXBsYXRl
PD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB7CisgICAg
c3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9
CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVt
YmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywg
Zmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PGludD4ocm91
bmRmKGZpcnN0TnVtYmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikp
KTsKKyAgICB9Cit9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Zmxv
YXQ+IHsKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAg
IHN0YXRpYyBmbG9hdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgZmxvYXQgdHlwZSA9IDA7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJp
bmcoc3RyaW5nLCB0eXBlKSA/IHR5cGUgOiAwOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxmbG9hdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgbnVtYmVyOworICAgICAgICByZXR1cm4gcGFyc2VO
dW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKSA/IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+KCk7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkg
eyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRp
YyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25k
TnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmlu
ZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9Owor
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVy
KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Rmxv
YXRQb2ludD4geworICAgIHN0YXRpYyBGbG9hdFBvaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IEZsb2F0UG9pbnQoKTsgfQorICAgIHN0YXRpYyBGbG9hdFBvaW50IGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBvaW50OworICAgICAg
ICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDogRmxvYXRQb2ludCgp
OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBG
bG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50
KSA/IHBvaW50IDogc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PigpOworICAgIH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHR5cGUpCisgICAgeworICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5
cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFJlY3Q+IHsKKyAgICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZs
b2F0UmVjdCgpOyB9CisgICAgc3RhdGljIEZsb2F0UmVjdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVy
biBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3QgOiBGbG9hdFJlY3QoKTsKKyAgICAgICAg
CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxv
YXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJl
Y3QgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIodHlwZS55KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsKKyAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9OworCiB0ZW1wbGF0ZTw+CiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPiB7CiAgICAgc3RhdGljIFN0cmluZyBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU3RyaW5nJiB0eXBlKSB7IHJldHVybiB0eXBlOyB9CisgICAgc3RhdGljIFN0cmlu
ZyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaApp
bmRleCA3ODY4NzRkY2EwMTE2OGMyZWM0YzQ3MGEyZDczNzBhMjZmYjIyY2M1Li44OWZkYTQ0N2Fh
MTAxNDJlNTc3ZmNiODBlNzZlN2M0MTE0NmRiMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5o
CkBAIC0zMyw3ICszMyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSB0
eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVRlYXJPZmY7
CiAKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7Cisg
ICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVydHk7CiAKICAgICBzdGF0aWMgUmVmPFNlbGY+IGNy
ZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCiAg
ICAgewpAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVz
KQogICAgICAgICA6IEJhc2UoVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAg
ICAsIG1fY29udGV4dEVsZW1lbnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzg5
LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENo
YW5nZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRD
aGFuZ2UobV9jb250ZXh0RWxlbWVudCk7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21p
bmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3Bl
cnR5VGVhck9mZi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJv
cGVydHlUZWFyT2ZmLmgKaW5kZXggNWUyY2EwOWEwZGQ5ZmFmNDY4NTNlYmRhOTdjOWY4MGYzMDU2
NTFlNy4uNWQ1M2U5OTRiNzUyNGE4YjE0NzQ2Zjg3MTI1NzViYmE1NWFhMWEyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2Zm
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlU
ZWFyT2ZmLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogCiAgICAgLy8gVXNlZCBmb3Igbm9u
LWFuaW1hdGVkIFBPRCB0eXBlcyB0aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSBvYmplY3QsIG5vciB3aXRoIGEgWE1MIERPTSBhdHRyaWJ1dGUKICAgICAv
LyAoZm9yIGV4YW1wbGU6IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgotICAgIHN0
YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJv
cGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBzdGF0aWMgUmVmPFNl
bGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0ZSkpOwog
ICAgIH0KQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkg
ZmluYWwgeyAobV9jb250ZXh0RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0
RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBT
VkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICAg
ICAgOiBQcm9wZXJ0eVRlYXJPZmYoVW5kZWZpbmVkUm9sZSwgdmFsdWUpCiAgICAgICAgICwgbV91
cGRhdGUodXBkYXRlKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333629</attachid>
            <date>2018-02-12 13:48:43 -0800</date>
            <delta_ts>2018-02-12 15:19:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180212134842.patch</filename>
            <type>text/plain</type>
            <size>362646</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5NyBAQAorMjAxOC0wMi0xMiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBub3Qg
bG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVy
ZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50
IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0aGlz
IHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2ggaXMg
YSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRhIHR5
cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRyaWJ1
dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlwZSB0
byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAgICAg
IGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBkYXRh
IHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRvIGJl
IG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSBT
VkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9sZCBS
ZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6
Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OlNW
R0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1Rh
cmdldCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNl
VmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0
cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5n
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxl
bmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RS
YXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24pOgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6
OlNWR0VsbGlwc2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4
RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVp
bGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQpOgor
ICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRW
YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVTcGVj
aWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToKKyAg
ICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0
aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhM
aXN0VmFsdWVzPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhWYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+OjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46
OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTGlzdFZhbHVlcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29weSBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6
OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFzdFBy
b3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtl
clVuaXRzVHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmhpZ2hl
c3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1WYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRzPFNW
R01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50
OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4
OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRCKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0ZUZy
b21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051bWJl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1i
ZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVl
cz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRzTGlz
dEZyb21TVkdEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVhbTo6
YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjppc0VtcHR5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3Ry
ZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVE
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0
OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1
aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFNv
dXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdFNvdXJjZTo6bmV4dENvbW1hbmQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAgICAo
V2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1BvaW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50
OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZH
UG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExp
c3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50
TGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAg
ICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlF
bGVtZW50Ojpwb2ludExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbyk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Jl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0Ojpz
ZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hl
Y2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAgICog
c3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdM
aXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVz
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6
bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06
OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3Qu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0
b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAgICAg
IChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6OnBhcnNlVmlzaXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6aXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1ZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6U1ZH
VmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdT
cGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6
OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZp
ZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0
aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjph
bmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3Vy
cmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFy
T2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Rh
dGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpzZXRWYWx1ZXNB
bmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFyVmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXNBbmRX
cmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Om51bWJlck9mSXRl
bXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXpl
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZh
bHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2Fu
R2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVzQW5k
V3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVt
QmVmb3JlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5zZXJ0
SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6Y2FuUmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5OjpyZXBsYWNlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjYW5SZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXNQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQcm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21M
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJP
ZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZVByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46Omlu
aXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJl
Y3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTEyICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIyODM3Ni4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw3ICsy
MDcxLDYgQEAgc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKIHN2Zy9TVkdB
bmltYXRlZFJlY3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCiBzdmcvU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmNwcAotc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKIHN2Zy9TVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5jcHAKIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAogc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuY3BwCkBAIC0yMTM1LDYgKzIxMzQsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2MzIsNyArMTYzMiwxNSBAQAogCQk1NTUwQ0I0MjFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1
MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTUxMzAwMTFFN0NDQ0NCMDBBNjlFMzgg
LyogRGVjb2RpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3
RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyog
SW1hZ2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJNTU2MjdCNzgyMDI5MkJGNDAwMkQzOTdEIC8qIFNW
R0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU3NkE1NjUxRDg4QTcw
ODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5
OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RjIyNDMxREQzQjNCOTAwRTkyREEz
IC8qIFNWR0FuZ2xlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZh
bHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
OUMzNjkxRERCODZEMzAwRkVGQjI5IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5QzIwMjU0NjA1
MDA0RDc1RjQgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQ
YXRoU2VnTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlD
MzZCMUREQjg3MUMwMEZFRkIyOSAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RTIwMjU0NjJCMDA0
RDc1RjQgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyog
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUYyMDI1NDY3NTAwNEQ3NUY0IC8qIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDMzlDMzZEMUREQjhCQjAwMEZFRkIyOSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTVBMzM2RjcxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCAqLzsgfTsKIAkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIElt
YWdlQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUFGMTRF
NjFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElS
ZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTMwLDcgKzE5MzgsNyBAQAogCQk3MTU1NkNCRDFGOUYwQTQ5MDBFNzhEMDggLyogSlNB
bmltYXRpb25FZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxNTU2Q0I5MUY5RjA5RkQwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVj
dFRpbWluZy5oICovOyB9OwogCQk3MTU1NkNCRTFGOUYwQTQ5MDBFNzhEMDggLyogSlNLZXlmcmFt
ZUVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzE1NTZDQjcxRjlGMDlGQzAwRTc4RDA4IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCAqLzsgfTsKIAkJ
NzFBMUI2MDgxREVFNUFENzAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6
ZWQtc3RyaW5ncy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFBMUI2MDYxREVFNUE4MjAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1s
b2NhbGl6ZWQtc3RyaW5ncy5qcyAqLzsgfTsKLQkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8q
IFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
Ki87IH07CisJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE1N0RGMDE1
NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxQzkxNjA4MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcxRENCNzAyMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21B
bmRQYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcx
RENCNzAwMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJNzFF
MjE4M0ExNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRTIxODM4MTczNTlGQjgwMDZFNkU0
RCAvKiBQbHVnSW5zUmVzb3VyY2VzLmggKi87IH07CkBAIC0yMDMyLDcgKzIwNDAsNyBAQAogCQk3
QzMwRDk4NjFGODE1QUVDMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMEQ5ODExRjgxNUFDMTAwMjY4MzU2
IC8qIEpTQWJvcnRTaWduYWwuaCAqLzsgfTsKIAkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8q
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdDMzMwQTA4MURGOUY5NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9uT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
MzBBMDYxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggKi87IH07Ci0JCTdD
MzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBG
RUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyB9OworCQk3QzM5QzM2NTFEREE4NjUy
MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzM5QzM3NzFEREJFMTcwMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMz
NjcxRERCODJDRjAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNBOTFFNjFDOTYzQjg4MDBE
MUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNBOTFFNTFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNC
Nzk2RjE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLzsgfTsKQEAg
LTIxNjQsMTAgKzIxNzIsOSBAQAogCQk3Q0UxOTE3OTFGMkFCRTcxMDAyNzJGNzggLyogSlNGZXRj
aFJlcXVlc3RNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0UxOTE2QzFGMkFCNzBBMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RNb2RlLmggKi87
IH07CiAJCTdDRTE5MTdCMUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UxOTE2
QTFGMkFCNzA2MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oICovOyB9OwogCQk3
Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBT
VkdQb2ludC5oICovOyB9OwotCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NF
NThENEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLzsgfTsKIAkJN0NFNThE
NTAxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051
bWJlci5oICovOyB9OwotCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3Jt
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3
Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1
MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyB9OworCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIg
LyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdD
RTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUy
IC8qIFNWR01hdHJpeFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNjgzNDIxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRl
c2NyaXB0b3IuY3BwICovOyB9OwogCQk3Q0U2ODM0NTE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NFNjgzNDMxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0U2ODM0NzE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVz
Y3JpcHRvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIzMDksNyArMjMxNiw3IEBACiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07Ci0JCTg0MTlEMkE3
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8q
IFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CisJCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAv
KiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQx
OUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJE
MDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwogCQk4NDE5RDJB
RDEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkFCMTIwRDkyRkMwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oICovOyB9OwogCQk4NDE5RDJCQTEyMEUw
Qzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkI4MTIwRTBDNzYwMDE0MUY4RiAvKiBT
VkdQYXRoU3RyaW5nQnVpbGRlci5oICovOyB9OwpAQCAtMjMzNiw3ICsyMzQzLDcgQEAKIAkJODQ3
MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAwRDNBOUM5
IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIg
LyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07Ci0JCTg0
NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIw
MiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKKwkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAy
IC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0NzZD
OUYwMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5oICovOyB9OwogCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVH
YXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9Owog
CQk4NDgyQjc0NjExOThDMzU0MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBE
NDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi87IH07CkBAIC0zMjgxLDkgKzMyODgsOSBAQAog
CQlCMjIyN0E0QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhCNTBEMDBCRjIw
MDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggKi87IH07CiAJCUIyMjI3QTRFMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJl
ckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEJCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0
aWxpdGllcy5oICovOyB9OworCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTkwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0
aEVsZW1lbnQuaCAqLzsgfTsKLQkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhT
ZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3
OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IH07CisJCUIyMjI3QTVCMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNl
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
MjI3QTVFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDODBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZ0FyYy5oICovOyB9OwogCQlCMjIyN0E2MjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4Q0MwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBh
dGguaCAqLzsgfTsKIAkJQjIyMjdBNjUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyMjI3OENGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmggKi87
IH07CkBAIC03MjgzLDcgKzcyOTAsNiBAQAogCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM5RDMzNDIxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBMEYwQjAxM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0Fu
aW1hdGVkTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNBMEYw
QjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRD
b2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRC
OCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE3NCwxMCArODE4MCwxMyBAQAogCQk1NTBB
MEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTQ2
NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1hZ2VTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTQ2NzU3
ODFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU1MDRFOTQyMDJDREZEMjAw
NTA3QzczIC8qIFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZh
bHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0Mw
MDExMUFBMCAvKiBJbWFnZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MTMwMDAxRTdD
Q0NDQTAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWNvZGluZ09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdl
RGVjb2RlckNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2Rl
ckNHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1NjI3Qjc2MjAyOEVEQzQwMDJE
Mzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xpc3RWYWx1ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8q
IFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01h
cmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYyMUQ4OEE3
MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODE4NSw2ICs4MTk0LDcgQEAKIAkJNTVBRjE0RTMxRUFBQzU5QjAwMjZFRUFB
IC8qIFVUSVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUSVJlZ2lzdHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8q
IFVUSVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUSVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1RDQwOEY3MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNs
aWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3
QiAvKiBTVkdWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2
MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTkxRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2Jj
Q2ZiUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWVzQ2JjQ2Zi
UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDVCMUU1MzkzNzkw
MDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0Flc0NiY0NmYlBhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NDY2LDcgKzk0NzYsNiBAQAogCQk3Q0UxOTE2RTFGMkFCNzBEMDAyNzJGN0Ig
LyogSlNDYWNoZVF1ZXJ5T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhY2hlUXVl
cnlPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFMTkxNkYxRjJB
QjcwRjAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdSZWN0VHJhaXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTnVtYmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUxMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5n
dGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGVuZ3RoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUyMUREN0IwOTMwMDEyODU1MiAvKiBTVkdM
ZW5ndGhWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdM
ZW5ndGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQzMSw3ICsy
MjQ0MCw2IEBACiAJCQkJNzE1N0YwNjExNTBCNjU2NDAwNkVBQUJEIC8qIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAgKi8sCiAJCQkJMDgyNTA5MzgxMjhCRDREODAwRTJFRDhFIC8qIFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAotCQkJCTQzQTBGMEI1MTNBQ0NDRkYw
MEE1RjBBNyAvKiBTVkdBbmltYXRlZFR5cGUuY3BwICovLAogCQkJCTQzOUQzMzQwMTNBNjkxMUMw
MEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKIAkJCQk4MzZGQkNFOTE3OEMxMTMyMDBC
MjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovLAogCQkJCTQzOUQzMzQxMTNB
NjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovLApAQCAtMjI2MzIs
MTEgKzIyNjQwLDE0IEBACiAJCQkJQjIyMjc4QTUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVF
bGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBNjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVs
ZW1lbnQuaCAqLywKIAkJCQlCMjIyNzhBNzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1l
bnQuaWRsICovLAorCQkJCTU1NTA0RTk0MjAyQ0RGRDIwMDUwN0M3MyAvKiBTVkdMaXN0VmFsdWVz
LmNwcCAqLywKKwkJCQk1NTYyN0I3NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5o
ICovLAogCQkJCUIyMjI3OEFBMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuY3BwICov
LAogCQkJCUIyMjI3OEFCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCAqLywKIAkJ
CQlCMjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQjIyMjc4QUUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCAqLywKIAkJ
CQlCMjIyNzhBRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5pZGwgKi8sCisJ
CQkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggKi8sCiAJCQkJ
QjIyMjc4QjAwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzhCMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaCAqLywKIAkJCQlCMjIy
NzhCMjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaWRsICovLApAQCAtMjI3NzAs
NyArMjI3ODEsNiBAQAogCQkJCUIyMjI3OTA3MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxl
bWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5MDgwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc5MDkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50
LmlkbCAqLywKLQkJCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5o
ICovLAogCQkJCUIyMjI3OTBBMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQu
aCAqLywKIAkJCQlCMjIyNzkwQjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50
LmlkbCAqLywKIAkJCQlCMjIyNzkwQzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHU2NyaXB0RWxlbWVu
dC5jcHAgKi8sCkBAIC0yMjg0Nyw2ICsyMjg1Nyw3IEBACiAJCQkJQjIyMjc5NTYwRDAwQkYyMTAw
NzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTU3MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdVc2VFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NTgwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1VzZUVsZW1lbnQuaWRsICovLAorCQkJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAv
KiBTVkdWYWx1ZS5oICovLAogCQkJCUIyMjI3OTU5MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3
RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NUEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdF
bGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NUIwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVt
ZW50LmlkbCAqLywKQEAgLTI5NjkzLDYgKzI5NzA0LDcgQEAKIAkJCQk2NTY1M0YyRTBEOTcyN0Qy
MDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5
MTJCODEzQ0E5QTY5MDBEMjE5MTUgLyogU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0EwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4N0I4NDk2MTI3MkNFQzgwMEEx
NDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU3OTcwOTEy
NzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5ODA0LDYgKzI5ODE2LDcgQEAKIAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
TGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNC
QSAvKiBTVkdMaXN0UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA5MTI2RUYx
REIwMDk3OEY3QSAvKiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBNDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJr
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODE2LDYgKzI5ODI5LDcgQEAKIAkJCQlC
MjIyN0E0RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUIyMDI1NDVFQTAwNEQ3NUY0IC8qIFNWR051bWJlckxp
c3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0EwRTM2MTNBN0Q3
NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QzY3
ODREMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTg1NCw2ICsyOTg2OCw3IEBACiAJCQkJQjIyMjdBODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhdGhTZWdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlFNjExREY2QTBCMDA1NTVC
MDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEI2Qjk3
ODEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhT
ZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODJERTQyRDEy
OTI2MjE2MDBEOTIzREYgLyogU1ZHUGF0aFNlZ1dpdGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI5ODY1LDEwICsyOTg4MCwxMiBAQAogCQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENEExREQ2NEE1
QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4QzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5
RDIwMjU0NjEyMDA0RDc1RjQgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0E4RjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTkxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bv
bHlsaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2
OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4OEEwRTBBMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxREQ0OUMxM0JBMUE2MDAwREM3NjI3IC8qIFNWR1Byb3Bl
cnR5SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEIxMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg3Niw3ICsyOTg5Myw2
IEBACiAJCQkJQjIyMjdBOUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNW
R1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdSZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0NFNThENEUxREQ2OTRGRTAwMTI4
NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1
MzIwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FBMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzIyNzQ3OTBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjk5MjEsNiArMjk5MzcsNyBAQAogCQkJCUIyMjI3QURBMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0FERDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1MaXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENTgxREQ3RDk2RDAwMTI4
NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFMjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHVFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QUU1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUU3BhbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjk5MjgsNiArMjk5NDUsNyBAQAogCQkJCTM3QzczOEVEMUVEQkQ1QkMwMDNGMkIwQiAv
KiBTVkdVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRUEwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1VSSVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RUQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1OEI2OTk4MjAyNTQ1NkQwMDRENzVGNCAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjIyMjdBRjAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0FGMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld1NwZWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdQYXRoRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdQYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTYgKzEw
MCwxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBhdGhFbGVtZW50KFNWR0VsZW1lCiAKIHN0YXRp
YyBQYXRoIHBhdGhGcm9tUG9seWdvbkVsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5p
bWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZH
UG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlc1Byb3BlcnR5
KCk7CiAgICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBQYXRoIHBhdGg7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0KCkpOworICAgIHBhdGgu
bW92ZVRvKHBvaW50cy5maXJzdFByb3BlcnR5KCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBv
aW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5l
VG8ocG9pbnRzLnByb3BlcnR5QXQoaSkpOwogCiAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsKICAg
ICByZXR1cm4gcGF0aDsKQEAgLTExNywxNiArMTE3LDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9t
UG9seWdvbkVsZW1lbnQoU1ZHRWwKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5bGluZUVsZW1l
bnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxT
VkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlcygpOwor
ICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCku
YW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1v
dmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVy
dHkoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2lu
dHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7
CiAgICAgcmV0dXJuIHBhdGg7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDE1
ICsxNjMsMTUgQEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aQogc3Rh
dGljIGlubGluZSB2b2lkIHVwZGF0ZUNoYXJhY3RlckRhdGEodW5zaWduZWQgaSwgZmxvYXQmIGxh
c3RSb3RhdGlvbiwgU1ZHQ2hhcmFjdGVyRGF0YSYgZGF0YSwgY29uc3QgU1ZHTGVuZ3RoQ29udGV4
dCYgbGVuZ3RoQ29udGV4dCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeExpc3QsIGNvbnN0
IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHlMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBk
eExpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR5TGlzdCwgY29uc3QgU1ZHTnVtYmVy
TGlzdFZhbHVlcyogcm90YXRlTGlzdCkKIHsKICAgICBpZiAoeExpc3QpCi0gICAgICAgIGRhdGEu
eCA9IHhMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS54ID0g
eExpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHlMaXN0
KQotICAgICAgICBkYXRhLnkgPSB5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQp
OwogICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5wcm9wZXJ0eUF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChkeUxpc3QpCi0gICAgICAgIGRhdGEuZHkg
PSBkeUxpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChyb3Rh
dGVMaXN0KSB7Ci0gICAgICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+YXQoaSk7CisgICAg
ICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+cHJvcGVydHlBdChpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQy
LDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5n
bGUoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3Jl
YXRlKGNvbnN0IFNWR0FuZ2xlVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHQW5nbGU+PiBj
cmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
aW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyArNTEsNyBAQCBwdWJsaWM6CiAK
ICAgICBTVkdBbmdsZVZhbHVlOjpUeXBlIHVuaXRUeXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlKHZh
bHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlRm9yQmluZGluZ3Mo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZSgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lm
aWVkVW5pdHMpCkBAIC04MCw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVJblNwZWNp
ZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIHZhbHVlUHJvcGVydHko
KS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtODgs
NyArODMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTk2LDcgKzkxLDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKICAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIApAQCAtMTA2LDcgKzEwMSw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVl
QXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUFzU3RyaW5n
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbmV3VmFsdWVTcGVjaWZpZWRVbml0
cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpA
QCAtMTE0LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRU
eXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjcsNyAr
MTIyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVu
aXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuY29u
dmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMzYs
NyArMTMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVl
PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwx
MSArMTQwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5n
bGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdB
bmdsZShjb25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjQsNyArMjI0LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZQog
ICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gYW5pbWF0
b3ItPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIG1f
YW5pbWF0ZWRUeXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7
CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5wYXJzZShhdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUp
OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0KFNWR0Vs
ZW1lbnQmIHRhcmdldEVsZW1lbnQsIENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCkBAIC0zNDQsMTQgKzM0NCwxNCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXBw
bHlSZXN1bHRzCiAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgewogICAg
ICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRoLgogICAgICAgICAvLyBD
b252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0cmluZyBhbmQgYXBwbHkg
aXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5zdGFuY2VzLgotICAgICAg
ICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBh
cHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5kIHRoZSBhbmltYXRpb24g
cHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KICAgICBTaG91bGRBcHBseUFuaW1h
dGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRhcmdldEVsZW1lbnQuZ2V0
KCksIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENT
U0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2Vz
KCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0
YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7
CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAvLyBB
dCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZhbHVlcyBhcmUgYWxyZWFkeSBjaGFuZ2VkLCB1bmxp
a2UgZm9yIENTUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDMxICsxMzYs
NiBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojp1cGRhdGVBbmltCiAgICAgdXBkYXRl
QW5pbWF0aW9uTW9kZSgpOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmlu
ZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYgKHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdW
aWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOwotICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1
cGNvbnZlcnRlZENoYXJhY3RlcnM7Ci0gICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVu
Z3RoKCk7Ci0gICAgCi0gICAgaWYgKCFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZmxvYXQgeCA9IDA7Ci0gICAgaWYgKCFw
YXJzZU51bWJlcihjdXIsIGVuZCwgeCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBmbG9hdCB5ID0gMDsKLSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHBvaW50ID0gRmxvYXRQb2ludCh4LCB5KTsKLSAg
ICAKLSAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyBleGNlcHQgc3BhY2VzIGF0IHRoZSBlbmQKLSAg
ICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7Ci19Ci0gICAgCiB2b2lk
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSgpCiB7CiAgICAgaWYg
KCFoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEFuZ2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMjIgKzMyLDEyIEBAIFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRBbmcKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlx
dWU8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKSk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQYWlyID0gYW5pbWF0ZWRUeXBlLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0KLSAgICBT
VkdBbmdsZVZhbHVlIGFuZ2xlOwotICAgIFNWR01hcmtlck9yaWVudFR5cGUgb3JpZW50VHlwZSA9
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmlu
ZywgYW5nbGUpOwotICAgIGlmIChvcmllbnRUeXBlID4gMCkKLSAgICAgICAgYW5pbWF0ZWRQYWly
LnNlY29uZCA9IG9yaWVudFR5cGU7Ci0gICAgaWYgKG9yaWVudFR5cGUgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgIGFuaW1hdGVkUGFpci5maXJzdCA9IGFuZ2xlOwotCi0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZH
UHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1h
dGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01Nyw3ICs0
Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVYKIAogdm9pZCBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5
cGU6OmFuZ2xlQW5kRW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5p
bWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03
NSwxMyArNjUsMTMgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uID0gZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRv
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVt
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOwogICAgIC8v
IE9ubHkgcmVzcGVjdCBieSBhbmltYXRpb25zLCBpZiBmcm9tIGFuZCBieSBhcmUgYm90aCBzcGVj
aWZpZWQgaW4gYW5nbGVzIChhbmQgbm90IGVnLiAnYXV0bycpLgotICAgIGlmIChmcm9tQW5nbGVB
bmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCB8fCBm
cm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisg
ICAgaWYgKGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uIHx8IGZyb21FbnVtZXJhdGlv
biAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnN0IGF1
dG8mIGZyb21BbmdsZSA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgIGF1dG8m
IHRvQW5nbGUgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CiAgICAgdG9BbmdsZS5zZXRW
YWx1ZSh0b0FuZ2xlLnZhbHVlKCkgKyBmcm9tQW5nbGUudmFsdWUoKSk7CiB9CiAKQEAgLTkwLDQ4
ICs4MCw0OSBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5hbmds
ZUFuZEVudW1lcmF0aW9uKCkgOiBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0
byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAg
ICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24gPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIGFuaW1hdGVkQW5nbGVB
bmRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigq
YW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1
ZXNbMV0pOworICAgIGF1dG8mIHRvQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFs
dWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVW
YWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEVudW1lcmF0
aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAg
ICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24p
IHsKICAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIC0gbm8gbGluZWFyIGludGVycG9sYXRp
b24gcG9zc2libGUgYmV0d2VlbiB2YWx1ZXMgKGUuZy4gYXV0byB0byBhbmdsZSkuCiAgICAgICAg
IGlmIChwZXJjZW50YWdlIDwgMC41ZikgewotICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsKLSAgICAg
ICAgICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0ID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgICAgICBhbmltYXRl
ZEVudW1lcmF0aW9uID0gZnJvbUVudW1lcmF0aW9uOworICAgICAgICAgICAgaWYgKGZyb21FbnVt
ZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlID0gZnJvbUFuZ2xlOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAg
ICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSB0b0Fu
Z2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOwotICAgICAgICBpZiAodG9BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHRvRW51bWVyYXRpb247CisgICAgICAgIGlm
ICh0b0VudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgYW5p
bWF0ZWRBbmdsZSA9IHRvQW5nbGU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAgIGFuaW1h
dGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKSB7
CisgICAgaWYgKGZyb21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgewogICAg
ICAgICAvLyBSZWd1bGFyIGZyb20gYW5nbGUgdG8gYW5nbGUgYW5pbWF0aW9uLCB3aXRoIHN1cHBv
cnQgZm9yIHNtb290aCBpbnRlcnBvbGF0aW9uLCBhbmQgYWRkaXRpdmUgYW5kIGFjY3VtdWxhdGVk
IGFuaW1hdGlvbi4KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9
IFNWR01hcmtlck9yaWVudEFuZ2xlOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZH
TWFya2VyT3JpZW50QW5nbGU7CiAKLSAgICAgICAgYXV0byYgYW5pbWF0ZWRTVkdBbmdsZSA9IGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKLSAgICAgICAgY29uc3QgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25TVkdBbmdsZSA9IHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJh
dGlvbi5maXJzdDsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZSA9IGFuaW1hdGVkU1ZHQW5n
bGUudmFsdWUoKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0LnZhbHVlKCksIHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgpLCB0b0F0RW5k
T2ZEdXJhdGlvblNWR0FuZ2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGUpOwotICAgICAgICBhbmlt
YXRlZFNWR0FuZ2xlLnNldFZhbHVlKGFuaW1hdGVkQW5nbGUpOworICAgICAgICBmbG9hdCBhbmlt
YXRlZEFuZ2xlVmFsdWUgPSBhbmltYXRlZEFuZ2xlLnZhbHVlKCk7CisgICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmcm9tQW5nbGUudmFsdWUoKSwgdG9BbmdsZS52YWx1ZSgpLCB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGVWYWx1ZSk7CisgICAgICAgIGFuaW1hdGVkQW5nbGUu
c2V0VmFsdWUoYW5pbWF0ZWRBbmdsZVZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIC8vIGF1dG8sIGF1dG8tc3RhcnQtcmV2ZXJzZSwgb3IgdW5rbm93bi4KLSAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgYW5pbWF0ZWRBbmds
ZS5zZXRWYWx1ZSgwKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKLSAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsK
KyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG8gfHwgZnJvbUVu
dW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisgICAgICAgIGFu
aW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CiAgICAgZWxzZQotICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50VW5rbm93
bjsKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVudFVua25vd247
CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2Uo
Y29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OlNW
R0FuaW1hdGVkQgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9v
bGVhbihzdGQ6Om1ha2VfdW5pcXVlPGJvb2w+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+Ym9vbGVh
bigpID0gKHN0cmluZyA9PSAidHJ1ZSIpOyAvLyB3YXQ/Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
Ym9vbD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0
b3BBbmkKIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmJv
b2xlYW4pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2OSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNhbGN1bGEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBib29sIGZyb21Cb29sZWFuID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Ym9v
bGVhbigpIDogZnJvbS0+Ym9vbGVhbigpOwotICAgIGJvb2wgdG9Cb29sZWFuID0gdG8tPmJvb2xl
YW4oKTsKLSAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRlZC0+Ym9vbGVhbigpOwor
ICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDxib29sJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYm9vbCB0b0Jv
b2xlYW4gPSBzdGF0aWNfY2FzdDxib29sJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGJvb2wmIGFu
aW1hdGVkQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7
CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8Ym9vbD4ocGVy
Y2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5pbWF0ZWRCb29sZWFuKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OlNWR0FuaW1h
dGVkQ29sCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQ29s
b3JBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6Om1ha2VfdW5pcXVl
PENvbG9yPihDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKSkp
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxD
b2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bykKQEAgLTQ0LDggKzQ0LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0
b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVCh0by0+dHlwZSgpID09IEFuaW1hdGVkQ29sb3IpOwog
CiAgICAgLy8gSWdub3JlcyBhbnkgYWxwaGEgYW5kIHNldHMgYWxwaGEgb24gcmVzdWx0IHRvIDEw
MCUgb3BhcXVlLgotICAgIGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmNvbG9yKCk7Ci0gICAgYXV0
byYgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIGF1dG8mIGZyb21Db2xvciA9IHN0YXRpY19j
YXN0PENvbG9yJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9Db2xvciA9IHN0YXRp
Y19jYXN0PENvbG9yJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHRvQ29sb3IgPSB7IHJvdW5kQW5k
Q2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5yZWQoKSArIGZyb21Db2xvci5yZWQoKSksCiAgICAg
ICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ncmVlbigpICsgZnJvbUNvbG9y
LmdyZWVuKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuYmx1
ZSgpICsgZnJvbUNvbG9yLmJsdWUoKSkgfTsKQEAgLTY5LDggKzY5LDggQEAgdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIENvbG9yIGZyb21Db2xv
ciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmNvbG9yKCkgOiBmcm9tLT5jb2xvcigpOwotICAgIENvbG9yIHRvQ29sb3IgPSB0
by0+Y29sb3IoKTsKKyAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBDb2xvciB0b0NvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7
CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25F
bGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxDb2xvcj4ocGFyc2VDb2xvckZyb21TdHJpbmcs
IG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21Db2xvciwg
bV9jb250ZXh0RWxlbWVudCk7CkBAIC04Miw4ICs4Miw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT50b1Byb3Bl
cnR5VmFsdWVUeXBlKCkgPT0gQ3VycmVudENvbG9yVmFsdWUpCiAgICAgICAgIHRvQ29sb3IgPSBj
dXJyZW50Q29sb3IoKm1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byYgdG9BdEVuZE9mRHVy
YXRpb25Db2xvciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5jb2xvcigpOwotICAgIGF1dG8mIGFuaW1h
dGVkQ29sb3IgPSBhbmltYXRlZC0+Y29sb3IoKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
bkNvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sw
XSk7CisgICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gRklYTUU6IEV4dGVuZGVkQ29sb3IgLSB0aGlzIHdp
bGwgbmVlZCB0byBoYW5kbGUgYmxlbmRpbmcgYmV0d2VlbiBjb2xvcnMgaW4gZGlmZmVyZW50IGNv
bG9yIHNwYWNlcywKICAgICAvLyBhcyB3ZWxsIGFzIHdvcmsgd2l0aCBub24gWzAtMjU1XSBDb2xv
cnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxNCArMTA5LDEyIEBAIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6U1ZHQW5pbWEKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
RW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTx1bnNpZ25lZD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5lbnVtZXJhdGlvbigpID0gZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0dHJpYnV0ZSht
X2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25FbGVtZW50LT5h
dHRyaWJ1dGVOYW1lKCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0
dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25F
bGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRp
b24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRl
ZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC0xMjYsNyArMTI0LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0bwogCiB2b2lkIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
KQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmlt
YXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJhdGlvbik7CisgICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5
cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1h
dG9yOjpjYWwKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICB1bnNpZ25lZCBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5l
bnVtZXJhdGlvbigpIDogZnJvbS0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gdG8tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQmIGFuaW1hdGVkRW51bWVy
YXRpb24gPSBhbmltYXRlZC0+ZW51bWVyYXRpb24oKTsKKyAgICB1bnNpZ25lZCBmcm9tRW51bWVy
YXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgdW5z
aWduZWQmIGFuaW1hdGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2Ny
ZXRlVHlwZTx1bnNpZ25lZD4ocGVyY2VudGFnZSwgZnJvbUVudW1lcmF0aW9uLCB0b0VudW1lcmF0
aW9uLCBhbmltYXRlZEVudW1lcmF0aW9uKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMz
LDEyIEBAIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEkKIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjptYWtlX3VuaXF1
ZTxpbnQ+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+aW50ZWdlcigpID0gc3RyaW5nLnRvSW50U3Ry
aWN0KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2Vy
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdl
cj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDcgKzY2LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YWRkQW5pbQogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPmludGVnZXIoKSArPSBmcm9tLT5pbnRlZ2VyKCk7
CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGlu
dCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0
aW9uRWxlbWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIGludCBm
cm9tSW50ZWdlciwgaW50IHRvSW50ZWdlciwgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwg
aW50JiBhbmltYXRlZEludGVnZXIpCkBAIC04MywxMCArODEsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9tSW50ZWdlciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmludGVnZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9JbnRlZ2VyID0g
dG8tPmludGVnZXIoKTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9BdEVu
ZE9mRHVyYXRpb24tPmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1h
dGVkLT5pbnRlZ2VyKCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBpbnQgdG9JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBz
dGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBjYWxjdWxhdGVB
bmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZnJvbUludGVnZXIsIHRvSW50ZWdlciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmlt
YXRlZEludGVnZXIpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMyArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0bwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6Om1ha2Vf
dW5pcXVlPHN0ZDo6cGFpcjxpbnQsIGludD4+KCkpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4m
IGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkVHlwZS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigp
OwotICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMDsKLSAgICBmbG9hdCBzZWNvbmROdW1iZXIgPSAw
OwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVy
LCBzZWNvbmROdW1iZXIpKSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IDA7Ci0g
ICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVt
YmVyKSk7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+
KHJvdW5kZihzZWNvbmROdW1iZXIpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3Rk
OjpwYWlyPGludCwgaW50Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFu
aW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdB
bmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0
OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KIAogdm9pZCBT
VkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUs
ICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOworICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBl
KCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9t
SW50ZWdlclBhaXIgPSBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpw
YWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0KLSAgICB0b0ludGVnZXJQYWlyLmZpcnN0ICs9IGZyb21JbnRlZ2VyUGFpci5maXJzdDsK
LSAgICB0b0ludGVnZXJQYWlyLnNlY29uZCArPSBmcm9tSW50ZWdlclBhaXIuc2Vjb25kOworICAg
IHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sxXSkg
Kz0gc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlw
ZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZE
dXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg5LDEzICs3NSwxNyBAQCB2
b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29u
c3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJvbUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlck9w
dGlvbmFsSW50ZWdlcigpIDogZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNv
bnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlv
bmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlck9wdGlvbmFsSW50
ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBh
bmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOworICAgIGNvbnN0IGludCYgZm9ybUZp
cnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxp
bnQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIGZvcm1TZWNvbmQgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9t
LT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9GaXJzdCA9IHN0YXRpY19jYXN0PGludCY+
KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8
aW50Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25G
aXJzdCA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBpbnQmIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMV0pOworICAgIGludCYgYW5pbWF0ZWRGaXJz
dCA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFu
aW1hdGVkU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwog
Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwotICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmly
c3QsIGFuaW1hdGVkRmlyc3QpOworICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kLCBh
bmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6U1ZHQW5pbWF0ZWRMZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChz
dGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aFZhbHVlPihtX2xlbmd0aE1vZGUsIHN0cmluZykpOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdMZW5ndGhWYWx1ZShtX2xlbmd0
aE1vZGUsIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ4
LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw4
ICs2Nyw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YWRkQW5pbWEKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4
dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwotICAgIGNvbnN0IGF1dG8mIGZyb21M
ZW5ndGggPSBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgo
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFs
dWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0xlbmd0aCA9IHN0YXRpY19jYXN0
PFNWR0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgdG9MZW5ndGguc2V0VmFs
dWUodG9MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoLnZhbHVlKGxlbmd0
aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KQEAgLTg1LDEwICs4NSwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9u
RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9t
U1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoKCkgOiBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvIHRv
U1ZHTGVuZ3RoID0gdG8tPmxlbmd0aCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uU1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aCgpOwotICAgIGF1dG8mIGFu
aW1hdGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpOworICAgIGF1dG8gZnJvbVNWR0xl
bmd0aCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8g
dG9TVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0aCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVs
ZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5n
dGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Q
cm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVuZ3RoLCBtX2NvbnRleHRFbGVtZW50KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdMZW5ndGhMaXN0VmFs
dWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmxlbmd0aExpc3QoKS5wYXJzZShzdHJpbmcsIG1f
bGVuZ3RoTW9kZSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46
OmZyb21TdHJpbmcoc3RyaW5nLCBtX2xlbmd0aE1vZGUpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlz
dChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4
LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0
aExpc3QgPSBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8t
Pmxlbmd0aExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoTGlzdCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0
b0xlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvLT52YWx1
ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbUxlbmd0aExpc3RTaXplID0gZnJvbUxlbmd0aExp
c3Quc2l6ZSgpOwogICAgIGlmICghZnJvbUxlbmd0aExpc3RTaXplIHx8IGZyb21MZW5ndGhMaXN0
U2l6ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgpKQpAQCAtNzcsNyArNzUsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZyb21MZW5ndGhMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b0xlbmd0aExpc3RbaV0uc2V0
VmFsdWUodG9MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOworICAgICAgICB0b0xl
bmd0aExpc3QucHJvcGVydHlBdChpKS5zZXRWYWx1ZSh0b0xlbmd0aExpc3QucHJvcGVydHlBdChp
KS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFs
dWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQogCiBzdGF0aWMgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQq
IGFuaW1hdGlvbkVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtOTIsMTAgKzkwLDEw
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMKICAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAg
ICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoTGlzdCgpIDogZnJvbS0+bGVuZ3Ro
TGlzdCgpOwotICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKLSAgICBj
b25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlv
bi0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1hdGVk
LT5sZW5ndGhMaXN0KCk7CisgICAgYXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTGVu
Z3RoTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlz
dCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAg
ICBhdXRvJiBhbmltYXRlZExlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFs
dWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRh
bmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8
U1ZHTGVuZ3RoTGlzdFZhbHVlcz4ocGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0aExpc3QsIG1fY29u
dGV4dEVsZW1lbnQpOwpAQCAtMTEwLDE4ICsxMDgsMTggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0
aExpc3RBbmltYXRvcjo6Y2FsYwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0
KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b0xlbmd0
aExpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRl
ZExlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7Ci0gICAgICAgIFNWR0xlbmd0aFR5
cGUgdW5pdFR5cGUgPSB0b0xlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKKyAgICAgICAgZmxvYXQg
YW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KTsKKyAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBp
ZiAocGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5n
dGhMaXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxl
bmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5
cGUgPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CisgICAgICAgICAg
ICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKICAgICAgICAgfQotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0g
aSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVU
b0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlv
bkxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCksIGVm
ZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyKTsKKyAgICAgICAgYW5pbWF0ZWRMZW5ndGhM
aXN0LnByb3BlcnR5QXQoaSkuc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1iZXIs
IG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
NiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdQogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjptYWtlX3Vu
aXF1ZTxmbG9hdD4oKSk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBl
LT5udW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIGFuaW1h
dGVkTnVtYmVyKSkKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIgPSAwOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5
VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01MSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpu
dW1iZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNjksMTQgKzY1LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6YWRkQW5pbWEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVy
KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPm51
bWJlcigpICs9IGZyb20tPm51bWJlcigpOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52
YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAK
IHN0YXRpYyBmbG9hdCBwYXJzZU51bWJlckZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGZsb2F0IG51bWJlciA9IDA7Ci0gICAgcGFy
c2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKTsKLSAgICByZXR1cm4gbnVtYmVyOwor
ICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9m
RHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMCArNzgsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGZs
b2F0IGZyb21OdW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXIoKSA6IGZyb20tPm51bWJlcigpOwotICAgIGZs
b2F0IHRvTnVtYmVyID0gdG8tPm51bWJlcigpOwotICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9u
TnVtYmVyID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlcigpOwotICAgIGZsb2F0JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkLT5udW1iZXIoKTsKKyAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgZmxvYXQgdG9OdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9h
dCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGZsb2F0JiBhbmltYXRlZE51bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8ZmxvYXQ+KHBhcnNlTnVtYmVy
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbU51bWJlciwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0
KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5udW1iZXJMaXN0KCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxT
VkdOdW1iZXJMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVt
YmVyTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5p
bWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBT
VkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0
ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTY3LDI1ICs2NSwyNSBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tTnVtYmVyTGlzdCA9IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBhdXRvJiB0b051bWJlckxp
c3QgPSB0by0+bnVtYmVyTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigq
dG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNpemUgPSBmcm9t
TnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUgfHwgZnJvbU51
bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTnVtYmVyTGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9OdW1iZXJMaXN0W2ldICs9IGZyb21OdW1iZXJMaXN0W2ldOworICAgICAgICBzdGF0
aWNfY2FzdDxmbG9hdCY+KCp0b051bWJlckxpc3RbaV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb21OdW1iZXJMaXN0W2ldKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbU51bWJlckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJMaXN0KCkgOiBmcm9tLT5udW1iZXJMaXN0
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1h
dGVkLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNf
Y2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
YXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVyTGlzdCwgYW5pbWF0ZWROdW1iZXJMaXN0LCBw
ZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05NCw5ICs5Miw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZE
dXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxp
c3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAg
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRv
QXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDog
MDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlv
blNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7Cisg
ICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3QucHJvcGVydHlBdChp
KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkpOwog
ICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxOCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
ckFuaW1hdG9yOgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCkpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAo
IXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBhbmltYXRlZE51bWJlci5maXJzdCwg
YW5pbWF0ZWROdW1iZXIuc2Vjb25kKSkgewotICAgICAgICBhbmltYXRlZE51bWJlci5maXJzdCA9
IDA7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLnNlY29uZCA9IDA7Ci0gICAgfQotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1By
b3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZy
b21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRl
ZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNTQsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMs
IHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MiwxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGZy
b21OdW1iZXJQYWlyID0gZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBh
aXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVy
KCk7Ci0KLSAgICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7Ci0g
ICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CisgICAgc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzFd
KSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRP
ZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTMgKzc1LDE3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBj
b25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1i
ZXJPcHRpb25hbE51bWJlcigpIDogIGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAg
Y29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJP
cHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9u
YWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQ
YWlyID0gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7CisgICAgY29uc3QgYXV0byYg
Zm9ybUZpcnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1dG8mIHRvRmlyc3QgPSBz
dGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1Nl
Y29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1
dG8mIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5k
T2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
blNlY29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MV0pOworICAgIGF1dG8mIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFNlY29uZCA9IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwogCi0gICAgbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1i
ZXJQYWlyLmZpcnN0LCB0b051bWJlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVy
UGFpci5maXJzdCwgYW5pbWF0ZWROdW1iZXJQYWlyLmZpcnN0KTsKLSAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bU51bWJlclBhaXIuc2Vjb25kLCB0b051bWJlclBhaXIuc2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlclBhaXIuc2Vjb25kLCBhbmltYXRlZE51bWJlclBhaXIuc2Vjb25kKTsKKyAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZm9ybUZpcnN0LCB0b0ZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0LCBhbmltYXRl
ZEZpcnN0KTsKKyAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihw
ZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1
cmF0aW9uU2Vjb25kLCBhbmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBh
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zMyw5ICszMiw3IEBAIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpTVkdBbmltYXRlZFBhdGgKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRo
Qnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJp
bmcsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46
OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDMsOSAr
NDAsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltCiAgICAgQVNT
RVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogCiAgICAgLy8gQnVpbGQgaW5pdGlhbCBw
YXRoIGJ5dGUgc3RyZWFtLgotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVk
VHlwZXMsIGJ5dGVTdHJlYW0uZ2V0KCkpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgYXV0byBhbmltYXRlZFR5cGUgPSBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICByZXNldEFu
aW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgKmFuaW1hdGVkVHlwZSk7CisgICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNTgsNyArNTUsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpyZXNldEFuaW1WCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRl
YXJPZmY+IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzBdLmdldCgpKTsKICAgICBjb25zdCBhdXRvJiBiYXNlVmFsdWUgPSBwcm9wZXJ0eS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwogCi0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsK
KyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmJhc2VWYWx1ZSksICpieXRlU3RyZWFtLCBV
bmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3VsdDsKIApAQCAtNzIsNyArNjksNyBAQCB2b2lkIFNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiAgICAgaWYgKCFyZXN1bHQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIFNWR0VsZW1lbnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2Vy
KCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSk7CiAgICAgICAgIGZvciAoYXV0byYgc2VnbWVu
dCA6IHJlc3VsdCkKLSAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0
cmVhbSwgJmJhc2VWYWx1ZSk7CisgICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVk
KGJ5dGVTdHJlYW0sICZzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpiYXNlVmFs
dWUpKTsKICAgICB9CiB9CiAKQEAgLTgwLDcgKzc3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6cmVzZXRBbmltVgogewogICAgIEFTU0VSVChhbmltYXRlZFR5cGVzLnNpemUoKSA+
PSAxKTsKICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICByZXNldEFuaW1W
YWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgdHlwZS5wYXRoKCkpOworICAgIHJlc2V0QW5pbVZh
bFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAmc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0m
PigqdHlwZS52YWx1ZXNbMF0pKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtOTcsMTMgKzk0LDEzIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OmFkZEFuaW1hdGUKIHsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
UGF0aCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKLQotICAgIFNW
R1BhdGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0
ZVN0cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUg
PSBmcm9tUGF0aC0+c2l6ZSgpOwotICAgIGlmICghZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6
ZSAhPSB0b1BhdGgtPnNpemUoKSkKKyAgICAKKyAgICBjb25zdCBhdXRvJiBmcm9tUGF0aCA9IHN0
YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgdG9QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1sw
XSk7CisgICAgdW5zaWduZWQgZnJvbVBhdGhTaXplID0gZnJvbVBhdGguc2l6ZSgpOworICAgIGlm
ICghZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6ZSAhPSB0b1BhdGguc2l6ZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqdG9QYXRoLCAqZnJvbVBhdGgp
OworICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0odG9QYXRoLCBmcm9tUGF0aCk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQg
cGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwg
U1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwg
U1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTExMSwzNiArMTA4LDMzIEBAIHZvaWQgU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBTVkdQYXRoQnl0
ZVN0cmVhbSogZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0q
IHRvUGF0aCA9IHRvLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvQXRFbmRPZkR1
cmF0aW9uUGF0aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVT
dHJlYW0qIGFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkLT5wYXRoKCk7CisgICAgYXV0byYgZnJvbVBh
dGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCpmcm9tLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIHRvUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvLT52
YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCA9IHN0YXRpY19jYXN0
PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIGFuaW1hdGVkUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmFu
aW1hdGVkLT52YWx1ZXNbMF0pOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3Ry
ZWFtPiB1bmRlcmx5aW5nUGF0aDsKICAgICBib29sIGlzVG9BbmltYXRpb24gPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbjsKLSAgICBpZiAoaXNUb0Fu
aW1hdGlvbikgewotICAgICAgICB1bmRlcmx5aW5nUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29weSgp
OwotICAgICAgICBmcm9tUGF0aCA9IHVuZGVybHlpbmdQYXRoLmdldCgpOwotICAgIH0KKyAgICBp
ZiAoaXNUb0FuaW1hdGlvbikKKyAgICAgICAgZnJvbVBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAg
ICAvLyBDYWNoZSB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZSBiZWZvcmUgdGhlIGJ1aWxkQW5p
bWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbSgpIGNsZWFycyBhbmltYXRlZFBhdGguCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBsYXN0QW5pbWF0ZWRQYXRoOwotICAgIGlmICgh
ZnJvbVBhdGgtPnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYg
IWlzVG9BbmltYXRpb24pKQotICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRo
LT5jb3B5KCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbGFzdEFuaW1hdGVkUGF0aDsKKyAgICBp
ZiAoIWZyb21QYXRoLnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkg
JiYgIWlzVG9BbmltYXRpb24pKQorICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQ
YXRoOwogCiAgICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQn
IGhlcmUsIGFzIHRoZSBwYXRoIGFuaW1hdGlvbiBpcyBub3QgYSByZWd1bGFyIFZlY3RvcjxTVkdY
WFg+IHR5cGUsIGJ1dCBhIFNWR1BhdGhCeXRlU3RyZWFtLCB0aGF0IHdvcmtzIGRpZmZlcmVudGx5
LgotICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNW
R1BhdGhCeXRlU3RyZWFtPigqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNl
bnRhZ2UsIGZhbHNlKSkKKyAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRv
TGlzdFZhbHVlczxTVkdQYXRoQnl0ZVN0cmVhbT4oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQ
YXRoLCBwZXJjZW50YWdlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1aWxkQW5p
bWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbSgqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgs
IHBlcmNlbnRhZ2UpOworICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShmcm9tUGF0
aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOwogCiAgICAgLy8gSGFuZGxlIGFk
ZGl0aXZlPSdzdW0nLgotICAgIGlmIChsYXN0QW5pbWF0ZWRQYXRoKQotICAgICAgICBhZGRUb1NW
R1BhdGhCeXRlU3RyZWFtKCphbmltYXRlZFBhdGgsICpsYXN0QW5pbWF0ZWRQYXRoKTsKKyAgICBp
ZiAoIWxhc3RBbmltYXRlZFBhdGguaXNFbXB0eSgpKQorICAgICAgICBhZGRUb1NWR1BhdGhCeXRl
U3RyZWFtKGFuaW1hdGVkUGF0aCwgbGFzdEFuaW1hdGVkUGF0aCk7CiAKICAgICAvLyBIYW5kbGUg
YWNjdW11bGF0ZT0nc3VtJy4KICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxh
dGVkKCkgJiYgcmVwZWF0Q291bnQpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFu
aW1hdGVkUGF0aCwgKnRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVwZWF0Q291bnQpOworICAgICAg
ICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwgdG9BdEVuZE9mRHVyYXRpb25Q
YXRoLCByZXBlYXRDb3VudCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpj
YWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCwxNCArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6U1ZHQW5pbWF0ZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVQb2ludExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpOwotICAg
IHBvaW50c0xpc3RGcm9tU1ZHRGF0YShhbmltYXRlZFR5cGUtPnBvaW50TGlzdCgpLCBzdHJpbmcp
OwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmco
c3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NTEsNyArNDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0b3BBCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRM
aXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6
OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTY5LDI1ICs2NywyNSBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OmFkZEFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBv
aW50cyk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNv
bnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBmcm9tLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiB0
b1BvaW50TGlzdCA9IHRvLT5wb2ludExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRM
aXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byYgdG9Qb2ludExpc3QgPSAgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVz
Jj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbVBvaW50TGlzdFNpemUgPSBm
cm9tUG9pbnRMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21Qb2ludExpc3RTaXplIHx8IGZyb21Q
b2ludExpc3RTaXplICE9IHRvUG9pbnRMaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyb21Qb2ludExpc3RTaXplOyArK2kpCi0gICAg
ICAgIHRvUG9pbnRMaXN0W2ldICs9IGZyb21Qb2ludExpc3RbaV07CisgICAgICAgIHRvUG9pbnRM
aXN0LnByb3BlcnR5QXQoaSkgKz0gZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUo
ZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSog
ZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJh
dGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKIHsKICAgICBBU1NFUlQobV9hbmltYXRp
b25FbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wb2lu
dExpc3QoKSA6IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0
ID0gdG8tPnBvaW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9p
bnRMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIGFuaW1h
dGVkUG9pbnRMaXN0ID0gYW5pbWF0ZWQtPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZy
b21Qb2ludExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0Fu
aW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFs
dWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNb
MF0pOworICAgIGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1
cmF0aW9uUG9pbnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKnRvQXRF
bmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwog
ICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1Bv
aW50TGlzdFZhbHVlcz4oZnJvbVBvaW50TGlzdCwgdG9Qb2ludExpc3QsIGFuaW1hdGVkUG9pbnRM
aXN0LCBwZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05OCwxNCArOTYsMTQgQEAg
dm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9hdFBvaW50
IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAgICAgICAg
ICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9hdFBvaW50
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBlZmZlY3Rp
dmVGcm9tID0gZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOworICAgICAgICBGbG9hdFBvaW50
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25Qb2ludExpc3QucHJvcGVydHlBdChpKSA6IEZsb2F0UG9pbnQoKTsKIAotICAgICAg
ICBmbG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdFtpXS54KCk7Ci0gICAgICAgIGZs
b2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLnkoKTsKLSAgICAgICAgbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291
bnQsIGVmZmVjdGl2ZUZyb20ueCgpLCB0b1BvaW50TGlzdFtpXS54KCksIGVmZmVjdGl2ZVRvQXRF
bmQueCgpLCBhbmltYXRlZFgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVB
ZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS55KCks
IHRvUG9pbnRMaXN0W2ldLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7Ci0g
ICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0W2ldID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFuaW1h
dGVkWSk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3Bl
cnR5QXQoaSkueCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlz
dC5wcm9wZXJ0eUF0KGkpLnkoKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueCgp
LCB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFu
aW1hdGVkWCk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVt
YmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExp
c3QucHJvcGVydHlBdChpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOwor
ICAgICAgICBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpID0gRmxvYXRQb2ludChhbmlt
YXRlZFgsIGFuaW1hdGVkWSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RG
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBl
ID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6bWFrZV91
bmlxdWU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAgICBhbmltYXRlZFR5cGUt
PnByZXNlcnZlQXNwZWN0UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJh
aXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKIAogdm9pZCBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnByZXNl
cnZlQXNwZWN0UmF0aW8pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2
OSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKICAgICBBU1NF
UlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAK
LSAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByZXNlcnZl
QXNwZWN0UmF0aW8oKSA6IGZyb20tPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKLSAgICBjb25zdCBh
dXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwot
ICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5wcmVzZXJ2
ZUFzcGVjdFJhdGlvKCk7CisgICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8g
PSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0
YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKSA6IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRp
Y19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAg
ICBhdXRvJiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBzdGF0aWNfY2FzdDxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlPihwZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9QcmVzZXJ2ZUFz
cGVjdFJhdGlvLCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
NCArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OlNWR0FuaW1hdGVkUmVjdAogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChzdGQ6Om1ha2VfdW5pcXVl
PEZsb2F0UmVjdD4oKSk7Ci0gICAgcGFyc2VSZWN0KHN0cmluZywgYW5pbWF0ZWRUeXBlLT5yZWN0
KCkpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmZyb21TdHJpbmcoc3RyaW5n
KSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVj
dEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZVJlY3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFu
aW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OnN0b3BBbmltVmEKIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmlt
YXRlZFR5cGU6OnJlY3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+
KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw3ICs2NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmFkZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUmVj
dCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5y
ZWN0KCkgKz0gZnJvbS0+cmVjdCgpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+
dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBl
KiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1
cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtNzUsMTAgKzczLDEwIEBAIHZv
aWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25z
dCBGbG9hdFJlY3QmIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cmVjdCgpIDogZnJvbS0+cmVjdCgpOwotICAg
IGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0ID0gdG8tPnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJl
Y3QmIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5yZWN0KCk7Ci0g
ICAgRmxvYXRSZWN0JiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+cmVjdCgpOworICAgIGNvbnN0
IGF1dG8mIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25z
dCBhdXRvJiB0b1JlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG8tPnZhbHVlc1swXSk7
CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gc3RhdGljX2Nhc3Q8Rmxv
YXRSZWN0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1h
dGVkUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
IAogICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUmVjdC54KCk7CiAgICAgZmxvYXQgYW5p
bWF0ZWRZID0gYW5pbWF0ZWRSZWN0LnkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsMTQgKzMyLDEyIEBAIFNW
R0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OlNWR0FuaW1hdGVkU3QKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPigp
KTsKLSAgICBhbmltYXRlZFR5cGUtPnN0cmluZygpID0gc3RyaW5nOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5
VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0
ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW1W
YWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzKQpAQCAtNDgsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6
OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRBbmltVmFs
VG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6
c3RyaW5nKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmFu
aW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKQEAgLTc2LDkgKzc1LDkgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1h
dG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VS
VChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+c3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHRvU3RyaW5nID0gdG8tPnN0cmluZygpOwotICAgIFN0cmluZyYg
YW5pbWF0ZWRTdHJpbmcgPSBhbmltYXRlZC0+c3RyaW5nKCk7CisgICAgU3RyaW5nIGZyb21TdHJp
bmcgPSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBTdHJpbmcg
dG9TdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqdG8tPnZhbHVlc1swXSk7CisgICAgU3Ry
aW5nJiBhbmltYXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCphbmltYXRlZC0+dmFs
dWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFN0cmluZz4ocGFyc2VTdHJpbmdG
cm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBm
cm9tU3RyaW5nLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDEsMTUgKzQxLDEyIEBAIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
OjpTVkdBbmkKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVRyYW5zZm9ybUxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigp
KTsKLSAgICBhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5wYXJzZShtX3RyYW5zZm9ybVR5
cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScpOwotICAgIEFTU0VSVChhbmltYXRlZFR5cGUtPnRyYW5z
Zm9ybUxpc3QoKS5zaXplKCkgPD0gMSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5n
ICsgJyknKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3QoY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1h
dGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpz
dG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs1Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0QW5pbWF0b3I6OnMKIAogdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5
cGUsICZTVkdBbmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQog
CiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBA
IC03NywxNSArNzQsMTUgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
YQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9U
cmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9t
VHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJv
bS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIGF1dG8gZnJvbVRy
YW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwogICAgIGlmICghZnJv
bVRyYW5zZm9ybUxpc3RTaXplIHx8IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSAhPSB0b1RyYW5zZm9y
bUxpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9y
bUxpc3RTaXplID09IDEpOwotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJh
bnNmb3JtTGlzdFswXTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFsw
XTsKKyAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3QucHJv
cGVydHlBdCgwKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdC5wcm9w
ZXJ0eUF0KDApOwogCiAgICAgQVNTRVJUKGZyb21UcmFuc2Zvcm0udHlwZSgpID09IHRvVHJhbnNm
b3JtLnR5cGUoKSk7CiAgICAgdG9UcmFuc2Zvcm0gPSBTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRk
U1ZHVHJhbnNmb3Jtcyhmcm9tVHJhbnNmb3JtLCB0b1RyYW5zZm9ybSk7CkBAIC05OCwxMCArOTUs
MTAgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgIC8vIFNw
ZWM6IFRvIGFuaW1hdGlvbnMgcHJvdmlkZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IHRvIGdldCBh
IHNtb290aCBjaGFuZ2UgZnJvbSB0aGUgdW5kZXJseWluZyB2YWx1ZSB0byB0aGUKICAgICAvLyDi
gJh0b+KAmSBhdHRyaWJ1dGUgdmFsdWUsIHdoaWNoIGNvbmZsaWN0cyBtYXRoZW1hdGljYWxseSB3
aXRoIHRoZSByZXF1aXJlbWVudCBmb3IgYWRkaXRpdmUgdHJhbnNmb3JtIGFuaW1hdGlvbnMKICAg
ICAvLyB0byBiZSBwb3N0LW11bHRpcGxpZWQuIEFzIGEgY29uc2VxdWVuY2UsIGluIFNWRyAxLjEg
dGhlIGJlaGF2aW9yIG9mIHRvIGFuaW1hdGlvbnMgZm9yIOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkg
aXMgdW5kZWZpbmVkLgotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+
dHJhbnNmb3JtTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50
cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zv
cm1MaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiBh
bmltYXRlZFRyYW5zZm9ybUxpc3QgPSBhbmltYXRlZC0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNv
bnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3Jt
TGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1sw
XSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0gc3Rh
dGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFs
dWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8g
UGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFzIHRoZSBz
cGVjaWFsIHBvc3QtbXVsdGlwbGljYXRpb24gYmVoYXZpb3Igb2YgPGFuaW1hdGVUcmFuc2Zvcm0+
IG5lZWRzIHRvIGJlIHJlc3BlY3RlZCBiZWxvdy4KICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVu
dC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihmcm9tVHJh
bnNmb3JtTGlzdCwgdG9UcmFuc2Zvcm1MaXN0LCBhbmltYXRlZFRyYW5zZm9ybUxpc3QsIHBlcmNl
bnRhZ2UsIGZhbHNlKSkKQEAgLTExMiwxNCArMTA5LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OmMKICAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNsZWFy
KCk7CiAKICAgICBhdXRvIGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9IGZyb21UcmFuc2Zvcm1MaXN0
LnNpemUoKTsKLSAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFsw
XTsKLSAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUg
PyBmcm9tVHJhbnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5
cGUoKSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgIGNv
bnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7Cisg
ICAgY29uc3QgYXV0byBlZmZlY3RpdmVGcm9tID0gZnJvbVRyYW5zZm9ybUxpc3RTaXplID8gZnJv
bVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNm
b3JtLnR5cGUoKSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwog
ICAgIGF1dG8gY3VycmVudFRyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlKGVmZmVjdGl2
ZUZyb20sIHRvVHJhbnNmb3JtKS5zY2FsZWREaXN0YW5jZShwZXJjZW50YWdlKS5hZGRUb1NWR1Ry
YW5zZm9ybShlZmZlY3RpdmVGcm9tKTsKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0Fj
Y3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQpIHsKLSAgICAgICAgY29uc3QgYXV0byBlZmZlY3Rp
dmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRF
bmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNm
b3JtLnR5cGUoKSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwot
ICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1RyYW5zZm9ybURpc3RhbmNl
OjphZGRTVkdUcmFuc2Zvcm1zKGN1cnJlbnRUcmFuc2Zvcm0sIGVmZmVjdGl2ZVRvQXRFbmQsIHJl
cGVhdENvdW50KSk7CisgICAgICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRF
bmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5z
Zm9ybUxpc3QucHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5
cGUoKSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgICAg
ICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNm
b3JtVmFsdWU+KFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1zKGN1cnJlbnRU
cmFuc2Zvcm0sIGVmZmVjdGl2ZVRvQXRFbmQsIHJlcGVhdENvdW50KSkpOwogICAgIH0gZWxzZQot
ICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKGN1cnJlbnRUcmFuc2Zvcm0pOwor
ICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZH
VHJhbnNmb3JtVmFsdWU+KGN1cnJlbnRUcmFuc2Zvcm0pKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYg
ZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKQEAgLTEzMSwyMCArMTI4LDIwIEBA
IGZsb2F0IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjoKICAgICBhdXRvIGZyb20g
PSBjb25zdHJ1Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOwogICAgIGF1dG8gdG8gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKHRvU3RyaW5nKTsKIAotICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0g
ZnJvbS0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50
cmFuc2Zvcm1MaXN0KCk7CisgICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2Fz
dDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYg
dG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKICAgICB1bnNpZ25lZCBpdGVtc0NvdW50ID0gZnJvbVRyYW5zZm9ybUxp
c3Quc2l6ZSgpOwogICAgIGlmICghaXRlbXNDb3VudCB8fCBpdGVtc0NvdW50ICE9IHRvVHJhbnNm
b3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIEFTU0VSVChpdGVtc0Nv
dW50ID09IDEpOwotICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdFswXS50eXBlKCkgIT0gdG9UcmFu
c2Zvcm1MaXN0WzBdLnR5cGUoKSkKKyAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlB
dCgwKS50eXBlKCkgIT0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkudHlwZSgpKQogICAg
ICAgICByZXR1cm4gLTE7CiAKICAgICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcv
YW5pbWF0ZS5odG1sI2NvbXBsZXhEaXN0YW5jZXMKICAgICAvLyBQYWNlZCBhbmltYXRpb25zIGFz
c3VtZSBhIG5vdGlvbiBvZiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2YXJpb3VzIGFuaW1hdGlvbiB2
YWx1ZXMgZGVmaW5lZCBieSB0aGUg4oCYdG/igJksIOKAmGZyb23igJksIOKAmGJ54oCZIGFuZCDi
gJh2YWx1ZXPigJkgYXR0cmlidXRlcy4KICAgICAvLyBEaXN0YW5jZSBpcyBkZWZpbmVkIG9ubHkg
Zm9yIHNjYWxhciB0eXBlcyAoc3VjaCBhcyA8bGVuZ3RoPiksIGNvbG9ycyBhbmQgdGhlIHN1YnNl
dCBvZiB0cmFuc2Zvcm1hdGlvbiB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkg4oCYYW5pbWF0
ZVRyYW5zZm9ybeKAmS4KLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRyYW5z
Zm9ybUxpc3RbMF0sIHRvVHJhbnNmb3JtTGlzdFswXSkuZGlzdGFuY2UoKTsKKyAgICByZXR1cm4g
U1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSwgdG9U
cmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkpLmRpc3RhbmNlKCk7CiB9CiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0x
LDMyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRUeXBlLmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNpbmNs
dWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0K
LQotU1ZHQW5pbWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKLXsKLSAgICBzd2l0Y2ggKG1f
dHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5h
bmdsZUFuZEVudW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkQm9v
bGVhbjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5ib29sZWFuOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuY29sb3I7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5lbnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZElu
dGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBt
X2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZExlbmd0aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRh
Lmxlbmd0aExpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkTnVtYmVyTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJMaXN0OwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBhdGg7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgICAgIGRlbGV0ZSBtX2Rh
dGEucG9pbnRMaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgZGVsZXRlIG1f
ZGF0YS5yZWN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAg
ICAgICBkZWxldGUgbV9kYXRhLnN0cmluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmlt
YXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEudHJhbnNmb3JtTGlzdDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVt
ZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
Pj4gYW5nbGVBbmRFbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVtZXJhdGlv
bik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oQW5pbWF0ZWRBbmdsZSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGVBbmRF
bnVtZXJhdGlvbiA9IGFuZ2xlQW5kRW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBh
bmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9vbGVhbikK
LXsKLSAgICBBU1NFUlQoYm9vbGVhbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmltYXRl
ZFR5cGUtPm1fZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9yKQotewot
ICAgIEFTU0VSVChjb2xvcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEuY29sb3IgPSBjb2xvci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
LX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8dW5zaWduZWQ+IGVudW1lcmF0aW9uKQot
ewotICAgIEFTU0VSVChlbnVtZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEuZW51bWVyYXRpb24gPSBlbnVtZXJhdGlvbi5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxp
bnQ+IGludGVnZXIpCi17Ci0gICAgQVNTRVJUKGludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlcik7
Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlciA9IGludGVnZXIucmVsZWFzZSgpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6
OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4gaW50ZWdlck9wdGlvbmFsSW50ZWdlcikK
LXsKLSAgICBBU1NFUlQoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyID0gaW50ZWdlck9wdGlvbmFsSW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVl
PiBsZW5ndGgpCi17Ci0gICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGgpOwotICAg
IGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aCA9IGxlbmd0aC5yZWxlYXNlKCk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5n
dGhMaXN0VmFsdWVzPiBsZW5ndGhMaXN0KQotewotICAgIEFTU0VSVChsZW5ndGhMaXN0KTsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihB
bmltYXRlZExlbmd0aExpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aExpc3Qg
PSBsZW5ndGhMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1z
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+IG51bWJlcikKLXsKLSAgICBBU1NFUlQobnVtYmVy
KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRU
eXBlPihBbmltYXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyID0g
bnVtYmVyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxp
c3Qoc3RkOjp1bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3QpCi17Ci0g
ICAgQVNTRVJUKG51bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgYW5pbWF0
ZWRUeXBlLT5tX2RhdGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVf
cHRyPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiBudW1iZXJPcHRpb25hbE51bWJlcikKLXsKLSAg
ICBBU1NFUlQobnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0g
bnVtYmVyT3B0aW9uYWxOdW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7
Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhdGgpCi17Ci0g
ICAgQVNTRVJUKHBhdGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUGF0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2Rh
dGEucGF0aCA9IHBhdGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
UG9pbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+IHBvaW50TGlzdCkK
LXsKLSAgICBBU1NFUlQocG9pbnRMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7Ci0gICAgYW5pbWF0
ZWRUeXBlLT5tX2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRy
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLSAg
ICBBU1NFUlQocHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJl
c2VydmVBc3BlY3RSYXRpby5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJUKHJl
Y3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkUmVjdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9IHJl
Y3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6
dW5pcXVlX3B0cjxTdHJpbmc+IHN0cmluZykKLXsKLSAgICBBU1NFUlQoc3RyaW5nKTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZFN0cmluZyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuc3RyaW5nID0gc3RyaW5nLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3Rk
Ojp1bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHRyYW5zZm9ybUxpc3QpCi17Ci0g
ICAgQVNTRVJUKHRyYW5zZm9ybUxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEudHJhbnNmb3JtTGlzdCA9IHRyYW5zZm9ybUxpc3QucmVsZWFz
ZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLVN0cmluZyBTVkdBbmltYXRlZFR5
cGU6OnZhbHVlQXNTdHJpbmcoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBB
bmltYXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgcmV0
dXJuIG1fZGF0YS5jb2xvci0+c2VyaWFsaXplZCgpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6
Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5s
ZW5ndGgtPnZhbHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAg
ICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5s
ZW5ndGhMaXN0LT52YWx1ZUFzU3RyaW5nKCk7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAg
ICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1i
ZXIoKm1fZGF0YS5udW1iZXIpOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NF
UlQobV9kYXRhLnJlY3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJl
Y3QtPngoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwot
ICAgICAgICAgICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAn
ICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKLSAgICBjYXNlIEFuaW1h
dGVkU3RyaW5nOgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLnN0cmluZzsKLQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0
aGUgdGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBk
b24ndCBuZWVkIHZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LgotICAgIGNhc2UgQW5pbWF0ZWRBbmds
ZToKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRp
b246Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJP
cHRpb25hbEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0gICAgY2FzZSBB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAg
IGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW86Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZFVu
a25vd246Ci0gICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmltYXRpb25zIHVzZSB0aGVzZSBwcm9w
ZXJ0eSB0eXBlcyAtIHRoYXQgbWVhbnMgdmFsdWVBc1N0cmluZygpIGlzIG5ldmVyIHVzZWQgZm9y
IHRob3NlLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0K
LQotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChtX3R5
cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29s
b3IpOwotICAgICAgICAqbV9kYXRhLmNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHZhbHVl
LnN0cmlwV2hpdGVTcGFjZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1
cm4gIW1fZGF0YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0aFZhbHVl
OjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNl
cHRpb24oKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1f
ZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgbV9kYXRhLmxlbmd0aExpc3QtPnBhcnNlKHZhbHVl
LCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0
dHJOYW1lKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6
Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1iZXJGcm9t
U3RyaW5nKHZhbHVlLCAqbV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwotICAgICAg
ICBwYXJzZVJlY3QodmFsdWUsICptX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsK
LSAgICAgICAgKm1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1l
bnQ6OmNzc1Byb3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCBzZXRWYWx1ZUFz
U3RyaW5nKCkgc3VwcG9ydC4gCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2UgQW5p
bWF0ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNlIEFu
aW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoK
LSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRlZFBv
aW50czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFu
aW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAg
Ly8gT25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0gdGhh
dCBtZWFucyBzZXRWYWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzdXBwb3J0c0FuaW1WYWwoQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLXsKLSAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkg
dXNlZCBmb3IgQ1NTIHByb3BlcnR5IGFuaW1hdGlvbnMuCi0gICAgcmV0dXJuIHR5cGUgIT0gQW5p
bWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkVHlwZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICsw
LDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEx
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI4NCArMjAs
MTI5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSAi
U1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgot
I2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1By
b3BlcnR5SW5mby5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNs
dWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1BhdGhC
eXRlU3RyZWFtOwotCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwotcHVibGljOgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3BlcnR5
VHlwZSk7Ci0gICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCk7Ci0KLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihz
dGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4pOwotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVCb29sZWFuKHN0
ZDo6dW5pcXVlX3B0cjxib29sPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IGNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4pOwotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVFbnVtZXJhdGlvbihzdGQ6
OnVuaXF1ZV9wdHI8dW5zaWduZWQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50Pik7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUludGVnZXJPcHRpb25h
bEludGVnZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxpbnQsIGludD4+KTsKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKHN0ZDo6dW5p
cXVlX3B0cjxTVkdMZW5ndGhWYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhM
aXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZU51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVuaXF1ZV9w
dHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8
c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJl
YW0+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
UG9pbnRMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUHJlc2VydmVBc3BlY3RS
YXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPik7Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVJlY3Qoc3RkOjp1
bmlxdWVfcHRyPEZsb2F0UmVjdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVUcmFuc2Zvcm1MaXN0
KHN0ZDo6dW5pcXVlX3B0cjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLQotICAgIEFuaW1hdGVk
UHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLQotICAgIC8vIE5v
bi1tdXRhYmxlIGFjY2Vzc29ycy4KLSAgICBjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwg
dW5zaWduZWQ+JiBhbmdsZUFuZEVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFu
Z2xlQW5kRW51bWVyYXRpb247Ci0gICAgfQotCi0gICAgY29uc3QgYm9vbCYgYm9vbGVhbigpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmJvb2xlYW47Ci0gICAgfQotCi0gICAgY29uc3QgQ29sb3Im
IGNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRD
b2xvcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIGNvbnN0
IHVuc2lnbmVkJiBlbnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVt
ZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBpbnQmIGludGVnZXIoKSBjb25zdAotICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGlu
dD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IFNW
R0xlbmd0aFZhbHVlJiBsZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAg
ICB9Ci0KLSAgICBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9Ci0KLSAgICBjb25zdCBmbG9h
dCYgbnVtYmVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQotCi0gICAg
Y29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpIGNvbnN0CitzdHJ1Y3QgU1ZH
QW5pbWF0ZWRUeXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
U1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgICAgICA6IHZhbHVl
cyB7IFNWR1ZhbHVlOjpjcmVhdGUoV1RGTW92ZShwcm9wZXJ0eSkpIH0KICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEubnVtYmVyTGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZs
b2F0PiYgbnVtYmVyT3B0aW9uYWxOdW1iZXIoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShS
ZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92ZSh2YWx1
ZSkgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlv
bmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7
CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKSBjb25zdAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+
CisgICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5
cGUyPiYmIHByb3BlcnRpZXMpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShw
cm9wZXJ0aWVzLmZpcnN0KSwgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVzLnNlY29uZCkgfQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwotICAgICAgICBy
ZXR1cm4gbV9kYXRhLnBhdGg7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUG9pbnRMaXN0VmFsdWVz
JiBwb2ludExpc3QoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHVmFsdWU+
JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IHZhbHVlcyB7
IFdURk1vdmUodmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpIH0KICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2lu
dExpc3Q7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0
ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAgIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0
eSkpOwogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJp
bmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAot
ICAgIGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKSBjb25zdAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlw
ZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgp
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+Pjo6aW5pdGlhbFZhbHVlKCkpOwogICAg
IH0KIAotICAgIC8vIE11dGFibGUgYWNjZXNzb3JzLgotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZh
bHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlU
eXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQogICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVB
bmRFbnVtZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKLSAgICBib29sJiBib29sZWFu
KCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJl
ZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCiAgICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmJvb2xlYW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0K
IAotICAgIENvbG9yJiBjb2xvcigpCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNv
bnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCYgZW51bWVy
YXRpb24oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1lcmF0
aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQotCi0gICAg
aW50JiBpbnRlZ2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJ
bnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKLSAgICB9Ci0KLSAgICBz
dGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICB9Ci0KLSAg
ICBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gQW5pbWF0ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7Ci0gICAg
fQotCi0gICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpCi0gICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLmxlbmd0aExpc3Q7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWVzWzBdKTsKKyAg
ICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMSA9IHZhbHVlQW5pbWF0ZWRU
eXBlKCp2YWx1ZXNbMF0pOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5
cGUyID0gdmFsdWVzWzFdID8gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1sxXSkgOiBBbmltYXRl
ZFVua25vd247CiAKLSAgICBmbG9hdCYgbnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7
Ci0gICAgfQorICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEFuZ2xlKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsK
KyAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICB9CiAKLSAgICBTVkdO
dW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVy
TGlzdDsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkSW50ZWdl
ciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkSW50ZWdlcikKKyAgICAgICAgICAgIHJldHVy
biBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI7CiAKLSAgICBzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0PiYgbnVtYmVyT3B0aW9uYWxOdW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgfQorICAgICAgICBpZiAoYW5pbWF0ZWRU
eXBlMSA9PSBBbmltYXRlZE51bWJlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkTnVtYmVy
KQorICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAKLSAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKKyAgICAgICAg
QVNTRVJUKGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRVbmtub3duKTsKKyAgICAgICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTE7CiAgICAgfQogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExp
c3QoKQorICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRM
aXN0OworICAgICAgICBBU1NFUlQodmFsdWVzWzBdICYmICF2YWx1ZXNbMV0pOworICAgICAgICBy
ZXR1cm4gdmFsdWVzWzBdLT50b1N0cmluZygpOwogICAgIH0KIAotICAgIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCisgICAgYm9vbCBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIEFTU0VS
VCh2YWx1ZXNbMF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNbMF0tPnBh
cnNlKGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCYgcmVjdCgpCisg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUp
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1
c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0dXJuIHR5cGUgIT0g
QW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLSAgICBT
dHJpbmcmIHN0cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5p
bWF0ZWRUeXBlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7
CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAg
ICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0
ZWRBbmdsZTsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wmKSAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisgICAgICAgICAgICBbXShjb25z
dCBDb2xvciYpICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRDb2xvcjsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAgICAgICAgICAgICAgICAgICB7
IHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAgICAgICAgW10oY29uc3QgaW50
JikgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkSW50ZWdlcjsgfSwK
KyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikgICAgICAgICAgICAgICB7IHJl
dHVybiBBbmltYXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aExp
c3RWYWx1ZXMmKSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7IH0sCisgICAg
ICAgICAgICBbXShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4g
QW5pbWF0ZWROdW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdOdW1iZXJMaXN0VmFs
dWVzJikgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OyB9LAorICAgICAgICAg
ICAgW10oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1h
dGVkUGF0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYpICB7IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87IH0sCisgICAgICAg
ICAgICBbXShjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAgICAgICAgeyByZXR1cm4gQW5p
bWF0ZWRQb2ludHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBGbG9hdFJlY3QmKSAgICAgICAg
ICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAorICAgICAgICAgICAgW10oY29u
c3QgU3RyaW5nJikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkU3RyaW5n
OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpICAgICAg
IHsgcmV0dXJuIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0
IGF1dG8mKSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFVua25vd247
IH0KKyAgICAgICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUp
KTsKICAgICB9CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICBTdHJp
bmcgdmFsdWVBc1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgbV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVu
aW9uKCkKLSAgICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAg
fQotCi0gICAgICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5k
RW51bWVyYXRpb247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xv
cjsKLSAgICAgICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7
Ci0gICAgICAgIHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0g
ICAgICAgIFNWR0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1
ZXMqIGxlbmd0aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJl
ckxpc3RWYWx1ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+
KiBudW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7
Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRp
bzsKLSAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0
UmVjdCogcmVjdDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiB2YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQsMzIgQEAgcHJvdGVjdGVkOgog
CiAgICAgLy8gSGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlw
ZXMsIGVnLiBqdXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQW5pbVZhbFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBl
OjpDb250ZW50VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQo
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgY29uc3Qg
dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5p
bWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5w
cm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBB
bmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5
cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7Cisg
ICAgICAgIGlmIChhbmltYXRlZFR5cGUtPmlzQW5pbWF0aW5nKCkpIHsKKyAgICAgICAgICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IGFuaW1hdGVkVHlwZS0+Y3VycmVudEFuaW1h
dGVkVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShX
VEZNb3ZlKGFuaW1hdGVkVmFsdWUpKTsKKyAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY29weSA9
IHN0ZDo6bWFrZV91bmlxdWU8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPihhbmlt
YXRlZFR5cGUpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgY29weS5nZXQoKSk7Ci0gICAgICAgIHJldHVy
biBjb3B5OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1
ZTo6Y3JlYXRlKCphbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIGV4
ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5
cGVzLCAwLCBhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlKFdURk1vdmUoYW5pbWF0ZWRWYWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIChTVkdBbmltYXRl
ZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5
cGUmIHR5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7
Ci0gICAgICAgIGF1dG8qIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5
cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0g
ICAgICAgIHByb3BlcnR5LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLQotICAgICAg
ICB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIGFuaW1hdGVkVHlwZVZhbHVlID0g
KHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUgPSBwcm9wZXJ0eS0+
Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0g
Y2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+c3luY2hy
b25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5
cGVWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYmFzZVZhbHVlID0gYW5pbWF0ZWRU
eXBlLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0
ZWRWYWx1ZSA9IHR5cGUudmFsdWVzWzBdOworICAgICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBB
bmltVmFsVHlwZTo6Q29udGVudFR5cGUmPigqYW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmPigqYmFzZVZhbHVlKTsKKyAgICAgICAg
ZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
VHlwZXMsIDAsIGFuaW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFuaW1WYWxUeXBlPgpAQCAtMTEwLDM0ICsxMTUsNDUgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8g
SGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBwYWlyIHR5cGVzLCBlZy4gYSBw
YWlyIG9mIFNWR0FuaW1hdGVkSW50ZWdlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFs
VHlwZTI6OkNvbnRlbnRUeXBlPj4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKICAgICB7CiAgICAgICAg
IEFTU0VSVChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDIpOwotICAgICAg
ICBjb25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlJiBmaXJzdFR5cGUgPSBj
YXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLSAgICAgICAg
Y29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSYgc2Vjb25kVHlwZSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBj
b25zdCBBbmltVmFsVHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MF0uZ2V0KCkpOworICAgICAgICBjb25zdCBBbmltVmFsVHlwZTIqIHNlY29uZEFuaW1hdGVkVHlw
ZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0
ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKKworICAgICAgICBpZiAoZmlyc3RBbmlt
YXRlZFR5cGUtPmlzQW5pbWF0aW5nKCkgJiYgc2Vjb25kQW5pbWF0ZWRUeXBlLT5pc0FuaW1hdGlu
ZygpKSB7CisgICAgICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9
IGZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAg
UmVmUHRyPFNWR1ZhbHVlPiBzZWNvbmRBbmltYXRlZFZhbHVlID0gc2Vjb25kQW5pbWF0ZWRUeXBl
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShzZWNvbmRB
bmltYXRlZFZhbHVlKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZp
cnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5j
dXJyZW50QmFzZVZhbHVlKCkpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1h
dGVkVmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRC
YXNlVmFsdWUoKSk7CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6
OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZh
bFR5cGUyOjpDb250ZW50VHlwZT4+KGZpcnN0VHlwZSwgc2Vjb25kVHlwZSk7Ci0gICAgICAgIGV4
ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRU
eXBlcywgMCwgJmNvcHktPmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlw
ZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmY29weS0+c2Vjb25k
KTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRl
ZFZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZh
bHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9p
ZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5h
bWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250
ZW50VHlwZT4mIChTVkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZy
b21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0
eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJzdFByb3BlcnR5ID0gY2Fz
dEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBzZWNvbmRQcm9wZXJ0eSA9
ICBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZpcnN0UHJvcGVydHktPnN5
bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNvbmRQcm9wZXJ0eS0+c3lu
Y2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1l
IEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVu
dFR5cGU+JiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFu
aW1hdGVkVHlwZVZhbHVlLmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgp
OwotICAgICAgICBhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNvbmRQcm9wZXJ0eS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihT
dGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVl
LmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kKTsK
KyAgICAgICAgQW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFBy
b3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzBdLmdldCgpKTsKKyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5cGUg
PSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVk
VHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZpcnN0QW5pbWF0ZWRUeXBl
LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAgc2Vjb25kQW5pbWF0ZWRU
eXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAgICBSZWZQdHI8U1ZH
VmFsdWU+IGZpcnN0QmFzZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFs
dWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUgPSB0eXBl
LnZhbHVlc1swXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSY+KCpmaXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8dHlwZW5hbWUg
QW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1ZSk7CisgICAgICAgIGV4
ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRU
eXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+
IHNlY29uZEJhc2VWYWx1ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgp
OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZh
bHVlc1sxXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250
ZW50VHlwZSY+KCpzZWNvbmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFu
aW1WYWxUeXBlMjo6Q29udGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVlKTsKKyAgICAgICAgZXhl
Y3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5
cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MCwzMyArMjA2
LDMzIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxU
eXBlPgotICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2lnbmVk
IHdoaWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogdHlwZSA9
IDApCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWduZWQg
d2hpY2hQcm9wZXJ0eSwgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gbnVsbHB0cikK
ICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5zdGFuY2VV
cGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3kuIFdvdWxk
IGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRhdGVzQmxv
Y2tlZCgqYW5pbWF0ZWRUeXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAogICAgICAgICBmb3IgKGF1
dG8mIGFuaW1hdGVkVHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAgICAgICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBhbmltYXRlZFR5cGUucHJv
cGVydGllcy5zaXplKCkpOwotICAgICAgICAgICAgQW5pbVZhbFR5cGUqIHByb3BlcnR5ID0gY2Fz
dEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5w
cm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKKyAgICAgICAgICAgIEFuaW1WYWxUeXBl
KiBhbmltYXRlZFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5p
bVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsK
IAogICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgICAgIGNhc2UgU3RhcnRB
bmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5cGUpOwotICAgICAgICAg
ICAgICAgIGlmICghcHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5LT5hbmltYXRpb25TdGFydGVkKHR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VS
VChhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGVkUHJvcGVydHkt
PmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFu
aW1hdGlvblN0YXJ0ZWQoYW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlzQW5pbWF0aW5nKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOworICAgICAg
ICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGFu
aW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1h
dGVkUHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAg
IEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxXaWxsQ2hh
bmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5nZSgpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlkQ2hhbmdlQWN0aW9uOgot
ICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHkt
PmFuaW1WYWxEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFs
dWUpOworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2Uo
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENv
bmRpdGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZH
QW5pbWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2Rl
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24g
U1ZHQ29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1
bmMuZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0g
ICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVl
cyA9IHRhYmxlVmFsdWVzKCkucHJvcGVydGllcygpOwogICAgIHJldHVybiBmdW5jOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDggKzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMK
IAogaW5saW5lIFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3ko
TGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAg
IEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgs
MTAgKzQ4LDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBT
VkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2N5
KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1f
cnkoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZVdpZHRoKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX3J4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3J5KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjplbGxpcHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdFbGxpcHNlRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
Myw3ICs4Myw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckUKICAg
ICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAgICByZXR1cm4gY29s
b3JNYXRyaXgtPnNldFR5cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OnZhbHVlc0F0dHIpCi0gICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVl
cygpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFsdWVzKCkucHJv
cGVydGllcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbG9yTWF0
cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1
ZXMoKS5wcm9wZXJ0aWVzKCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBmaWx0ZXJWYWx1ZXMu
c2l6ZSgpOwogCiAgICAgICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVf
TUFUUklYICYmIHNpemUgIT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4MiwxMiArMjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9s
dmVNYXRyaXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUo
U1ZHTmFtZXM6OmRpdmlzb3JBdHRyKSkgewogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtl
cm5lbE1hdHJpeFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxN
YXRyaXguYXQoaSk7CisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2VybmVsTWF0cml4LnBy
b3BlcnR5QXQoaSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAgICAgICAgICAgZGl2
aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRy
aXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2
aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwg
ZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0
TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgpOworICAgIGF1dG8g
ZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhW
YWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0
WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRM
ZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtl
cm5lbE1hdHJpeC5wcm9wZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkuYXBw
ZW5kKGlucHV0MSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjQsMTAgKzY0LDEwIEBAIGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW4K
ICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZpbHRlclVuaXRz
KFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1f
cHJpbWl0aXZlVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNF
KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1v
ZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIp
Ci0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhl
IHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZh
bHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgv
aGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEg
dmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEs
MTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lk
dGgsICIwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikKLSAgICAsIG1fd2lk
dGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVp
Z2h0LCAiMTAwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAi
MCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKSkK
KyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQor
ICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKSkK
IHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0
aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAv
LyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0
aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAgQEAgRU5EX1JFR0lTVEVS
X0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpT
VkdGb3JlaWduT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWln
aHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0
aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkK
KyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lk
dGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNW
R05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRp
ZXNGb3JTVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTAgQEAg
RU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ltYWdlRWxlbWVu
dDo6U1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
LSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkK
LSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9k
ZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAg
ICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVyKCp0aGlzKQogewog
ICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVtZW50KCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgICAgICBTVkdfTEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQQwogICAgIH07CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUp
CisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5n
dGgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01NywxMSArNTcs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChpbml0
aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKGNv
bnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdMZW5ndGg+PiBjcmVh
dGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNzEsMTIgKzY2LDEyIEBAIHB1YmxpYzoKIAog
ICAgIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5
KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxmbG9hdD4gdmFsdWVGb3JC
aW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1
ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAg
ICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29u
dGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTg0LDcgKzc5LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0
IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3Bl
cnR5KCkuc2V0VmFsdWUodmFsdWUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgp
IH0pOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC05NCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICAKICAg
ICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBy
b3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5T
cGVjaWZpZWRVbml0cykKQEAgLTEwMiw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVJ
blNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIHZhbHVlUHJv
cGVydHkoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4geyB9OwpA
QCAtMTEwLDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmlu
ZygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3Ry
aW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVBc1N0cmluZygpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKQEAgLTExOCw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQ
cm9wZXJ0eSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0x
MzEsNyArMTI2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUs
IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0NCw3ICsxMzks
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuY29udmVydFRvU3BlY2lmaWVkVW5pdHMo
dW5pdFR5cGUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAg
ICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1
bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICAKQEAgLTE1Myw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAg
ICAgewogICAgIH0KQEAgLTE2MiwxMSArMTU3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAg
fQotCi0gICAgZXhwbGljaXQgU1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFs
VmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPihpbml0
aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMg
KzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAg
ICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6
TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRl
KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExp
c3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlz
dChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykK
ICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFs
dWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aExpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk
ZSAiU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgogCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgdm9pZCBTVkdM
ZW5ndGhMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBpZiAobGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVTdHJpbmcpLmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobGVuZ3RoKTsKKyAgICAg
ICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHTGVuZ3RoVmFsdWU+KGxlbmd0aCkpOwogICAg
ICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCk7CiAgICAgfQog
fQpAQCAtNjAsNyArNjEsNyBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0
cmluCiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7
CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0K
IAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjEsMjYgKzIyLDM5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVl
LmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7CiBjbGFzcyBTVkdMZW5n
dGhMaXN0OwogCi1jbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3Rv
cjxTVkdMZW5ndGhWYWx1ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1
YmxpYyBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBw
YXJzZShjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdMZW5ndGhNb2RlKTsKICAgICBTdHJpbmcgdmFs
dWVBc1N0cmluZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKKyAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9CisgICAgc3RhdGljIFNWR0xl
bmd0aExpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHTGVuZ3Ro
TW9kZSBsZW5ndGhNb2RlKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBsaXN0
OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7CisgICAgICAgIHJldHVy
biBsaXN0OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhMaXN0VmFs
dWVzPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAg
IGxpc3QucGFyc2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0K
KyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxp
c3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CisgICAgCiAgICAgdXNpbmcgTGlz
dEl0ZW1UeXBlID0gU1ZHTGVuZ3RoVmFsdWU7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0g
U1ZHTGVuZ3RoOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdMZW5ndGhMaXN0
OwotCi0gICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4gIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0NywxMyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT4gewogICAgIHN0YXRp
YyBTVkdMZW5ndGhWYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB0eXBlKSB7IHJldHVybiB0
eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0
aFZhbHVlPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhWYWx1ZSBsZW5ndGg7CisgICAgICAg
IGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHN0cmluZywgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1v
ZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOwor
ICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5n
KGNvbnN0IFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgpIHsgcmV0dXJuIGxlbmd0aC52YWx1ZUFzU3Ry
aW5nKCk7IH0KIH07CiAKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMK
IAogaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feDEoTGVu
Z3RoTW9kZVdpZHRoKQotICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV94MihM
ZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1feTIoTGVuZ3RoTW9kZUhlaWdodCkKKyAg
ICAsIG1feDEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feTEoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3gyKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1feTIoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZUhlaWdodCkpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgyIGF0dHJpYnV0ZSBpcyBu
b3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUg
c3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpsaW5lYXJHcmFkaWVu
dFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5o
IgorCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgordm9pZCBTVkdMaXN0VmFsdWVzPFByb3BlcnR5
VHlwZT46OnJlc2l6ZShzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBzaXplX3QgaW5kZXggPSBzaXpl
KCk7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpyZXNpemUobmV3U2l6ZSk7CisgICAg
Zm9yICg7IGluZGV4IDwgbmV3U2l6ZTsgKytpbmRleCkKKyAgICAgICAgYXQoaW5kZXgpID0gU1ZH
VmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGU+CitWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxQcm9w
ZXJ0eVR5cGU+OjpkZWVwQ29weSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1
ZT4+IHZhbHVlczsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlIDogKnRo
aXMpCisgICAgICAgIHZhbHVlcy5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZSgqdmFsdWUpKTsKKyAg
ICByZXR1cm4gdmFsdWVzOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiBleHBsaWNpdCBpbnN0
YW50aWF0aW9uLgordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6cmVzaXplKHNp
emVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD46OnJlc2l6ZShz
aXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6cmVz
aXplKHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFs
dWU+OjpyZXNpemUoc2l6ZV90KTsKKwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
IFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9y
PFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpkZWVwQ29w
eSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1
ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OworCit9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitj
bGFzcyBTVkdWYWx1ZTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2Ns
YXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1
YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBkZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVl
cyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNW
R1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCByZXNp
emUoc2l6ZV90KTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gZGVlcENvcHkoKSBjb25z
dDsKKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHlBdChzaXplX3QgaW5kZXgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCphdChpbmRleCkpOyB9Cisg
ICAgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRleCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKworICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoMCk7IH0KKyAg
ICBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSB7IHJldHVybiBwcm9wZXJ0eUF0KDApOyB9
CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJu
IHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0
eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKworICAgIFZlY3RvcjxQcm9w
ZXJ0eVR5cGU+IHByb3BlcnRpZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjdG9yPFByb3Bl
cnR5VHlwZT4gcHJvcGVydGllczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0
aGlzKQorICAgICAgICAgICAgcHJvcGVydGllcy5hcHBlbmQoc3RhdGljX2Nhc3Q8UHJvcGVydHlU
eXBlJj4oKnZhbHVlKSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzOworICAgIH0KK307CisK
K30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzEsMTAgKzcxLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9Q
RVJUSUVTCiAKIGlubGluZSBTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0Vs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3JlZlgoTGVuZ3RoTW9kZVdpZHRoKQot
ICAgICwgbV9yZWZZKExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX21hcmtlcldpZHRoKExlbmd0
aE1vZGVXaWR0aCwgIjMiKQotICAgICwgbV9tYXJrZXJIZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwg
IjMiKSAKKyAgICAsIG1fcmVmWChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAg
ICwgbV9yZWZZKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV9tYXJr
ZXJXaWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIzIikpCisgICAgLCBtX21h
cmtlckhlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMyIpKQogICAgICwg
bV9tYXJrZXJVbml0cyhTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoKQogICAgICwgbV9vcmllbnRU
eXBlKFNWR01hcmtlck9yaWVudEFuZ2xlKQogewpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgU1ZH
TWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BdXRvKCkKIAogdm9pZCBTVkdNYXJrZXJFbGVtZW50
OjpzZXRPcmllbnRUb0FuZ2xlKFNWR0FuZ2xlJiBhbmdsZSkKIHsKLSAgICBzZXRPcmllbnQoU1ZH
TWFya2VyT3JpZW50QW5nbGUsIGFuZ2xlLnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHNldE9y
aWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5nbGUudmFsdWVQcm9wZXJ0eSgpKTsKIH0KIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpA
QCAtMjM4LDEyICsyMzgsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzeW5jaHJvbml6ZU9y
aWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJl
dmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3Rh
cnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBh
bHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93
bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykgeworICAg
IGlmIChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVu
dFR5cGUudmFsdWUpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBl
Lm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJ
bmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3Jp
ZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50
VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRB
dXRvU3RhcnRSZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9u
aXplKCZvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwg
YXV0b1N0YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI1OSwxMSArMjU5LDExIEBAIFNWR01h
cmtlck9yaWVudFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFw
cGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsK
ICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VS
VCh3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsK
LSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUm
Pih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRl
ZFZhbHVlKCkpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZh
bHVlKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRU
eXBlLnZhbHVlKTsKIH0KIAogUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJP
ZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+IFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmlt
YXRlZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDc1ICsyOSwxMCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0
VG9WaWV3Qm94LmgiCisjaW5jbHVkZSAiU1ZHTWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1lbnVtIFNWR01hcmtlclVuaXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNV
bmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01h
cmtlclVuaXRzU3Ryb2tlV2lkdGgKLX07Ci0KLWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0g
ICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywK
LSAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwKLSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRS
ZXZlcnNlLAotCi0gICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdN
YXJrZXJPcmllbnRNYXgKLX07Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1W
YWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRp
YyBTdHJpbmcgdG9TdHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAg
ICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0g
ICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNl
clNwYWNlT25Vc2UiKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgot
ICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAg
fQotCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNl
clNwYWNlT25Vc2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNl
T25Vc2U7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAg
cmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJr
ZXJVbml0c1Vua25vd247Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVk
IFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51
bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRp
YyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0
b1N0YXJ0UmV2ZXJzZTsgfQotCi0gICAgLy8gdG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hy
b25pemVPcmllbnRUeXBlKCkgaGFuZGxlcyB0aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMg
U1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0Fu
Z2xlVmFsdWUmIGFuZ2xlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAg
ICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUg
PT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QXV0b1N0YXJ0UmV2ZXJzZTsKLSAgICAgICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xl
LnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsK
LSAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNz
IFNWR01hcmtlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsK
QEAgLTE2NCw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZU9y
aWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8U1ZH
QW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBlV3JhcHBlcihTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlw
ZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAgICB2b2lkIHNldE9yaWVu
dFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBtX29yaWVu
dFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlw
ZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5
cGUmPigqbV9vcmllbnRUeXBlLnZhbHVlKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VW
YWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFs
dWUoKSA9IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVh
ck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZh
dGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgeworICAgIFNWR01h
cmtlclVuaXRzVW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwK
KyAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCit9OworCitlbnVtIFNWR01hcmtlck9yaWVu
dFR5cGUgeworICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAorICAgIFNWR01hcmtlck9y
aWVudEF1dG8sCisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50
QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBo
ZXJlLgorICAgIFNWR01hcmtlck9yaWVudE1heAorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5z
aWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2Vy
VW5pdHNVbmtub3duOgorICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAg
IGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKKyAgICAgICAgICAgIHJldHVybiBB
U0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5p
dHNTdHJva2VXaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdp
ZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgc3RhdGljIFNWR01h
cmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKKyAgICAgICAgICAgIHJldHVybiBT
VkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOworICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9r
ZVdpZHRoIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOwor
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOworICAgIH0KK307CisKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJP
cmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUg
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAg
ICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisgICAgICAgICAgICByZXR1cm4gU1ZH
TWFya2VyT3JpZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVy
c2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7
CisgICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZh
bHVlKTsKKyAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIHJldHVybiBTVkdN
YXJrZXJPcmllbnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0
YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAg
ICAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxT
VkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAg
aWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmds
ZSA9IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25l
ZD4oYW5nbGUsIG9yaWVudFR5cGUpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1
bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhw
b3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEwIEBAIGlubGluZSBTVkdNYXNrRWxl
bWVudDo6U1ZHTWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNU
Qk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0x
MCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgo
TGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0
LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEw
JSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikp
CisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkK
KyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikp
CiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAg
ICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01h
dHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1
YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisg
ICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKIAogICAgIGRvdWJsZSBhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmEoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5hKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QShkb3VibGUgdmFsdWUpCkBAIC02NSw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0QSh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVy
dHkoKS5zZXRBKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0
dXJuIHsgfTsKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGIoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYigpOworICAgICAgICByZXR1
cm4gdmFsdWVQcm9wZXJ0eSgpLmIoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRCKGRvdWJsZSB2YWx1ZSkKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRCKHZh
bHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEIodmFsdWUpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtODksNyArODksNyBAQCBwdWJs
aWM6CiAKICAgICBkb3VibGUgYygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZl
cmVuY2UoKS5jKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuYygpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEMoZG91YmxlIHZhbHVlKQpAQCAtOTcsNyArOTcs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldEModmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCku
c2V0Qyh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGQoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZCgpOworICAgICAgICByZXR1cm4g
dmFsdWVQcm9wZXJ0eSgpLmQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRE
KGRvdWJsZSB2YWx1ZSkKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEQodmFs
dWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0RCh2YWx1ZSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMjEsNyArMTIxLDcgQEAgcHVi
bGljOgogCiAgICAgZG91YmxlIGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkuZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmUoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFKGRvdWJsZSB2YWx1ZSkKQEAgLTEyOSw3ICsx
MjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5
KCkuc2V0RSh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biB7IH07CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGYoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZigpOworICAgICAgICByZXR1
cm4gdmFsdWVQcm9wZXJ0eSgpLmYoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRGKGRvdWJsZSB2YWx1ZSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEYo
dmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0Rih2YWx1ZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNTYsNyArMTU2LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byBy
ZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC5wcm9wZXJ0
eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkubXVs
dGlwbHkoc2Vjb25kTWF0cml4LnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMTY3
LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5pbnZlcnNlKCk7CisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmludmVyc2UoKTsKICAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTE4MCw3ICsxODAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3Bl
cnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVz
dWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnRyYW5zbGF0ZSh4LCB5KTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0x
OTEsNyArMTkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFj
dG9yKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zY2Fs
ZShzY2FsZUZhY3Rvcik7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZh
Y3RvclkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNj
YWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpA
QCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGUoYW5n
bGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnJvdGF0
ZShhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdN
YXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjI0LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1
bHQgPSB2YWx1ZVByb3BlcnR5KCkuZmxpcFgoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNDgsNyArMjQ4
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBZKCk7ICAgICAgICAKKyAgICAg
ICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuZmxpcFkoKTsKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBA
IC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xl
KTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5za2V3WChh
bmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRy
aXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjcwLDE0ICsyNzAsMTQgQEAgcHVibGljOgogICAgICAg
ICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9k
aWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9
IHZhbHVlUHJvcGVydHkoKS5za2V3WShhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR01hdHJpeChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIFNW
R01hdHJpeChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJl
ciA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MSwxMSArNDEsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihpbml0aWFsVmFsdWUpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKGNvbnN0IGZsb2F0KiBpbml0
aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIo
aW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGlj
IEV4Y2VwdGlvbk9yPFJlZjxTVkdOdW1iZXI+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0
aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigp
KQpAQCAtNTUsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB2YWx1ZUZvckJpbmRpbmdz
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVQcm9wZXJ0eSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC02MywxNCArNTgsMTQgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZl
cmVuY2UoKSA9IHZhbHVlOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkgPSB2YWx1ZTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgU1ZHTnVtYmVyKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8ZmxvYXQ+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpA
QCAtNzksMTEgKzc0LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHTnVt
YmVyKGNvbnN0IGZsb2F0KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPGZsb2F0Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTnVtYmVy
TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVt
YmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR051bWJlckxpc3RWYWx1ZXMmIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0
PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR051bWJlckxpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R051bWJlckxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgU1ZHTnVtYmVyTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXJMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBAIHZvaWQgU1ZHTnVtYmVyTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICB3aGls
ZSAocHRyIDwgZW5kKSB7CiAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQsIG51bWJl
cikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChudW1iZXIpOworICAgICAg
ICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxmbG9hdD4obnVtYmVyKSk7CiAgICAgfQogfQogCkBA
IC01Miw3ICs1Miw3IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4K
ICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAot
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKHByb3BlcnR5QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFs
dWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDI0ICsyMCwzMSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0
cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdOdW1iZXI7CiBjbGFzcyBTVkdOdW1iZXJMaXN0OwogCi1jbGFzcyBTVkdOdW1iZXJM
aXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxmbG9hdD4geworY2xhc3MgU1ZHTnVtYmVy
TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPGZsb2F0PiB7CiBwdWJsaWM6
CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgdmFsdWVBc1N0cmlu
ZygpIGNvbnN0OworICAgIAogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZh
bHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHTnVtYmVy
TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7
CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5n
KGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0
cmluZygpOyB9Ci0KICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBmbG9hdDsKICAgICB1c2luZyBM
aXN0SXRlbVRlYXJPZmYgPSBTVkdOdW1iZXI7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9m
ZiA9IFNWR051bWJlckxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRp
bGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRp
bGl0aWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
cnNlclV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw2ICsyMTksMzEgQEAgYm9v
bCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgogICAgIHJldHVybiBjdXIgPT0g
ZW5kOwogfQogCitib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBw
b2ludCkKK3sKKyAgICBpZiAocy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVy
czsKKyAgICBjb25zdCBVQ2hhciogZW5kID0gY3VyICsgcy5sZW5ndGgoKTsKKworICAgIGlmICgh
c2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZmxvYXQgeCA9IDA7CisgICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZsb2F0IHkgPSAwOworICAgIGlmICghcGFyc2VO
dW1iZXIoY3VyLCBlbmQsIHkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBwb2ludCA9
IEZsb2F0UG9pbnQoeCwgeSk7CisKKyAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyBleGNlcHQgc3Bh
Y2VzIGF0IHRoZSBlbmQKKyAgICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVu
ZCk7Cit9CisKIGJvb2wgcGFyc2VSZWN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBGbG9hdFJlY3Qm
IHJlY3QpCiB7CiAgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3KHN0
cmluZykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7CkBAIC0yNjQsNyArMjg5LDcgQEAgYm9vbCBw
b2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0VgogICAgICAgICB9CiAgICAgICAgIHNr
aXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAgcG9pbnRzTGlzdC5hcHBl
bmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7CisgICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxvYXRQb2ludCh4UG9zLCB5UG9zKSkpOwogICAg
IH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDYgKzQzLDcgQEAgYm9vbCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgog
Ym9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgTENoYXIqJiBwdHIsIGNvbnN0IExDaGFyKiBlbmQsIGJv
b2wmIGZsYWcpOwogYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVD
aGFyKiBlbmQsIGJvb2wmIGZsYWcpOwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5nJiwgRmxv
YXRSZWN0Jik7Citib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiwgRmxvYXRQb2ludCYpOwog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGJvb2wgcGFyc2VGbG9hdFBvaW50
KGNvbnN0IENoYXJhY3RlclR5cGUqJiBjdXJyZW50LCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQs
IEZsb2F0UG9pbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVh
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJl
YW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTksNiArMTksOCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0
cy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDYsMzQgKzQ4LDQyIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIERhdGE6OmNvbnN0X2l0ZXJhdG9y
IERhdGFJdGVyYXRvcjsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtKCkgeyB9Ci0gICAgU1ZHUGF0
aEJ5dGVTdHJlYW0oY29uc3QgRGF0YSYgZGF0YSkgOiBtX2RhdGEoZGF0YSkgeyB9CisgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICAgICAgOiBtX2Rh
dGEoV1RGTW92ZShvdGhlci5tX2RhdGEpKQorICAgIHsKKyAgICB9CiAgICAgCi0gICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQ
YXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCisgICAgICAgIDog
bV9kYXRhKG90aGVyLm1fZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2RhdGEgPT0gb3Ro
ZXIubV9kYXRhOwogICAgIH0KIAotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpIGNvbnN0CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShT
VkdQYXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAgIHsKKyAgICAgICAgbV9kYXRhID0gV1RGTW92
ZShvdGhlci5tX2RhdGEpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIFNWR1Bh
dGhCeXRlU3RyZWFtJiBvcGVyYXRvcj0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICBtX2RhdGEg
PSBvdGhlci5tX2RhdGE7CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNW
R1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1f
ZGF0YTsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBjb3B5KCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRl
U3RyZWFtPihtX2RhdGEpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRo
Qnl0ZVN0cmVhbT4oKnRoaXMpOwogICAgIH0KIAogICAgIERhdGFJdGVyYXRvciBiZWdpbigpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5iZWdpbigpOyB9CiAgICAgRGF0YUl0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5lbmQoKTsgfQogCiAgICAgdm9pZCBhcHBlbmQodW5zaWduZWQg
Y2hhciBieXRlKSB7IG1fZGF0YS5hcHBlbmQoYnl0ZSk7IH0KLSAgICB2b2lkIGFwcGVuZChjb25z
dCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCi0gICAgewotICAgICAgICBmb3IgKGF1dG8gc3Ry
ZWFtIDogb3RoZXIpCi0gICAgICAgICAgICBhcHBlbmQoc3RyZWFtKTsKLSAgICB9CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSB7IG1fZGF0YS5hcHBlbmRW
ZWN0b3Iob3RoZXIubV9kYXRhKTsgfQogICAgIHZvaWQgY2xlYXIoKSB7IG1fZGF0YS5jbGVhcigp
OyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fZGF0YS5zaXplKCk7IH0K
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuaXNFbXB0eSgpOyB9CiAg
ICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KIAogICAg
IC8vIE9ubHkgZGVmaW5lZCB0byBsZXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3IgdXNlIHRoZSBz
dGFuZGFyZCBsaXN0IGNvZGUgcGF0aHMgLSB0aGlzIG1ldGhvZCBpcyBuZXZlciBjYWxsZWQuCkBA
IC04Miw1ICs5MiwxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERhdGEgbV9kYXRhOwogfTsK
KyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0
cmVhbT4geworICAgIHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVhbSBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBTVkdQYXRoQnl0ZVN0cmVhbSgpOyB9CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFt
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSBieXRlU3RyZWFtOworICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVN0cmluZyhzdHJpbmcsIGJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICBy
ZXR1cm4gYnl0ZVN0cmVhbTsKKyAgICB9Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgwLDcgKzgwLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5s
aW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xl
KQorICAgICwgbV9wYXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdFZhbHVlcyhQYXRoU2VnVW5hbHRl
cmVkUm9sZSkpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNlKQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9p
ZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZAogICAgICAgICBpZiAobV9wYXRo
U2VnTGlzdC5zaG91bGRTeW5jaHJvbml6ZSAmJiAhU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3Vw
V3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4odGhpcywgZFByb3BlcnR5SW5mbygpKS0+aXNBbmltYXRpbmcoKSkgewogICAgICAgICAg
ICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbmV3TGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7CiAg
ICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0obV9wYXRo
Qnl0ZVN0cmVhbSwgKnRoaXMsIG5ld0xpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgICAgICAg
ICAgbV9wYXRoU2VnTGlzdC52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKSA9IFdURk1vdmUo
bmV3TGlzdCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpCkBAIC0zMjcsOCAr
MzI3LDggQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1BhdGhFbGVtZW50OgogICAgIGlm
IChhdXRvIHByb3BlcnR5ID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQ
YXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oJm93bmVy
VHlwZSwgZFByb3BlcnR5SW5mbygpKSkKICAgICAgICAgcmV0dXJuICpwcm9wZXJ0eTsKIAotICAg
IGlmIChvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIGJ1
aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0
ZVN0cmVhbSwgb3duZXJUeXBlLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSwgVW5hbHRl
cmVkUGFyc2luZyk7CisgICAgaWYgKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4o
Km93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpCisgICAgICAgIGJ1aWxk
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0
cmVhbSwgb3duZXJUeXBlLCBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpvd25l
clR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSksIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgcmV0
dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcjxTVkdQYXRoRWxl
bWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZiwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXM+KCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSwgb3duZXJUeXBlLm1fcGF0aFNl
Z0xpc3QudmFsdWUpOwogfQpAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6
OnN5bmNocm9uaXplRChTVkdFbGUKICAgICBTVkdQYXRoRWxlbWVudCYgb3duZXJUeXBlID0gZG93
bmNhc3Q8U1ZHUGF0aEVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5
cGUubV9wYXRoU2VnTGlzdC5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAg
IG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0
eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUudmFs
dWVBc1N0cmluZygpKTsKKyAgICBvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJvbml6ZSgm
b3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKS52YWx1
ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1BhdGhFbGVtZW50OjphbmltYXRlZFByb3BlcnR5
V2lsbEJlRGVsZXRlZCgpCkBAIC0zOTIsMTAgKzM5MiwxMCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50
OjpwYXRoU2VnTGlzdENoYW5nZWQoCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1Vu
YWx0ZXJlZFJvbGU6CiAgICAgICAgIGlmIChsaXN0TW9kaWZpY2F0aW9uID09IExpc3RNb2RpZmlj
YXRpb25BcHBlbmQpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9wYXRoU2VnTGlzdC52YWx1ZS5p
c0VtcHR5KCkpOwotICAgICAgICAgICAgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0
aFNlZyhtX3BhdGhTZWdMaXN0LnZhbHVlLmxhc3QoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJl
YW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICAgICAgQVNTRVJUKCFzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpOwor
ICAgICAgICAgICAgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhzdGF0aWNf
Y2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKS5sYXN0UHJv
cGVydHkoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwog
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9wYXRoQnl0ZVN0cmVhbSwg
VW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4o
Km1fcGF0aFNlZ0xpc3QudmFsdWUpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5n
KTsKICAgICAgICAgbV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBhdGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMTMgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFNWR1BhdGhTZWdMaXN0OjpjbGVhckNvbnRleHRBbmRS
b2xlcygpCiB7Ci0gICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiAq
bV92YWx1ZXMpCisgICAgZm9yIChhdXRvJiBpdGVtIDogdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0
aWVzKCkpCiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KGl0ZW0u
Z2V0KCkpLT5zZXRDb250ZXh0QW5kUm9sZShudWxscHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7
CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0OjpjbGVhcigpCiB7Ci0gICAg
QVNTRVJUKG1fdmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICBpZiAo
dmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBj
bGVhckNvbnRleHRBbmRSb2xlcygpOwpAQCAtNTAsOCArNDgsOCBAQCBFeGNlcHRpb25PcjxSZWZQ
dHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTCiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4gU1ZHUGF0aFNlZ0xpc3Q6OnJlcGxhY2VJdGVtKFJlZjxTVkdQYXRoU2VnPiYmIG5ld0l0ZW0s
IHVuc2lnbmVkIGluZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpIHsK
LSAgICAgICAgTGlzdEl0ZW1UeXBlIHJlcGxhY2VkSXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7
CisgICAgaWYgKGluZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpIHsKKyAgICAgICAgTGlz
dEl0ZW1UeXBlIHJlcGxhY2VkSXRlbSA9IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydHlBdChpbmRl
eCk7CiAgICAgICAgIEFTU0VSVChyZXBsYWNlZEl0ZW0pOwogICAgICAgICBzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnV2l0aENvbnRleHQqPihyZXBsYWNlZEl0ZW0uZ2V0KCkpLT5zZXRDb250ZXh0QW5k
Um9sZShudWxscHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsMTIg
QEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNp
bmcgTGlzdEl0ZW1UeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+
OjpMaXN0SXRlbVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8
U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2Vn
Um9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdM
aXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBh
dGhTZWdVbmRlZmluZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00NSwxMSArNDUsOSBA
QCBwdWJsaWM6CiAKICAgICBpbnQgZmluZEl0ZW0oY29uc3QgTGlzdEl0ZW1UeXBlJiBpdGVtKSBj
b25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLQotICAgICAgICB1bnNpZ25l
ZCBzaXplID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVl
c1Byb3BlcnR5KCkuc2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7
ICsraSkgewotICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV92YWx1ZXMtPmF0KGkpKQorICAgICAg
ICAgICAgaWYgKGl0ZW0gPT0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGkpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAKQEAgLTU4LDEwICs1Niw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wg
c2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cyk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8
IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAg
ICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5
KCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3Jh
cHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTkzLDcgKzkwLDcgQEAgcHVi
bGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3Bl
cnR5PFNWR1BhdGhTZWdMaXN0VmFsdWVzPihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAg
ICAgLCBtX2FuaW1hdGVkUHJvcGVydHkoJmFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwgbV9w
YXRoU2VnUm9sZShwYXRoU2VnUm9sZSkKQEAgLTExNywxNCArMTE0LDEyIEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewotICAgICAgICBBU1NFUlQobV92
YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVy
dHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKKyAgICAgICAg
dmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4
dEVsZW1lbnQoKSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24pOwogICAgIH0KIAogICAgIHZvaWQg
Y29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb24gbGlzdE1vZGlmaWNhdGlvbikgZmluYWwKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRD
aGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNh
dGlvbik7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVk
UHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIGxpc3RNb2RpZmljYXRpb24pOwogICAgIH0KIAog
ICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUm
IG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNzggKzU4LDc4IEBAIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6U1ZHUGF0
aFNlZ0xpc3RCdWkKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjptb3ZlVG8oY29uc3QgRmxv
YXRQb2ludCYgdGFyZ2V0UG9pbnQsIGJvb2wsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewog
ICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyh0YXJnZXRQ
b2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpsaW5lVG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRo
U2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRl
PFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRv
QWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnTGluZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9Ib3Jpem9udGFsKGZs
b2F0IHgsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29s
dXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkp
OworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxT
VkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRh
bEFicyh4LCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJl
bCh4LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQg
U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbChmbG9hdCB5LCBQYXRoQ29vcmRp
bmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQot
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbEFicyh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh5LCBtX3BhdGhTZWdSb2xl
KSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVu
dC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwoeSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwo
eSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1
cnZlVG9DdWJpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50MiwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBt
b2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9p
bnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIu
eCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1
YmljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54
KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBj
b25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7
CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2lu
dDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxz
ZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55
KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQ
b2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRo
U2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFk
cmF0aWMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQ
b2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1
dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVu
dC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fi
cyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnko
KSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwodGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50
MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNl
Z0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UK
LSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxk
ZXI6OmFyY1RvKGZsb2F0IHIxLCBmbG9hdCByMiwgZmxvYXQgYW5nbGUsIGJvb2wgbGFyZ2VBcmNG
bGFnLCBib29sIHN3ZWVwRmxhZywgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0FyY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBh
bmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY0Ficyh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1f
cGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3Bh
dGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVh
dGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNS
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdl
QXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhT
ZWdMaXN0QnVpbGRlcjo6Y2xvc2VQYXRoKCkKIHsKLSAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9sZSkpOwor
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhT
ZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9s
ZSkpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291
cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RT
b3VyY2UuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3RTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wg
U1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Omhhc01vcmVEYXRhKCkKIAogYm9vbCBTVkdQYXRoU2VnTGlz
dFNvdXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZShTVkdQYXRoU2VnVHlwZSYgcGF0aFNlZ1R5cGUp
CiB7Ci0gICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAg
ICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9pdGVtQ3VycmVudCk7CiAg
ICAgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9zZWdtZW50LT5w
YXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJuIHRydWU7CkBA
IC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWUK
IAogU1ZHUGF0aFNlZ1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5kKFNWR1Bh
dGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9pdGVtQ3Vy
cmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5wcm9wZXJ0eUF0KG1faXRlbUN1
cnJlbnQpOwogICAgIFNWR1BhdGhTZWdUeXBlIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nhc3Q8U1ZH
UGF0aFNlZ1R5cGU+KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0ZW1DdXJy
ZW50OwogICAgIHJldHVybiBwYXRoU2VnVHlwZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTksMTAgKzE5
LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHkuaCIKKyNp
bmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2luY2x1
ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMyw3
ICszMiw3IEBAIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBj
bGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDog
cHVibGljIFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKK2NsYXNzIFNWR1BhdGhTZWdMaXN0
VmFsdWVzIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoU1ZHUGF0aFNlZ1JvbGUgcm9s
ZSkKICAgICAgICAgOiBtX3JvbGUocm9sZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoVXRpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoVXRpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGJv
b2wgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFMKICAgICBBU1NFUlQocGFyc2lu
Z01vZGUgPT0gVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBh
cHBlbmRlZEl0ZW1MaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKLSAgICBhcHBlbmRlZEl0ZW1M
aXN0LmFwcGVuZChXVEZNb3ZlKHBhdGhTZWcpKTsKKyAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVu
ZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4oV1RGTW92ZShwYXRoU2VnKSkp
OwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gYXBwZW5kZWRCeXRlU3RyZWFtOwogICAgIFNWR1Bh
dGhTZWdMaXN0U291cmNlIHNvdXJjZShhcHBlbmRlZEl0ZW1MaXN0KTsKQEAgLTIwNiwxNSArMjA2
LDE0IEBAIGJvb2wgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGNvbnMKIAogYm9vbCBh
ZGRUb1NWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW1Ub0FwcGVuZFRv
LCBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgYnlTdHJlYW0sIHVuc2lnbmVkIHJlcGVhdENvdW50
KQogewotICAgIC8vIFdoeSByZXR1cm4gd2hlbiBzdHJlYW1Ub0FwcGVuZFRvIGlzIGVtcHR5PyBE
b24ndCB3ZSBzdGlsbCBuZWVkIHRvIGFwcGVuZD8KKyAgICAvLyBUaGUgYnlTdHJlYW0gd2lsbCBi
ZSBibGVuZGVkIHdpdGggc3RyZWFtVG9BcHBlbmRUby4gU28gc3RyZWFtVG9BcHBlbmRUbyBoYXMg
dG8gaGF2ZSBlbGVtZW50cy4KICAgICBpZiAoc3RyZWFtVG9BcHBlbmRUby5pc0VtcHR5KCkgfHwg
YnlTdHJlYW0uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIElzIGl0
IE9LIHRvIG1ha2UgdGhlIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlciBmcm9tIGEgc3RyZWFtLCBh
bmQgdGhlbiBjbGVhciB0aGF0IHN0cmVhbT8KKyAgICAvLyBidWlsZGVyIGlzIHRoZSBkZXN0aW5h
dGlvbiBvZiBibGVuZGluZyBmcm9tU291cmNlIGFuZCBieVNvdXJjZS4gVGhlIHN0cmVhbSBvZiBi
dWlsZGVyCisgICAgLy8gKGkuZS4gc3RyZWFtVG9BcHBlbmRUbykgaGFzIHRvIGJlIGNsZWFyZWQg
YmVmb3JlIGNhbGxpbmcgYWRkQW5pbWF0ZWRQYXRoLgogICAgIFNWR1BhdGhCeXRlU3RyZWFtQnVp
bGRlciBidWlsZGVyKHN0cmVhbVRvQXBwZW5kVG8pOwotCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0g
ZnJvbVN0cmVhbUNvcHkgPSBzdHJlYW1Ub0FwcGVuZFRvOwotICAgIHN0cmVhbVRvQXBwZW5kVG8u
Y2xlYXIoKTsKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IFdURk1vdmUo
c3RyZWFtVG9BcHBlbmRUbyk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBmcm9tU291
cmNlKGZyb21TdHJlYW1Db3B5KTsKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBieVNvdXJj
ZShieVN0cmVhbSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcg
KzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1YmxpYyBT
VkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxT
VkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDMsMTEgKzQzLDYgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCogaW5pdGlh
bFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5p
dGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxTVkdQb2ludD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxW
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBA
IC01Nyw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLngoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhW
YWx1ZSkKQEAgLTY1LDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAg
ICAgIHZhbHVlUHJvcGVydHkoKS5zZXRYKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03Myw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAg
IGZsb2F0IHkoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgp
OworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRZKGZsb2F0IHhWYWx1ZSkKQEAgLTgxLDcgKzc2LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZl
cmVuY2UoKS5zZXRZKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1
ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05
MiwxOSArODcsMTkgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byBuZXdQb2ludCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubWF0cml4VHJhbnNm
b3JtKG1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byBuZXdQb2ludCA9
IHZhbHVlUHJvcGVydHkoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnZhbHVlUHJvcGVydHkoKSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdQb2ludDo6Y3Jl
YXRlKG5ld1BvaW50KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQb2ludChTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxv
YXRQb2ludCYgdmFsdWUpCisgICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PigmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFNWR1BvaW50KFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBTVkdQb2ludChTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KG51bGxwdHIsIHJvbGUsIHZhbHVlKQog
ICAgIHsKICAgICB9CkBAIC0xMTMsMTEgKzEwOCw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9
Ci0KLSAgICBleHBsaWNpdCBTVkdQb2ludChjb25zdCBGbG9hdFBvaW50KiBpbml0aWFsVmFsdWUp
Ci0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1ZSkK
LSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2ludExpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTMgQEAgcHVi
bGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RX
cmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2Fj
aGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAg
ICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQ
b2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAg
ICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVB
c1N0cmluZwogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAKLSAg
ICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYgcG9p
bnQgPSBwcm9wZXJ0eUF0KGkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC54
KCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihwb2ludC55KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlz
dFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RW
YWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwyMiArMjEsMjggQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMu
aCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludDsKIGNsYXNzIFNWR1Bv
aW50TGlzdDsKIAotY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3Rv
cjxGbG9hdFBvaW50PiB7CitjbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMg
U1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50PiB7CiBwdWJsaWM6CiAgICAgU3RyaW5nIHZhbHVlQXNT
dHJpbmcoKSBjb25zdDsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR1BvaW50TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPFNWR1BvaW50TGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdQb2ludExpc3RWYWx1ZXMg
aW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0KKyAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0
VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBT
VkdQb2ludExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGxp
c3QsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICB1c2luZyBMaXN0
SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNWR1Bv
aW50OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdQb2ludExpc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTczLDcgKzczLDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29ucwog
ICAgICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3Jh
cHBlcjxTVkdQb2x5RWxlbWVudCwgU1ZHQW5pbWF0ZWRQb2ludExpc3Q+KHRoaXMsIHBvaW50c1By
b3BlcnR5SW5mbygpKSkKICAgICAgICAgICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHQW5pbWF0
ZWRQb2ludExpc3Q+KHdyYXBwZXIpLT5kZXRhY2hMaXN0V3JhcHBlcnMobmV3TGlzdC5zaXplKCkp
OwogCi0gICAgICAgIG1fcG9pbnRzLnZhbHVlID0gbmV3TGlzdDsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKm1fcG9pbnRzLnZhbHVlKSA9IFdURk1vdmUobmV3TGlz
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFNW
R1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50cyhTCiAgICAgU1ZHUG9seUVsZW1lbnQmIG93
bmVyVHlwZSA9IGRvd25jYXN0PFNWR1BvbHlFbGVtZW50PigqY29udGV4dEVsZW1lbnQpOwogICAg
IGlmICghb3duZXJUeXBlLm1fcG9pbnRzLnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1
cm47Ci0gICAgb3duZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50
c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wb2ludHMudmFsdWUu
dmFsdWVBc1N0cmluZygpKTsKKyAgICBvd25lclR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93
bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0
PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpvd25lclR5cGUubV9wb2ludHMudmFsdWUpLnZhbHVlQXNT
dHJpbmcoKSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5RWxlbWVudDo6
bG9va3VwT3JDcmVhdGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBAIHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMoKTsKICAg
ICBSZWY8U1ZHUG9pbnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9pbnRMaXN0
VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsgfQorICAg
IFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKm1fcG9pbnRzLnZhbHVlKTsgfQogCiAgICAgc3RhdGlj
IGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
IHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MiwxMSArNDIsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7
CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUo
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRp
YWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNl
cHRpb25PcjxSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4+IGNyZWF0ZShFeGNlcHRpb25PcjxU
PiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhj
ZXB0aW9uKCkpCkBAIC01Niw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0
IGFsaWduKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmFsaWdu
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuYWxpZ24oKTsKICAgICB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGlnbihmbG9hdCB2YWx1ZSkKQEAgLTY0LDcgKzU5LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0
byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEFsaWduKHZhbHVlKTsKKyAgICAgICAg
YXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0QWxpZ24odmFsdWUpOwogICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApA
QCAtNzQsNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGlj
ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5tZWV0T3JTbGlj
ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLm1lZXRPclNsaWNlKCk7CiAgICAg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxvYXQgdmFsdWUpCkBA
IC04Miw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNZWV0T3JTbGlj
ZSh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNldE1lZXRP
clNsaWNlKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTkxLDcgKzg2LDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUmIHZhbHVlKQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2
YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTAwLDExICs5NSw2IEBAIHByaXZhdGU6CiAgICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlh
bFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAg
ICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KGlu
aXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMSBA
QCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlCiB7CiB9CiAKK1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQoreworICAgIHBhcnNlKHN0cmluZyk7Cit9CisKIEV4Y2VwdGlvbk9y
PHZvaWQ+IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6c2V0QWxpZ24odW5zaWduZWQgc2hv
cnQgYWxpZ24pCiB7CiAgICAgaWYgKGFsaWduID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VO
S05PV04gfHwgYWxpZ24gPiBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAg
ICAgfTsKIAogICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOworICAgIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEFsaWduKHVuc2lnbmVkIHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCBhbGlnbigp
IGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KQEAgLTc3LDYgKzc4LDcgQEAgcHJpdmF0ZToKIAog
dGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlPiB7CiAgICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKTsgfQorICAgIHN0
YXRpYyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykgeyByZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKHN0cmluZyk7IH0K
ICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTIgKzU1LDEyIEBAIEVORF9SRUdJU1RF
Ul9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6
OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpCi0gICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5KExl
bmd0aE1vZGVIZWlnaHQsICI1MCUiKQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUwJSIp
Ci0gICAgLCBtX2Z4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdo
dCkKLSAgICAsIG1fZnIoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVPdGhlciwgIjUwJSIpKQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgpKQorICAgICwgbV9meShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkK
KyAgICAsIG1fZnIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsKICAg
ICAvLyBTcGVjOiBJZiB0aGUgY3gvY3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogICAg
IEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxMyArMjAsMTMgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUmVjdFRy
YWl0cy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgU1ZHUmVjdCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRS
ZWN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0
UmVjdCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUmVjdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTM2
LDExICszNiw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVj
dChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0
ZShjb25zdCBGbG9hdFJlY3QqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1JlY3QoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdSZWN0Pj4gY3JlYXRlKEV4
Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxW
YWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTUwLDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgZmxv
YXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS54KCk7Cisg
ICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkueCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFgoZmxvYXQgeFZhbHVlKQpAQCAtNTgsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFgoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFgoeFZhbHVlKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY2LDcg
KzYxLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgeSgpCiAgICAgewotICAgICAgICByZXR1cm4g
cHJvcGVydHlSZWZlcmVuY2UoKS55KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCku
eSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxvYXQgeFZhbHVlKQpA
QCAtNzQsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKKyAgICAgICAgdmFs
dWVQcm9wZXJ0eSgpLnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAg
ICAgICAgcmV0dXJuIHsgfTsKQEAgLTgyLDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQg
d2lkdGgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkud2lkdGgo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS53aWR0aCgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFdpZHRoKGZsb2F0IHdpZHRoVmFsdWUpCkBAIC05MCw3ICs4
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0V2lkdGgod2lkdGhWYWx1ZSk7CisgICAgICAgIHZhbHVl
UHJvcGVydHkoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk4LDcgKzkzLDcgQEAgcHVibGljOgogCiAgICAg
ZmxvYXQgaGVpZ2h0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LmhlaWdodCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmhlaWdodCgpOwogICAg
IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEhlaWdodChmbG9hdCBoZWlnaHRWYWx1ZSkK
QEAgLTEwNiwxNCArMTAxLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhlaWdodFZhbHVl
KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFNWR1JlY3QoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgU1ZHUmVjdChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPEZsb2F0UmVjdD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAg
ICB9CkBAIC0xMjIsMTEgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPEZsb2F0UmVjdD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBs
aWNpdCBTVkdSZWN0KGNvbnN0IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQog
fTsKIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgJKG5vbmV4aXN0ZW50KQpA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10ZW1wbGF0
ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7Ci0gICAgc3RhdGljIEZs
b2F0UmVjdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKLSAgICB7Ci0gICAgICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cih0eXBlLnkoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzEsMTEgKzcxLDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCBB
U0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsIEFT
Q0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAg
LCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFsKCIx
MDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwg
QVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVyKFNNSUxUaW1lQ29u
dGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNsYXRlKFNWR1ZhbHVl
OjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTVkdFbGVt
ZW50KCk7CkBAIC0xOTcsOSArMTk4LDkgQEAgUmVmPFNWR1BvaW50PiBTVkdTVkdFbGVtZW50Ojpj
dXJyZW50VHJhbgogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUoY29u
c3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1fY3VycmVudFRyYW5zbGF0
ZSA9PSB0cmFuc2xhdGlvbikKKyAgICBpZiAoc3RhdGljX2Nhc3Q8RmxvYXRQb2ludCY+KCptX2N1
cnJlbnRUcmFuc2xhdGUpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgbV9j
dXJyZW50VHJhbnNsYXRlID0gdHJhbnNsYXRpb247CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRQb2lu
dCY+KCptX2N1cnJlbnRUcmFuc2xhdGUpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVu
dFRyYW5zbGF0ZSgpOwogfQogCkBAIC0zMzUsMTIgKzMzNiwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNW
R1NWR0VsZW1lbnQ6OmNvbGxlY3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9u
V2l0aG91dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3Qp
CiB7Ci0gICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihl
bGVtZW50LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJu
IFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVy
KCksIHJlY3QudmFsdWVQcm9wZXJ0eSgpKTsKIH0KICAgICAKIHN0YXRpYyBib29sIGNoZWNrRW5j
bG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3Qm
IHJlY3QpCiB7Ci0gICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3Vy
ZShlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0
dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3VyZShlbGVtZW50LnJlbmRlcmVy
KCksIHJlY3QudmFsdWVQcm9wZXJ0eSgpKTsKIH0KIAogUmVmPE5vZGVMaXN0PiBTVkdTVkdFbGVt
ZW50OjpnZXRJbnRlcnNlY3Rpb25MaXN0KFNWR1JlY3QmIHJlY3QsIFNWR0VsZW1lbnQqIHJlZmVy
ZW5jZUVsZW1lbnQpCkBAIC00MTQsNyArNDE1LDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHU1ZH
RWxlbWVudDo6Y3JlYXRlUwogCiBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50OjpjcmVh
dGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQogewotICAgIHJldHVy
biBTVkdUcmFuc2Zvcm06OmNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZSB7IG1hdHJpeC5wcm9wZXJ0
eVJlZmVyZW5jZSgpIH0pOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZShTVkdUcmFu
c2Zvcm1WYWx1ZSB7IG1hdHJpeC52YWx1ZVByb3BlcnR5KCkgfSk7CiB9CiAKIEFmZmluZVRyYW5z
Zm9ybSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2Nh
dGFibGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV91c2VDdXJyZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96
b29tQW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250
YWluZXI+IG1fdGltZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0
ZTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8
U1ZHVmlld1NwZWM+IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVu
dElkZW50aWZpZXI7CiB9OwpAQCAtMTc1LDcgKzE3NSw3IEBAIGlubGluZSBib29sIFNWR1NWR0Vs
ZW1lbnQ6OnVzZUN1cnJlbnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6
Y3VycmVudFRyYW5zbGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRl
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0
ZSk7CiB9CiAKIGlubGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5k
UGFuKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsMTIgKzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5n
TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3Ry
aW5nTGlzdD4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0
VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZH
RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRl
eHRFbGVtZW50LCB2YWx1ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUs
IFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3Rh
dGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiwgU1ZHUHJvcGVydHlSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVt
b3ZlIHRoaXMuIEl0J3Mgb25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgU1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICAgICAgOiBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1
ZXM+KGNvbnRleHRFbGVtZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNyArMzksNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnJlc2V0KGNvbnN0
IFN0CiAKICAgICAvLyBBZGQgZW1wdHkgc3RyaW5nLCBpZiBsaXN0IGlzIGVtcHR5LgogICAgIGlm
IChpc0VtcHR5KCkpCi0gICAgICAgIGFwcGVuZChlbXB0eVN0cmluZygpKTsKKyAgICAgICAgYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U3RyaW5nPihlbXB0eVN0cmluZygpKSk7CiB9CiAKIHZvaWQg
U1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiBkYXRhLCBVQ2hhciBkZWxp
bWl0ZXIpCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2Uo
Y29uc3QgU3QKICAgICAgICAgICAgIHB0cisrOwogICAgICAgICBpZiAocHRyID09IHN0YXJ0KQog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGFwcGVuZChTdHJpbmcoc3RhcnQsIHB0ciAtIHN0
YXJ0KSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0cmluZz4oU3RyaW5nKHN0
YXJ0LCBwdHIgLSBzdGFydCkpKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxp
bWl0ZXIocHRyLCBlbmQsIGRlbGltaXRlcik7CiAgICAgfQogfQpAQCAtNzAsNyArNzAsNyBAQCBT
dHJpbmcgU1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlmIChpID4g
MCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoYXQoaSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw4
ICsyMSw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNp
bmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIK
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIs
NyArMzIsNyBAQCBjbGFzcyBTVkdTdHJpbmdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBj
bGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmlu
YWwgOiBwdWJsaWMgVmVjdG9yPFN0cmluZz4geworY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBm
aW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPFN0cmluZz4gewogcHVibGljOgogICAgIFNWR1N0
cmluZ0xpc3RWYWx1ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICAg
ICAgOiBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
c3RzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHN0YXRpYyBjb25zdCBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW4KIH0KIAogU1ZHVGVzdHM6OlNWR1Rlc3RzKCkKLSAgICA6
IG1fcmVxdWlyZWRGZWF0dXJlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAsIG1fcmVxdWly
ZWRFeHRlbnNpb25zKHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgLCBtX3N5c3RlbUxhbmd1
YWdlKHN5c3RlbUxhbmd1YWdlQXR0cikKKyAgICA6IG1fcmVxdWlyZWRGZWF0dXJlcyhTVkdTdHJp
bmdMaXN0VmFsdWVzKHJlcXVpcmVkRmVhdHVyZXNBdHRyKSkKKyAgICAsIG1fcmVxdWlyZWRFeHRl
bnNpb25zKFNWR1N0cmluZ0xpc3RWYWx1ZXMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikpCisgICAg
LCBtX3N5c3RlbUxhbmd1YWdlKFNWR1N0cmluZ0xpc3RWYWx1ZXMoc3lzdGVtTGFuZ3VhZ2VBdHRy
KSkKIHsKIH0KIApAQCAtMTU0LDE1ICsxNTQsMjAgQEAgYm9vbCBTVkdUZXN0czo6aGFzRXh0ZW5z
aW9uKGNvbnN0IFN0cmluZwogCiBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHsKLSAg
ICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpIHsKKyAgICBh
dXRvIGZlYXR1cmVzID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3JlcXVp
cmVkRmVhdHVyZXMudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUg
OiBmZWF0dXJlcykgewogICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRl
ZFNWR0ZlYXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZh
bHVlKSB7CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RW
YWx1ZXMmPigqbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAo
YXV0byYgbGFuZ3VhZ2UgOiBsYW5ndWFnZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRl
ZmF1bHRMYW5ndWFnZSgpLnN1YnN0cmluZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9u
cy52YWx1ZSkgeworCisgICAgYXV0byBleHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5n
TGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucHJvcGVydGllcygpOwor
ICAgIGZvciAoYXV0byYgZXh0ZW5zaW9uIDogZXh0ZW5zaW9ucykgewogICAgICAgICBpZiAoIWhh
c0V4dGVuc2lvbihleHRlbnNpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
QEAgLTE3MiwxMSArMTc3LDExIEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9p
ZCBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFt
ZSA9PSByZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZh
bHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVl
cyY+KCptX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0
cmlidXRlTmFtZSA9PSByZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVk
RXh0ZW5zaW9ucy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0
cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpLnJlc2V0KHZhbHVl
KTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5ndWFnZUF0dHIpCi0gICAgICAg
IG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2Fz
dDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpLnJlc2V0KHZh
bHVlKTsKIH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQgU1ZHVGVzdHM6
OnN5bmNocm9uaXplQXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3BlcnR5LnNob3VsZFN5
bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZlYXR1cmVzLnN5bmNo
cm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHkudmFsdWUudmFs
dWVBc1N0cmluZygpKTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRl
eHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVz
Jj4oKnByb3BlcnR5LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rlc3Rz
OjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDggKzY2LDggQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV90
ZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChM
ZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyKSkKKyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0U3Bh
Y2luZykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250ZW50
RWxlbWVudCgpOwpAQCAtOTUsNyArOTUsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1Rl
eHRDb250ZW50RWxlCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZhbHVl
PiBkZWZhdWx0VGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmll
ZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0aC52
YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVk
VGV4dExlbmd0aCgpKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqbV90
ZXh0TGVuZ3RoLnZhbHVlKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIs
IGdldENvbXB1dGVkVGV4dExlbmd0aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5j
aHJvbml6ZSA9IHRydWU7CiAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmlt
YXRlZExlbmd0aD4obG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0x
NTgsNyArMTU4LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAog
aW50IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQm
IHBvaW50KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7Ci0gICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJO
dW1iZXJBdFBvc2l0aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBT
VkdUZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52
YWx1ZVByb3BlcnR5KCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OnNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBjaGFybnVtLCB1bnNpZ25lZCBuY2hhcnMp
CkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0
cmlidQogICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA+IDApCiAgICAgICAgICAgICBzZXRMZW5n
dGhBZGp1c3RCYXNlVmFsdWUocHJvcGVydHlWYWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09
IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlID0g
U1ZHTGVuZ3RoVmFsdWU6OmNvbnN0cnVjdChMZW5ndGhNb2RlT3RoZXIsIHZhbHVlLCBwYXJzZUVy
cm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdMZW5n
dGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpID0gU1ZHTGVuZ3RoVmFsdWU6OmNvbnN0cnVj
dChMZW5ndGhNb2RlT3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0
aHMpOwogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUs
IHZhbHVlKTsKIApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50
OjpzdmdBdHRyaWJ1dGUKICAgICB9CiAKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRl
eHRMZW5ndGhBdHRyKQotICAgICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5n
dGgudmFsdWU7CisgICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IHN0YXRpY19jYXN0PFNW
R0xlbmd0aFZhbHVlJj4oKm1fdGV4dExlbmd0aC52YWx1ZSk7CiAKICAgICBpZiAoYXV0byByZW5k
ZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1RleHRQYXRoRWxlbWVudDo6
U1ZHVGV4dFBhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IFNWR1RleHRDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKLSAgICAsIG1fc3RhcnRPZmZzZXQoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV9zdGFydE9m
ZnNldChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9tZXRob2QoU1ZH
VGV4dFBhdGhNZXRob2RBbGlnbikKICAgICAsIG1fc3BhY2luZyhTVkdUZXh0UGF0aFNwYWNpbmdF
eGFjdCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxTVkdNYXRy
aXg+IFNWR1RyYW5zZm9ybTo6bWF0cml4KCkKIHsKLSAgICByZXR1cm4gU1ZHTWF0cml4VGVhck9m
Zjo6Y3JlYXRlKCp0aGlzLCBwcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpKTsKKyAgICBy
ZXR1cm4gU1ZHTWF0cml4VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCB2YWx1ZVByb3BlcnR5KCkuc3Zn
TWF0cml4KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR1RyYW5zZm9ybVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFu
c2Zvcm0+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBS
ZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDMsMTEgKzQzLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm0oaW5pdGlhbFZh
bHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShjb25z
dCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3Jt
Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAg
aWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU3LDE0ICs1MiwxNCBAQCBwdWJs
aWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHko
KS50eXBlKCk7CiAgICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBm
bG9hdCBhbmdsZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5h
bmdsZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmFuZ2xlKCk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQpAQCAt
NzIsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgucHJvcGVydHlSZWZl
cmVuY2UoKSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRNYXRyaXgobWF0cml4LnZhbHVl
UHJvcGVydHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC04Myw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7
CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRUcmFuc2xhdGUodHgsIHR5KTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzg5LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRTY2FsZShzeCwgc3kpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCku
c2V0U2NhbGUoc3gsIHN5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0
dXJuIHsgfTsKQEAgLTEwNSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmds
ZSwgY3gsIGN5KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFJvdGF0ZShhbmdsZSwgY3gs
IGN5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTExNiw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAg
dmFsdWVQcm9wZXJ0eSgpLnNldFNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNywxNCArMTIyLDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0U2tld1koYW5nbGUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0U2tld1koYW5n
bGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2
YWx1ZSkKKyAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oJmFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xNDMsMTEgKzEzOCw2
IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZh
bHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1RyYW5z
Zm9ybShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsK
LSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAK
IAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUg
IlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTMxLDIwICszMiwxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5z
Zm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNm
b3JtTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
cywgd3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3Jt
Pj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVz
UHJvcGVydHkoKS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1RyYW5zZm9ybT4+IGNvbnNvbGlkYXRlKCkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJz
KTsKIAogICAgICAgICBhdXRvIHJlc3VsdCA9IGNhbkFsdGVyTGlzdCgpOwpAQCAtNTIsMjMgKzUx
LDIzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
ICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgbGlzdCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1
ZSBvZiBudWxsIGlzIHJldHVybmVkLgotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkK
KyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAK
LSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xp
ZGF0ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUHJv
cGVydHkoKS5jb25zb2xpZGF0ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBl
ci0+Y3JlYXRlV2Vha1B0cigpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUod3Jh
cHBlcik7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKKyAgICBTVkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZH
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihhbmltYXRlZFByb3Bl
cnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7
CiAgICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNW
R1RyYW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9v
bCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBy
ZXN1bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkp
Lm1hdHJpeCgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmlu
ZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3QKICAgICAgICAgaWYgKGkgPiAwKQog
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVu
ZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0
eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5z
Zm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsK
LQorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNm
b3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBW
ZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVi
bGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsK
QEAgLTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYp
OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7
CisgICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7
CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVz
aW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw0ICs5MSw5
IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHVHJhbnNmb3IKICAgICByZXR1cm4g
IShhID09IGIpOwogfQogCit0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdU
cmFuc2Zvcm1WYWx1ZT4geworICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFs
dWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNW
R1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIHsgcmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3Ry
aW5nKCk7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcg
KzE5Nyw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAg
ICAgaWYgKCFwYXJzZVRyYW5zZm9ybVZhbHVlKHR5cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJh
bnNmb3JtKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVu
ZCh0cmFuc2Zvcm0pOworICAgICAgICBsaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1Ry
YW5zZm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2Vz
KGN1cnJUcmFuc2Zvcm0sIGVuZCk7CiAgICAgICAgIGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYm
ICpjdXJyVHJhbnNmb3JtID09ICcsJykgewogICAgICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MiwxMCArNjIsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAog
aW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShM
ZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBt
X2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkp
CisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBt
X2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9h
ZEV2ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVkKQog
ewogICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFs
dWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhW
YWx1ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQ
YXRoQnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5j
bHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJT
VkdTdHJpbmdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
IgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJp
YW50PAorICAgIFNWR0FuZ2xlVmFsdWUsICAgICAgICAgICAgICAgICAgLy8gIDA6IGFuZ2xlCisg
ICAgYm9vbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTogYm9vbGVhbgorICAgIENv
bG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDI6IGNvbG9yCisgICAgdW5zaWduZWQs
ICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzogZW51bWVyYXRpb24KKyAgICBpbnQsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vICA0OiBpbnRlZ2VyCisgICAgU1ZHTGVuZ3RoVmFsdWUs
ICAgICAgICAgICAgICAgICAvLyAgNTogbGVuZ3RoCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywg
ICAgICAgICAgICAvLyAgNjogbGVuZ3RoTGlzdAorICAgIFNWR01hdHJpeFZhbHVlLCAgICAgICAg
ICAgICAgICAgLy8gIDc6IG1hdHJpeAorICAgIGZsb2F0LCAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gIDg6IG51bWJlcgorICAgIFNWR051bWJlckxpc3RWYWx1ZXMsICAgICAgICAgICAgLy8g
IDk6IG51bWJlckxpc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSwgICAgICAgICAgICAgIC8vIDEw
OiBwYXRoCisgICAgUmVmUHRyPFNWR1BhdGhTZWc+LCAgICAgICAgICAgICAvLyAxMTogcGF0aFNl
ZworICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzLCAgICAgICAgICAgLy8gMTI6IHBhdGhTZWdMaXN0
CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLCAgICAvLyAxMzogcHJlc2VydmVBc3Bl
Y3RSYXRpbworICAgIEZsb2F0UG9pbnQsICAgICAgICAgICAgICAgICAgICAgLy8gMTQ6IHBvaW50
CisgICAgU1ZHUG9pbnRMaXN0VmFsdWVzLCAgICAgICAgICAgICAvLyAxNTogcG9pbnRMaXN0Cisg
ICAgRmxvYXRSZWN0LCAgICAgICAgICAgICAgICAgICAgICAvLyAxNjogcmVjdAorICAgIFN0cmlu
ZywgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTc6IHN0cmluZworICAgIFNWR1N0cmluZ0xp
c3RWYWx1ZXMsICAgICAgICAgICAgLy8gMTg6IHN0cmluZ0xpc3QKKyAgICBTVkdUcmFuc2Zvcm1W
YWx1ZSwgICAgICAgICAgICAgIC8vIDE5OiB0cmFuc2Zvcm0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzICAgICAgICAgIC8vIDIwOiB0cmFuc2Zvcm1MaXN0Cis+OworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHVHJhaXRIYXNUb1N0cmluZyB7CisgICAgdHlw
ZWRlZiBjaGFyIG9uZTsKKyAgICB0eXBlZGVmIGxvbmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IHN0YXRpYyBvbmUgdGVzdChkZWNsdHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46
OnRvU3RyaW5nKSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCgu
Li4pOworCitwdWJsaWM6CisgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlU
eXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNoYXIpIH07Cit9OworICAgIAorc3RydWN0IHRvU3Ry
aW5nVmlzaXRvciB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVu
YWJsZV9pZl90PFNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51
bGxwdHI+CisgICAgU3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0
b1N0cmluZyh2YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46
OnZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5
VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9Cit9OworICAgIAordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KK2NsYXNzIFNWR1RyYWl0SGFzUGFyc2UgeworICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAg
dHlwZWRlZiBsb25nIHR3bzsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25l
IHRlc3QoZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+OjpwYXJzZSkpOworICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdvIHRlc3QoLi4uKTsKKworcHVibGljOgorICAgIGVu
dW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0PFByb3BlcnR5VHlwZT4obnVsbHB0cikpID09IHNpemVv
ZihjaGFyKSB9OworfTsKKworc3RydWN0IHBhcnNlVmlzaXRvciB7CisgICAgcGFyc2VWaXNpdG9y
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZH
VmFsdWVWYXJpYW50JiB2YXJpYW50KQorICAgICAgICA6IG1fYXR0ck5hbWUoYXR0ck5hbWUpCisg
ICAgICAgICwgbV9zdHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fdmFyaWFudCh2YXJpYW50KQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBz
dGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzUGFyc2U8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9
IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAg
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb3BlcnR5VHlwZT4gcmVzdWx0ID0gU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6cGFyc2UobV9hdHRyTmFtZSwgbV9zdHJpbmcpOworICAg
ICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV92
YXJpYW50LmVtcGxhY2U8UHJvcGVydHlUeXBlPihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3Bl
cnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQ
cm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBtX2F0
dHJOYW1lOworICAgIGNvbnN0IFN0cmluZyYgbV9zdHJpbmc7CisgICAgU1ZHVmFsdWVWYXJpYW50
JiBtX3ZhcmlhbnQ7Cit9OworICAgIAorY2xhc3MgU1ZHVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTVkdWYWx1ZT4sIHB1YmxpYyBTVkdWYWx1ZVZhcmlhbnQgeworcHVibGljOgorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZTxQcm9wZXJ0eVR5cGU+KFNWR1Byb3Bl
cnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKTsKKyAgICB9CisgICAgCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxT
VkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZShyZWludGVycHJldF9jYXN0PGNvbnN0
IHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFBy
b3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46
OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25z
dCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHVmFsdWUocHJvcGVydHkpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFJlZjxT
VkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHZhbHVlKSk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wgaXMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UHJvcGVydHlUeXBlPigqdGhpcykg
fHwgKHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZSAmJiBXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQ
cm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46
OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWdu
ZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IFByb3Bl
cnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBjb25zdCBQcm9w
ZXJ0eVR5cGUmKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+
KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAg
fQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0
b3IgUHJvcGVydHlUeXBlJigpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UHJvcGVydHlUeXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjpp
c19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIFBy
b3BlcnR5VHlwZSYoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7
CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisK
KyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6
dmlzaXQodG9TdHJpbmdWaXNpdG9yKCksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFu
dCY+KCp0aGlzKSk7CisgICAgfQorCisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICByZXR1cm4g
V1RGOjp2aXNpdChwYXJzZVZpc2l0b3IoYXR0ck5hbWUsIHN0cmluZywgc3RhdGljX2Nhc3Q8U1ZH
VmFsdWVWYXJpYW50Jj4oKnRoaXMpKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50
Jj4oKnRoaXMpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJv
cGVydHlUeXBlPgorICAgIGV4cGxpY2l0IFNWR1ZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFs
dWUpCisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50KHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAgfQorICAgIAorICAgIFNWR1ZhbHVlKGNvbnN0
IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdWYWx1ZVZhcmlhbnQoc3RhdGljX2Nhc3Q8
Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlu
ZGV4KCkgPT0gdmFsdWUuaW5kZXgoKSk7CisgICAgfQorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVS
VElFUwogaW5saW5lIFNWR1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogICAgICwgbV96b29tQW5kUGFuKFNWR1pvb21BbmRQYW5NYWduaWZ5
KQotICAgICwgbV92aWV3VGFyZ2V0KFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKKyAgICAsIG1f
dmlld1RhcmdldChTVkdWYWx1ZTo6Y3JlYXRlKFNWR1N0cmluZ0xpc3RWYWx1ZXMoU1ZHTmFtZXM6
OnZpZXdUYXJnZXRBdHRyKSkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnZp
ZXdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1ZpZXdFbGVtZW50
KCk7CkBAIC02MCw3ICs2MCw3IEBAIFJlZjxTVkdTdHJpbmdMaXN0PiBTVkdWaWV3RWxlbWVudDo6
dmlld1QKIHZvaWQgU1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQotICAgICAgICBtX3ZpZXdUYXJnZXQucmVzZXQo
dmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fdmll
d1RhcmdldCkucmVzZXQodmFsdWUpOwogCiAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFy
c2VBdHRyaWJ1dGUodGhpcywgbmFtZSwgdmFsdWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogCiAgICAgU1ZHWm9vbUFuZFBhblR5
cGUgbV96b29tQW5kUGFuOwotICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMgbV92aWV3VGFyZ2V0Owor
ICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92aWV3VGFyZ2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSw5IEBAIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogU1ZHVmlld1NwZWM6OnRy
YW4KIAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50
KQogICAgIDogbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCisgICAgLCBtX3RyYW5z
Zm9ybShTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpCisgICAgLCBt
X3ZpZXdCb3goU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFJlY3Q+KCkpCisgICAgLCBtX3ByZXNlcnZl
QXNwZWN0UmF0aW8oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
KCkpCiB7CiB9CiAKQEAgLTEwOCwxNyArMTExLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1Zp
ZXdTcGVjOjpzZXRab29tQW4KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmco
KSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzPjo6dG9TdHJpbmcobV90cmFuc2Zvcm0pOworICAgIHJldHVybiBtX3RyYW5zZm9ybS0+
dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp2aWV3Qm94U3RyaW5nKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmco
bV92aWV3Qm94KTsKKyAgICByZXR1cm4gbV92aWV3Qm94LT50b1N0cmluZygpOwogfQogCiBTdHJp
bmcgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcoKSBjb25zdAogewotICAg
IHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojp0
b1N0cmluZyhtX3ByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgIHJldHVybiBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW8tPnRvU3RyaW5nKCk7CiB9CiAKIFNWR0VsZW1lbnQqIFNWR1ZpZXdTcGVjOjp2aWV3
VGFyZ2V0KCkgY29uc3QKQEAgLTE3Nyw5ICsxODAsOSBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0
eT4gU1ZHVmlld1NwZWM6OmxvCiB2b2lkIFNWR1ZpZXdTcGVjOjpyZXNldCgpCiB7CiAgICAgbV96
b29tQW5kUGFuID0gU1ZHWm9vbUFuZFBhbk1hZ25pZnk7Ci0gICAgbV90cmFuc2Zvcm0uY2xlYXIo
KTsKLSAgICBtX3ZpZXdCb3ggPSB7IH07Ci0gICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0geyB9
OworICAgIHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqbV90cmFuc2Zvcm0p
LmNsZWFyKCk7CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCkgPSB7IH07
CisgICAgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2Vy
dmVBc3BlY3RSYXRpbykgPSB7IH07CiAgICAgbV92aWV3VGFyZ2V0U3RyaW5nID0gZW1wdHlTdHJp
bmcoKTsKIH0KIApAQCAtMjYxLDcgKzI2NCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmll
d1NwZWMoY29uc3QgU3QKICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpj
dXJyVmlld1NwZWMgIT0gJygnKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIGN1cnJWaWV3U3BlYysrOwotICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFy
c2VUcmFuc2Zvcm1BdHRyaWJ1dGUobV90cmFuc2Zvcm0sIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdU
cmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CisgICAgICAgICAgICBTVkdUcmFuc2Zvcm1h
YmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzJj4oKm1fdHJhbnNmb3JtKSwgY3VyclZpZXdTcGVjLCBlbmQsIFNWR1RyYW5zZm9ybWFi
bGU6OkRvTm90Q2xlYXJMaXN0KTsKICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5k
IHx8ICpjdXJyVmlld1NwZWMgIT0gJyknKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVj
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNyArNTUsMTcgQEAgcHVibGljOgogCiAgICAgLy8gQ3Vz
dG9tIG5vbi1hbmltYXRlZCAndHJhbnNmb3JtJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHVHJh
bnNmb3JtTGlzdD4gdHJhbnNmb3JtKCk7Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFu
c2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQorICAgIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSk7IH0KIAogICAg
IC8vIEN1c3RvbSBhbmltYXRlZCAndmlld0JveCcgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0Fu
aW1hdGVkUmVjdD4gdmlld0JveEFuaW1hdGVkKCk7Ci0gICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkg
eyByZXR1cm4gbV92aWV3Qm94OyB9Ci0gICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0
IEZsb2F0UmVjdCYgdmlld0JveCkgeyBtX3ZpZXdCb3ggPSB2aWV3Qm94OyB9CisgICAgRmxvYXRS
ZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0Jv
eCk7IH0KKyAgICB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3QgRmxvYXRSZWN0JiB2aWV3
Qm94KSB7IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpID0gdmlld0JveDsgfQog
CiAgICAgLy8gQ3VzdG9tIGFuaW1hdGVkICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyBwcm9wZXJ0eS4K
ICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBwcmVzZXJ2ZUFzcGVj
dFJhdGlvQW5pbWF0ZWQoKTsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNl
cnZlQXNwZWN0UmF0aW8oKSB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KLSAgICB2
b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNlVmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRp
byA9IHByZXNlcnZlQXNwZWN0UmF0aW87IH0KKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsgfQorICAgIHZvaWQg
c2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVBc3BlY3RSYXRpbykgPSBwcmVzZXJ2ZUFzcGVj
dFJhdGlvOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVu
dCYpOwpAQCAtODQsOSArODQsOSBAQCBwcml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250
ZXh0RWxlbWVudDsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29t
QW5kUGFuTWFnbmlmeSB9OwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07
Ci0gICAgRmxvYXRSZWN0IG1fdmlld0JveDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zv
cm07CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51
bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMjIg
KzU1LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmPHVuc2lnbmVkPjo6c2V0QmFzZVZhbChwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAg
c3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBl
Pj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgRW51bVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJh
c2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJP
ZmY8RW51bVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCY+KHByb3BlcnR5KSkpOwotICAgIH0K
LQotICAgIEVudW1UeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICB1
bnNpZ25lZCYgYW5pbWF0ZWRWYWx1ZSA9IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
PHVuc2lnbmVkPjo6Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsKLSAgICAgICAgQVNTRVJUKGFuaW1h
dGVkVmFsdWUgPD0gU1ZHUHJvcGVydHlUcmFpdHM8RW51bVR5cGU+OjpoaWdoZXN0RW51bVZhbHVl
KCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFbnVtVHlwZSY+KGFuaW1hdGVk
VmFsdWUpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQot
ICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5
KQorICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiBiYXNlVmFsdWUpCisgICAgICAgIDogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmY8dW5zaWduZWQ+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgYmFzZVZhbHVlKQogICAgIHsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpA
QCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9
IHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46Okxpc3RQcm9wZXJ0eVRl
YXJPZmY7CiAgICAgdXNpbmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0
aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVh
dGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAg
ICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVl
cykpOwpAQCAtODUsNDQgKzg1LDUwIEBAIHB1YmxpYzoKICAgICAgICAgTGlzdFByb3BlcnR5Ojpk
ZXRhY2hMaXN0V3JhcHBlcnNBbmRSZXNpemUoJm1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAg
ICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQ
dHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVl
KCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVl
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CisgICAgfQorCisgICAgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBtX3ZhbHVlczsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJv
cGVydHlUeXBlKiBuZXdBbmltVmFsLCBib29sIHNob3VsZE93blZhbHVlcyA9IGZhbHNlKQorICAg
IHZvaWQgYW5pbWF0aW9uU3RhcnRlZChSZWZQdHI8U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAg
ewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5p
bVZhbCk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXpl
KCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRC
YXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJU
KG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkpOwogCiAgICAgICAgIC8vIFN3aXRjaCB0byBu
ZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcgd3JhcHBlcnMgbGlzdC4gVGhlIG5ldyB3cmFw
cGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3IgdGhlIG5ldyB2YWx1ZS4KLSAgICAgICAgaWYg
KCFuZXdBbmltVmFsLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMu
ZmlsbCgwLCBuZXdBbmltVmFsLT5zaXplKCkpOworICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBz
dGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbmV3QW5pbVZhbCkuc2l6ZSgpKQorICAgICAgICAg
ICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAKICAgICAgICAgbV9hbmltYXRl
ZFByb3BlcnR5ID0gYW5pbVZhbCgpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZh
bHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3JhcHBlcnMsIHNob3VsZE93
blZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNp
emUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAg
bV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9h
bmltYXRlZFdyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNp
emUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5p
bWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgp
KTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkg
PT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycygmbV92YWx1ZXMsICZtX3dyYXBwZXJzLCBmYWxzZSk7
Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBt
X2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRl
ZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhtX3ZhbHVlcywgJm1fd3JhcHBlcnMpOwor
ICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUo
KSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV93cmFwcGVycy5z
aXplKCkpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5jbGVhcigpOwpAQCAtMTQyLDM0
ICsxNDgsMzQgQEAgcHVibGljOgogICAgICAgICAvLyBBbHNvIGV4aXN0aW5nIHdyYXBwZXJzIHdo
aWNoIHBvaW50IGRpcmVjdGx5IGF0IGVsZW1lbnRzIGluIHRoZSBleGlzdGluZyBTVkdMZW5ndGhM
aXN0VmFsdWVzIGhhdmUgdG8gYmUgZGV0YWNoZWQgKHNvIGEgY29weQogICAgICAgICAvLyBvZiB0
aGVtIGlzIGNyZWF0ZWQsIHNvIGV4aXN0aW5nIGFuaW1WYWwgdmFyaWFibGVzIGluIEpTIGFyZSBr
ZXB0LWFsaXZlKS4gSWYgd2UnZCBkZXRhY2ggdGhlbSBsYXRlciB0aGUgdW5kZXJseWluZwogICAg
ICAgICAvLyBTVkdMZW5ndGhMaXN0VmFsdWVzIHdhcyBhbHJlYWR5IG11dGF0ZWQsIGFuZCBvdXIg
bGlzdCBpdGVtIHdyYXBwZXIgdGVhciBvZmZzIHdvdWxkIHBvaW50IG5vd2hlcmUuIEFzc2VydGlv
bnMgd291bGQgZmlyZS4KLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3Jh
cHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkpOworICAgICAgICBtX2Fu
aW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNp
emUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5
KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAg
ICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2Fu
aW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hh
bmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVy
cy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1
cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAg
c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFs
RGlkQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93
cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBl
Jj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAg
ICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAg
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAg
ICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fd3JhcHBl
cnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgaWYgKHNpemVfdCBzaXplID0gc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlcykuc2l6ZSgpKQorICAgICAgICAgICAgbV93
cmFwcGVycy5maWxsKDAsIHNpemUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgbV92YWx1
ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlczsKIAogICAgIExpc3RXcmFwcGVyQ2Fj
aGUgbV93cmFwcGVyczsKICAgICBMaXN0V3JhcHBlckNhY2hlIG1fYW5pbWF0ZWRXcmFwcGVyczsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAsIDIw
MTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNyArMzIs
NyBAQCBjbGFzcyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyCiBwdWJsaWM6CiAg
ICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2Vn
TGlzdFZhbHVlcz47CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJl
ZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5
VHlwZSwgdmFsdWVzKSk7CkBAIC03Niw4ICs3Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9hbmlt
YXRlZFBhdGhCeXRlU3RyZWFtID0gYnl0ZVN0cmVhbTsKIAogICAgICAgICAvLyBQYXNzIHNob3Vs
ZE93blZhbHVlcz10cnVlLCBhcyB0aGUgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbGlmZXRpbWUgaXMg
c29sZWx5IG1hbmFnZWQgYnkgaXRzIHRlYXIgb2ZmIGNsYXNzLgotICAgICAgICBhdXRvKiBjb3B5
ID0gbmV3IFNWR1BhdGhTZWdMaXN0VmFsdWVzKCpiYXNlVmFsdWUpOwotICAgICAgICBCYXNlOjph
bmltYXRpb25TdGFydGVkKGNvcHksIHRydWUpOworICAgICAgICBhdXRvIGNvcHkgPSBTVkdWYWx1
ZTo6Y3JlYXRlKCpiYXNlVmFsdWUpOworICAgICAgICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNv
cHkucHRyKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtOTUsNyAr
OTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElmIHRoZSBhbmltVmFsIGlzIG9ic2VydmVkIGZy
b20gSlMsIHdlIGhhdmUgdG8gdXBkYXRlIGl0IG9uIGVhY2ggYW5pbWF0aW9uIHN0ZXAuCiAgICAg
ICAgIC8vIFRoaXMgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBhbmQgb25seSBkb25lLCBpZiBz
b21lb25lIGFjdHVhbGx5IG9ic2VydmVzIHRoZSBhbmltYXRlZFBhdGhTZWdMaXN0KCkgd2hpbGUg
YW4gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgICAgIGlmIChwYXRoRWxlbWVudC0+aXNBbmlt
VmFsT2JzZXJ2ZWQoKSkgewotICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3VycmVu
dEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwog
ICAgICAgICAgICAgYW5pbWF0ZWRMaXN0LmNsZWFyKCk7CiAgICAgICAgICAgICBidWlsZFNWR1Bh
dGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0oKm1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSwg
KnBhdGhFbGVtZW50LCBhbmltYXRlZExpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICB9
CkBAIC0xMDYsNyArMTA3LDcgQEAgcHVibGljOgogICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmlt
YXRlZFBhdGhCeXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBhdGhCeXRlU3Ry
ZWFtOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNW
R1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVz
KQogICAgICAgICAsIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbShudWxscHRyKQogICAgIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNWR1ZhbHVlOwogY2xhc3MgU1ZHRWxl
bWVudDsKIGNsYXNzIFNWR1Byb3BlcnR5OwogCkBAIC00OSw3ICs1MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBPd25lclR5cGUsIHR5cGVuYW1lIFRlYXJPZmZUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
Ci0gICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlwZT4gbG9va3VwT3JDcmVhdGVXcmFwcGVyKE93bmVy
VHlwZSogZWxlbWVudCwgY29uc3QgU1ZHUHJvcGVydHlJbmZvKiBpbmZvLCBQcm9wZXJ0eVR5cGUm
IHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3Jh
cHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoaW5mbyk7
CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHlEZXNjcmlwdGlvbiBrZXkoZWxlbWVudCwgaW5m
by0+cHJvcGVydHlJZGVudGlmaWVyKTsKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFRlYXJPZmZUeXBlJj4oKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogCi0gICAgICAgIFJlZjxT
VkdBbmltYXRlZFByb3BlcnR5PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0ZShlbGVtZW50
LCBpbmZvLT5hdHRyaWJ1dGVOYW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVy
dHkpOworICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9IFRlYXJPZmZU
eXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+YW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIHZhbHVlKTsKICAgICAgICAgaWYgKGluZm8tPmFuaW1hdGVkUHJvcGVydHlT
dGF0ZSA9PSBQcm9wZXJ0eUlzUmVhZE9ubHkpCiAgICAgICAgICAgICB3cmFwcGVyLT5zZXRJc1Jl
YWRPbmx5KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlNYWNyb3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLTIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNiArMjYsNyBA
QAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1
dGVUb1Byb3BlcnR5TWFwLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNs
dWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdTeW5j
aHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkgewogICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eSgpCi0gICAgICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6aW5pdGlhbFZhbHVlKCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2Up
Ci0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3Jl
YXRlPFByb3BlcnR5VHlwZT4oKSkKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQ
cm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkKLSAgICAgICAgOiB2
YWx1ZSh2YWx1ZTEpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAg
ICwgaXNWYWxpZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q29uc3RydWN0b3JQYXJhbWV0ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjI+Ci0g
ICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFy
YW1ldGVyMSYgdmFsdWUxLCBjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjImIHZhbHVlMikKLSAg
ICAgICAgOiB2YWx1ZSh2YWx1ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6
ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5bmNocm9uaXphYmxl
QW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IHZh
bHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAgICAgewogICAgIH0K
IApAQCAtNjEsOSArNTAsOSBAQCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3Bl
cnR5CiAgICAgICAgIG93bmVyRWxlbWVudC0+c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShh
dHRyTmFtZSwgdmFsdWUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSB2YWx1ZTsKLSAgICBi
b29sIHNob3VsZFN5bmNocm9uaXplIDogMTsKLSAgICBib29sIGlzVmFsaWQgOiAxOworICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gdmFsdWU7CisgICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIC8vIFByb3BlcnR5IHJlZ2lz
dHJhdGlvbiBoZWxwZXJzCkBAIC0xMjQsMTkgKzExMywxOSBAQCBwdWJsaWM6IFwKICAgICB7IFwK
ICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdy
YXBwZXI8VXNlT3duZXJUeXBlLCBUZWFyT2ZmVHlwZT4odGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJv
cGVydHlJbmZvKCkpKSB7IFwKICAgICAgICAgICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGluZygp
KSBcCi0gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVl
KCk7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4o
KndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOyBcCiAgICAgICAgIH0gXAotICAgICAg
ICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSk7IFwKICAgICB9
IFwKIFwKICAgICBQcm9wZXJ0eVR5cGUmIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNvbnN0
IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclBy
b3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUm
PigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpOyBcCiAgICAgfSBcCiBcCi0gICAgdm9pZCBzZXQj
I1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHR5cGUsIGNvbnN0
IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwKKyAgICB2b2lkIHNl
dCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUsIGNv
bnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwK
LSAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUgPSB0eXBlOyBcCisgICAgICAgIHN0YXRp
Y19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkgPSB2YWx1ZTsg
XAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5pc1ZhbGlkID0gdmFsaWRWYWx1ZTsgXAogICAg
IH0gXAogXApAQCAtMTU2LDcgKzE0NSw3IEBAIHByaXZhdGU6IFwKICAgICB7IFwKICAgICAgICAg
aWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkgXAogICAgICAgICAgICAg
cmV0dXJuOyBcCi0gICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQ
cm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkpOyBcCisgICAg
ICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0
b1N0cmluZyhzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFs
dWUpKSk7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuc3luY2hyb25pemUodGhpcywgTG93
ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHZhbHVlKTsgXAogICAg
IH0gXAogXApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAgcHVibGljOgogICAgIHVzaW5nIFBy
b3BlcnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVydHlUeXBlOwogICAg
IHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHBy
b3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVy
dHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPihjb250ZXh0RWxl
bWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFBy
b3BlcnR5VGVhck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVydHlUZWFyT2Zm
PiBiYXNlVmFsKCkKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAobV9iYXNl
VmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPiht
X2Jhc2VWYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJP
ZmY6OmNyZWF0ZSgqdGhpcywgQmFzZVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAgICAgICBhdXRv
IHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBt
X2Jhc2VWYWx1ZSk7CiAgICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRy
KCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CkBAIC01MywzNiArNTMsNDIgQEAg
cHVibGljOgogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1
dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUs
IG1fcHJvcGVydHkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpj
cmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX2Jhc2VWYWx1ZSk7CiAgICAgICAgIG1fYW5pbVZh
bCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsK
ICAgICB9CiAKICAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9h
bmltYXRlZFByb3BlcnR5OyB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7
CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1
cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVu
dEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7
CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYmFzZVZh
bHVlOwogICAgIH0KIAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5l
d0FuaW1WYWwpCisgICAgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwog
ICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9
IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZSgqbmV3QW5p
bVZhbCk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobmV3QW5pbVZhbCk7
CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAgICAgICBBU1NF
UlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUo
bV9wcm9wZXJ0eSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobV9iYXNl
VmFsdWUpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KIApA
QCAtMTA0LDEzICsxMTAsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdB
bmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgICAgIDogU1ZH
QW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUpCi0gICAgICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKKyAgICAgICAgLCBt
X2Jhc2VWYWx1ZShiYXNlVmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYg
bV9wcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fYmFzZVZhbHVlOwogICAgIFdlYWtQ
dHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYmFzZVZhbDsKICAgICBXZWFr
UHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2FuaW1WYWw7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZH
VmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw1MyArMzMsNTkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgY29uc3Qg
UHJvcGVydHlUeXBlJiBhbmltVmFsKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2FuaW1hdGVkUHJv
cGVydHkpCi0gICAgICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKLSAgICAgICAg
cmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIGlmIChtX2FuaW1hdGVkVmFsdWUpCisgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYW5pbWF0ZWRWYWx1ZSk7
CisgICAgICAgIHJldHVybiBiYXNlVmFsKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAg
dmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYg
YmFzZVZhbHVlKQogICAgIHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAg
ICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpID0gYmFzZVZhbHVlOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAg
ICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hbmltYXRlZFBy
b3BlcnR5OyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fYW5pbWF0ZWRWYWx1ZTsgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFBy
b3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRB
bmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVl
KCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJu
ICptX2FuaW1hdGVkUHJvcGVydHk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkVmFsdWU7CiAg
ICAgfQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
KyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBBU1NFUlQoaXNBbmlt
YXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkVmFsdWU7CisgICAgfQorCisgICAg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0
YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRl
ZChSZWZQdHI8U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlz
QW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAgIG1fYW5p
bWF0ZWRQcm9wZXJ0eSA9IG5ld0FuaW1WYWw7CisgICAgICAgIG1fYW5pbWF0ZWRWYWx1ZSA9IG5l
d0FuaW1WYWw7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9
IG51bGxwdHI7CisgICAgICAgIG1fYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCkBAIC05OSwxNiArMTA2LDE2IEBAIHB1YmxpYzoK
ICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
ZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3Bl
cnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0
eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCi0g
ICAgICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKLSAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVy
dHkobnVsbHB0cikKKyAgICAgICAgLCBtX2Jhc2VWYWx1ZShiYXNlVmFsdWUpCiAgICAgeworICAg
ICAgICBBU1NFUlRfSU1QTElFUyhtX2Jhc2VWYWx1ZSwgbV9iYXNlVmFsdWUtPmlzPFByb3BlcnR5
VHlwZT4oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0
eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZH
VmFsdWU+IG1fYmFzZVZhbHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9hbmltYXRlZFZhbHVl
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNy
ZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2Zm
KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFs
dWVzKSk7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYg
dmFsdWVzKQorICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJv
cGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1lbnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2RpZmljYXRpb25V
bmtub3duID0gMCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAgICBMaXN0TW9k
aWZpY2F0aW9uUmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCi0g
ICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFBy
b3BlcnR5VHlwZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjsKIApAQCAt
NzUsMTkgKzY3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVz
aXplKG1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lkIHNldFZhbHVl
c0FuZFdyYXBwZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFw
cGVycywgYm9vbCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVy
cyhjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFuaW1WYWwgc3Vw
cG9ydCwgdG8gc3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJzCiAgICAgICAg
IC8vIHRvIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRpb24gZm9yIGEg
bGlzdCBzdGFydHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVCht
X3dyYXBwZXJzKTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9sZSk7Ci0gICAg
ICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7CiAgICAg
ICAgIG1fdmFsdWVzID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBzaG91bGRPd25W
YWx1ZXM7CiAgICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgfQogCiAg
ICAgLy8gU1ZHTGlzdDo6Y2xlYXIoKQpAQCAtOTgsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtMTExLDcgKzEwMCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAg
ICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAg
ICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA4LDcgQEAgcHVibGljOgog
ICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVkIG51bWJlck9mSXRl
bXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5zaXplKCk7CisgICAg
ICAgIHJldHVybiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICB9CiAKICAgICAvLyBTVkdM
aXN0Ojppbml0aWFsaXplKCkKQEAgLTEzNCw4ICsxMjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHBy
b2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gU3Bl
YzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJl
LWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBi
eSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigp
OworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJ
dGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcgKzEzOSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQo
bV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQo
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAg
ICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0xNTksOSArMTQ4LDkg
QEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVu
dCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xk
IHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KICAgICAgICAgZGV0
YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAg
dmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3
SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBw
ZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRl
bS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTE3MSw3
ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0SXRlbSgpCiAgICAgRXhjZXB0
aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlm
IChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVz
UHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhT
aXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE4NSw3ICsxNzQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAg
ICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3Qu
IFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KLSAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG1fdmFsdWVzLT5hdChpbmRleCkgfTsKKyAgICAg
ICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IHN0YXRpY19jYXN0PExpc3RJdGVtVHlwZSY+KCp2YWx1
ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSkgfTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8
TGlzdEl0ZW1UZWFyT2ZmPj4gZ2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5OSwxMyAr
MTg4LDEzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZp
ZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNl
bGYgYW5kIG5vdCBhIGNvcHkuCiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0
ZW0gYXJlIGltbWVkaWF0ZWx5IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAg
IFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRl
YXJPZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBpZiAoIXdyYXBw
ZXIpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgd3JhcHBlciwgd2hpY2ggaXMgYWxsb3dl
ZCB0byBkaXJlY3RseSBtb2RpZnkgdGhlIGl0ZW0gaW4gdGhlIGxpc3QsIHcvbyBjb3B5aW5nIGFu
ZCBjYWNoZSB0aGUgd3JhcHBlciBpbiBvdXIgbWFwLgogICAgICAgICAgICAgLy8gSXQgaXMgYWxz
byBhc3NvY2lhdGVkIHdpdGggb3VyIGFuaW1hdGVkIHByb3BlcnR5LCBzbyBpdCBjYW4gbm90aWZ5
IHRoZSBTVkcgRWxlbWVudCB3aGljaCBob2xkcyB0aGUgU1ZHQW5pbWF0ZWQqTGlzdAogICAgICAg
ICAgICAgLy8gdGhhdCBpdCBoYXMgYmVlbiBtb2RpZmllZCAoYW5kIHRodXMgY2FuIGNhbGwgc3Zn
QXR0cmlidXRlQ2hhbmdlZChhc3NvY2lhdGVkQXR0cmlidXRlTmFtZSkpLgotICAgICAgICAgICAg
d3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVk
Um9sZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0
ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9w
ZXJ0eSgpLmF0KGluZGV4KSk7CiAgICAgICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSB3
cmFwcGVyLT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIH0KIApAQCAtMjIxLDggKzIxMCw4IEBA
IHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAK
ICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byBudW1iZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5k
IG9mIHRoZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAg
ICAgICAgICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUHJvcGVy
dHkoKS5zaXplKCk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJlYWR5IGlu
IGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9yZSBpdCBp
cyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVZhbHVlKG5ld0l0ZW0sICZpbmRleCkpIHsKQEAgLTIzMiw3ICsyMjEsNyBAQCBwdWJs
aWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3Qg
YXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3
aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJz
dCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUg
bmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgotICAgICAgICBt
X3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHko
KS5pbnNlcnQoaW5kZXgsIFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7
CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUg
eyBuZXdJdGVtIH07CkBAIC0yNDgsMTAgKzIzNywxMCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRo
ZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0
aGUgbmV3IGl0ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAg
aWYgKGluZGV4ID4gbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1
ZXMtPnNpemUoKTsKKyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkp
CisgICAgICAgICAgICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCi0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAg
IEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwog
CiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTI2MSw3
ICsyNTAsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVt
IGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRo
ZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5z
ZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwg
dG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBs
aXN0LgotICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5kZXgsIG5ld0l0
ZW0tPnZhbHVlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9u
ICdpbmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5l
d0l0ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAgICAgICAgbV93
cmFwcGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwpAQCAtMjc4
LDcgKzI2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGlu
ZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTgs
MTMgKzI4NywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsg
bmV3SXRlbSB9OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkp
IHsKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwg
YW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxh
Y2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYXQgdGhlIGRlc2lyZWQgcG9z
aXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtOwor
ICAgICAgICBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChp
bmRleCkpID0gbmV3SXRlbTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTMxOSw3ICszMDgsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAg
UmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMzI4LDcgKzMxNyw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3
SXRlbSwgJmluZGV4KSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0ZW0pOwogCi0g
ICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQcm9w
ZXJ0eSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMtPmlzRW1w
dHkoKSk7CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlz
dCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUn
cyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5k
ZXhTaXplRXJyb3IgfTsKQEAgLTM0MCw3ICszMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBv
bGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBh
bmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAg
IG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAg
ICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSA9IG5ld0l0ZW0tPnZhbHVlKCk7CiAgICAg
ICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKTsKIAog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTM1NSw3ICszNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJU
KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IG1f
dmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNp
emUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9Owog
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzY4LDggKzM1Nyw4IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQo
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBMaXN0SXRlbVR5cGUgb2xk
SXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaW5k
ZXgpOworICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IHN0YXRpY19jYXN0PExpc3RJdGVt
VHlwZSY+KCp2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CisgICAgICAgIHZhbHVlc1Byb3Bl
cnR5KCkucmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAg
cmV0dXJuIFdURk1vdmUob2xkSXRlbSk7CkBAIC0zODQsMTYgKzM3MywxNiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVl
c1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8g
RGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFy
T2ZmPiBvbGRJdGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+
YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xk
SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9s
ZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1U
ZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9wZXJ0
eSgpLmF0KGluZGV4KSk7CiAKICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAg
ICAgICBtX3dyYXBwZXJzLT5yZW1vdmUoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3Zl
KGluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbS5yZWxlYXNlTm9uTnVs
bCgpOwpAQCAtNDExLDcgKzQwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5n
TGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVl
IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRl
bSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlz
dEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmlj
YXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpA
QCAtNDI2LDcgKzQxNSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0
ZW0pOwogCkBAIC00MzQsMTkgKzQyMywyNSBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNv
bWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhl
IHZhbHVlIGFuZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFs
dWVzLT5hcHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVl
c1Byb3BlcnR5KCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJz
LT5hcHBlbmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFu
Z2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0
ZW0pOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzKCkKKyAgICBSZWY8U1ZHVmFs
dWU+IHZhbHVlcygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAg
ICAgICByZXR1cm4gKm1fdmFsdWVzOwogICAgIH0KIAorICAgIFByb3BlcnR5VHlwZSYgdmFsdWVz
UHJvcGVydHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlcyk7CisgICAgfQor
CiAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fd3JhcHBlcnMpOwpAQCAtNDU5LDIwICs0NTQsMTMgQEAgcHVibGljOgogICAgIH0K
IAogcHJvdGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQorICAgIFNW
R0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAgICAgOiBtX3JvbGUo
cm9sZSkKLSAgICAgICAgLCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAgICAgICwgbV92YWx1ZXMo
JnZhbHVlcykKKyAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgICAgICwgbV93cmFwcGVy
cyh3cmFwcGVycykKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U1ZHTGlzdFByb3BlcnR5
KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUg
bV92YWx1ZXM7Ci0gICAgfQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uKQogICAgIHsK
QEAgLTQ4Myw4ICs0NzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJ
bmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5z
aWduZWQqIGluZGV4VG9Nb2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7
Ci0gICAgYm9vbCBtX293bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAg
ICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUqIG1fd3Jh
cHBlcnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dlYWtQdHJGYWN0
b3J5OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBj
b3B5KQpAQCAtMzUsMjIgKzM1LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
eXBlPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gdHlwZW5hbWUgU1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2FjaGU7CiAKKyAg
ICB1c2luZyBCYXNlOjp2YWx1ZXNQcm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0g
ICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAot
ICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VsZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
CiAgICAgaW50IGZpbmRJdGVtKExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAog
ICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NF
UlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFs
dWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgewogICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+YXQoaSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGk7CkBAIC02MSwxNSArNjAsMTQgQEAgcHVibGljOgogCiAg
ICAgdm9pZCByZW1vdmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRT
eW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAg
ICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUo
KSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHko
KS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAg
ICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpdGVtSW5kZXgpOwogICAgICAgICBpdGVt
LT5kZXRhY2hXcmFwcGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpdGVtSW5kZXgp
OwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1By
b3BlcnR5KCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9u
aXplV3JhcHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAg
ICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndyYXBw
ZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAg
IHsKQEAgLTEyOSwxOCArMTI3LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAg
IEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBl
cnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAgICAg
IHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXpl
ID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9w
ZXJ0eSgpLnNpemUoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKICAgICAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpOwogICAgICAg
ICAgICAgaWYgKCFpdGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
aXRlbS0+c2V0QW5pbWF0ZWRQcm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkucHRyKCkpOwotICAg
ICAgICAgICAgaXRlbS0+c2V0VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGl0
ZW0tPnNldFZhbHVlKHZhbHVlc1Byb3BlcnR5KCkuYXQoaSkpOwogICAgICAgICB9CiAKICAgICAg
ICAgbV9hbmltYXRlZFByb3BlcnR5LT5jb21taXRDaGFuZ2UoKTsKQEAgLTE2OSw3ICsxNjYsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAvLyBTVkdSZWN0RWxlbWVudHMgU1ZHQW5pbWF0ZWRM
ZW5ndGggJ3dpZHRoJyBwcm9wZXJ0eSBiYXNlVmFsIHBvaW50cyB0byB0aGUgc2FtZSB0ZWFyIG9m
ZiBvYmplY3QKICAgICAgICAgICAgIC8vIHRoYXQncyBpbnNlcnRlZCBpbnRvIFNWR1RleHRFbGVt
ZW50cyBTVkdBbmltYXRlZExlbmd0aExpc3QgJ3gnLiB0ZXh0RWxlbWVudC54LmJhc2VWYWwuZ2V0
SXRlbSgwKS52YWx1ZSArPSAxNTAgd291bGQKICAgICAgICAgICAgIC8vIG11dGF0ZSB0aGUgcmVj
dEVsZW1lbnQgd2lkdGggX2FuZF8gdGhlIHRleHRFbGVtZW50IHggbGlzdC4gVGhhdCdzIG9idmlv
dXNseSB3cm9uZywgdGFrZSBjYXJlIG9mIHRoYXQuCi0gICAgICAgICAgICBuZXdJdGVtID0gTGlz
dEl0ZW1UZWFyT2ZmOjpjcmVhdGUobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAg
ICAgICAgICBuZXdJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUobmV3SXRlbS0+dmFsdWVQ
cm9wZXJ0eSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01h
dHJpeFRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTkgKzI4LDE5IEBAIGNsYXNzIFNW
R01hdHJpeFRlYXJPZmYgZmluYWwgOiBwdWJsaWMgU1YKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFNWR01hdHJpeFRlYXJPZmY+IGNyZWF0ZShTVkdUcmFuc2Zvcm0mIHBhcmVudCwgU1ZHTWF0cml4
VmFsdWUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgJnBhcmVu
dC5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CisgICAgICAgIEFT
U0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQudmFsdWVQcm9wZXJ0eSgpLnN2Z01hdHJpeCgpID09
ICZ2YWx1ZSk7CiAgICAgICAgIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiByZXN1bHQgPSBhZG9wdFJl
ZigqbmV3IFNWR01hdHJpeFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAgIHBhcmVudC5hZGRDaGls
ZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZl
cmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdN
YXRyaXgoKTsgfQorICAgIFNWR01hdHJpeFZhbHVlJiB2YWx1ZVByb3BlcnR5KCkgZmluYWwgeyBy
ZXR1cm4gbV9wYXJlbnQtPnZhbHVlUHJvcGVydHkoKS5zdmdNYXRyaXgoKTsgfQogCi0gICAgdm9p
ZCBzZXRWYWx1ZShTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnZhbHVlUHJvcGVy
dHkoKS5zZXRNYXRyaXgoc3RhdGljX2Nhc3Q8U1ZHTWF0cml4VmFsdWUmPigqdmFsdWUpKTsgfQog
CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbAogICAgIHsKLSAgICAgICAgbV9wYXJlbnQt
PnByb3BlcnR5UmVmZXJlbmNlKCkudXBkYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIG1fcGFyZW50
LT52YWx1ZVByb3BlcnR5KCkudXBkYXRlU1ZHTWF0cml4KCk7CiAgICAgICAgIG1fcGFyZW50LT5j
b21taXRDaGFuZ2UoKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC02NSwxNyArNjYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
Y3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQogCi0gICAg
dmlydHVhbCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJlbmNlKCkgeyByZXR1cm4gKm1fdmFs
dWU7IH0KKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZTsgfQorICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiB2YWx1ZVByb3BlcnR5KCkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fdmFsdWUpOyB9CiAgICAgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9w
ZXJ0eS5nZXQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKFByb3BlcnR5VHlwZSYg
dmFsdWUpCisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYg
KG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAg
ICAgZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAgIH0KICAgICAgICAgbV92YWx1ZUlzQ29weSA9IGZh
bHNlOwotICAgICAgICBtX3ZhbHVlID0gJnZhbHVlOworICAgICAgICBtX3ZhbHVlID0gdmFsdWU7
CiAgICAgfQogCiAgICAgdm9pZCBzZXRBbmltYXRlZFByb3BlcnR5KFNWR0FuaW1hdGVkUHJvcGVy
dHkqIGFuaW1hdGVkUHJvcGVydHkpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgICAg
ICAvLyBpdGVtLnZhbHVlIHN0aWxsIGhhcyB0byByZXBvcnQgJzUwJyBhbmQgaXQgaGFzIHRvIGJl
IHBvc3NpYmxlIHRvIG1vZGlmeSAnaXRlbScKICAgICAgICAgLy8gdy9vIGNoYW5naW5nIHRoZSAi
bmV3IGl0ZW0iICh3aXRoIHg9MTAwKSBpbiB0aGUgdGV4dCBlbGVtZW50LgogICAgICAgICAvLyBX
aGVuZXZlciB0aGUgWE1MIERPTSBtb2RpZmllcyB0aGUgIngiIGF0dHJpYnV0ZSwgYWxsIGV4aXN0
aW5nIHdyYXBwZXJzIGFyZSBkZXRhY2hlZCwgdXNpbmcgdGhpcyBmdW5jdGlvbi4KLSAgICAgICAg
bV92YWx1ZSA9IG5ldyBQcm9wZXJ0eVR5cGUoKm1fdmFsdWUpOworICAgICAgICBtX3ZhbHVlID0g
U1ZHVmFsdWU6OmNyZWF0ZShzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV92YWx1ZSkpOwog
ICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gdHJ1ZTsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5
ID0gbnVsbHB0cjsKICAgICB9CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVydHkq
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZh
bHVlKQorICAgIFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWUpCiAgICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAg
ICAgICAgICwgbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV92YWx1ZSgmdmFsdWUpCisgICAgICAg
ICwgbV92YWx1ZSh2YWx1ZSkKICAgICAgICAgLCBtX3ZhbHVlSXNDb3B5KGZhbHNlKQogICAgIHsK
ICAgICB9CkBAIC0xNTIsMTcgKzE1MiwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlU
ZWFyT2ZmKGNvbnN0IFByb3BlcnR5VHlwZSogaW5pdGlhbFZhbHVlKQogICAgICAgICA6IG1fYW5p
bWF0ZWRQcm9wZXJ0eShudWxscHRyKQogICAgICAgICAsIG1fcm9sZShVbmRlZmluZWRSb2xlKQot
ICAgICAgICAsIG1fdmFsdWUoaW5pdGlhbFZhbHVlID8gbmV3IFByb3BlcnR5VHlwZSgqaW5pdGlh
bFZhbHVlKSA6IG51bGxwdHIpCiAgICAgICAgICwgbV92YWx1ZUlzQ29weSh0cnVlKQogICAgIHsK
KyAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSkKKyAgICAgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1
ZTo6Y3JlYXRlKCppbml0aWFsVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflNWR1Byb3Bl
cnR5VGVhck9mZigpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAg
ICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAg
ICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgZGV0
YWNoQ2hpbGRyZW4oKQpAQCAtMTc2LDEwICsxNzUsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVm
UHRyPFNWR0FuaW1hdGVkUHJvcGVydHk+IG1fYW5pbWF0ZWRQcm9wZXJ0eTsKICAgICBTVkdQcm9w
ZXJ0eVJvbGUgbV9yb2xlOwotICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fdmFsdWU7CiAgICAgVmVjdG9yPFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2Zm
QmFzZT4+IG1fY2hpbGRUZWFyT2ZmczsKICAgICBXZWFrUHRyRmFjdG9yeTxTVkdQcm9wZXJ0eVRl
YXJPZmY+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0gICAgYm9vbCBtX3ZhbHVlSXNDb3B5OworICAgIGJv
b2wgbV92YWx1ZUlzQ29weSB7IGZhbHNlIH07CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDIwICsyMCw0OCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxv
YXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKKyNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBMaXN0TW9kaWZpY2F0aW9uIHsKKyAgICBMaXN0TW9k
aWZpY2F0aW9uVW5rbm93biA9IDAsCisgICAgTGlzdE1vZGlmaWNhdGlvbkluc2VydCA9IDEsCisg
ICAgTGlzdE1vZGlmaWNhdGlvblJlcGxhY2UgPSAyLAorICAgIExpc3RNb2RpZmljYXRpb25SZW1v
dmUgPSAzLAorICAgIExpc3RNb2RpZmljYXRpb25BcHBlbmQgPSA0Cit9OworICAgIAogdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzIHsgfTsK
IAogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0
aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0YXRpYyBib29s
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1
ZSI7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlw
ZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxDb2xvcj4geworICAgIHN0YXRpYyBDb2xvciBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBDb2xvcigpOyB9CisgICAgc3RhdGljIENvbG9yIGZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCkpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q29sb3I+IHBhcnNlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIENv
bG9yIGNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRlU3BhY2Uo
KSk7CisgICAgICAgIHJldHVybiBjb2xvci5pc1ZhbGlkKCkgPyBjb2xvciA6IHN0ZDo6b3B0aW9u
YWw8Q29sb3I+KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgQ29s
b3ImIHR5cGUpIHsgcmV0dXJuIHR5cGUuc2VyaWFsaXplZCgpOyB9Cit9OworCit0ZW1wbGF0ZTw+
CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKICAgICBzdGF0aWMgdW5zaWdu
ZWQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcodW5zaWduZWQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KQEAgLTQy
LDE5ICs3MCwxMDkgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVkPiB7CiB0ZW1w
bGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8aW50PiB7CiAgICAgc3RhdGljIGludCBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGludCBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyZzdHJpbmcpIHsgcmV0dXJuIHN0cmluZy50b0ludFN0cmljdCgpOyB9CiAgICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIo
dHlwZSk7IH0KIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
c3RkOjpwYWlyPGludCwgaW50Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8aW50LCBpbnQ+IGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBzdGQ6OnBhaXI8aW50LCBp
bnQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBmbG9h
dCBmaXJzdE51bWJlciA9IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAgICAgIGlmICghcGFyc2VO
dW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpKQor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcihzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikpLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJvdW5kZihzZWNvbmROdW1iZXIpKSk7CisgICAgfQorfTsKIAogdGVtcGxhdGU8Pgog
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0PiB7CiAgICAgc3RhdGljIGZsb2F0IGluaXRp
YWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgZmxvYXQgZnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IHR5cGUgPSAwOworICAgICAg
ICByZXR1cm4gcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgdHlwZSkgPyB0eXBlIDogMDsK
KyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IHBhcnNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IG51
bWJlcjsKKyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIG51bWJl
cikgPyBudW1iZXIgOiBzdGQ6Om9wdGlvbmFsPGZsb2F0PigpOworICAgIH0KICAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGZsb2F0IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUp
OyB9CiB9OwogCiB0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+IHsKKyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gaW5p
dGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBm
bG9hdCBmaXJzdE51bWJlciA9IDAsIHNlY29uZE51bWJlciA9IDA7CisgICAgICAgIGlmICghcGFy
c2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIp
KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Bh
aXIoZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcik7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+IHsKKyAgICBzdGF0aWMgRmxvYXRQ
b2ludCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBGbG9hdFBvaW50KCk7IH0KKyAgICBzdGF0aWMg
RmxvYXRQb2ludCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUG9pbnQoc3RyaW5nLCBw
b2ludCkgPyBwb2ludCA6IEZsb2F0UG9pbnQoKTsKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8RmxvYXRQb2ludD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRQb2ludCBwb2ludDsKKyAgICAgICAgcmV0
dXJuIHBhcnNlUG9pbnQoc3RyaW5nLCBwb2ludCkgPyBwb2ludCA6IHN0ZDo6b3B0aW9uYWw8Rmxv
YXRQb2ludD4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9h
dFBvaW50JiB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKKyAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+Citz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7CisgICAgc3RhdGljIEZsb2F0UmVj
dCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIHN0YXRpYyBGbG9h
dFJlY3QgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZs
b2F0UmVjdCByZWN0OworICAgICAgICByZXR1cm4gcGFyc2VSZWN0KHN0cmluZywgcmVjdCkgPyBy
ZWN0IDogRmxvYXRSZWN0KCk7CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0OworICAgICAgICByZXR1cm4g
cGFyc2VSZWN0KHN0cmluZywgcmVjdCkgPyByZWN0IDogc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+
KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0
eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgp
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIodHlwZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFN0cmlu
Zz4gewogICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU3RyaW5nKCk7
IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSkgeyByZXR1
cm4gdHlwZTsgfQorICAgIHN0YXRpYyBTdHJpbmcgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0
dXJuIHN0cmluZzsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5
cGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJv
cGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2Zm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljOgogICAgIHVzaW5nIExp
c3RJdGVtVGVhck9mZiA9IHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46
Okxpc3RJdGVtVGVhck9mZjsKIAogICAgIHVzaW5nIEJhc2U6Om1fcm9sZTsKLSAgICB1c2luZyBC
YXNlOjptX3ZhbHVlczsKKyAgICB1c2luZyBCYXNlOjp2YWx1ZXNQcm9wZXJ0eTsKIAogICAgIHN0
YXRpYyBSZWY8U2VsZj4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0
eVR5cGUmIHZhbHVlcykKICAgICB7CkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByb3RlY3RlZDoKLSAgICBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBTVkdTdGF0aWNMaXN0
UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogQmFzZShVbmRlZmluZWRSb2xlLCB2YWx1ZXMs
IG51bGxwdHIpCiAgICAgICAgICwgbV9jb250ZXh0RWxlbWVudCgqY29udGV4dEVsZW1lbnQpCiAg
ICAgewpAQCAtODksOCArODksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbW1pdENoYW5n
ZSgpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBt
X3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQpOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50KTsKICAgICB9CiAKICAgICBi
b29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUoY29uc3QgTGlzdEl0ZW1UeXBlJiwgdW5z
aWduZWQqKSBvdmVycmlkZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9m
Zi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFVz
ZWQgZm9yIG5vbi1hbmltYXRlZCBQT0QgdHlwZXMgdGhhdCBhcmUgbm90IGFzc29jaWF0ZWQgd2l0
aCBhIFNWR0FuaW1hdGVkUHJvcGVydHkgb2JqZWN0LCBub3Igd2l0aCBhIFhNTCBET00gYXR0cmli
dXRlCiAgICAgLy8gKGZvciBleGFtcGxlOiBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRl
KS4KLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVs
ZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgc3Rh
dGljIFJlZjxTZWxmPiBjcmVhdGUoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlbGYoY29udGV4dEVsZW1lbnQsIHZhbHVlLCB1
cGRhdGUpKTsKICAgICB9CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1p
dENoYW5nZSgpIGZpbmFsIHsgKG1fY29udGV4dEVsZW1lbnQuZ2V0KCktPiptX3VwZGF0ZSkoKTsg
fQogCiBwcml2YXRlOgotICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZihDb250ZXh0RWxlbWVu
dCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRh
dGUpCisgICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRh
dGUpCiAgICAgICAgIDogUHJvcGVydHlUZWFyT2ZmKFVuZGVmaW5lZFJvbGUsIHZhbHVlKQogICAg
ICAgICAsIG1fdXBkYXRlKHVwZGF0ZSkKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCZjb250
ZXh0RWxlbWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333638</attachid>
            <date>2018-02-12 15:19:05 -0800</date>
            <delta_ts>2018-02-12 16:48:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180212151905.patch</filename>
            <type>text/plain</type>
            <size>362881</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5NyBAQAorMjAxOC0wMi0xMiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBub3Qg
bG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVy
ZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50
IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0aGlz
IHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2ggaXMg
YSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRhIHR5
cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRyaWJ1
dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlwZSB0
byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAgICAg
IGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBkYXRh
IHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRvIGJl
IG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSBT
VkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9sZCBS
ZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6
Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OlNW
R0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1Rh
cmdldCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNl
VmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0
cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5n
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxl
bmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RS
YXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24pOgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6
OlNWR0VsbGlwc2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4
RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVp
bGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQpOgor
ICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRW
YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVTcGVj
aWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToKKyAg
ICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0
aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhM
aXN0VmFsdWVzPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhWYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+OjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46
OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTGlzdFZhbHVlcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29weSBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6
OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFzdFBy
b3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtl
clVuaXRzVHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmhpZ2hl
c3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1WYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRzPFNW
R01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50
OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4
OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRCKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0ZUZy
b21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051bWJl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1i
ZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVl
cz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRzTGlz
dEZyb21TVkdEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVhbTo6
YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjppc0VtcHR5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3Ry
ZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVE
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0
OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1
aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFNv
dXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdFNvdXJjZTo6bmV4dENvbW1hbmQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAgICAo
V2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1BvaW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50
OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZH
UG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExp
c3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50
TGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAg
ICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlF
bGVtZW50Ojpwb2ludExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbyk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Jl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0Ojpz
ZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hl
Y2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAgICog
c3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdM
aXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVz
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6
bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06
OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3Qu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0
b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAgICAg
IChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6OnBhcnNlVmlzaXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6aXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1ZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6U1ZH
VmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdT
cGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6
OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZp
ZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0
aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjph
bmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3Vy
cmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFy
T2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Rh
dGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpzZXRWYWx1ZXNB
bmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFyVmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXNBbmRX
cmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Om51bWJlck9mSXRl
bXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXpl
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZh
bHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2Fu
R2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVzQW5k
V3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVt
QmVmb3JlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5zZXJ0
SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6Y2FuUmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5OjpyZXBsYWNlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjYW5SZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXNQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQcm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21M
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJP
ZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZVByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46Omlu
aXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJl
Y3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTEyICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIyODM3Ni4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw3ICsy
MDcxLDYgQEAgc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKIHN2Zy9TVkdB
bmltYXRlZFJlY3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCiBzdmcvU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmNwcAotc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKIHN2Zy9TVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5jcHAKIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAogc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuY3BwCkBAIC0yMTM1LDYgKzIxMzQsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2MzIsNyArMTYzMiwxNSBAQAogCQk1NTUwQ0I0MjFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1
MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTUxMzAwMTFFN0NDQ0NCMDBBNjlFMzgg
LyogRGVjb2RpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3
RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyog
SW1hZ2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJNTU2MjdCNzgyMDI5MkJGNDAwMkQzOTdEIC8qIFNW
R0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU3NkE1NjUxRDg4QTcw
ODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5
OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RjIyNDMxREQzQjNCOTAwRTkyREEz
IC8qIFNWR0FuZ2xlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZh
bHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
OUMzNjkxRERCODZEMzAwRkVGQjI5IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5QzIwMjU0NjA1
MDA0RDc1RjQgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQ
YXRoU2VnTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlD
MzZCMUREQjg3MUMwMEZFRkIyOSAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RTIwMjU0NjJCMDA0
RDc1RjQgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyog
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUYyMDI1NDY3NTAwNEQ3NUY0IC8qIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDMzlDMzZEMUREQjhCQjAwMEZFRkIyOSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTVBMzM2RjcxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCAqLzsgfTsKIAkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIElt
YWdlQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUFGMTRF
NjFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElS
ZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTMwLDcgKzE5MzgsNyBAQAogCQk3MTU1NkNCRDFGOUYwQTQ5MDBFNzhEMDggLyogSlNB
bmltYXRpb25FZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxNTU2Q0I5MUY5RjA5RkQwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVj
dFRpbWluZy5oICovOyB9OwogCQk3MTU1NkNCRTFGOUYwQTQ5MDBFNzhEMDggLyogSlNLZXlmcmFt
ZUVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzE1NTZDQjcxRjlGMDlGQzAwRTc4RDA4IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCAqLzsgfTsKIAkJ
NzFBMUI2MDgxREVFNUFENzAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6
ZWQtc3RyaW5ncy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFBMUI2MDYxREVFNUE4MjAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1s
b2NhbGl6ZWQtc3RyaW5ncy5qcyAqLzsgfTsKLQkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8q
IFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
Ki87IH07CisJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE1N0RGMDE1
NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxQzkxNjA4MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcxRENCNzAyMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21B
bmRQYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcx
RENCNzAwMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJNzFF
MjE4M0ExNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRTIxODM4MTczNTlGQjgwMDZFNkU0
RCAvKiBQbHVnSW5zUmVzb3VyY2VzLmggKi87IH07CkBAIC0yMDMyLDcgKzIwNDAsNyBAQAogCQk3
QzMwRDk4NjFGODE1QUVDMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMEQ5ODExRjgxNUFDMTAwMjY4MzU2
IC8qIEpTQWJvcnRTaWduYWwuaCAqLzsgfTsKIAkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8q
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdDMzMwQTA4MURGOUY5NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9uT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
MzBBMDYxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggKi87IH07Ci0JCTdD
MzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBG
RUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyB9OworCQk3QzM5QzM2NTFEREE4NjUy
MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzM5QzM3NzFEREJFMTcwMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMz
NjcxRERCODJDRjAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNBOTFFNjFDOTYzQjg4MDBE
MUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNBOTFFNTFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNC
Nzk2RjE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLzsgfTsKQEAg
LTIxNjQsMTAgKzIxNzIsOSBAQAogCQk3Q0UxOTE3OTFGMkFCRTcxMDAyNzJGNzggLyogSlNGZXRj
aFJlcXVlc3RNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0UxOTE2QzFGMkFCNzBBMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RNb2RlLmggKi87
IH07CiAJCTdDRTE5MTdCMUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UxOTE2
QTFGMkFCNzA2MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oICovOyB9OwogCQk3
Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBT
VkdQb2ludC5oICovOyB9OwotCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NF
NThENEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLzsgfTsKIAkJN0NFNThE
NTAxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051
bWJlci5oICovOyB9OwotCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3Jt
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3
Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1
MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyB9OworCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIg
LyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdD
RTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUy
IC8qIFNWR01hdHJpeFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNjgzNDIxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRl
c2NyaXB0b3IuY3BwICovOyB9OwogCQk3Q0U2ODM0NTE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NFNjgzNDMxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0U2ODM0NzE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVz
Y3JpcHRvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIzMDksNyArMjMxNiw3IEBACiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07Ci0JCTg0MTlEMkE3
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8q
IFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CisJCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAv
KiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQx
OUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJE
MDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwogCQk4NDE5RDJB
RDEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkFCMTIwRDkyRkMwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oICovOyB9OwogCQk4NDE5RDJCQTEyMEUw
Qzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkI4MTIwRTBDNzYwMDE0MUY4RiAvKiBT
VkdQYXRoU3RyaW5nQnVpbGRlci5oICovOyB9OwpAQCAtMjMzNiw3ICsyMzQzLDcgQEAKIAkJODQ3
MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAwRDNBOUM5
IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIg
LyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07Ci0JCTg0
NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIw
MiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKKwkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAy
IC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0NzZD
OUYwMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5oICovOyB9OwogCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVH
YXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9Owog
CQk4NDgyQjc0NjExOThDMzU0MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBE
NDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi87IH07CkBAIC0zMjgxLDkgKzMyODgsOSBAQAog
CQlCMjIyN0E0QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhCNTBEMDBCRjIw
MDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggKi87IH07CiAJCUIyMjI3QTRFMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJl
ckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEJCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0
aWxpdGllcy5oICovOyB9OworCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTkwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0
aEVsZW1lbnQuaCAqLzsgfTsKLQkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhT
ZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3
OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IH07CisJCUIyMjI3QTVCMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNl
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
MjI3QTVFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDODBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZ0FyYy5oICovOyB9OwogCQlCMjIyN0E2MjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4Q0MwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBh
dGguaCAqLzsgfTsKIAkJQjIyMjdBNjUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyMjI3OENGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmggKi87
IH07CkBAIC03MjgzLDcgKzcyOTAsNiBAQAogCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM5RDMzNDIxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBMEYwQjAxM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0Fu
aW1hdGVkTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNBMEYw
QjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRD
b2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRC
OCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE3NCwxMCArODE4MCwxMyBAQAogCQk1NTBB
MEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTQ2
NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1hZ2VTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTQ2NzU3
ODFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU1MDRFOTQyMDJDREZEMjAw
NTA3QzczIC8qIFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZh
bHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0Mw
MDExMUFBMCAvKiBJbWFnZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MTMwMDAxRTdD
Q0NDQTAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWNvZGluZ09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdl
RGVjb2RlckNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2Rl
ckNHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1NjI3Qjc2MjAyOEVEQzQwMDJE
Mzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xpc3RWYWx1ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8q
IFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01h
cmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYyMUQ4OEE3
MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODE4NSw2ICs4MTk0LDcgQEAKIAkJNTVBRjE0RTMxRUFBQzU5QjAwMjZFRUFB
IC8qIFVUSVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUSVJlZ2lzdHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8q
IFVUSVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUSVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1RDQwOEY3MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNs
aWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3
QiAvKiBTVkdWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2
MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTkxRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2Jj
Q2ZiUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWVzQ2JjQ2Zi
UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDVCMUU1MzkzNzkw
MDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0Flc0NiY0NmYlBhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NDY2LDcgKzk0NzYsNiBAQAogCQk3Q0UxOTE2RTFGMkFCNzBEMDAyNzJGN0Ig
LyogSlNDYWNoZVF1ZXJ5T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhY2hlUXVl
cnlPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFMTkxNkYxRjJB
QjcwRjAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdSZWN0VHJhaXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTnVtYmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUxMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5n
dGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGVuZ3RoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUyMUREN0IwOTMwMDEyODU1MiAvKiBTVkdM
ZW5ndGhWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdM
ZW5ndGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQzMSw3ICsy
MjQ0MCw2IEBACiAJCQkJNzE1N0YwNjExNTBCNjU2NDAwNkVBQUJEIC8qIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAgKi8sCiAJCQkJMDgyNTA5MzgxMjhCRDREODAwRTJFRDhFIC8qIFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAotCQkJCTQzQTBGMEI1MTNBQ0NDRkYw
MEE1RjBBNyAvKiBTVkdBbmltYXRlZFR5cGUuY3BwICovLAogCQkJCTQzOUQzMzQwMTNBNjkxMUMw
MEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKIAkJCQk4MzZGQkNFOTE3OEMxMTMyMDBC
MjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovLAogCQkJCTQzOUQzMzQxMTNB
NjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovLApAQCAtMjI2MzIs
MTEgKzIyNjQwLDE0IEBACiAJCQkJQjIyMjc4QTUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVF
bGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBNjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVs
ZW1lbnQuaCAqLywKIAkJCQlCMjIyNzhBNzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1l
bnQuaWRsICovLAorCQkJCTU1NTA0RTk0MjAyQ0RGRDIwMDUwN0M3MyAvKiBTVkdMaXN0VmFsdWVz
LmNwcCAqLywKKwkJCQk1NTYyN0I3NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5o
ICovLAogCQkJCUIyMjI3OEFBMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuY3BwICov
LAogCQkJCUIyMjI3OEFCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCAqLywKIAkJ
CQlCMjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQjIyMjc4QUUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCAqLywKIAkJ
CQlCMjIyNzhBRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5pZGwgKi8sCisJ
CQkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggKi8sCiAJCQkJ
QjIyMjc4QjAwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzhCMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaCAqLywKIAkJCQlCMjIy
NzhCMjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaWRsICovLApAQCAtMjI3NzAs
NyArMjI3ODEsNiBAQAogCQkJCUIyMjI3OTA3MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxl
bWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5MDgwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc5MDkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50
LmlkbCAqLywKLQkJCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5o
ICovLAogCQkJCUIyMjI3OTBBMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQu
aCAqLywKIAkJCQlCMjIyNzkwQjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50
LmlkbCAqLywKIAkJCQlCMjIyNzkwQzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHU2NyaXB0RWxlbWVu
dC5jcHAgKi8sCkBAIC0yMjg0Nyw2ICsyMjg1Nyw3IEBACiAJCQkJQjIyMjc5NTYwRDAwQkYyMTAw
NzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTU3MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdVc2VFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NTgwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1VzZUVsZW1lbnQuaWRsICovLAorCQkJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAv
KiBTVkdWYWx1ZS5oICovLAogCQkJCUIyMjI3OTU5MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3
RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NUEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdF
bGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NUIwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVt
ZW50LmlkbCAqLywKQEAgLTI5NjkzLDYgKzI5NzA0LDcgQEAKIAkJCQk2NTY1M0YyRTBEOTcyN0Qy
MDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5
MTJCODEzQ0E5QTY5MDBEMjE5MTUgLyogU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0EwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4N0I4NDk2MTI3MkNFQzgwMEEx
NDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU3OTcwOTEy
NzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5ODA0LDYgKzI5ODE2LDcgQEAKIAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
TGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNC
QSAvKiBTVkdMaXN0UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA5MTI2RUYx
REIwMDk3OEY3QSAvKiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBNDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJr
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODE2LDYgKzI5ODI5LDcgQEAKIAkJCQlC
MjIyN0E0RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUIyMDI1NDVFQTAwNEQ3NUY0IC8qIFNWR051bWJlckxp
c3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0EwRTM2MTNBN0Q3
NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QzY3
ODREMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTg1NCw2ICsyOTg2OCw3IEBACiAJCQkJQjIyMjdBODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhdGhTZWdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlFNjExREY2QTBCMDA1NTVC
MDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEI2Qjk3
ODEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhT
ZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODJERTQyRDEy
OTI2MjE2MDBEOTIzREYgLyogU1ZHUGF0aFNlZ1dpdGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI5ODY1LDEwICsyOTg4MCwxMiBAQAogCQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENEExREQ2NEE1
QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4QzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5
RDIwMjU0NjEyMDA0RDc1RjQgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0E4RjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTkxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bv
bHlsaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2
OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4OEEwRTBBMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxREQ0OUMxM0JBMUE2MDAwREM3NjI3IC8qIFNWR1Byb3Bl
cnR5SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEIxMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg3Niw3ICsyOTg5Myw2
IEBACiAJCQkJQjIyMjdBOUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNW
R1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdSZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0NFNThENEUxREQ2OTRGRTAwMTI4
NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1
MzIwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FBMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzIyNzQ3OTBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjk5MjEsNiArMjk5MzcsNyBAQAogCQkJCUIyMjI3QURBMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0FERDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1MaXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENTgxREQ3RDk2RDAwMTI4
NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFMjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHVFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QUU1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUU3BhbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjk5MjgsNiArMjk5NDUsNyBAQAogCQkJCTM3QzczOEVEMUVEQkQ1QkMwMDNGMkIwQiAv
KiBTVkdVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRUEwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1VSSVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RUQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1OEI2OTk4MjAyNTQ1NkQwMDRENzVGNCAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjIyMjdBRjAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0FGMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld1NwZWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdQYXRoRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdQYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTYgKzEw
MCwxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBhdGhFbGVtZW50KFNWR0VsZW1lCiAKIHN0YXRp
YyBQYXRoIHBhdGhGcm9tUG9seWdvbkVsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5p
bWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZH
UG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlc1Byb3BlcnR5
KCk7CiAgICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBQYXRoIHBhdGg7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0KCkpOworICAgIHBhdGgu
bW92ZVRvKHBvaW50cy5maXJzdFByb3BlcnR5KCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBv
aW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5l
VG8ocG9pbnRzLnByb3BlcnR5QXQoaSkpOwogCiAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsKICAg
ICByZXR1cm4gcGF0aDsKQEAgLTExNywxNiArMTE3LDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9t
UG9seWdvbkVsZW1lbnQoU1ZHRWwKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5bGluZUVsZW1l
bnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxT
VkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlcygpOwor
ICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCku
YW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1v
dmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVy
dHkoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2lu
dHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7
CiAgICAgcmV0dXJuIHBhdGg7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDE1
ICsxNjMsMTUgQEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aQogc3Rh
dGljIGlubGluZSB2b2lkIHVwZGF0ZUNoYXJhY3RlckRhdGEodW5zaWduZWQgaSwgZmxvYXQmIGxh
c3RSb3RhdGlvbiwgU1ZHQ2hhcmFjdGVyRGF0YSYgZGF0YSwgY29uc3QgU1ZHTGVuZ3RoQ29udGV4
dCYgbGVuZ3RoQ29udGV4dCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeExpc3QsIGNvbnN0
IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHlMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBk
eExpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR5TGlzdCwgY29uc3QgU1ZHTnVtYmVy
TGlzdFZhbHVlcyogcm90YXRlTGlzdCkKIHsKICAgICBpZiAoeExpc3QpCi0gICAgICAgIGRhdGEu
eCA9IHhMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS54ID0g
eExpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHlMaXN0
KQotICAgICAgICBkYXRhLnkgPSB5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQp
OwogICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5wcm9wZXJ0eUF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChkeUxpc3QpCi0gICAgICAgIGRhdGEuZHkg
PSBkeUxpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChyb3Rh
dGVMaXN0KSB7Ci0gICAgICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+YXQoaSk7CisgICAg
ICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+cHJvcGVydHlBdChpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQy
LDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5n
bGUoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3Jl
YXRlKGNvbnN0IFNWR0FuZ2xlVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHQW5nbGU+PiBj
cmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
aW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyArNTEsNyBAQCBwdWJsaWM6CiAK
ICAgICBTVkdBbmdsZVZhbHVlOjpUeXBlIHVuaXRUeXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlKHZh
bHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlRm9yQmluZGluZ3Mo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZSgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lm
aWVkVW5pdHMpCkBAIC04MCw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVJblNwZWNp
ZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIHZhbHVlUHJvcGVydHko
KS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtODgs
NyArODMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTk2LDcgKzkxLDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKICAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIApAQCAtMTA2LDcgKzEwMSw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVl
QXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUFzU3RyaW5n
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbmV3VmFsdWVTcGVjaWZpZWRVbml0
cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpA
QCAtMTE0LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRU
eXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjcsNyAr
MTIyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVu
aXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuY29u
dmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMzYs
NyArMTMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVl
PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwx
MSArMTQwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5n
bGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdB
bmdsZShjb25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjQsNyArMjI0LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZQog
ICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gYW5pbWF0
b3ItPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIG1f
YW5pbWF0ZWRUeXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7
CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5wYXJzZShhdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUp
OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0KFNWR0Vs
ZW1lbnQmIHRhcmdldEVsZW1lbnQsIENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCkBAIC0zNDQsMTQgKzM0NCwxNCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXBw
bHlSZXN1bHRzCiAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgewogICAg
ICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRoLgogICAgICAgICAvLyBD
b252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0cmluZyBhbmQgYXBwbHkg
aXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5zdGFuY2VzLgotICAgICAg
ICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBh
cHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5kIHRoZSBhbmltYXRpb24g
cHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KICAgICBTaG91bGRBcHBseUFuaW1h
dGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRhcmdldEVsZW1lbnQuZ2V0
KCksIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENT
U0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2Vz
KCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0
YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7
CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAvLyBB
dCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZhbHVlcyBhcmUgYWxyZWFkeSBjaGFuZ2VkLCB1bmxp
a2UgZm9yIENTUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDMxICsxMzYs
NiBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojp1cGRhdGVBbmltCiAgICAgdXBkYXRl
QW5pbWF0aW9uTW9kZSgpOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmlu
ZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYgKHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdW
aWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOwotICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1
cGNvbnZlcnRlZENoYXJhY3RlcnM7Ci0gICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVu
Z3RoKCk7Ci0gICAgCi0gICAgaWYgKCFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZmxvYXQgeCA9IDA7Ci0gICAgaWYgKCFw
YXJzZU51bWJlcihjdXIsIGVuZCwgeCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBmbG9hdCB5ID0gMDsKLSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHBvaW50ID0gRmxvYXRQb2ludCh4LCB5KTsKLSAg
ICAKLSAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyBleGNlcHQgc3BhY2VzIGF0IHRoZSBlbmQKLSAg
ICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7Ci19Ci0gICAgCiB2b2lk
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSgpCiB7CiAgICAgaWYg
KCFoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEFuZ2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMjIgKzMyLDEyIEBAIFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRBbmcKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlx
dWU8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKSk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQYWlyID0gYW5pbWF0ZWRUeXBlLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0KLSAgICBT
VkdBbmdsZVZhbHVlIGFuZ2xlOwotICAgIFNWR01hcmtlck9yaWVudFR5cGUgb3JpZW50VHlwZSA9
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmlu
ZywgYW5nbGUpOwotICAgIGlmIChvcmllbnRUeXBlID4gMCkKLSAgICAgICAgYW5pbWF0ZWRQYWly
LnNlY29uZCA9IG9yaWVudFR5cGU7Ci0gICAgaWYgKG9yaWVudFR5cGUgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgIGFuaW1hdGVkUGFpci5maXJzdCA9IGFuZ2xlOwotCi0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZH
UHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1h
dGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01Nyw3ICs0
Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVYKIAogdm9pZCBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5
cGU6OmFuZ2xlQW5kRW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5p
bWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03
NSwxMyArNjUsMTMgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uID0gZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRv
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVt
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOwogICAgIC8v
IE9ubHkgcmVzcGVjdCBieSBhbmltYXRpb25zLCBpZiBmcm9tIGFuZCBieSBhcmUgYm90aCBzcGVj
aWZpZWQgaW4gYW5nbGVzIChhbmQgbm90IGVnLiAnYXV0bycpLgotICAgIGlmIChmcm9tQW5nbGVB
bmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCB8fCBm
cm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisg
ICAgaWYgKGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uIHx8IGZyb21FbnVtZXJhdGlv
biAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnN0IGF1
dG8mIGZyb21BbmdsZSA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgIGF1dG8m
IHRvQW5nbGUgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CiAgICAgdG9BbmdsZS5zZXRW
YWx1ZSh0b0FuZ2xlLnZhbHVlKCkgKyBmcm9tQW5nbGUudmFsdWUoKSk7CiB9CiAKQEAgLTkwLDQ4
ICs4MCw0OSBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5hbmds
ZUFuZEVudW1lcmF0aW9uKCkgOiBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0
byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAg
ICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24gPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIGFuaW1hdGVkQW5nbGVB
bmRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigq
YW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1
ZXNbMV0pOworICAgIGF1dG8mIHRvQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFs
dWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVW
YWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEVudW1lcmF0
aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAg
ICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24p
IHsKICAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIC0gbm8gbGluZWFyIGludGVycG9sYXRp
b24gcG9zc2libGUgYmV0d2VlbiB2YWx1ZXMgKGUuZy4gYXV0byB0byBhbmdsZSkuCiAgICAgICAg
IGlmIChwZXJjZW50YWdlIDwgMC41ZikgewotICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsKLSAgICAg
ICAgICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0ID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgICAgICBhbmltYXRl
ZEVudW1lcmF0aW9uID0gZnJvbUVudW1lcmF0aW9uOworICAgICAgICAgICAgaWYgKGZyb21FbnVt
ZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlID0gZnJvbUFuZ2xlOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAg
ICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSB0b0Fu
Z2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOwotICAgICAgICBpZiAodG9BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHRvRW51bWVyYXRpb247CisgICAgICAgIGlm
ICh0b0VudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgYW5p
bWF0ZWRBbmdsZSA9IHRvQW5nbGU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAgIGFuaW1h
dGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKSB7
CisgICAgaWYgKGZyb21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgewogICAg
ICAgICAvLyBSZWd1bGFyIGZyb20gYW5nbGUgdG8gYW5nbGUgYW5pbWF0aW9uLCB3aXRoIHN1cHBv
cnQgZm9yIHNtb290aCBpbnRlcnBvbGF0aW9uLCBhbmQgYWRkaXRpdmUgYW5kIGFjY3VtdWxhdGVk
IGFuaW1hdGlvbi4KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9
IFNWR01hcmtlck9yaWVudEFuZ2xlOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZH
TWFya2VyT3JpZW50QW5nbGU7CiAKLSAgICAgICAgYXV0byYgYW5pbWF0ZWRTVkdBbmdsZSA9IGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKLSAgICAgICAgY29uc3QgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25TVkdBbmdsZSA9IHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJh
dGlvbi5maXJzdDsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZSA9IGFuaW1hdGVkU1ZHQW5n
bGUudmFsdWUoKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0LnZhbHVlKCksIHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgpLCB0b0F0RW5k
T2ZEdXJhdGlvblNWR0FuZ2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGUpOwotICAgICAgICBhbmlt
YXRlZFNWR0FuZ2xlLnNldFZhbHVlKGFuaW1hdGVkQW5nbGUpOworICAgICAgICBmbG9hdCBhbmlt
YXRlZEFuZ2xlVmFsdWUgPSBhbmltYXRlZEFuZ2xlLnZhbHVlKCk7CisgICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmcm9tQW5nbGUudmFsdWUoKSwgdG9BbmdsZS52YWx1ZSgpLCB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGVWYWx1ZSk7CisgICAgICAgIGFuaW1hdGVkQW5nbGUu
c2V0VmFsdWUoYW5pbWF0ZWRBbmdsZVZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIC8vIGF1dG8sIGF1dG8tc3RhcnQtcmV2ZXJzZSwgb3IgdW5rbm93bi4KLSAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgYW5pbWF0ZWRBbmds
ZS5zZXRWYWx1ZSgwKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKLSAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsK
KyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG8gfHwgZnJvbUVu
dW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisgICAgICAgIGFu
aW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CiAgICAgZWxzZQotICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50VW5rbm93
bjsKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVudFVua25vd247
CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2Uo
Y29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OlNW
R0FuaW1hdGVkQgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9v
bGVhbihzdGQ6Om1ha2VfdW5pcXVlPGJvb2w+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+Ym9vbGVh
bigpID0gKHN0cmluZyA9PSAidHJ1ZSIpOyAvLyB3YXQ/Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
Ym9vbD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0
b3BBbmkKIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmJv
b2xlYW4pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2OSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNhbGN1bGEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBib29sIGZyb21Cb29sZWFuID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Ym9v
bGVhbigpIDogZnJvbS0+Ym9vbGVhbigpOwotICAgIGJvb2wgdG9Cb29sZWFuID0gdG8tPmJvb2xl
YW4oKTsKLSAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRlZC0+Ym9vbGVhbigpOwor
ICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDxib29sJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYm9vbCB0b0Jv
b2xlYW4gPSBzdGF0aWNfY2FzdDxib29sJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGJvb2wmIGFu
aW1hdGVkQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7
CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8Ym9vbD4ocGVy
Y2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5pbWF0ZWRCb29sZWFuKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OlNWR0FuaW1h
dGVkQ29sCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQ29s
b3JBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6Om1ha2VfdW5pcXVl
PENvbG9yPihDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKSkp
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxD
b2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bykKQEAgLTQ0LDggKzQ0LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0
b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVCh0by0+dHlwZSgpID09IEFuaW1hdGVkQ29sb3IpOwog
CiAgICAgLy8gSWdub3JlcyBhbnkgYWxwaGEgYW5kIHNldHMgYWxwaGEgb24gcmVzdWx0IHRvIDEw
MCUgb3BhcXVlLgotICAgIGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmNvbG9yKCk7Ci0gICAgYXV0
byYgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIGF1dG8mIGZyb21Db2xvciA9IHN0YXRpY19j
YXN0PENvbG9yJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9Db2xvciA9IHN0YXRp
Y19jYXN0PENvbG9yJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHRvQ29sb3IgPSB7IHJvdW5kQW5k
Q2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5yZWQoKSArIGZyb21Db2xvci5yZWQoKSksCiAgICAg
ICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ncmVlbigpICsgZnJvbUNvbG9y
LmdyZWVuKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuYmx1
ZSgpICsgZnJvbUNvbG9yLmJsdWUoKSkgfTsKQEAgLTY5LDggKzY5LDggQEAgdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIENvbG9yIGZyb21Db2xv
ciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmNvbG9yKCkgOiBmcm9tLT5jb2xvcigpOwotICAgIENvbG9yIHRvQ29sb3IgPSB0
by0+Y29sb3IoKTsKKyAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBDb2xvciB0b0NvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7
CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25F
bGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxDb2xvcj4ocGFyc2VDb2xvckZyb21TdHJpbmcs
IG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21Db2xvciwg
bV9jb250ZXh0RWxlbWVudCk7CkBAIC04Miw4ICs4Miw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT50b1Byb3Bl
cnR5VmFsdWVUeXBlKCkgPT0gQ3VycmVudENvbG9yVmFsdWUpCiAgICAgICAgIHRvQ29sb3IgPSBj
dXJyZW50Q29sb3IoKm1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byYgdG9BdEVuZE9mRHVy
YXRpb25Db2xvciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5jb2xvcigpOwotICAgIGF1dG8mIGFuaW1h
dGVkQ29sb3IgPSBhbmltYXRlZC0+Y29sb3IoKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
bkNvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sw
XSk7CisgICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gRklYTUU6IEV4dGVuZGVkQ29sb3IgLSB0aGlzIHdp
bGwgbmVlZCB0byBoYW5kbGUgYmxlbmRpbmcgYmV0d2VlbiBjb2xvcnMgaW4gZGlmZmVyZW50IGNv
bG9yIHNwYWNlcywKICAgICAvLyBhcyB3ZWxsIGFzIHdvcmsgd2l0aCBub24gWzAtMjU1XSBDb2xv
cnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxNCArMTA5LDEyIEBAIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6U1ZHQW5pbWEKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
RW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTx1bnNpZ25lZD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5lbnVtZXJhdGlvbigpID0gZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0dHJpYnV0ZSht
X2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25FbGVtZW50LT5h
dHRyaWJ1dGVOYW1lKCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0
dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25F
bGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRp
b24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRl
ZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC0xMjYsNyArMTI0LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0bwogCiB2b2lkIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
KQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmlt
YXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJhdGlvbik7CisgICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5
cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1h
dG9yOjpjYWwKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICB1bnNpZ25lZCBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5l
bnVtZXJhdGlvbigpIDogZnJvbS0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gdG8tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQmIGFuaW1hdGVkRW51bWVy
YXRpb24gPSBhbmltYXRlZC0+ZW51bWVyYXRpb24oKTsKKyAgICB1bnNpZ25lZCBmcm9tRW51bWVy
YXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgdW5z
aWduZWQmIGFuaW1hdGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2Ny
ZXRlVHlwZTx1bnNpZ25lZD4ocGVyY2VudGFnZSwgZnJvbUVudW1lcmF0aW9uLCB0b0VudW1lcmF0
aW9uLCBhbmltYXRlZEVudW1lcmF0aW9uKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMz
LDEyIEBAIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEkKIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjptYWtlX3VuaXF1
ZTxpbnQ+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+aW50ZWdlcigpID0gc3RyaW5nLnRvSW50U3Ry
aWN0KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2Vy
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdl
cj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDcgKzY2LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YWRkQW5pbQogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPmludGVnZXIoKSArPSBmcm9tLT5pbnRlZ2VyKCk7
CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGlu
dCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0
aW9uRWxlbWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIGludCBm
cm9tSW50ZWdlciwgaW50IHRvSW50ZWdlciwgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwg
aW50JiBhbmltYXRlZEludGVnZXIpCkBAIC04MywxMCArODEsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9tSW50ZWdlciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmludGVnZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9JbnRlZ2VyID0g
dG8tPmludGVnZXIoKTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9BdEVu
ZE9mRHVyYXRpb24tPmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1h
dGVkLT5pbnRlZ2VyKCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBpbnQgdG9JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBz
dGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBjYWxjdWxhdGVB
bmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZnJvbUludGVnZXIsIHRvSW50ZWdlciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmlt
YXRlZEludGVnZXIpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMyArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0bwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6Om1ha2Vf
dW5pcXVlPHN0ZDo6cGFpcjxpbnQsIGludD4+KCkpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4m
IGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkVHlwZS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigp
OwotICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMDsKLSAgICBmbG9hdCBzZWNvbmROdW1iZXIgPSAw
OwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVy
LCBzZWNvbmROdW1iZXIpKSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IDA7Ci0g
ICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVt
YmVyKSk7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+
KHJvdW5kZihzZWNvbmROdW1iZXIpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3Rk
OjpwYWlyPGludCwgaW50Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFu
aW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdB
bmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0
OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KIAogdm9pZCBT
VkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUs
ICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOworICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBl
KCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9t
SW50ZWdlclBhaXIgPSBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpw
YWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0KLSAgICB0b0ludGVnZXJQYWlyLmZpcnN0ICs9IGZyb21JbnRlZ2VyUGFpci5maXJzdDsK
LSAgICB0b0ludGVnZXJQYWlyLnNlY29uZCArPSBmcm9tSW50ZWdlclBhaXIuc2Vjb25kOworICAg
IHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sxXSkg
Kz0gc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlw
ZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZE
dXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg5LDEzICs3NSwxNyBAQCB2
b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29u
c3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJvbUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlck9w
dGlvbmFsSW50ZWdlcigpIDogZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNv
bnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlv
bmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlck9wdGlvbmFsSW50
ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBh
bmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOworICAgIGNvbnN0IGludCYgZm9ybUZp
cnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxp
bnQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIGZvcm1TZWNvbmQgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9t
LT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9GaXJzdCA9IHN0YXRpY19jYXN0PGludCY+
KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8
aW50Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25G
aXJzdCA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBpbnQmIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMV0pOworICAgIGludCYgYW5pbWF0ZWRGaXJz
dCA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFu
aW1hdGVkU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwog
Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwotICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmly
c3QsIGFuaW1hdGVkRmlyc3QpOworICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kLCBh
bmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6U1ZHQW5pbWF0ZWRMZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChz
dGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aFZhbHVlPihtX2xlbmd0aE1vZGUsIHN0cmluZykpOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdMZW5ndGhWYWx1ZShtX2xlbmd0
aE1vZGUsIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ4
LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw4
ICs2Nyw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YWRkQW5pbWEKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4
dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwotICAgIGNvbnN0IGF1dG8mIGZyb21M
ZW5ndGggPSBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgo
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFs
dWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0xlbmd0aCA9IHN0YXRpY19jYXN0
PFNWR0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgdG9MZW5ndGguc2V0VmFs
dWUodG9MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoLnZhbHVlKGxlbmd0
aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KQEAgLTg1LDEwICs4NSwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9u
RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9t
U1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoKCkgOiBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvIHRv
U1ZHTGVuZ3RoID0gdG8tPmxlbmd0aCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uU1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aCgpOwotICAgIGF1dG8mIGFu
aW1hdGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpOworICAgIGF1dG8gZnJvbVNWR0xl
bmd0aCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8g
dG9TVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0aCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVs
ZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5n
dGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Q
cm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVuZ3RoLCBtX2NvbnRleHRFbGVtZW50KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdMZW5ndGhMaXN0VmFs
dWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmxlbmd0aExpc3QoKS5wYXJzZShzdHJpbmcsIG1f
bGVuZ3RoTW9kZSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46
OmZyb21TdHJpbmcoc3RyaW5nLCBtX2xlbmd0aE1vZGUpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlz
dChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4
LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0
aExpc3QgPSBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8t
Pmxlbmd0aExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoTGlzdCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0
b0xlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvLT52YWx1
ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbUxlbmd0aExpc3RTaXplID0gZnJvbUxlbmd0aExp
c3Quc2l6ZSgpOwogICAgIGlmICghZnJvbUxlbmd0aExpc3RTaXplIHx8IGZyb21MZW5ndGhMaXN0
U2l6ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgpKQpAQCAtNzcsNyArNzUsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZyb21MZW5ndGhMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b0xlbmd0aExpc3RbaV0uc2V0
VmFsdWUodG9MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOworICAgICAgICB0b0xl
bmd0aExpc3QucHJvcGVydHlBdChpKS5zZXRWYWx1ZSh0b0xlbmd0aExpc3QucHJvcGVydHlBdChp
KS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFs
dWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQogCiBzdGF0aWMgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQq
IGFuaW1hdGlvbkVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtOTIsMTAgKzkwLDEw
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMKICAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAg
ICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoTGlzdCgpIDogZnJvbS0+bGVuZ3Ro
TGlzdCgpOwotICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKLSAgICBj
b25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlv
bi0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1hdGVk
LT5sZW5ndGhMaXN0KCk7CisgICAgYXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTGVu
Z3RoTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlz
dCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAg
ICBhdXRvJiBhbmltYXRlZExlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFs
dWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRh
bmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8
U1ZHTGVuZ3RoTGlzdFZhbHVlcz4ocGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0aExpc3QsIG1fY29u
dGV4dEVsZW1lbnQpOwpAQCAtMTEwLDE4ICsxMDgsMTggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0
aExpc3RBbmltYXRvcjo6Y2FsYwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0
KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b0xlbmd0
aExpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRl
ZExlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7Ci0gICAgICAgIFNWR0xlbmd0aFR5
cGUgdW5pdFR5cGUgPSB0b0xlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKKyAgICAgICAgZmxvYXQg
YW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KTsKKyAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBp
ZiAocGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5n
dGhMaXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxl
bmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5
cGUgPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CisgICAgICAgICAg
ICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKICAgICAgICAgfQotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0g
aSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVU
b0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlv
bkxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCksIGVm
ZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyKTsKKyAgICAgICAgYW5pbWF0ZWRMZW5ndGhM
aXN0LnByb3BlcnR5QXQoaSkuc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1iZXIs
IG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
NiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdQogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjptYWtlX3Vu
aXF1ZTxmbG9hdD4oKSk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBl
LT5udW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIGFuaW1h
dGVkTnVtYmVyKSkKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIgPSAwOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5
VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01MSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpu
dW1iZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNjksMTQgKzY1LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6YWRkQW5pbWEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVy
KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPm51
bWJlcigpICs9IGZyb20tPm51bWJlcigpOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52
YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAK
IHN0YXRpYyBmbG9hdCBwYXJzZU51bWJlckZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGZsb2F0IG51bWJlciA9IDA7Ci0gICAgcGFy
c2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKTsKLSAgICByZXR1cm4gbnVtYmVyOwor
ICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9m
RHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMCArNzgsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGZs
b2F0IGZyb21OdW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXIoKSA6IGZyb20tPm51bWJlcigpOwotICAgIGZs
b2F0IHRvTnVtYmVyID0gdG8tPm51bWJlcigpOwotICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9u
TnVtYmVyID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlcigpOwotICAgIGZsb2F0JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkLT5udW1iZXIoKTsKKyAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgZmxvYXQgdG9OdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9h
dCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGZsb2F0JiBhbmltYXRlZE51bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8ZmxvYXQ+KHBhcnNlTnVtYmVy
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbU51bWJlciwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0
KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5udW1iZXJMaXN0KCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxT
VkdOdW1iZXJMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVt
YmVyTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5p
bWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBT
VkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0
ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTY3LDI1ICs2NSwyNSBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tTnVtYmVyTGlzdCA9IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBhdXRvJiB0b051bWJlckxp
c3QgPSB0by0+bnVtYmVyTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigq
dG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNpemUgPSBmcm9t
TnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUgfHwgZnJvbU51
bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTnVtYmVyTGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9OdW1iZXJMaXN0W2ldICs9IGZyb21OdW1iZXJMaXN0W2ldOworICAgICAgICBzdGF0
aWNfY2FzdDxmbG9hdCY+KCp0b051bWJlckxpc3RbaV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb21OdW1iZXJMaXN0W2ldKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbU51bWJlckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJMaXN0KCkgOiBmcm9tLT5udW1iZXJMaXN0
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1h
dGVkLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNf
Y2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
YXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVyTGlzdCwgYW5pbWF0ZWROdW1iZXJMaXN0LCBw
ZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05NCw5ICs5Miw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZE
dXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxp
c3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAg
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRv
QXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDog
MDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlv
blNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7Cisg
ICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3QucHJvcGVydHlBdChp
KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkpOwog
ICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxOCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
ckFuaW1hdG9yOgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCkpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAo
IXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBhbmltYXRlZE51bWJlci5maXJzdCwg
YW5pbWF0ZWROdW1iZXIuc2Vjb25kKSkgewotICAgICAgICBhbmltYXRlZE51bWJlci5maXJzdCA9
IDA7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLnNlY29uZCA9IDA7Ci0gICAgfQotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1By
b3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZy
b21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRl
ZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNTQsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMs
IHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MiwxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGZy
b21OdW1iZXJQYWlyID0gZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBh
aXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVy
KCk7Ci0KLSAgICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7Ci0g
ICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CisgICAgc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzFd
KSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRP
ZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTMgKzc1LDE3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBj
b25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1i
ZXJPcHRpb25hbE51bWJlcigpIDogIGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAg
Y29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJP
cHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9u
YWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQ
YWlyID0gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7CisgICAgY29uc3QgYXV0byYg
Zm9ybUZpcnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1dG8mIHRvRmlyc3QgPSBz
dGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1Nl
Y29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1
dG8mIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5k
T2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
blNlY29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MV0pOworICAgIGF1dG8mIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFNlY29uZCA9IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwogCi0gICAgbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1i
ZXJQYWlyLmZpcnN0LCB0b051bWJlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVy
UGFpci5maXJzdCwgYW5pbWF0ZWROdW1iZXJQYWlyLmZpcnN0KTsKLSAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bU51bWJlclBhaXIuc2Vjb25kLCB0b051bWJlclBhaXIuc2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlclBhaXIuc2Vjb25kLCBhbmltYXRlZE51bWJlclBhaXIuc2Vjb25kKTsKKyAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZm9ybUZpcnN0LCB0b0ZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0LCBhbmltYXRl
ZEZpcnN0KTsKKyAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihw
ZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1
cmF0aW9uU2Vjb25kLCBhbmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBh
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zMyw5ICszMiw3IEBAIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpTVkdBbmltYXRlZFBhdGgKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRo
Qnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJp
bmcsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46
OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDMsOSAr
NDAsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltCiAgICAgQVNT
RVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogCiAgICAgLy8gQnVpbGQgaW5pdGlhbCBw
YXRoIGJ5dGUgc3RyZWFtLgotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVk
VHlwZXMsIGJ5dGVTdHJlYW0uZ2V0KCkpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgYXV0byBhbmltYXRlZFR5cGUgPSBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICByZXNldEFu
aW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgKmFuaW1hdGVkVHlwZSk7CisgICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNTgsNyArNTUsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpyZXNldEFuaW1WCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRl
YXJPZmY+IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzBdLmdldCgpKTsKICAgICBjb25zdCBhdXRvJiBiYXNlVmFsdWUgPSBwcm9wZXJ0eS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwogCi0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsK
KyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmJhc2VWYWx1ZSksICpieXRlU3RyZWFtLCBV
bmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3VsdDsKIApAQCAtNzIsNyArNjksNyBAQCB2b2lkIFNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiAgICAgaWYgKCFyZXN1bHQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIFNWR0VsZW1lbnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2Vy
KCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSk7CiAgICAgICAgIGZvciAoYXV0byYgc2VnbWVu
dCA6IHJlc3VsdCkKLSAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0
cmVhbSwgJmJhc2VWYWx1ZSk7CisgICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVk
KGJ5dGVTdHJlYW0sICZzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpiYXNlVmFs
dWUpKTsKICAgICB9CiB9CiAKQEAgLTgwLDcgKzc3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6cmVzZXRBbmltVgogewogICAgIEFTU0VSVChhbmltYXRlZFR5cGVzLnNpemUoKSA+
PSAxKTsKICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICByZXNldEFuaW1W
YWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgdHlwZS5wYXRoKCkpOworICAgIHJlc2V0QW5pbVZh
bFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAmc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0m
PigqdHlwZS52YWx1ZXNbMF0pKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtOTgsMTIgKzk1LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OmFkZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUGF0
aCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIFNWR1Bh
dGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0
cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBm
cm9tUGF0aC0+c2l6ZSgpOwotICAgIGlmICghZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6ZSAh
PSB0b1BhdGgtPnNpemUoKSkKKyAgICBjb25zdCBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19jYXN0
PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9QYXRo
ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7CisgICAg
dW5zaWduZWQgZnJvbVBhdGhTaXplID0gZnJvbVBhdGguc2l6ZSgpOworICAgIGlmICghZnJvbVBh
dGhTaXplIHx8IGZyb21QYXRoU2l6ZSAhPSB0b1BhdGguc2l6ZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqdG9QYXRoLCAqZnJvbVBhdGgpOworICAgIGFk
ZFRvU1ZHUGF0aEJ5dGVTdHJlYW0odG9QYXRoLCBmcm9tUGF0aCk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFn
ZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0
ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTExMSwzNiArMTA4LDMzIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsK
ICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSog
ZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvUGF0aCA9
IHRvLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvQXRFbmRPZkR1cmF0aW9uUGF0
aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFu
aW1hdGVkUGF0aCA9IGFuaW1hdGVkLT5wYXRoKCk7CisgICAgYXV0byYgZnJvbVBhdGggPSBzdGF0
aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8m
IHRvUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvLT52YWx1ZXNbMF0p
OworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhC
eXRlU3RyZWFtJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFu
aW1hdGVkUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiB1bmRl
cmx5aW5nUGF0aDsKICAgICBib29sIGlzVG9BbmltYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbjsKLSAgICBpZiAoaXNUb0FuaW1hdGlvbikg
ewotICAgICAgICB1bmRlcmx5aW5nUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29weSgpOwotICAgICAg
ICBmcm9tUGF0aCA9IHVuZGVybHlpbmdQYXRoLmdldCgpOwotICAgIH0KKyAgICBpZiAoaXNUb0Fu
aW1hdGlvbikKKyAgICAgICAgZnJvbVBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBDYWNo
ZSB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZSBiZWZvcmUgdGhlIGJ1aWxkQW5pbWF0ZWRTVkdQ
YXRoQnl0ZVN0cmVhbSgpIGNsZWFycyBhbmltYXRlZFBhdGguCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFNWR1BhdGhCeXRlU3RyZWFtPiBsYXN0QW5pbWF0ZWRQYXRoOwotICAgIGlmICghZnJvbVBhdGgt
PnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9Bbmlt
YXRpb24pKQotICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7
CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbGFzdEFuaW1hdGVkUGF0aDsKKyAgICBpZiAoIWZyb21Q
YXRoLnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9B
bmltYXRpb24pKQorICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoOwogCiAg
ICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFz
IHRoZSBwYXRoIGFuaW1hdGlvbiBpcyBub3QgYSByZWd1bGFyIFZlY3RvcjxTVkdYWFg+IHR5cGUs
IGJ1dCBhIFNWR1BhdGhCeXRlU3RyZWFtLCB0aGF0IHdvcmtzIGRpZmZlcmVudGx5LgotICAgIGlm
ICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRl
U3RyZWFtPigqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZh
bHNlKSkKKyAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVl
czxTVkdQYXRoQnl0ZVN0cmVhbT4oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQYXRoLCBwZXJj
ZW50YWdlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1aWxkQW5pbWF0ZWRTVkdQ
YXRoQnl0ZVN0cmVhbSgqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRh
Z2UpOworICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShmcm9tUGF0aCwgdG9QYXRo
LCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOwogCiAgICAgLy8gSGFuZGxlIGFkZGl0aXZlPSdz
dW0nLgotICAgIGlmIChsYXN0QW5pbWF0ZWRQYXRoKQotICAgICAgICBhZGRUb1NWR1BhdGhCeXRl
U3RyZWFtKCphbmltYXRlZFBhdGgsICpsYXN0QW5pbWF0ZWRQYXRoKTsKKyAgICBpZiAoIWxhc3RB
bmltYXRlZFBhdGguaXNFbXB0eSgpKQorICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKGFu
aW1hdGVkUGF0aCwgbGFzdEFuaW1hdGVkUGF0aCk7CiAKICAgICAvLyBIYW5kbGUgYWNjdW11bGF0
ZT0nc3VtJy4KICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYg
cmVwZWF0Q291bnQpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0
aCwgKnRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVwZWF0Q291bnQpOworICAgICAgICBhZGRUb1NW
R1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwgdG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBl
YXRDb3VudCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVE
aXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxNCArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6U1ZHQW5p
bWF0ZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBvaW50
TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExp
c3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpOwotICAgIHBvaW50c0xp
c3RGcm9tU1ZHRGF0YShhbmltYXRlZFR5cGUtPnBvaW50TGlzdCgpLCBzdHJpbmcpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNW
R1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5nKSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlUG9pbnRMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQ
b2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyArNDks
NyBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0b3BBCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlz
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0KTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTY5LDI1ICs2NywyNSBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmFkZEFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBvaW50cyk7CiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8m
IGZyb21Qb2ludExpc3QgPSBmcm9tLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiB0b1BvaW50TGlz
dCA9IHRvLT5wb2ludExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gc3Rh
dGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgdG9Qb2ludExpc3QgPSAgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKnRvLT52
YWx1ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbVBvaW50TGlzdFNpemUgPSBmcm9tUG9pbnRM
aXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21Qb2ludExpc3RTaXplIHx8IGZyb21Qb2ludExpc3RT
aXplICE9IHRvUG9pbnRMaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGZyb21Qb2ludExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvUG9p
bnRMaXN0W2ldICs9IGZyb21Qb2ludExpc3RbaV07CisgICAgICAgIHRvUG9pbnRMaXN0LnByb3Bl
cnR5QXQoaSkgKz0gZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOwogfQogCiB2b2lkIFNWR0Fu
aW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVy
Y2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZH
QW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZH
QW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50
KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wb2ludExpc3QoKSA6
IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBv
aW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0ID0g
dG9BdEVuZE9mRHVyYXRpb24tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRM
aXN0ID0gYW5pbWF0ZWQtPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExp
c3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6
IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVz
Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9p
bnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0
aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRMaXN0ID0gc3RhdGljX2Nh
c3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogICAgIGlmICgh
bV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BvaW50TGlzdFZh
bHVlcz4oZnJvbVBvaW50TGlzdCwgdG9Qb2ludExpc3QsIGFuaW1hdGVkUG9pbnRMaXN0LCBwZXJj
ZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05OCwxNCArOTYsMTQgQEAgdm9pZCBTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAgICAgICAgICAgIGVmZmVj
dGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0g
ZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOworICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3QucHJvcGVydHlBdChpKSA6IEZsb2F0UG9pbnQoKTsKIAotICAgICAgICBmbG9hdCBh
bmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdFtpXS54KCk7Ci0gICAgICAgIGZsb2F0IGFuaW1h
dGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLnkoKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVj
dGl2ZUZyb20ueCgpLCB0b1BvaW50TGlzdFtpXS54KCksIGVmZmVjdGl2ZVRvQXRFbmQueCgpLCBh
bmltYXRlZFgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51
bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS55KCksIHRvUG9pbnRM
aXN0W2ldLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7Ci0gICAgICAgIGFu
aW1hdGVkUG9pbnRMaXN0W2ldID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFuaW1hdGVkWSk7Cisg
ICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSku
eCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0
eUF0KGkpLnkoKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueCgpLCB0b1BvaW50
TGlzdC5wcm9wZXJ0eUF0KGkpLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7
CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3QucHJvcGVy
dHlBdChpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOworICAgICAgICBh
bmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFu
aW1hdGVkWSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6bWFrZV91bmlxdWU8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnByZXNlcnZl
QXNwZWN0UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Cisg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFu
aW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0Fu
aW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
KQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0
UmF0aW8pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2OSw5IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKICAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25z
dCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0
aW8oKSA6IGZyb20tPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKLSAgICBjb25zdCBhdXRvJiB0b1By
ZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGF1dG8m
IGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5wcmVzZXJ2ZUFzcGVjdFJh
dGlvKCk7CisgICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0
YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBh
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihw
ZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlv
LCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsMTIg
QEAgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OlNWR0FuaW1hdGVkUmVjdAogCiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0UmVj
dD4oKSk7Ci0gICAgcGFyc2VSZWN0KHN0cmluZywgYW5pbWF0ZWRUeXBlLT5yZWN0KCkpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAK
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVJlY3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlw
ZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+
KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OnN0b3BBbmltVmEKIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6
OnJlY3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphbmltVmFs
V2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC02Nyw3ICs2NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFk
ZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUmVjdCk7CiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5yZWN0KCkgKz0g
ZnJvbS0+cmVjdCgpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBd
KSArPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBT
VkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtNzUsMTAgKzczLDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBGbG9hdFJl
Y3QmIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+cmVjdCgpIDogZnJvbS0+cmVjdCgpOwotICAgIGNvbnN0IEZs
b2F0UmVjdCYgdG9SZWN0ID0gdG8tPnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJlY3QmIHRvQXRF
bmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5yZWN0KCk7Ci0gICAgRmxvYXRS
ZWN0JiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+cmVjdCgpOworICAgIGNvbnN0IGF1dG8mIGZy
b21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRp
b24gPyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0
aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0
b1JlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4o
KnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUmVjdCA9
IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIGZs
b2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUmVjdC54KCk7CiAgICAgZmxvYXQgYW5pbWF0ZWRZID0g
YW5pbWF0ZWRSZWN0LnkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0
cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3Ry
aW5nLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVk
U3RyaW5nQW5pbWF0b3I6OlNWR0FuaW1hdGVkU3QKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPigpKTsKLSAgICBh
bmltYXRlZFR5cGUtPnN0cmluZygpID0gc3RyaW5nOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFN0
cmluZz46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDgsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0b3BBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTc2LDkgKzc1LDkgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjYWxj
dWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+c3RyaW5nKCk7Ci0g
ICAgU3RyaW5nIHRvU3RyaW5nID0gdG8tPnN0cmluZygpOwotICAgIFN0cmluZyYgYW5pbWF0ZWRT
dHJpbmcgPSBhbmltYXRlZC0+c3RyaW5nKCk7CisgICAgU3RyaW5nIGZyb21TdHJpbmcgPSBzdGF0
aWNfY2FzdDxTdHJpbmcmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBTdHJpbmcgdG9TdHJpbmcg
PSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqdG8tPnZhbHVlc1swXSk7CisgICAgU3RyaW5nJiBhbmlt
YXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
IAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFN0cmluZz4ocGFyc2VTdHJpbmdGcm9tU3RyaW5n
LCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU3RyaW5n
LCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsMTUgKzQxLDEyIEBAIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpTVkdBbmkK
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9y
bUxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKTsKLSAgICBh
bmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5wYXJzZShtX3RyYW5zZm9ybVR5cGVTdHJpbmcg
KyBzdHJpbmcgKyAnKScpOwotICAgIEFTU0VSVChhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3Qo
KS5zaXplKCkgPD0gMSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5nICsgJyknKSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01OSw3ICs1Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OnMKIAogdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdB
bmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxNSAr
NzQsMTUgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YQogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1M
aXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3Jt
TGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVz
WzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxp
c3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVRyYW5zZm9y
bUxpc3RTaXplIHx8IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybUxpc3RTaXpl
ID09IDEpOwotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlz
dFswXTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFswXTsKKyAgICBj
b25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgw
KTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDAp
OwogCiAgICAgQVNTRVJUKGZyb21UcmFuc2Zvcm0udHlwZSgpID09IHRvVHJhbnNmb3JtLnR5cGUo
KSk7CiAgICAgdG9UcmFuc2Zvcm0gPSBTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNm
b3Jtcyhmcm9tVHJhbnNmb3JtLCB0b1RyYW5zZm9ybSk7CkBAIC05OCwxMCArOTUsMTAgQEAgdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgIC8vIFNwZWM6IFRvIGFu
aW1hdGlvbnMgcHJvdmlkZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IHRvIGdldCBhIHNtb290aCBj
aGFuZ2UgZnJvbSB0aGUgdW5kZXJseWluZyB2YWx1ZSB0byB0aGUKICAgICAvLyDigJh0b+KAmSBh
dHRyaWJ1dGUgdmFsdWUsIHdoaWNoIGNvbmZsaWN0cyBtYXRoZW1hdGljYWxseSB3aXRoIHRoZSBy
ZXF1aXJlbWVudCBmb3IgYWRkaXRpdmUgdHJhbnNmb3JtIGFuaW1hdGlvbnMKICAgICAvLyB0byBi
ZSBwb3N0LW11bHRpcGxpZWQuIEFzIGEgY29uc2VxdWVuY2UsIGluIFNWRyAxLjEgdGhlIGJlaGF2
aW9yIG9mIHRvIGFuaW1hdGlvbnMgZm9yIOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkgaXMgdW5kZWZp
bmVkLgotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJhbnNmb3Jt
TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1M
aXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0g
dG9BdEVuZE9mRHVyYXRpb24tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZFRy
YW5zZm9ybUxpc3QgPSBhbmltYXRlZC0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8m
IGZyb21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0
YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CisgICAg
Y29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBhdXRvJiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gUGFzcyBmYWxz
ZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFzIHRoZSBzcGVjaWFsIHBv
c3QtbXVsdGlwbGljYXRpb24gYmVoYXZpb3Igb2YgPGFuaW1hdGVUcmFuc2Zvcm0+IG5lZWRzIHRv
IGJlIHJlc3BlY3RlZCBiZWxvdy4KICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0
RnJvbVRvTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihmcm9tVHJhbnNmb3JtTGlz
dCwgdG9UcmFuc2Zvcm1MaXN0LCBhbmltYXRlZFRyYW5zZm9ybUxpc3QsIHBlcmNlbnRhZ2UsIGZh
bHNlKSkKQEAgLTExMiwxNCArMTA5LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
QW5pbWF0b3I6OmMKICAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNsZWFyKCk7CiAKICAg
ICBhdXRvIGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUoKTsK
LSAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFswXTsKLSAgICBj
b25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJh
bnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUoKSwgU1ZH
VHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgIGNvbnN0IGF1dG8m
IHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CisgICAgY29uc3Qg
YXV0byBlZmZlY3RpdmVGcm9tID0gZnJvbVRyYW5zZm9ybUxpc3RTaXplID8gZnJvbVRyYW5zZm9y
bUxpc3QucHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUo
KSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwogICAgIGF1dG8g
Y3VycmVudFRyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlKGVmZmVjdGl2ZUZyb20sIHRv
VHJhbnNmb3JtKS5zY2FsZWREaXN0YW5jZShwZXJjZW50YWdlKS5hZGRUb1NWR1RyYW5zZm9ybShl
ZmZlY3RpdmVGcm9tKTsKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVk
KCkgJiYgcmVwZWF0Q291bnQpIHsKLSAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5k
ID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0
aW9uVHJhbnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUo
KSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwotICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdU
cmFuc2Zvcm1zKGN1cnJlbnRUcmFuc2Zvcm0sIGVmZmVjdGl2ZVRvQXRFbmQsIHJlcGVhdENvdW50
KSk7CisgICAgICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRFbmRPZkR1cmF0
aW9uVHJhbnNmb3JtTGlzdC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Qu
cHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUoKSwgU1ZH
VHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgICAgICBhbmltYXRl
ZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+
KFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1zKGN1cnJlbnRUcmFuc2Zvcm0s
IGVmZmVjdGl2ZVRvQXRFbmQsIHJlcGVhdENvdW50KSkpOwogICAgIH0gZWxzZQotICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKGN1cnJlbnRUcmFuc2Zvcm0pOworICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3Jt
VmFsdWU+KGN1cnJlbnRUcmFuc2Zvcm0pKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKQEAgLTEzMSwyMCArMTI4LDIwIEBAIGZsb2F0IFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjoKICAgICBhdXRvIGZyb20gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOwogICAgIGF1dG8gdG8gPSBjb25zdHJ1Y3RGcm9tU3Ry
aW5nKHRvU3RyaW5nKTsKIAotICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJh
bnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1M
aXN0KCk7CisgICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9UcmFuc2Zv
cm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVz
WzBdKTsKICAgICB1bnNpZ25lZCBpdGVtc0NvdW50ID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgp
OwogICAgIGlmICghaXRlbXNDb3VudCB8fCBpdGVtc0NvdW50ICE9IHRvVHJhbnNmb3JtTGlzdC5z
aXplKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIEFTU0VSVChpdGVtc0NvdW50ID09IDEp
OwotICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdFswXS50eXBlKCkgIT0gdG9UcmFuc2Zvcm1MaXN0
WzBdLnR5cGUoKSkKKyAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBl
KCkgIT0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkudHlwZSgpKQogICAgICAgICByZXR1
cm4gLTE7CiAKICAgICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5o
dG1sI2NvbXBsZXhEaXN0YW5jZXMKICAgICAvLyBQYWNlZCBhbmltYXRpb25zIGFzc3VtZSBhIG5v
dGlvbiBvZiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2YXJpb3VzIGFuaW1hdGlvbiB2YWx1ZXMgZGVm
aW5lZCBieSB0aGUg4oCYdG/igJksIOKAmGZyb23igJksIOKAmGJ54oCZIGFuZCDigJh2YWx1ZXPi
gJkgYXR0cmlidXRlcy4KICAgICAvLyBEaXN0YW5jZSBpcyBkZWZpbmVkIG9ubHkgZm9yIHNjYWxh
ciB0eXBlcyAoc3VjaCBhcyA8bGVuZ3RoPiksIGNvbG9ycyBhbmQgdGhlIHN1YnNldCBvZiB0cmFu
c2Zvcm1hdGlvbiB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkg4oCYYW5pbWF0ZVRyYW5zZm9y
beKAmS4KLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3Rb
MF0sIHRvVHJhbnNmb3JtTGlzdFswXSkuZGlzdGFuY2UoKTsKKyAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSwgdG9UcmFuc2Zvcm1M
aXN0LnByb3BlcnR5QXQoMCkpLmRpc3RhbmNlKCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDMyNyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEx
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRUeXBlLmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNpbmNsdWRlICJTVkdQ
YXJzZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKEFuaW1h
dGVkUHJvcGVydHlUeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0KLQotU1ZHQW5p
bWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewot
ICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5hbmdsZUFuZEVu
dW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5ib29sZWFuOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkQ29sb3I6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuY29sb3I7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5l
bnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50
ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZExl
bmd0aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aExp
c3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAgIGRl
bGV0ZSBtX2RhdGEubnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVt
YmVyTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJMaXN0OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgICAgIGRlbGV0
ZSBtX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBhdGg7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucG9pbnRM
aXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5yZWN0
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLnN0cmluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5z
Zm9ybUxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihz
dGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4gYW5nbGVB
bmRFbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVtZXJhdGlvbik7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRBbmdsZSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlv
biA9IGFuZ2xlQW5kRW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9vbGVhbikKLXsKLSAgICBB
U1NFUlQoYm9vbGVhbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9yKQotewotICAgIEFTU0VS
VChjb2xvcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oQW5pbWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuY29s
b3IgPSBjb2xvci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVt
ZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8dW5zaWduZWQ+IGVudW1lcmF0aW9uKQotewotICAgIEFT
U0VSVChlbnVtZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEuZW51bWVyYXRpb24gPSBlbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+IGludGVn
ZXIpCi17Ci0gICAgQVNTRVJUKGludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlciA9IGludGVnZXIucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9w
dHI8c3RkOjpwYWlyPGludCwgaW50Pj4gaW50ZWdlck9wdGlvbmFsSW50ZWdlcikKLXsKLSAgICBB
U1NFUlQoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
ID0gaW50ZWdlck9wdGlvbmFsSW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPiBsZW5ndGgp
Ci17Ci0gICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGgpOwotICAgIGFuaW1hdGVk
VHlwZS0+bV9kYXRhLmxlbmd0aCA9IGxlbmd0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhMaXN0VmFs
dWVzPiBsZW5ndGhMaXN0KQotewotICAgIEFTU0VSVChsZW5ndGhMaXN0KTsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExl
bmd0aExpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aExpc3QgPSBsZW5ndGhM
aXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihzdGQ6
OnVuaXF1ZV9wdHI8ZmxvYXQ+IG51bWJlcikKLXsKLSAgICBBU1NFUlQobnVtYmVyKTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyID0gbnVtYmVyLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjp1
bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3QpCi17Ci0gICAgQVNTRVJU
KG51bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+PiBudW1iZXJPcHRpb25hbE51bWJlcikKLXsKLSAgICBBU1NFUlQo
bnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwot
ICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0gbnVtYmVyT3B0
aW9uYWxOdW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0
aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhdGgpCi17Ci0gICAgQVNTRVJU
KHBhdGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KEFuaW1hdGVkUGF0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucGF0aCA9
IHBhdGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0
KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+IHBvaW50TGlzdCkKLXsKLSAgICBB
U1NFUlQocG9pbnRMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRyPFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLSAgICBBU1NFUlQo
cHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3Bl
Y3RSYXRpby5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0
ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJUKHJlY3QpOwotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFu
aW1hdGVkUmVjdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9IHJlY3QucmVsZWFz
ZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjxTdHJpbmc+IHN0cmluZykKLXsKLSAgICBBU1NFUlQoc3RyaW5nKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFN0cmlu
Zyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuc3RyaW5nID0gc3RyaW5nLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVf
cHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHRyYW5zZm9ybUxpc3QpCi17Ci0gICAgQVNTRVJU
KHRyYW5zZm9ybUxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEudHJhbnNmb3JtTGlzdCA9IHRyYW5zZm9ybUxpc3QucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLVN0cmluZyBTVkdBbmltYXRlZFR5cGU6OnZhbHVl
QXNTdHJpbmcoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmltYXRlZENv
bG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0
YS5jb2xvci0+c2VyaWFsaXplZCgpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGgtPnZh
bHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGhMaXN0
LT52YWx1ZUFzU3RyaW5nKCk7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoKm1fZGF0
YS5udW1iZXIpOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRh
LnJlY3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPngoKSkg
KyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwotICAgICAgICAg
ICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsgU3RyaW5n
OjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5n
OgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnN0cmluZzsKLQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUg
aW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVk
IHZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LgotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICBj
YXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAg
Y2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgIGNhc2UgQW5p
bWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAg
Y2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0g
ICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmltYXRpb25zIHVzZSB0aGVzZSBwcm9wZXJ0eSB0eXBl
cyAtIHRoYXQgbWVhbnMgdmFsdWVBc1N0cmluZygpIGlzIG5ldmVyIHVzZWQgZm9yIHRob3NlLgot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotYm9vbCBT
VkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAg
ICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAg
ICAgICAqbV9kYXRhLmNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHZhbHVlLnN0cmlwV2hp
dGVTcGFjZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gIW1fZGF0
YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhN
b2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRpb24oKTsK
LSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5n
dGhMaXN0KTsKLSAgICAgICAgbV9kYXRhLmxlbmd0aExpc3QtPnBhcnNlKHZhbHVlLCBTVkdMZW5n
dGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHZh
bHVlLCAqbV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5p
bWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwotICAgICAgICBwYXJzZVJl
Y3QodmFsdWUsICptX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2Ug
QW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAg
Km1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBU
aGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1lbnQ6OmNzc1By
b3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCBzZXRWYWx1ZUFzU3RyaW5nKCkg
c3VwcG9ydC4gCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2UgQW5pbWF0ZWRCb29s
ZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNlIEFuaW1hdGVkSW50
ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1i
ZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAg
ICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkVHJh
bnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgLy8gT25seSBT
VkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0gdGhhdCBtZWFucyBz
ZXRWYWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgdHlwZSkKLXsKLSAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkgdXNlZCBmb3Ig
Q1NTIHByb3BlcnR5IGFuaW1hdGlvbnMuCi0gICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtu
b3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI4NCArMjAsMTI5IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKLSNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdFZh
bHVlcy5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVy
TGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgotI2luY2x1ZGUg
IlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5SW5m
by5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdW
YWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1BhdGhCeXRlU3RyZWFt
OwotCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3BlcnR5VHlwZSk7Ci0g
ICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCk7Ci0KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4pOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVl
X3B0cjxib29sPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4pOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9w
dHI8dW5zaWduZWQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50Pik7Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIo
c3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxpbnQsIGludD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKHN0ZDo6dW5pcXVlX3B0cjxT
VkdMZW5ndGhWYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhMaXN0VmFsdWVz
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51
bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVt
YmVyTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUG9pbnRMaXN0
KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6
OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVJlY3Qoc3RkOjp1bmlxdWVfcHRy
PEZsb2F0UmVjdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6dW5p
cXVlX3B0cjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLQotICAgIEFuaW1hdGVkUHJvcGVydHlU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLQotICAgIC8vIE5vbi1tdXRhYmxl
IGFjY2Vzc29ycy4KLSAgICBjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+
JiBhbmdsZUFuZEVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlQW5kRW51
bWVyYXRpb247Ci0gICAgfQotCi0gICAgY29uc3QgYm9vbCYgYm9vbGVhbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmJvb2xlYW47Ci0gICAgfQotCi0gICAgY29uc3QgQ29sb3ImIGNvbG9yKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIGNvbnN0IHVuc2lnbmVk
JiBlbnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsK
LSAgICB9Ci0KLSAgICBjb25zdCBpbnQmIGludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVn
ZXJPcHRpb25hbEludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aFZh
bHVlJiBsZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9Ci0KLSAgICBjb25zdCBmbG9hdCYgbnVtYmVy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIp
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZH
TnVtYmVyTGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpIGNvbnN0CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRU
eXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5pbWF0
ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgICAgICA6IHZhbHVlcyB7IFNWR1Zh
bHVlOjpjcmVhdGUoV1RGTW92ZShwcm9wZXJ0eSkpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVt
YmVyTGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgbnVt
YmVyT3B0aW9uYWxOdW1iZXIoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92ZSh2YWx1ZSkgfQogICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAgICAgfQog
Ci0gICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKSBjb25zdAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgU1ZH
QW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHBy
b3BlcnRpZXMpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVz
LmZpcnN0KSwgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVzLnNlY29uZCkgfQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9k
YXRhLnBhdGg7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExp
c3QoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUx
LCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IHZhbHVlcyB7IFdURk1vdmUo
dmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gQW5pbWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2ludExpc3Q7CiAg
ICAgfQogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFz
cGVjdFJhdGlvKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8
UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAgIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUHJvcGVy
dHlUeXBlJiYgcHJvcGVydHkpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpOwogICAg
IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAotICAgIGNvbnN0
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKSBjb25zdAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+Pjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAg
IC8vIE11dGFibGUgYWNjZXNzb3JzLgotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJv
cGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVtZXJh
dGlvbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihX
VEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKLSAgICBib29sJiBib29sZWFuKCkKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdW
YWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmJvb2xlYW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0KIAotICAgIENv
bG9yJiBjb2xvcigpCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0CiAgICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCYgZW51bWVyYXRpb24oKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQotCi0gICAgaW50JiBpbnRl
Z2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKLSAgICB9Ci0KLSAgICBzdGQ6OnBhaXI8
aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICB9Ci0KLSAgICBTVkdMZW5n
dGhWYWx1ZSYgbGVuZ3RoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxl
bmd0aExpc3Q7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWVzWzBdKTsKKyAgICAgICAgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMSA9IHZhbHVlQW5pbWF0ZWRUeXBlKCp2YWx1
ZXNbMF0pOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUyID0gdmFs
dWVzWzFdID8gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1sxXSkgOiBBbmltYXRlZFVua25vd247
CiAKLSAgICBmbG9hdCYgbnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQor
ICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEFuZ2xlKSB7CisgICAgICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKKyAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICB9CiAKLSAgICBTVkdOdW1iZXJMaXN0
VmFsdWVzJiBudW1iZXJMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyTGlzdDsKLSAg
ICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkSW50ZWdlciAmJiBhbmlt
YXRlZFR5cGUyID09IEFuaW1hdGVkSW50ZWdlcikKKyAgICAgICAgICAgIHJldHVybiBBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXI7CiAKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYg
bnVtYmVyT3B0aW9uYWxOdW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVt
YmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgfQorICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBB
bmltYXRlZE51bWJlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkTnVtYmVyKQorICAgICAg
ICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAKLSAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKKyAgICAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRVbmtub3duKTsKKyAgICAgICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTE7CiAgICAgfQogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKQorICAg
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OworICAg
ICAgICBBU1NFUlQodmFsdWVzWzBdICYmICF2YWx1ZXNbMV0pOworICAgICAgICByZXR1cm4gdmFs
dWVzWzBdLT50b1N0cmluZygpOwogICAgIH0KIAotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIEFTU0VSVCh2YWx1ZXNb
MF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNbMF0tPnBhcnNlKGF0dHJO
YW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCYgcmVjdCgpCisgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBD
U1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRV
bmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLSAgICBTdHJpbmcmIHN0
cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBl
KGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAg
IHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25z
dCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRBbmdsZTsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wmKSAgICAgICAgICAgICAgICAgICAgICAgICB7
IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisgICAgICAgICAgICBbXShjb25zdCBDb2xvciYp
ICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRDb2xvcjsgfSwKKyAgICAg
ICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBB
bmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAgICAgICAgW10oY29uc3QgaW50JikgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkSW50ZWdlcjsgfSwKKyAgICAgICAg
ICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikgICAgICAgICAgICAgICB7IHJldHVybiBBbmlt
YXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMm
KSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7IH0sCisgICAgICAgICAgICBb
XShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRO
dW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgICAg
ICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OyB9LAorICAgICAgICAgICAgW10oY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkUGF0aDsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpICB7
IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87IH0sCisgICAgICAgICAgICBbXShj
b25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQb2lu
dHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBGbG9hdFJlY3QmKSAgICAgICAgICAgICAgICAg
ICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU3RyaW5n
JikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOyB9LAorICAg
ICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpICAgICAgIHsgcmV0dXJu
IEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGF1dG8mKSAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFVua25vd247IH0KKyAgICAg
ICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUpKTsKICAgICB9
CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
bV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAg
ICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAg
ICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRp
b247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAg
ICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNW
R0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0
aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1
ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJP
cHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAg
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAg
ICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVj
dDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2
YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQsMzIgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8g
SGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBq
dXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUg
QW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9w
ZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBBbmltVmFsVHlw
ZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZh
bFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGlm
IChhbmltYXRlZFR5cGUtPmlzQW5pbWF0aW5nKCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTVkdW
YWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IGFuaW1hdGVkVHlwZS0+Y3VycmVudEFuaW1hdGVkVmFsdWUo
KTsKKyAgICAgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGFu
aW1hdGVkVmFsdWUpKTsKKyAgICAgICAgfQogCi0gICAgICAgIGF1dG8gY29weSA9IHN0ZDo6bWFr
ZV91bmlxdWU8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPihhbmltYXRlZFR5cGUp
OwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlv
biwgYW5pbWF0ZWRUeXBlcywgMCwgY29weS5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBjb3B5Owor
ICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRl
KCphbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBh
bmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdU
Rk1vdmUoYW5pbWF0ZWRWYWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFu
aW1WYWxUeXBlPgotICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
LCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIChTVkdBbmltYXRlZFR5cGU6Oipn
ZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUo
KSA9PSAxKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7Ci0gICAgICAg
IGF1dG8qIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZh
bFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0gICAgICAgIHBy
b3BlcnR5LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLQotICAgICAgICB0eXBlbmFt
ZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIGFuaW1hdGVkVHlwZVZhbHVlID0gKHR5cGUuKmdl
dHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUgPSBwcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpOworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1h
dGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+c3luY2hyb25pemVXcmFw
cGVyc0lmTmVlZGVkKCk7CiAKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5cGVWYWx1ZSk7
CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYmFzZVZhbHVlID0gYW5pbWF0ZWRUeXBlLT5jdXJy
ZW50QmFzZVZhbHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9
IHR5cGUudmFsdWVzWzBdOworICAgICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmltVmFsVHlw
ZTo6Q29udGVudFR5cGUmPigqYW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0eXBlbmFtZSBB
bmltVmFsVHlwZTo6Q29udGVudFR5cGUmPigqYmFzZVZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFj
dGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAs
IGFuaW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxU
eXBlPgpAQCAtMTEwLDM0ICsxMTUsNDUgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gSGVscGVycyBm
b3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBwYWlyIHR5cGVzLCBlZy4gYSBwYWlyIG9mIFNW
R0FuaW1hdGVkSW50ZWdlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0
eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjx0eXBl
bmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNv
bnRlbnRUeXBlPj4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChh
bmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDIpOwotICAgICAgICBjb25zdCB0
eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlJiBmaXJzdFR5cGUgPSBjYXN0QW5pbWF0
ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLSAgICAgICAgY29uc3QgdHlw
ZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSYgc2Vjb25kVHlwZSA9IGNhc3RBbmltYXRl
ZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9w
ZXJ0aWVzWzFdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBBbmlt
VmFsVHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVh
bFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkp
OworICAgICAgICBjb25zdCBBbmltVmFsVHlwZTIqIHNlY29uZEFuaW1hdGVkVHlwZSA9IGNhc3RB
bmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1sw
XS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKKworICAgICAgICBpZiAoZmlyc3RBbmltYXRlZFR5cGUt
PmlzQW5pbWF0aW5nKCkgJiYgc2Vjb25kQW5pbWF0ZWRUeXBlLT5pc0FuaW1hdGluZygpKSB7Cisg
ICAgICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IGZpcnN0QW5p
bWF0ZWRUeXBlLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgUmVmUHRyPFNW
R1ZhbHVlPiBzZWNvbmRBbmltYXRlZFZhbHVlID0gc2Vjb25kQW5pbWF0ZWRUeXBlLT5jdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZh
bHVlKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0
ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFz
ZVZhbHVlKCkpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUg
PSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUo
KSk7CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8dHlw
ZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpD
b250ZW50VHlwZT4+KGZpcnN0VHlwZSwgc2Vjb25kVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
JmNvcHktPmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmY29weS0+c2Vjb25kKTsKLSAgICAg
ICAgcmV0dXJuIGNvcHk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsK
KyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9u
LCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RG
TW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9pZCByZXNldEZy
b21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZh
bFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4m
IChTVkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFs
dWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywg
U1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUo
KSA9PSBtX3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJzdFByb3BlcnR5ID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3Bl
cnRpZXNbMF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBzZWNvbmRQcm9wZXJ0eSA9ICBjYXN0QW5p
bWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZpcnN0UHJvcGVydHktPnN5bmNocm9uaXpl
V3JhcHBlcnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNvbmRQcm9wZXJ0eS0+c3luY2hyb25pemVX
cmFwcGVyc0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxU
eXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+JiBh
bmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlw
ZVZhbHVlLmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAg
ICBhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNvbmRQcm9wZXJ0eS0+Y3VycmVudEJhc2VW
YWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsK
LSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9u
LCBhbmltYXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kKTsKKyAgICAgICAg
QW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9B
Y3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdl
dCgpKTsKKyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5cGUgPSBjYXN0QW5p
bWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZpcnN0QW5pbWF0ZWRUeXBlLT5zeW5jaHJv
bml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAgc2Vjb25kQW5pbWF0ZWRUeXBlLT5zeW5j
aHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZp
cnN0QmFzZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAg
ICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1sw
XTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlw
ZSY+KCpmaXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5
cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
Zmlyc3RBbmltYXRlZFZhbHVlKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEJh
c2VWYWx1ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAg
ICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1sxXTsK
KyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSY+
KCpzZWNvbmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBl
Mjo6Q29udGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlv
bjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBz
ZWNvbmRBbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmlt
VmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MCwzMyArMjA2LDMzIEBAIHBy
aXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAg
IHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2lnbmVkIHdoaWNoUHJv
cGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogdHlwZSA9IDApCisgICAg
dm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWduZWQgd2hpY2hQcm9w
ZXJ0eSwgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gbnVsbHB0cikKICAgICB7CiAg
ICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9j
a2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3kuIFdvdWxkIGJlIG5pY2Ug
dG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5p
bWF0ZWRUeXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGFuaW1h
dGVkVHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBhbmltYXRlZFR5cGUucHJvcGVydGllcy5z
aXplKCkpOwotICAgICAgICAgICAgQW5pbVZhbFR5cGUqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVz
W3doaWNoUHJvcGVydHldLmdldCgpKTsKKyAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBhbmltYXRl
ZFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+
KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKIAogICAgICAg
ICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgICAgIGNhc2UgU3RhcnRBbmltYXRpb25B
Y3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5cGUpOwotICAgICAgICAgICAgICAgIGlm
ICghcHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
LT5hbmltYXRpb25TdGFydGVkKHR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChhbmltYXRl
ZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGVkUHJvcGVydHktPmlzQW5pbWF0
aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvblN0
YXJ0ZWQoYW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBl
KTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOworICAgICAgICAgICAgICAg
IEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGFuaW1hdGVkUHJv
cGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVy
dHktPmFuaW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCgh
dHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7Cisg
ICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBh
bmltYXRlZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5nZSgpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlkQ2hhbmdlQWN0aW9uOgotICAgICAgICAg
ICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxE
aWRDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAg
ICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRpdGlvbkV2
ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRU
eXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZHQ29tcG9u
ZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMuZXhwb25l
bnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAgZnVuYy50
YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxl
VmFsdWVzKCkucHJvcGVydGllcygpOwogICAgIHJldHVybiBmdW5jOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDggKzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5l
IFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9k
ZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAg
ICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJv
cGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEw
IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdFbGxpcHNl
RWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2N5KExlbmd0aE1v
ZGVIZWlnaHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcnkoTGVuZ3Ro
TW9kZUhlaWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkK
KyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3J4
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3J5KFNWR0xlbmd0aFZh
bHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVz
OjplbGxpcHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdFbGxp
cHNlRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3
IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckUKICAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgt
PnNldFR5cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0
dHIpCi0gICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVlcygpKTsKKyAg
ICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFsdWVzKCkucHJvcGVydGllcygp
KTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEz
Myw3ICsxMzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRl
clZhbHVlcyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS5wcm9w
ZXJ0aWVzKCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBmaWx0ZXJWYWx1ZXMuc2l6ZSgpOwog
CiAgICAgICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYICYm
IHNpemUgIT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
MiwxMiArMjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXgK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6
OmRpdmlzb3JBdHRyKSkgewogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtlcm5lbE1hdHJp
eFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxNYXRyaXguYXQo
aSk7CisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2VybmVsTWF0cml4LnByb3BlcnR5QXQo
aSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAgICAgICAgICAgZGl2aXNvclZhbHVl
ID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0
ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVl
LCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUo
KSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZh
bHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgpOworICAgIGF1dG8gZWZmZWN0ID0g
RkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3Jk
ZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0
YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFs
dWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJp
eC5wcm9wZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkuYXBwZW5kKGlucHV0
MSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0
LDEwIEBAIGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW4KICAgICA6IFNW
R0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZpbHRlclVuaXRzKFNWR1VuaXRU
eXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1fcHJpbWl0aXZl
VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwg
bV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQs
ICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBt
X2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRy
aWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIt
MTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2Yg
IjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEsMTAgQEAgRU5E
X1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICIwJSIp
Ci0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3Ro
TW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTAw
JSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMCUiKSkKKyAg
ICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKSkKKyAgICAsIG1f
d2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKSkKIHsKICAgICAv
LyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJ
ZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAg
LCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAg
LCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWln
aHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1f
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpm
b3JlaWduT2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdG
b3JlaWduT2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTAgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ltYWdlRWxlbWVudDo6U1ZHSW1h
Z2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1f
eChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1f
d2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkK
KyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVyKCp0aGlzKQogewogICAgIHJlZ2lz
dGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVtZW50KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAg
ICBTVkdfTEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQQwogICAgIH07CiAKLSAgICBzdGF0aWMg
UmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01NywxMSArNTcsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChpbml0aWFsVmFsdWUp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKGNvbnN0IFNWR0xl
bmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdMZW5ndGg+PiBjcmVhdGUoRXhjZXB0
aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVl
Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzEsMTIgKzY2LDEyIEBAIHB1YmxpYzoKIAogICAgIHVuc2ln
bmVkIHNob3J0IHVuaXRUeXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudW5pdFR5
cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxmbG9hdD4gdmFsdWVGb3JCaW5kaW5ncygp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUZvckJpbmRp
bmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAgICByZXR1
cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNv
bnRleHRFbGVtZW50KCkgfSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTg0LDcgKzc5LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4
dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0
VmFsdWUodmFsdWUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgCkBAIC05NCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cykKQEAgLTEwMiw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVJblNwZWNpZmll
ZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5z
ZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTEwLDcg
KzEwNSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAgICAg
ewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7Cisg
ICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVBc1N0cmluZygpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKQEAgLTExOCw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgp
LnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMzEsNyArMTI2
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMo
dW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
dmFsdWVQcm9wZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5T
cGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0NCw3ICsxMzksNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuY29udmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUs
IFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwg
U1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAK
QEAgLTE1Myw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xl
bmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R0xlbmd0aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAg
IH0KQEAgLTE2MiwxMSArMTU3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAg
ZXhwbGljaXQgU1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0g
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPihpbml0aWFsVmFsdWUp
Ci0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBA
IHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAgICAgdXNpbmcg
TGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBw
ZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBl
cnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QoYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlzdChBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZh
bHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5oIgogCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisjaW5j
bHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgdm9pZCBTVkdMZW5ndGhMaXN0
VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
bGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVTdHJpbmcpLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8U1ZHTGVuZ3RoVmFsdWU+KGxlbmd0aCkpOwogICAgICAgICBza2lw
T3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCk7CiAgICAgfQogfQpAQCAtNjAs
NyArNjEsNyBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAg
ICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAogICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5n
dGhMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGhMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMjYgKzIy
LDM5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7CiBjbGFzcyBTVkdMZW5ndGhMaXN0Owog
Ci1jbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTVkdMZW5n
dGhWYWx1ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdM
aXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25z
dCBTdHJpbmcmIHZhbHVlLCBTVkdMZW5ndGhNb2RlKTsKICAgICBTdHJpbmcgdmFsdWVBc1N0cmlu
ZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TGVuZ3RoTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKKyAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9CisgICAgc3RhdGljIFNWR0xlbmd0aExpc3RW
YWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHTGVuZ3RoTW9kZSBsZW5n
dGhNb2RlKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBsaXN0OworICAgICAg
ICBsaXN0LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7CisgICAgICAgIHJldHVybiBsaXN0Owor
ICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhMaXN0VmFsdWVzPiBwYXJz
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisg
ICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFy
c2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0
cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0
dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CisgICAgCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBl
ID0gU1ZHTGVuZ3RoVmFsdWU7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTGVuZ3Ro
OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdMZW5ndGhMaXN0OwotCi0gICAg
c3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gIHsgfTsg
fQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYg
dHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ3LDcgKzE0NywxMyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT4gewogICAgIHN0YXRpYyBTVkdMZW5n
dGhWYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVl
QXNTdHJpbmcoKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0aFZhbHVlPiBw
YXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcp
CisgICAgeworICAgICAgICBTVkdMZW5ndGhWYWx1ZSBsZW5ndGg7CisgICAgICAgIGxlbmd0aC5z
ZXRWYWx1ZUFzU3RyaW5nKHN0cmluZywgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmlt
YXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOworICAgICAgICBy
ZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNW
R0xlbmd0aFZhbHVlJiBsZW5ndGgpIHsgcmV0dXJuIGxlbmd0aC52YWx1ZUFzU3RyaW5nKCk7IH0K
IH07CiAKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25z
dCBTVkdMZW5ndGhWYWx1ZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5l
IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dy
YWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feDEoTGVuZ3RoTW9kZVdp
ZHRoKQotICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV94MihMZW5ndGhNb2Rl
V2lkdGgsICIxMDAlIikKLSAgICAsIG1feTIoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feDEo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feTEoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3gyKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1feTIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lm
aWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVk
LgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpsaW5lYXJHcmFkaWVudFRhZykpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgorCisjaW5j
bHVkZSAiU1ZHVmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgordm9pZCBTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OnJl
c2l6ZShzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBzaXplX3QgaW5kZXggPSBzaXplKCk7CisgICAg
VmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpyZXNpemUobmV3U2l6ZSk7CisgICAgZm9yICg7IGlu
ZGV4IDwgbmV3U2l6ZTsgKytpbmRleCkKKyAgICAgICAgYXQoaW5kZXgpID0gU1ZHVmFsdWU6OmNy
ZWF0ZTxQcm9wZXJ0eVR5cGU+KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5
cGU+CitWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+
OjpkZWVwQ29weSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHZhbHVl
czsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlIDogKnRoaXMpCisgICAg
ICAgIHZhbHVlcy5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZSgqdmFsdWUpKTsKKyAgICByZXR1cm4g
dmFsdWVzOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiBleHBsaWNpdCBpbnN0YW50aWF0aW9u
LgordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6cmVzaXplKHNpemVfdCk7Cit0
ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD46OnJlc2l6ZShzaXplX3QpOwor
dGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6cmVzaXplKHNpemVf
dCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpyZXNp
emUoc2l6ZV90KTsKKwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RW
YWx1ZXM8ZmxvYXQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxT
VkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U3RyaW5nPjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBs
YXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPEZsb2F0UG9pbnQ+Ojpk
ZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xp
c3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVj
dG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+Pjo6
ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdM
aXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6ZGVlcENvcHkoKSBjb25zdDsKKworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorY2xhc3MgU1ZHVmFsdWU7CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5
cGU+CitjbGFzcyBTVkdMaXN0VmFsdWVzIDogcHVibGljIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+
PiB7CitwdWJsaWM6CisgICAgU1ZHTGlzdFZhbHVlcygpID0gZGVmYXVsdDsKKworICAgIFNWR0xp
c3RWYWx1ZXMoY29uc3QgU1ZHTGlzdFZhbHVlcyYgb3RoZXIpCisgICAgICAgIDogVmVjdG9yPFJl
ZlB0cjxTVkdWYWx1ZT4+KG90aGVyLmRlZXBDb3B5KCkpCisgICAgeworICAgIH0KKworICAgIHZv
aWQgcmVzaXplKHNpemVfdCk7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IGRlZXBDb3B5
KCkgY29uc3Q7CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5QXQoc2l6ZV90IGlu
ZGV4KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqYXQoaW5kZXgp
KTsgfQorICAgIFByb3BlcnR5VHlwZSYgcHJvcGVydHlBdChzaXplX3QgaW5kZXgpIHsgcmV0dXJu
IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCphdChpbmRleCkpOyB9CisKKyAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBwcm9wZXJ0eUF0KDAp
OyB9CisgICAgUHJvcGVydHlUeXBlJiBmaXJzdFByb3BlcnR5KCkgeyByZXR1cm4gcHJvcGVydHlB
dCgwKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBsYXN0UHJvcGVydHkoKSBjb25zdCB7
IHJldHVybiBwcm9wZXJ0eUF0KHNpemUoKSAtIDEpOyB9CisgICAgUHJvcGVydHlUeXBlJiBsYXN0
UHJvcGVydHkoKSB7IHJldHVybiBwcm9wZXJ0eUF0KHNpemUoKSAtIDEpOyB9CisKKyAgICBWZWN0
b3I8UHJvcGVydHlUeXBlPiBwcm9wZXJ0aWVzKCkgY29uc3QKKyAgICB7CisgICAgICAgIFZlY3Rv
cjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXM7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFs
dWUgOiAqdGhpcykKKyAgICAgICAgICAgIHByb3BlcnRpZXMuYXBwZW5kKHN0YXRpY19jYXN0PFBy
b3BlcnR5VHlwZSY+KCp2YWx1ZSkpOworICAgICAgICByZXR1cm4gcHJvcGVydGllczsKKyAgICB9
Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDEwICs3MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFU
RURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9yZWZYKExlbmd0aE1vZGVX
aWR0aCkKLSAgICAsIG1fcmVmWShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9tYXJrZXJXaWR0
aChMZW5ndGhNb2RlV2lkdGgsICIzIikKLSAgICAsIG1fbWFya2VySGVpZ2h0KExlbmd0aE1vZGVI
ZWlnaHQsICIzIikgCisgICAgLCBtX3JlZlgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRo
KSkKKyAgICAsIG1fcmVmWShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAs
IG1fbWFya2VyV2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpKQorICAg
ICwgbV9tYXJrZXJIZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjMiKSkK
ICAgICAsIG1fbWFya2VyVW5pdHMoU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aCkKICAgICAsIG1f
b3JpZW50VHlwZShTVkdNYXJrZXJPcmllbnRBbmdsZSkKIHsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2
b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQXV0bygpCiAKIHZvaWQgU1ZHTWFya2Vy
RWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShTVkdBbmdsZSYgYW5nbGUpCiB7Ci0gICAgc2V0T3Jp
ZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAg
ICBzZXRPcmllbnQoU1ZHTWFya2VyT3JpZW50QW5nbGUsIGFuZ2xlLnZhbHVlUHJvcGVydHkoKSk7
CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c3luY2hy
b25pemVPcmllbnQKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhdXRv
U3RhcnRSZXZlcnNlU3RyaW5nKCJhdXRvLXN0YXJ0LXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIC8vIElmIG9yaWVudCBpcyBub3QgYXV0byBvciBh
dXRvLXN0YXJ0LXJldmVyc2UsIHRoZSBwcmV2aW91cyBjYWxsIHRvIHN5bmNocm9uaXplT3JpZW50
QW5nbGUgYWxyZWFkeSBzZXQgdGhlIG9yaWVudEF0dHIgdG8gdGhlIHJpZ2h0IGFuZ2xlLgotICAg
IGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG8p
IHsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpvd25lclR5cGUu
bV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvKSB7CiAgICAgICAgIG93
bmVyVHlwZS5tX29yaWVudFR5cGUuc3luY2hyb25pemUoJm93bmVyVHlwZSwgb3JpZW50VHlwZVBy
b3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRvU3RyaW5nKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlID09IFNWR01h
cmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisgICAgaWYgKHN0YXRpY19jYXN0PFNWR01hcmtl
ck9yaWVudFR5cGUmPigqb3duZXJUeXBlLm1fb3JpZW50VHlwZS52YWx1ZSkgPT0gU1ZHTWFya2Vy
T3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50VHlwZS5z
eW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0
ZU5hbWUsIGF1dG9TdGFydFJldmVyc2VTdHJpbmcpOwogfQogCkBAIC0yNTksMTEgKzI1OSwxMSBA
QCBTVkdNYXJrZXJPcmllbnRUeXBlJiBTVkdNYXJrZXJFbGVtZW50OjpvCiB7CiAgICAgaWYgKGF1
dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJU
eXBlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPih0aGlzLCBvcmllbnRUeXBlUHJvcGVydHlJbmZv
KCkpKSB7CiAgICAgICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGluZygpKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQod3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSA8IFNWR01hcmtlck9yaWVu
dE1heCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxTVkdNYXJrZXJPcmll
bnRUeXBlJj4od3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpKSA8IFNWR01hcmtlck9yaWVudE1heCk7CisgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gbV9vcmllbnRUeXBl
LnZhbHVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm1f
b3JpZW50VHlwZS52YWx1ZSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRU
eXBlQW5pbWF0ZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3NSArMjksMTAgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUg
IlNWR0ZpdFRvVmlld0JveC5oIgorI2luY2x1ZGUgIlNWR01hcmtlclR5cGVzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgewotICAgIFNWR01hcmtl
clVuaXRzVW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKLSAg
ICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCi19OwotCi1lbnVtIFNWR01hcmtlck9yaWVudFR5
cGUgewotICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAotICAgIFNWR01hcmtlck9yaWVu
dEF1dG8sCi0gICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0
b1N0YXJ0UmV2ZXJzZSwKLQotICAgIC8vIEFkZCBuZXcgZWxlbWVudHMgYmVmb3JlIGhlcmUuCi0g
ICAgU1ZHTWFya2VyT3JpZW50TWF4Ci19OwotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hl
c3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOyB9Ci0KLSAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQotICAgIHsK
LSAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtu
b3duOgotICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGNhc2UgU1ZH
TWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKLSAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVzZXJTcGFjZU9uVXNlIik7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aDoKLSAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUg
PT0gInVzZXJTcGFjZU9uVXNlIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vz
ZXJTcGFjZU9uVXNlOwotICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKLSAgICAg
ICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOwotICAgICAgICByZXR1cm4g
U1ZHTWFya2VyVW5pdHNVbmtub3duOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4KLWlubGluZSB1
bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhw
b3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+IHsKLSAg
ICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9y
aWVudEF1dG9TdGFydFJldmVyc2U7IH0KLQotICAgIC8vIHRvU3RyaW5nIGlzIG5vdCBuZWVkZWQs
IHN5bmNocm9uaXplT3JpZW50VHlwZSgpIGhhbmRsZXMgdGhpcyBvbiBpdHMgb3duLgotCi0gICAg
c3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVl
LCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0
byIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKLSAgICAgICAgaWYg
KHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01h
cmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7Ci0gICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQg
PSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgaWYgKHNldFZhbHVlUmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVu
a25vd247Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKLSAgICB9Ci19Owot
CiBjbGFzcyBTVkdNYXJrZXJFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmll
d0JveCB7CkBAIC0xNjQsOCArOTksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc3luY2hy
b25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKICAgICBzdGF0aWMg
UmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IGxvb2t1cE9yQ3JlYXRlT3JpZW50VHlwZVdyYXBwZXIo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9y
aWVudFR5cGUoKSBjb25zdDsKLSAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmllbnRUeXBlQmFz
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRUeXBlLnZhbHVlOyB9Ci0gICAgdm9pZCBz
ZXRPcmllbnRUeXBlQmFzZVZhbHVlKGNvbnN0IFNWR01hcmtlck9yaWVudFR5cGUmIHR5cGUpIHsg
bV9vcmllbnRUeXBlLnZhbHVlID0gdHlwZTsgfQorICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9y
aWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdNYXJrZXJP
cmllbnRUeXBlJj4oKm1fb3JpZW50VHlwZS52YWx1ZSk7IH0KKyAgICB2b2lkIHNldE9yaWVudFR5
cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBvcmllbnRUeXBl
QmFzZVZhbHVlKCkgPSB0eXBlOyB9CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9w
ZXJ0eVRlYXJPZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+IG9yaWVudFR5cGVBbmltYXRlZCgpOwog
CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU1ZHTWFya2VyVW5pdHNUeXBlIHsKKyAg
ICBTVkdNYXJrZXJVbml0c1Vua25vd24gPSAwLAorICAgIFNWR01hcmtlclVuaXRzVXNlclNwYWNl
T25Vc2UsCisgICAgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aAorfTsKKworZW51bSBTVkdNYXJr
ZXJPcmllbnRUeXBlIHsKKyAgICBTVkdNYXJrZXJPcmllbnRVbmtub3duID0gMCwKKyAgICBTVkdN
YXJrZXJPcmllbnRBdXRvLAorICAgIFNWR01hcmtlck9yaWVudEFuZ2xlLAorICAgIFNWR01hcmtl
ck9yaWVudEF1dG9TdGFydFJldmVyc2UsCisgICAgCisgICAgLy8gQWRkIG5ldyBlbGVtZW50cyBi
ZWZvcmUgaGVyZS4KKyAgICBTVkdNYXJrZXJPcmllbnRNYXgKK307CisgICAgCit0ZW1wbGF0ZTw+
CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPiB7CisgICAgc3Rh
dGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJVbml0c1N0
cm9rZVdpZHRoOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhTVkdNYXJrZXJVbml0c1R5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFNW
R01hcmtlclVuaXRzVW5rbm93bjoKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwor
ICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U6CisgICAgICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJ1c2VyU3BhY2VPblVzZSIpOworICAgICAgICBjYXNlIFNWR01h
cmtlclVuaXRzU3Ryb2tlV2lkdGg6CisgICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJz
dHJva2VXaWR0aCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgfQorICAgIHN0YXRp
YyBTVkdNYXJrZXJVbml0c1R5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQorICAg
IHsKKyAgICAgICAgaWYgKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCisgICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZTsKKyAgICAgICAgaWYgKHZhbHVlID09
ICJzdHJva2VXaWR0aCIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aDsKKyAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVW5rbm93bjsKKyAgICB9Cit9Owor
Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlw
ZT4geworICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZH
TWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQorICAgIHN0YXRpYyBTVkdNYXJrZXJPcmll
bnRUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHQW5nbGVWYWx1ZSYgYW5n
bGUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8iKQorICAgICAgICAgICAgcmV0
dXJuIFNWR01hcmtlck9yaWVudEF1dG87CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0by1zdGFy
dC1yZXZlcnNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRS
ZXZlcnNlOworICAgICAgICBhdXRvIHNldFZhbHVlUmVzdWx0ID0gYW5nbGUuc2V0VmFsdWVBc1N0
cmluZyh2YWx1ZSk7CisgICAgICAgIGlmIChzZXRWYWx1ZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkK
KyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRVbmtub3duOworICAgICAgICByZXR1
cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IHsK
KyAgICBzdGF0aWMgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiBmcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHQW5nbGVWYWx1ZSBhbmds
ZTsKKyAgICAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBhbmdsZSk7Cisg
ICAgICAgIGlmIChvcmllbnRUeXBlICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAg
ICAgYW5nbGUgPSB7IH07CisgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwg
dW5zaWduZWQ+KGFuZ2xlLCBvcmllbnRUeXBlKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+Citp
bmxpbmUgdW5zaWduZWQgU1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGln
aGVzdEV4cG9zZWRFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsgfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFz
a0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNr
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDEwICs2MCwxMCBAQCBpbmxpbmUgU1ZH
TWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNvCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQogICAgICwgbV9tYXNrVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X09CSkVDVEJPVU5ESU5HQk9YKQogICAgICwgbV9tYXNrQ29udGVudFVuaXRzKFNWR1VuaXRUeXBl
czo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lk
dGgsICItMTAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBt
X3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9k
ZUhlaWdodCwgIjEyMCUiKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCwgIi0xMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAi
LTEwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIx
MjAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAi
MTIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVj
aWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZp
ZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNw
ZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNp
ZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25j
ZSBTVkdNYXRyaXggYmVjb21lcyBhbiBhbGlhcyB0byBET01NYXRyaXguCiBjbGFzcyBTVkdNYXRy
aXggOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TWF0cml4KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTcsNyAr
NTcsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYSgpCiAgICAgewotICAgICAgICByZXR1cm4g
cHJvcGVydHlSZWZlcmVuY2UoKS5hKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCku
YSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEEoZG91YmxlIHZhbHVlKQpA
QCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEEodmFsdWUpOworICAgICAgICB2YWx1
ZVByb3BlcnR5KCkuc2V0QSh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAg
ICAgIHJldHVybiB7IH07CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBi
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmIoKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5iKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0Qihkb3VibGUgdmFsdWUpCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0Qih2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRCKHZhbHVlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg5LDcgKzg5LDcg
QEAgcHVibGljOgogCiAgICAgZG91YmxlIGMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkuYygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmMoKTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDKGRvdWJsZSB2YWx1ZSkKQEAgLTk3
LDcgKzk3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRDKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9w
ZXJ0eSgpLnNldEModmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBkKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmQoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUHJvcGVydHkoKS5kKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0RChkb3VibGUgdmFsdWUpCkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9k
aWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5z
ZXREKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEQodmFsdWUpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTIxLDcgKzEyMSw3
IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLmUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5lKCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RShkb3VibGUgdmFsdWUpCkBAIC0x
MjksNyArMTI5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRFKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQ
cm9wZXJ0eSgpLnNldEUodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBm
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5mKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0Rihkb3VibGUgdmFsdWUpCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRGKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEYodmFsdWUpOwogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTU2LDcgKzE1
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5tdWx0aXBseShzZWNvbmRNYXRyaXgu
cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0
eSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsK
QEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3Ig
fTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuaW52ZXJzZSgp
OworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5pbnZlcnNlKCk7CiAgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgCkBAIC0xODAsNyArMTgwLDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsgICAgICAgIAorICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS50cmFuc2xhdGUoeCwgeSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwpAQCAtMTkxLDcgKzE5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZShz
Y2FsZUZhY3Rvcik7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5
KCkuc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJl
c3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlRmFjdG9yWCwg
c2NhbGVGYWN0b3JZKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVy
dHkoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVz
dWx0KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90
YXRlKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHko
KS5yb3RhdGUoYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIyNCw3ICsyMjQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9
IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsgICAgICAgIAorICAg
ICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkp
OwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIApAQCAtMjM3LDcgKzIzNyw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8g
cmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWCgpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmZsaXBYKCk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjQ4
LDcgKzI0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWSgpOyAgICAgICAg
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmZsaXBZKCk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1
bHQpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5za2V3
WChhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCku
c2tld1goYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
U1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI3MCwxNCArMjcwLDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WShhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2tld1koYW5nbGUpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKICAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkK
KyAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAg
ICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdOdW1iZXIgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQorICAgIHN0
YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDEsMTEgKzQxLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoaW5pdGlhbFZhbHVl
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShjb25zdCBmbG9h
dCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TnVtYmVyKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTnVtYmVyPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+
JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNl
cHRpb24oKSkKQEAgLTU1LDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgdmFsdWVGb3JC
aW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtNjMsMTQgKzU4LDE0IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3Bl
cnR5UmVmZXJlbmNlKCkgPSB2YWx1ZTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpID0gdmFsdWU7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR051bWJlcihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQorICAgIFNWR051bWJl
cihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVy
dHlUZWFyT2ZmPGZsb2F0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewog
ICAgIH0KQEAgLTc5LDExICs3NCw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPGZsb2F0Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0
IFNWR051bWJlcihjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3Bl
cnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNW
R051bWJlckxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVm
PFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVt
YmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywg
d3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTnVtYmVyTGlzdChBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQorICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJv
bGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzksNyArMzksNyBAQCB2b2lkIFNWR051bWJlckxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAg
ICAgd2hpbGUgKHB0ciA8IGVuZCkgewogICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5k
LCBudW1iZXIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobnVtYmVyKTsK
KyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8ZmxvYXQ+KG51bWJlcikpOwogICAgIH0K
IH0KIApAQCAtNTIsNyArNTIsNyBAQCBTdHJpbmcgU1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVB
c1N0cmluCiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihwcm9wZXJ0eUF0KGkpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RW
YWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVy
TGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwyNCArMjAsMzEgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVy
dHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU1ZHTnVtYmVyOwogY2xhc3MgU1ZHTnVtYmVyTGlzdDsKIAotY2xhc3MgU1ZH
TnVtYmVyTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8ZmxvYXQ+IHsKK2NsYXNzIFNW
R051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxmbG9hdD4gewog
cHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIHZhbHVl
QXNTdHJpbmcoKSBjb25zdDsKKyAgICAKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR051bWJl
ckxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNW
R051bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7
CisgICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShz
dHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZh
bHVlQXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAg
dXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVyOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0
eVRlYXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
cnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
cnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDMx
IEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHIKICAgICByZXR1cm4g
Y3VyID09IGVuZDsKIH0KIAorYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQ
b2ludCYgcG9pbnQpCit7CisgICAgaWYgKHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3KHMpLnVwY29u
dmVydGVkQ2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1cGNvbnZlcnRlZENo
YXJhY3RlcnM7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVuZ3RoKCk7CisKKyAg
ICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGZsb2F0IHggPSAwOworICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQs
IHgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB5ID0gMDsKKyAgICBpZiAo
IXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
cG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOworCisgICAgLy8gZGlzYWxsb3cgYW55dGhpbmcgZXhj
ZXB0IHNwYWNlcyBhdCB0aGUgZW5kCisgICAgcmV0dXJuICFza2lwT3B0aW9uYWxTVkdTcGFjZXMo
Y3VyLCBlbmQpOworfQorCiBib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmIHN0cmluZywgRmxv
YXRSZWN0JiByZWN0KQogewogICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5n
VmlldyhzdHJpbmcpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOwpAQCAtMjY0LDcgKzI4OSw3IEBA
IGJvb2wgcG9pbnRzTGlzdEZyb21TVkdEYXRhKFNWR1BvaW50TGlzdFYKICAgICAgICAgfQogICAg
ICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpOwogCi0gICAgICAgIHBvaW50c0xp
c3QuYXBwZW5kKEZsb2F0UG9pbnQoeFBvcywgeVBvcykpOworICAgICAgICBwb2ludHNMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPEZsb2F0UG9pbnQ+KEZsb2F0UG9pbnQoeFBvcywgeVBvcykp
KTsKICAgICB9CiAgICAgcmV0dXJuIGN1ciA9PSBlbmQgJiYgIWRlbGltUGFyc2VkOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Myw2ICs0Myw3IEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25z
dCBTdHIKIGJvb2wgcGFyc2VBcmNGbGFnKGNvbnN0IExDaGFyKiYgcHRyLCBjb25zdCBMQ2hhciog
ZW5kLCBib29sJiBmbGFnKTsKIGJvb2wgcGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFyKiYgcHRyLCBj
b25zdCBVQ2hhciogZW5kLCBib29sJiBmbGFnKTsKIGJvb2wgcGFyc2VSZWN0KGNvbnN0IFN0cmlu
ZyYsIEZsb2F0UmVjdCYpOworYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmluZyYsIEZsb2F0UG9p
bnQmKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBib29sIHBhcnNlRmxv
YXRQb2ludChjb25zdCBDaGFyYWN0ZXJUeXBlKiYgY3VycmVudCwgY29uc3QgQ2hhcmFjdGVyVHlw
ZSogZW5kLCBGbG9hdFBvaW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5
dGVTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVT
dHJlYW0uaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhC
eXRlU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5LDYgKzE5LDggQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVy
dHlUcmFpdHMuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ2LDM0ICs0OCw0MiBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBEYXRhOjpjb25zdF9p
dGVyYXRvciBEYXRhSXRlcmF0b3I7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSgpIHsgfQotICAg
IFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IERhdGEmIGRhdGEpIDogbV9kYXRhKGRhdGEpIHsgfQor
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCisgICAgICAg
IDogbV9kYXRhKFdURk1vdmUob3RoZXIubV9kYXRhKSkKKyAgICB7CisgICAgfQogICAgIAotICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0Cisg
ICAgU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQorICAg
ICAgICA6IG1fZGF0YShvdGhlci5tX2RhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbV9kYXRh
ID09IG90aGVyLm1fZGF0YTsKICAgICB9CiAKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZH
UGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtJiBvcGVy
YXRvcj0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1fZGF0YSA9
IFdURk1vdmUob3RoZXIubV9kYXRhKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0b3I9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBv
dGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAg
bV9kYXRhID0gb3RoZXIubV9kYXRhOworICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCisg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSAhPSBv
dGhlci5tX2RhdGE7IH0KKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4g
Y29weSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQ
YXRoQnl0ZVN0cmVhbT4obV9kYXRhKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCp0aGlzKTsKICAgICB9CiAKICAgICBEYXRhSXRlcmF0b3IgYmVn
aW4oKSBjb25zdCB7IHJldHVybiBtX2RhdGEuYmVnaW4oKTsgfQogICAgIERhdGFJdGVyYXRvciBl
bmQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZW5kKCk7IH0KIAogICAgIHZvaWQgYXBwZW5kKHVu
c2lnbmVkIGNoYXIgYnl0ZSkgeyBtX2RhdGEuYXBwZW5kKGJ5dGUpOyB9Ci0gICAgdm9pZCBhcHBl
bmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQotICAgIHsKLSAgICAgICAgZm9yIChh
dXRvIHN0cmVhbSA6IG90aGVyKQotICAgICAgICAgICAgYXBwZW5kKHN0cmVhbSk7Ci0gICAgfQor
ICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgeyBtX2RhdGEu
YXBwZW5kVmVjdG9yKG90aGVyLm1fZGF0YSk7IH0KICAgICB2b2lkIGNsZWFyKCkgeyBtX2RhdGEu
Y2xlYXIoKTsgfQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RhdGEuc2l6
ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzRW1wdHko
KTsgfQogICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuc2l6ZSgpOyB9
CiAKICAgICAvLyBPbmx5IGRlZmluZWQgdG8gbGV0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yIHVz
ZSB0aGUgc3RhbmRhcmQgbGlzdCBjb2RlIHBhdGhzIC0gdGhpcyBtZXRob2QgaXMgbmV2ZXIgY2Fs
bGVkLgpAQCAtODIsNSArOTIsMTYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEYXRhIG1fZGF0
YTsKIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0
aEJ5dGVTdHJlYW0+IHsKKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVTdHJlYW0gaW5pdGlhbFZhbHVl
KCkgeyByZXR1cm4gU1ZHUGF0aEJ5dGVTdHJlYW0oKTsgfQorICAgIHN0YXRpYyBTVkdQYXRoQnl0
ZVN0cmVhbSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAg
U1ZHUGF0aEJ5dGVTdHJlYW0gYnl0ZVN0cmVhbTsKKyAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0
cmVhbUZyb21TdHJpbmcoc3RyaW5nLCBieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAg
ICAgICAgcmV0dXJuIGJ5dGVTdHJlYW07CisgICAgfQorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdQYXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9wYXRoU2VnTGlzdChQYXRoU2VnVW5hbHRl
cmVkUm9sZSkKKyAgICAsIG1fcGF0aFNlZ0xpc3QoU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoUGF0aFNl
Z1VuYWx0ZXJlZFJvbGUpKQogICAgICwgbV9pc0FuaW1WYWxPYnNlcnZlZChmYWxzZSkKIHsKICAg
ICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6cGF0aFRhZykpOwpAQCAtMjU1LDcgKzI1NSw3
IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQKICAgICAgICAgaWYg
KG1fcGF0aFNlZ0xpc3Quc2hvdWxkU3luY2hyb25pemUgJiYgIVNWR0FuaW1hdGVkUHJvcGVydHk6
Omxvb2t1cFdyYXBwZXI8U1ZHUGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmY+KHRoaXMsIGRQcm9wZXJ0eUluZm8oKSktPmlzQW5pbWF0aW5nKCkpIHsKICAg
ICAgICAgICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzIG5ld0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJv
bGUpOwogICAgICAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFt
KG1fcGF0aEJ5dGVTdHJlYW0sICp0aGlzLCBuZXdMaXN0LCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAg
ICAgICAgICAgIG1fcGF0aFNlZ0xpc3QudmFsdWUgPSBuZXdMaXN0OworICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSkgPSBX
VEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlbmRlcmVyKQpAQCAt
MzI3LDggKzMyNyw4IEBAIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQYXRoRWxlbWVudDoK
ICAgICBpZiAoYXV0byBwcm9wZXJ0eSA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBw
ZXI8U1ZHUGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+
KCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgIHJldHVybiAqcHJvcGVydHk7
CiAKLSAgICBpZiAob3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUuaXNFbXB0eSgpKQotICAg
ICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0ob3duZXJUeXBlLm1f
cGF0aEJ5dGVTdHJlYW0sIG93bmVyVHlwZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUs
IFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIGlmIChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZh
bHVlcyY+KCpvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSkuaXNFbXB0eSgpKQorICAgICAg
ICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0ob3duZXJUeXBlLm1fcGF0
aEJ5dGVTdHJlYW0sIG93bmVyVHlwZSwgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMm
Pigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLCBVbmFsdGVyZWRQYXJzaW5nKTsKIAog
ICAgIHJldHVybiBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBPckNyZWF0ZVdyYXBwZXI8U1ZH
UGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYsIFNWR1Bh
dGhTZWdMaXN0VmFsdWVzPigmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCksIG93bmVyVHlwZS5t
X3BhdGhTZWdMaXN0LnZhbHVlKTsKIH0KQEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIFNWR1BhdGhF
bGVtZW50OjpzeW5jaHJvbml6ZUQoU1ZHRWxlCiAgICAgU1ZHUGF0aEVsZW1lbnQmIG93bmVyVHlw
ZSA9IGRvd25jYXN0PFNWR1BhdGhFbGVtZW50PigqY29udGV4dEVsZW1lbnQpOwogICAgIGlmICgh
b3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVy
bjsKLSAgICBvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBk
UHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZh
bHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc3luY2hy
b25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBzdGF0aWNf
Y2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1
ZSkudmFsdWVBc1N0cmluZygpKTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6YW5pbWF0ZWRQ
cm9wZXJ0eVdpbGxCZURlbGV0ZWQoKQpAQCAtMzkyLDEwICszOTIsMTAgQEAgdm9pZCBTVkdQYXRo
RWxlbWVudDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKAogICAgICAgICBicmVhazsKICAgICBjYXNlIFBh
dGhTZWdVbmFsdGVyZWRSb2xlOgogICAgICAgICBpZiAobGlzdE1vZGlmaWNhdGlvbiA9PSBMaXN0
TW9kaWZpY2F0aW9uQXBwZW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fcGF0aFNlZ0xpc3Qu
dmFsdWUuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVNWR1BhdGhTZWcobV9wYXRoU2VnTGlzdC52YWx1ZS5sYXN0KCkuY29weVJlZigpLCBtX3BhdGhC
eXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgICAgIEFTU0VSVCghc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSkuaXNFbXB0
eSgpKTsKKyAgICAgICAgICAgIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWco
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSku
bGFzdFByb3BlcnR5KCkuY29weVJlZigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJz
aW5nKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUsIG1fcGF0aEJ5dGVT
dHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0
cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZh
bHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVk
UGFyc2luZyk7CiAgICAgICAgIG1fY2FjaGVkUGF0aCA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5kZWZpbmVkUm9sZToKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250
ZXh0QW5kUm9sZXMoKQogewotICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgZm9yIChhdXRvJiBp
dGVtIDogKm1fdmFsdWVzKQorICAgIGZvciAoYXV0byYgaXRlbSA6IHZhbHVlc1Byb3BlcnR5KCku
cHJvcGVydGllcygpKQogICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnV2l0aENvbnRleHQq
PihpdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUobnVsbHB0ciwgUGF0aFNlZ1VuZGVmaW5l
ZFJvbGUpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdQYXRoU2VnTGlzdDo6Y2xlYXIoKQog
ewotICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCisg
ICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9Owog
CiAgICAgY2xlYXJDb250ZXh0QW5kUm9sZXMoKTsKQEAgLTUwLDggKzQ4LDggQEAgRXhjZXB0aW9u
T3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoUwogCiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZH
UGF0aFNlZz4+IFNWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbShSZWY8U1ZHUGF0aFNlZz4mJiBu
ZXdJdGVtLCB1bnNpZ25lZCBpbmRleCkKIHsKLSAgICBpZiAoaW5kZXggPCBtX3ZhbHVlcy0+c2l6
ZSgpKSB7Ci0gICAgICAgIExpc3RJdGVtVHlwZSByZXBsYWNlZEl0ZW0gPSBtX3ZhbHVlcy0+YXQo
aW5kZXgpOworICAgIGlmIChpbmRleCA8IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKSB7CisgICAg
ICAgIExpc3RJdGVtVHlwZSByZXBsYWNlZEl0ZW0gPSB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5
QXQoaW5kZXgpOwogICAgICAgICBBU1NFUlQocmVwbGFjZWRJdGVtKTsKICAgICAgICAgc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4ocmVwbGFjZWRJdGVtLmdldCgpKS0+c2V0Q29u
dGV4dEFuZFJvbGUobnVsbHB0ciwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIg
KzMyLDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+Owog
ICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhTZWdMaXN0
VmFsdWVzPjo6TGlzdEl0ZW1UeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4g
Y3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2Vn
TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0
aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUg
cGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQ
YXRoU2VnTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCBwYXRoU2VnUm9sZSwgdmFsdWVzLCB3
cmFwcGVycykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0
ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwpAQCAtNDUsMTEg
KzQ1LDkgQEAgcHVibGljOgogCiAgICAgaW50IGZpbmRJdGVtKGNvbnN0IExpc3RJdGVtVHlwZSYg
aXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0KLSAgICAgICAg
dW5zaWduZWQgc2l6ZSA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIHNpemUg
PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChpdGVtID09IG1fdmFsdWVzLT5hdChpKSkK
KyAgICAgICAgICAgIGlmIChpdGVtID09IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydHlBdChpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQogCkBAIC01OCwxMCArNTYsOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUl0ZW1Gcm9tTGlzdChzaXplX3QgaXRlbUluZGV4
LCBib29sIHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgewotICAgICAgICBBU1NFUlQo
bV92YWx1ZXMpOwotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVt
SW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7
CiAKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgpOwogCiAgICAgICAgIGlmIChzaG91bGRTeW5jaHJv
bml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC05Myw3ICs5MCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1BhdGhTZWdMaXN0KEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xp
c3RQcm9wZXJ0eTxTVkdQYXRoU2VnTGlzdFZhbHVlcz4ocm9sZSwgdmFsdWVzLCAmd3JhcHBlcnMp
CiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KCZhbmltYXRlZFByb3BlcnR5KQogICAgICAg
ICAsIG1fcGF0aFNlZ1JvbGUocGF0aFNlZ1JvbGUpCkBAIC0xMTcsMTQgKzExNCwxMiBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbAogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRl
ZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0TW9kaWZpY2F0aW9uVW5rbm93bik7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHkt
PmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKICAgICB9CiAKICAg
ICB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uIGxpc3RNb2RpZmljYXRpb24pIGZp
bmFsCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+
Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIGxpc3RN
b2RpZmljYXRpb24pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNvbW1pdENoYW5nZSgqbV9h
bmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9kaWZpY2F0aW9uKTsKICAg
ICB9CiAKICAgICBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUoY29uc3QgTGlzdEl0
ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlmeSkgZmluYWw7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDc4ICs1OCw3OCBAQCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6
OlNWR1BhdGhTZWdMaXN0QnVpCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bW92ZVRvKGNv
bnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBib29sLCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9k
ZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNl
Zz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyh0YXJnZXRQb2ludC54
KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0
b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNW
R1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50
LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNv
b3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0xpbmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9s
ZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnTGluZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvSG9yaXpv
bnRhbChmbG9hdCB4LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9
PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVu
ZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCh4LCBtX3BhdGhTZWdSb2xlKSkpOwogfQog
CiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvVmVydGljYWwoZmxvYXQgeSwgUGF0
aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGlu
YXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoeSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4o
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoeSwgbV9wYXRo
U2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKHksIG1fcGF0aFNlZ1Jv
bGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQ
dHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsUmVsKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyOjpjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0
ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54
KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsK
KyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh0
YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwg
cG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngo
KSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBw
b2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1Bh
dGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50MiwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBt
b2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngo
KSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwog
ICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAg
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhT
ZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCks
IG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2
ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYg
dGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09
IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1Jv
bGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQ
dHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBv
aW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
UmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEu
eSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNW
R1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25zdCBGbG9hdFBv
aW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1v
ZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyh0
YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
cyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjphcmNUbyhmbG9hdCByMSwgZmxvYXQgcjIsIGZsb2F0IGFuZ2xlLCBib29sIGxh
cmdlQXJjRmxhZywgYm9vbCBzd2VlcEZsYWcsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50
LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNv
b3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdBcmNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIx
LCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNBYnModGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBG
bGFnLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjUmVsKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxh
ZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQXJjUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xl
LCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCgpCiB7Ci0gICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRoKG1fcGF0aFNlZ1Jv
bGUpKTsKKyAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxT
VkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRoKG1fcGF0
aFNlZ1JvbGUpKSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaXN0U291cmNlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBA
QCBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpoYXNNb3JlRGF0YSgpCiAKIGJvb2wgU1ZHUGF0
aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWVudFR5cGUoU1ZHUGF0aFNlZ1R5cGUmIHBhdGhT
ZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9pdGVtQ3VycmVu
dCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5wcm9wZXJ0eUF0KG1faXRlbUN1cnJl
bnQpOwogICAgIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1R5cGU+KG1fc2Vn
bWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0ZW1DdXJyZW50OwogICAgIHJldHVybiB0
cnVlOwpAQCAtNTEsNyArNTEsNyBAQCBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNW
R1NlZ21lCiAKIFNWR1BhdGhTZWdUeXBlIFNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFu
ZChTVkdQYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1f
aXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdCht
X2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2VnVHlwZSBwYXRoU2VnVHlwZSA9IHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9p
dGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNlZ1R5cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDEwICsxOSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHTGlzdFByb3BlcnR5
LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIK
ICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzMsNyArMzIsNyBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdQYXRoU2VnTGlzdFZh
bHVlcyA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CitjbGFzcyBTVkdQYXRo
U2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj4g
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFNWR1BhdGhTZWdMaXN0VmFsdWVzKFNWR1BhdGhTZWdS
b2xlIHJvbGUpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAs
NyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTCiAgICAgQVNTRVJU
KHBhcnNpbmdNb2RlID09IFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMgYXBwZW5kZWRJdGVtTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7Ci0gICAgYXBwZW5k
ZWRJdGVtTGlzdC5hcHBlbmQoV1RGTW92ZShwYXRoU2VnKSk7CisgICAgYXBwZW5kZWRJdGVtTGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KFdURk1vdmUocGF0
aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtIGFwcGVuZGVkQnl0ZVN0cmVhbTsKICAg
ICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBwZW5kZWRJdGVtTGlzdCk7CkBAIC0yMDYs
MTUgKzIwNiwxNCBAQCBib29sIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShjb25zCiAK
IGJvb2wgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYgc3RyZWFtVG9B
cHBlbmRUbywgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIGJ5U3RyZWFtLCB1bnNpZ25lZCByZXBl
YXRDb3VudCkKIHsKLSAgICAvLyBXaHkgcmV0dXJuIHdoZW4gc3RyZWFtVG9BcHBlbmRUbyBpcyBl
bXB0eT8gRG9uJ3Qgd2Ugc3RpbGwgbmVlZCB0byBhcHBlbmQ/CisgICAgLy8gVGhlIGJ5U3RyZWFt
IHdpbGwgYmUgYmxlbmRlZCB3aXRoIHN0cmVhbVRvQXBwZW5kVG8uIFNvIHN0cmVhbVRvQXBwZW5k
VG8gaGFzIHRvIGhhdmUgZWxlbWVudHMuCiAgICAgaWYgKHN0cmVhbVRvQXBwZW5kVG8uaXNFbXB0
eSgpIHx8IGJ5U3RyZWFtLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAv
LyBJcyBpdCBPSyB0byBtYWtlIHRoZSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIgZnJvbSBhIHN0
cmVhbSwgYW5kIHRoZW4gY2xlYXIgdGhhdCBzdHJlYW0/CisgICAgLy8gYnVpbGRlciBpcyB0aGUg
ZGVzdGluYXRpb24gb2YgYmxlbmRpbmcgZnJvbVNvdXJjZSBhbmQgYnlTb3VyY2UuIFRoZSBzdHJl
YW0gb2YgYnVpbGRlcgorICAgIC8vIChpLmUuIHN0cmVhbVRvQXBwZW5kVG8pIGhhcyB0byBiZSBj
bGVhcmVkIGJlZm9yZSBjYWxsaW5nIGFkZEFuaW1hdGVkUGF0aC4KICAgICBTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIgYnVpbGRlcihzdHJlYW1Ub0FwcGVuZFRvKTsKLQotICAgIFNWR1BhdGhCeXRl
U3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gc3RyZWFtVG9BcHBlbmRUbzsKLSAgICBzdHJlYW1Ub0Fw
cGVuZFRvLmNsZWFyKCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmVhbUNvcHkgPSBX
VEZNb3ZlKHN0cmVhbVRvQXBwZW5kVG8pOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2Ug
ZnJvbVNvdXJjZShmcm9tU3RyZWFtQ29weSk7CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2Ug
YnlTb3VyY2UoYnlTdHJlYW0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9pbnQgOiBw
dWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIHN0YXRp
YyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQzLDExICs0Myw2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5pdGlhbFZhbHVlKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQq
IGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Bv
aW50KGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHUG9pbnQ+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBp
bml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlv
bigpKQpAQCAtNTcsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB4KCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUHJvcGVydHkoKS54KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WChm
bG9hdCB4VmFsdWUpCkBAIC02NSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WCh4VmFsdWUp
OworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WCh4VmFsdWUpOwogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzMsNyArNjgsNyBAQCBwdWJsaWM6
CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS55KCk7CiAgICAgfQogCiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4VmFsdWUpCkBAIC04MSw3ICs3Niw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0
WSh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9
OwpAQCAtOTIsMTkgKzg3LDE5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIGF1dG8gbmV3UG9pbnQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1hdHJp
eFRyYW5zZm9ybShtYXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIGF1dG8gbmV3
UG9pbnQgPSB2YWx1ZVByb3BlcnR5KCkubWF0cml4VHJhbnNmb3JtKG1hdHJpeC52YWx1ZVByb3Bl
cnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHUG9p
bnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHUG9pbnQo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4o
JmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQ
b2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgU1ZHUG9p
bnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PihudWxscHRyLCByb2xlLCB2
YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTEzLDExICsxMDgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUG9pbnQoY29uc3QgRmxvYXRQb2ludCogaW5pdGlh
bFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50Pihpbml0aWFs
VmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMgKzM3LDEz
IEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPjsKICAgICB1c2lu
ZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3Jh
cHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBl
cnMpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdFZhbHVlcz4o
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6
OnZhbHVlQXNTdHJpbmcKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFzIHRvIHNlcGVyYXRl
PwogCi0gICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gYXQoaSk7CisgICAgICAgIGNvbnN0IGF1
dG8mIHBvaW50ID0gcHJvcGVydHlBdChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
cG9pbnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9p
bnRMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMjIgKzIxLDI4IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJTVkdMaXN0
VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9pbnQ7CiBjbGFz
cyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1Ymxp
YyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDog
cHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD4gewogcHVibGljOgogICAgIFN0cmluZyB2
YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0
VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCisgICAgc3RhdGljIFNWR1Bv
aW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIHBvaW50c0xpc3RGcm9tU1ZH
RGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgdXNp
bmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYg
PSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHUG9pbnRMaXN0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxv
b2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih0aGlzLCBw
b2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRlcl9jYXN0PFNW
R0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3Qu
c2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgIHN0
YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSkgPSBXVEZNb3Zl
KG5ld0xpc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDksNyArMTA5LDcgQEAg
dm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQb2ludHMoUwogICAgIFNWR1BvbHlFbGVt
ZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5RWxlbWVudD4oKmNvbnRleHRFbGVtZW50
KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBl
LCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcG9pbnRz
LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9u
aXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBzdGF0
aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlKS52
YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUG9seUVs
ZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gcG9pbnRz
KCk7CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gYW5pbWF0ZWRQb2ludHMoKTsKIAotICAgIFNWR1Bv
aW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludHMudmFsdWU7
IH0KKyAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSk7IH0KIAogICAg
IHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5mbygpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxW
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4g
Y3JlYXRlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byhpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUoRXhjZXB0
aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVl
Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25l
ZCBzaG9ydCBhbGlnbigpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS5hbGlnbigpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmFsaWduKCk7CiAgICAg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24oZmxvYXQgdmFsdWUpCkBAIC02NCw3
ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNldEFsaWduKHZhbHVlKTsKICAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKQEAgLTc0LDcgKzY5LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgbWVl
dE9yU2xpY2UoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkubWVl
dE9yU2xpY2UoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5tZWV0T3JTbGljZSgp
OwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1lZXRPclNsaWNlKGZsb2F0IHZh
bHVlKQpAQCAtODIsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWVl
dE9yU2xpY2UodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5z
ZXRNZWV0T3JTbGljZSh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC05MSw3ICs4Niw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwg
cm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTEwMCwxMSArOTUsNiBAQCBwcml2YXRlOgog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqIGluaXRpYWxWYWx1
ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsMTEgQEAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZQogewogfQog
CitTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBwYXJzZShzdHJpbmcpOworfQorCiBFeGNl
cHRpb25Pcjx2b2lkPiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OnNldEFsaWduKHVuc2ln
bmVkIHNob3J0IGFsaWduKQogewogICAgIGlmIChhbGlnbiA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19VTktOT1dOIHx8IGFsaWduID4gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVgp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgcHVi
bGljOgogICAgIH07CiAKICAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKTsKKyAgICBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29uc3QgU3RyaW5nJik7CiAKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCk7CiAgICAgdW5zaWduZWQgc2hvcnQg
YWxpZ24oKSBjb25zdCB7IHJldHVybiBtX2FsaWduOyB9CkBAIC03Nyw2ICs3OCw3IEBAIHByaXZh
dGU6CiAKIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZT4gewogICAgIHN0YXRpYyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUg
aW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7IH0K
KyAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShzdHJp
bmcpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CiB9Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEyICs1NSwxMiBAQCBFTkRf
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50OjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgsICI1MCUiKQotICAgICwg
bV9jeShMZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikKLSAgICAsIG1fcihMZW5ndGhNb2RlT3RoZXIs
ICI1MCUiKQotICAgICwgbV9meChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2Z5KExlbmd0aE1v
ZGVIZWlnaHQpCi0gICAgLCBtX2ZyKExlbmd0aE1vZGVPdGhlciwgIjAlIikKKyAgICAsIG1fY3go
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiNTAlIikpCisgICAgLCBtX2N5KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICI1MCUiKSkKKyAgICAsIG1fcihTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlT3RoZXIsICI1MCUiKSkKKyAgICAsIG1fZngoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fZnkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCisgICAgLCBtX2ZyKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjAlIikp
CiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIGN4L2N5L3IvZnIgYXR0cmlidXRlIGlzIG5vdCBzcGVj
aWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiNTAlIiB3ZXJlIHNwZWNpZmll
ZC4KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6cmFkaWFsR3JhZGllbnRUYWcpKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTMgKzIwLDEzIEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNW
R1JlY3RUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1JlY3QgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2Zm
PEZsb2F0UmVjdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBGbG9hdFJlY3QmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1JlY3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9
CkBAIC0zNiwxMSArMzYsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1JlY3QoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdSZWN0
PiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHUmVjdD4+IGNy
ZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChp
bml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01MCw3ICs0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
eCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLngoKTsKICAgICB9CiAKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU4LDcgKzUzLDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlS
ZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRYKHhW
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC02Niw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRZKGZsb2F0IHhW
YWx1ZSkKQEAgLTc0LDcgKzY5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CisgICAg
ICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Miw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAg
IGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkud2lkdGgoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXaWR0aChmbG9hdCB3aWR0aFZhbHVlKQpAQCAt
OTAsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFdpZHRoKHdpZHRoVmFsdWUpOworICAgICAg
ICB2YWx1ZVByb3BlcnR5KCkuc2V0V2lkdGgod2lkdGhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05OCw3ICs5Myw3IEBAIHB1YmxpYzoK
IAogICAgIGZsb2F0IGhlaWdodCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZl
cmVuY2UoKS5oZWlnaHQoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5oZWlnaHQo
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0
VmFsdWUpCkBAIC0xMDYsMTQgKzEwMSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEhlaWdodChoZWln
aHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRIZWlnaHQoaGVpZ2h0VmFsdWUp
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFJlY3QmIHZhbHVlKQorICAgIFNWR1Jl
Y3QoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3Bl
cnR5VGVhck9mZjxGbG9hdFJlY3Q+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAg
ICB7CiAgICAgfQpAQCAtMTIyLDExICsxMTcsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1By
b3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0g
ICAgZXhwbGljaXQgU1ZHUmVjdChjb25zdCBGbG9hdFJlY3QqIGluaXRpYWxWYWx1ZSkKLSAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihpbml0aWFsVmFsdWUpCi0gICAgewot
ICAgIH0KIH07CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oCShub25leGlz
dGVudCkKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dGVtcGxhdGU8Pgotc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4gewotICAgIHN0
YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5cGUpCi0gICAgewotICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUu
eCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIodHlwZS55KCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOwotICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsK
LSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICB9Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDExICs3MSwxMiBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFw
aGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRo
KQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVX
aWR0aCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVp
Z2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsIEFTQ0lJTGl0
ZXJhbCgiMTAwJSIpKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKSkKICAgICAsIG1fdGltZUNvbnRhaW5lcihTTUlM
VGltZUNvbnRhaW5lcjo6Y3JlYXRlKCp0aGlzKSkKKyAgICAsIG1fY3VycmVudFRyYW5zbGF0ZShT
VkdWYWx1ZTo6Y3JlYXRlPEZsb2F0UG9pbnQ+KCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnN2Z1RhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZH
U1ZHRWxlbWVudCgpOwpAQCAtMTk3LDkgKzE5OCw5IEBAIFJlZjxTVkdQb2ludD4gU1ZHU1ZHRWxl
bWVudDo6Y3VycmVudFRyYW4KIAogdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNs
YXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9uKQogewotICAgIGlmIChtX2N1cnJlbnRU
cmFuc2xhdGUgPT0gdHJhbnNsYXRpb24pCisgICAgaWYgKHN0YXRpY19jYXN0PEZsb2F0UG9pbnQm
PigqbV9jdXJyZW50VHJhbnNsYXRlKSA9PSB0cmFuc2xhdGlvbikKICAgICAgICAgcmV0dXJuOwot
ICAgIG1fY3VycmVudFRyYW5zbGF0ZSA9IHRyYW5zbGF0aW9uOworICAgIHN0YXRpY19jYXN0PEZs
b2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKSA9IHRyYW5zbGF0aW9uOwogICAgIHVwZGF0
ZUN1cnJlbnRUcmFuc2xhdGUoKTsKIH0KIApAQCAtMzM1LDEyICszMzYsMTIgQEAgUmVmPE5vZGVM
aXN0PiBTVkdTVkdFbGVtZW50Ojpjb2xsZWN0SW50ZQogCiBzdGF0aWMgYm9vbCBjaGVja0ludGVy
c2VjdGlvbldpdGhvdXRVcGRhdGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0
JiByZWN0KQogewotICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tJbnRlcnNl
Y3Rpb24oZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAg
IHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tJbnRlcnNlY3Rpb24oZWxlbWVudC5y
ZW5kZXJlcigpLCByZWN0LnZhbHVlUHJvcGVydHkoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBj
aGVja0VuY2xvc3VyZVdpdGhvdXRVcGRhdGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBT
VkdSZWN0JiByZWN0KQogewotICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tF
bmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOwor
ICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5y
ZW5kZXJlcigpLCByZWN0LnZhbHVlUHJvcGVydHkoKSk7CiB9CiAKIFJlZjxOb2RlTGlzdD4gU1ZH
U1ZHRWxlbWVudDo6Z2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0JiByZWN0LCBTVkdFbGVtZW50
KiByZWZlcmVuY2VFbGVtZW50KQpAQCAtNDE0LDcgKzQxNSw3IEBAIFJlZjxTVkdUcmFuc2Zvcm0+
IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVMKIAogUmVmPFNWR1RyYW5zZm9ybT4gU1ZHU1ZHRWxlbWVu
dDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKIHsKLSAg
ICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUoU1ZHVHJhbnNmb3JtVmFsdWUgeyBtYXRyaXgu
cHJvcGVydHlSZWZlcmVuY2UoKSB9KTsKKyAgICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUo
U1ZHVHJhbnNmb3JtVmFsdWUgeyBtYXRyaXgudmFsdWVQcm9wZXJ0eSgpIH0pOwogfQogCiBBZmZp
bmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0o
U1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fdXNlQ3VycmVudFZpZXcgeyBmYWxzZSB9OwogICAgIFNWR1pvb21BbmRQYW5U
eXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21BbmRQYW5NYWduaWZ5IH07CiAgICAgUmVmPFNNSUxU
aW1lQ29udGFpbmVyPiBtX3RpbWVDb250YWluZXI7Ci0gICAgRmxvYXRQb2ludCBtX2N1cnJlbnRU
cmFuc2xhdGU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX2N1cnJlbnRUcmFuc2xhdGU7CiAgICAg
UmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVjOwogICAgIFN0cmluZyBtX2N1cnJlbnRWaWV3
RnJhZ21lbnRJZGVudGlmaWVyOwogfTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBpbmxpbmUgYm9vbCBT
VkdTVkdFbGVtZW50Ojp1c2VDdXJyZW50VmllCiAKIGlubGluZSBGbG9hdFBvaW50IFNWR1NWR0Vs
ZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSgpCiB7Ci0gICAgcmV0dXJuIG1fY3VycmVudFRy
YW5zbGF0ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RmxvYXRQb2ludCY+KCptX2N1cnJlbnRU
cmFuc2xhdGUpOwogfQogCiBpbmxpbmUgU1ZHWm9vbUFuZFBhblR5cGUgU1ZHU1ZHRWxlbWVudDo6
em9vbUFuZFBhbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDEyICszNiwxMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNW
R1N0cmluZ0xpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVm
PFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3Jl
YXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0
KCZjb250ZXh0RWxlbWVudCwgdmFsdWVzKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdT
dHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVy
dHlSb2xlLCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmKQor
ICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5
IHRvIHJlbW92ZSB0aGlzLiBJdCdzIG9ubHkgbmVlZGVkIHRvIGtlZXAgV2luZG93cyBjb21waWxp
bmcuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdTdHJpbmdM
aXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMpCiAgICAgICAgIDogU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdM
aXN0VmFsdWVzPihjb250ZXh0RWxlbWVudCwgdmFsdWVzKQogICAgIHsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNl
dChjb25zdCBTdAogCiAgICAgLy8gQWRkIGVtcHR5IHN0cmluZywgaWYgbGlzdCBpcyBlbXB0eS4K
ICAgICBpZiAoaXNFbXB0eSgpKQotICAgICAgICBhcHBlbmQoZW1wdHlTdHJpbmcoKSk7CisgICAg
ICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0cmluZz4oZW1wdHlTdHJpbmcoKSkpOwogfQog
CiB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNo
YXIgZGVsaW1pdGVyKQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6
OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICBwdHIrKzsKICAgICAgICAgaWYgKHB0ciA9PSBz
dGFydCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBw
dHIgLSBzdGFydCkpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0
cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNl
c09yRGVsaW1pdGVyKHB0ciwgZW5kLCBkZWxpbWl0ZXIpOwogICAgIH0KIH0KQEAgLTcwLDcgKzcw
LDcgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBp
ZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGF0KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChp
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjEsOCArMjEsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJh
aXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdTdHJpbmdMaXN0VmFs
dWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNWR1N0cmluZ0xpc3RW
YWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTdHJpbmc+IHsKIHB1YmxpYzoKICAg
ICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
CiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsOSBAQCBzdGF0aWMgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9CiAKIFNWR1Rlc3RzOjpTVkdUZXN0cygp
Ci0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAgLCBt
X3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICwgbV9zeXN0
ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMo
U1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikpCisgICAgLCBtX3JlcXVp
cmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIp
KQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdMaXN0VmFsdWVzKHN5c3RlbUxhbmd1
YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIwIEBAIGJvb2wgU1ZHVGVzdHM6Omhh
c0V4dGVuc2lvbihjb25zdCBTdHJpbmcKIAogYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0
CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDogbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKSB7
CisgICAgYXV0byBmZWF0dXJlcyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigq
bV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBm
ZWF0dXJlIDogZmVhdHVyZXMpIHsKICAgICAgICAgaWYgKGZlYXR1cmUuaXNFbXB0eSgpIHx8ICFz
dXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5zKGZlYXR1cmUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbV9zeXN0ZW1MYW5n
dWFnZS52YWx1ZSkgeworCisgICAgYXV0byBsYW5ndWFnZXMgPSBzdGF0aWNfY2FzdDxTVkdTdHJp
bmdMaXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAg
ICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzKSB7CiAgICAgICAgIGlmIChsYW5ndWFn
ZSAhPSBkZWZhdWx0TGFuZ3VhZ2UoKS5zdWJzdHJpbmcoMCwgMikpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIGZvciAoYXV0byYgZXh0ZW5zaW9uIDogbV9yZXF1aXJlZEV4
dGVuc2lvbnMudmFsdWUpIHsKKworICAgIGF1dG8gZXh0ZW5zaW9ucyA9IHN0YXRpY19jYXN0PFNW
R1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpLnByb3BlcnRp
ZXMoKTsKKyAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6IGV4dGVuc2lvbnMpIHsKICAgICAgICAg
aWYgKCFoYXNFeHRlbnNpb24oZXh0ZW5zaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC0xNzIsMTEgKzE3NywxMSBAQCBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29u
c3QKIHZvaWQgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKGF0dHJp
YnV0ZU5hbWUgPT0gcmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRGZWF0
dXJlcy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xp
c3RWYWx1ZXMmPigqbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKS5yZXNldCh2YWx1ZSk7CiAgICAg
aWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRFeHRlbnNpb25zQXR0cikKLSAgICAgICAgbV9y
ZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2Fz
dDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlKS5yZXNl
dCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gc3lzdGVtTGFuZ3VhZ2VBdHRyKQot
ICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3N5c3RlbUxhbmd1YWdlLnZhbHVlKS5y
ZXNldCh2YWx1ZSk7CiB9CiAKIGJvb2wgU1ZHVGVzdHM6OmlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKQEAgLTIwOCw3ICsyMTMsNyBAQCB2b2lkIFNW
R1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShTVkdFCiB7CiAgICAgaWYgKCFwcm9wZXJ0eS5z
aG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fcmVxdWlyZWRGZWF0dXJl
cy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5LnZh
bHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnN5bmNocm9uaXpl
KCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlz
dFZhbHVlcyY+KCpwcm9wZXJ0eS52YWx1ZSkudmFsdWVBc1N0cmluZygpKTsKIH0KIAogdm9pZCBT
VkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKFNWR0VsZW1lbnQmIGNvbnRleHRF
bGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4
dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAg
ICAsIG1fdGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpCi0gICAgLCBtX3NwZWNpZmllZFRleHRM
ZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV90ZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVPdGhlcikpCisgICAgLCBtX3NwZWNpZmllZFRleHRMZW5ndGgoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKICAgICAsIG1fbGVuZ3RoQWRqdXN0KFNWR0xlbmd0aEFk
anVzdFNwYWNpbmcpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0
Q29udGVudEVsZW1lbnQoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBTVkdUZXh0Q29udGVudEVsZQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTVkdMZW5n
dGhWYWx1ZT4gZGVmYXVsdFRleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKTsKICAgICBpZiAobV9z
cGVjaWZpZWRUZXh0TGVuZ3RoID09IGRlZmF1bHRUZXh0TGVuZ3RoKQotICAgICAgICBtX3RleHRM
ZW5ndGgudmFsdWUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5ndGhUeXBlTnVtYmVyLCBnZXRD
b21wdXRlZFRleHRMZW5ndGgoKSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVl
Jj4oKm1fdGV4dExlbmd0aC52YWx1ZSkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5ndGhUeXBl
TnVtYmVyLCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CiAKICAgICBtX3RleHRMZW5ndGguc2hv
dWxkU3luY2hyb25pemUgPSB0cnVlOwogICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8
U1ZHQW5pbWF0ZWRMZW5ndGg+KGxvb2t1cE9yQ3JlYXRlVGV4dExlbmd0aFdyYXBwZXIodGhpcykp
OwpAQCAtMTU4LDcgKzE1OCw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVs
ZW1lbnQKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKFNW
R1BvaW50JiBwb2ludCkKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwotICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hh
cmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICBy
ZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24o
cG9pbnQudmFsdWVQcm9wZXJ0eSgpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENv
bnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQg
bmNoYXJzKQpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpw
YXJzZUF0dHJpYnUKICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAg
c2V0TGVuZ3RoQWRqdXN0QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52
YWx1ZSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKSA9IFNWR0xlbmd0aFZhbHVlOjpj
b25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRp
dmVMZW5ndGhzKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9y
LCBuYW1lLCB2YWx1ZSk7CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAgICAgfQogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90
ZXh0TGVuZ3RoLnZhbHVlOworICAgICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBzdGF0aWNf
Y2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpOwogCiAgICAgaWYgKGF1
dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBA
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdUZXh0UGF0aEVs
ZW1lbnQ6OlNWR1RleHRQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCi0gICAgLCBtX3N0YXJ0T2Zmc2V0KExlbmd0aE1vZGVPdGhlcikKKyAgICAsIG1f
c3RhcnRPZmZzZXQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKICAgICAsIG1fbWV0
aG9kKFNWR1RleHRQYXRoTWV0aG9kQWxpZ24pCiAgICAgLCBtX3NwYWNpbmcoU1ZHVGV4dFBhdGhT
cGFjaW5nRXhhY3QpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8
U1ZHTWF0cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJpeCgpCiB7Ci0gICAgcmV0dXJuIFNWR01hdHJp
eFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7
CisgICAgcmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgdmFsdWVQcm9wZXJ0
eSgpLnN2Z01hdHJpeCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1Byb3Bl
cnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBz
dGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9y
bShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQzLDExICs0Myw2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGlu
aXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVh
dGUoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFsdWUpKTsKLSAgICB9
Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1Ry
YW5zZm9ybT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAg
ICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01NywxNCArNTIsMTQg
QEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS50eXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkudHlwZSgpOwogICAgIH0KIAogICAgIFJlZjxTVkdNYXRyaXg+IG1hdHJpeCgpOwog
CiAgICAgZmxvYXQgYW5nbGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkuYW5nbGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5hbmdsZSgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJp
eCkKQEAgLTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3Bl
cnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0TWF0cml4KG1hdHJp
eC52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtODMsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFRyYW5zbGF0ZSh0
eCwgdHkpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05NCw3ICs4
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0U2NhbGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVQcm9w
ZXJ0eSgpLnNldFNjYWxlKHN4LCBzeSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAg
ICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRSb3Rh
dGUoYW5nbGUsIGN4LCBjeSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRSb3RhdGUoYW5n
bGUsIGN4LCBjeSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0xMTYsNyArMTExLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRTa2V3WChhbmdsZSk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMjcsMTQgKzEyMiwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFNrZXdZKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFNr
ZXdZKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1W
YWx1ZSYgdmFsdWUpCisgICAgU1ZHVHJhbnNmb3JtKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+
KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTQzLDEx
ICsxMzgsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFu
c2Zvcm1WYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBT
VkdUcmFuc2Zvcm0oY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KGluaXRpYWxWYWx1ZSkK
LSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsy
Miw3IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKICNp
bmNsdWRlICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3Jt
LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zMSwyMCArMzIsMTggQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxT
VkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNW
R1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xl
LCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmPFNWR1Ry
YW5zZm9ybT4+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgp
CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICByZXR1cm4gbV92YWx1
ZXMtPmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgobWF0cml4KTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlc1Byb3BlcnR5KCkuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0
ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93
cmFwcGVycyk7CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUy
LDIzICs1MSwyMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMt
PnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGxpc3Qgd2FzIGVtcHR5LCB0aGVu
IGEgdmFsdWUgb2YgbnVsbCBpcyByZXR1cm5lZC4KLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0Vt
cHR5KCkpCisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKICAg
ICAgICAgCi0gICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm0+IHdyYXBwZXIgPSBtX3ZhbHVlcy0+
Y29uc29saWRhdGUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IHZh
bHVlc1Byb3BlcnR5KCkuY29uc29saWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5k
KHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3Bl
cnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIHJldHVybiBXVEZN
b3ZlKHdyYXBwZXIpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm1MaXN0KEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAg
ICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxTVkdUcmFuc2Zvcm0+IFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMKIAogICAgIFNWR1RyYW5zZm9ybVZhbHVlIHRyYW5zZm9ybSht
YXRyaXgpOwogICAgIGNsZWFyKCk7Ci0gICAgYXBwZW5kKHRyYW5zZm9ybSk7CisgICAgYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5zZm9ybSkpOwogICAgIHJl
dHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZSh0cmFuc2Zvcm0pOwogfQogCkBAIC01Miw3ICs1Miw3
IEBAIGJvb2wgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6Y29uY2F0ZW5hdGUKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgcmVzdWx0ICo9IGF0KGkpLm1hdHJpeCgpOworICAgICAgICByZXN1bHQgKj0gcHJvcGVy
dHlBdChpKS5tYXRyaXgoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjUsNyArNjUsNyBA
QCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0CiAgICAgICAgIGlmIChp
ID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
cHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAogICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTggKzIxLDE2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlICJT
VkdUcmFuc2Zvcm0uaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlz
dFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNWR0xpc3RQcm9wZXJ0eVRl
YXJPZmY7Ci0KK2NsYXNzIFNWR01hdHJpeDsKK2NsYXNzIFNWR1RyYW5zZm9ybTsKIGNsYXNzIFNW
R1RyYW5zZm9ybUxpc3Q7CiAKLWNsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBw
dWJsaWMgVmVjdG9yPFNWR1RyYW5zZm9ybVZhbHVlLCAxPiB7CitjbGFzcyBTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+
IHsKIHB1YmxpYzoKICAgICBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9t
TWF0cml4KFNWR01hdHJpeCYpIGNvbnN0OwogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNvbnNvbGlk
YXRlKCk7CkBAIC00Miw4ICs0MSwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBT
dHJpbmcmKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShz
dHJpbmcpOworICAgICAgICBBU1NFUlQobGlzdC5zaXplKCkgPD0gMSk7CisgICAgICAgIHJldHVy
biBsaXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CiAK
ICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdUcmFuc2Zvcm1WYWx1ZTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtOTEs
NCArOTEsOSBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1RyYW5zZm9yCiAgICAg
cmV0dXJuICEoYSA9PSBiKTsKIH0KIAordGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtVmFsdWUgaW5p
dGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgdHJhbnNmb3JtKSB7IHJldHVybiB0cmFuc2Zvcm0udmFs
dWVBc1N0cmluZygpOyB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBib29sIFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0
CiAgICAgICAgIGlmICghcGFyc2VUcmFuc2Zvcm1WYWx1ZSh0eXBlLCBjdXJyVHJhbnNmb3JtLCBl
bmQsIHRyYW5zZm9ybSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgbGlz
dC5hcHBlbmQodHJhbnNmb3JtKTsKKyAgICAgICAgbGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNW
R1NwYWNlcyhjdXJyVHJhbnNmb3JtLCBlbmQpOwogICAgICAgICBpZiAoY3VyclRyYW5zZm9ybSA8
IGVuZCAmJiAqY3VyclRyYW5zZm9ybSA9PSAnLCcpIHsKICAgICAgICAgICAgIGRlbGltUGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQot
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1
ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQor
ICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiAgICAgLCBt
X3N2Z0xvYWRFdmVudFRpbWVyKCp0aGlzLCAmU1ZHRWxlbWVudDo6c3ZnTG9hZEV2ZW50VGltZXJG
aXJlZCkKIHsKICAgICBBU1NFUlQoaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKyNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCisjaW5jbHVkZSAiU1ZH
TWF0cml4VmFsdWUuaCIKKyNpbmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRlICJTVkdQYXRoU2VnTGlzdFZhbHVlcy5o
IgorI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5j
bHVkZSAiU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1WYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9W
YXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgU1ZHVmFsdWVWYXJpYW50
ID0gVmFyaWFudDwKKyAgICBTVkdBbmdsZVZhbHVlLCAgICAgICAgICAgICAgICAgIC8vICAwOiBh
bmdsZQorICAgIGJvb2wsICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDE6IGJvb2xlYW4K
KyAgICBDb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAyOiBjb2xvcgorICAgIHVu
c2lnbmVkLCAgICAgICAgICAgICAgICAgICAgICAgLy8gIDM6IGVudW1lcmF0aW9uCisgICAgaW50
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgNDogaW50ZWdlcgorICAgIFNWR0xlbmd0
aFZhbHVlLCAgICAgICAgICAgICAgICAgLy8gIDU6IGxlbmd0aAorICAgIFNWR0xlbmd0aExpc3RW
YWx1ZXMsICAgICAgICAgICAgLy8gIDY6IGxlbmd0aExpc3QKKyAgICBTVkdNYXRyaXhWYWx1ZSwg
ICAgICAgICAgICAgICAgIC8vICA3OiBtYXRyaXgKKyAgICBmbG9hdCwgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vICA4OiBudW1iZXIKKyAgICBTVkdOdW1iZXJMaXN0VmFsdWVzLCAgICAgICAg
ICAgIC8vICA5OiBudW1iZXJMaXN0CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0sICAgICAgICAgICAg
ICAvLyAxMDogcGF0aAorICAgIFJlZlB0cjxTVkdQYXRoU2VnPiwgICAgICAgICAgICAgLy8gMTE6
IHBhdGhTZWcKKyAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcywgICAgICAgICAgIC8vIDEyOiBwYXRo
U2VnTGlzdAorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSwgICAgLy8gMTM6IHByZXNl
cnZlQXNwZWN0UmF0aW8KKyAgICBGbG9hdFBvaW50LCAgICAgICAgICAgICAgICAgICAgIC8vIDE0
OiBwb2ludAorICAgIFNWR1BvaW50TGlzdFZhbHVlcywgICAgICAgICAgICAgLy8gMTU6IHBvaW50
TGlzdAorICAgIEZsb2F0UmVjdCwgICAgICAgICAgICAgICAgICAgICAgLy8gMTY6IHJlY3QKKyAg
ICBTdHJpbmcsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE3OiBzdHJpbmcKKyAgICBTVkdT
dHJpbmdMaXN0VmFsdWVzLCAgICAgICAgICAgIC8vIDE4OiBzdHJpbmdMaXN0CisgICAgU1ZHVHJh
bnNmb3JtVmFsdWUsICAgICAgICAgICAgICAvLyAxOTogdHJhbnNmb3JtCisgICAgU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyAgICAgICAgICAvLyAyMDogdHJhbnNmb3JtTGlzdAorPjsKKwordGVtcGxh
dGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1RyYWl0SGFzVG9TdHJpbmcgewor
ICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25nIHR3bzsKKworICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3QoZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJh
aXRzPFQ+Ojp0b1N0cmluZykpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdv
IHRlc3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0PFBy
b3BlcnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9OworfTsKKyAgICAKK3N0cnVj
dCB0b1N0cmluZ1Zpc2l0b3IgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwg
c3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVl
PiogPSBudWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYg
dmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6dG9TdHJpbmcodmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBy
b3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0
eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBTdHJpbmcgb3BlcmF0b3IoKShjb25zdCBQ
cm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorfTsKKyAgICAKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CitjbGFzcyBTVkdUcmFpdEhhc1BhcnNlIHsKKyAgICB0eXBlZGVmIGNoYXIgb25l
OworICAgIHR5cGVkZWYgbG9uZyB0d287CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3Rh
dGljIG9uZSB0ZXN0KGRlY2x0eXBlKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6cGFyc2UpKTsKKyAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3byB0ZXN0KC4uLik7CisKK3B1YmxpYzoK
KyAgICBlbnVtIHsgdmFsdWUgPSBzaXplb2YodGVzdDxQcm9wZXJ0eVR5cGU+KG51bGxwdHIpKSA9
PSBzaXplb2YoY2hhcikgfTsKK307CisKK3N0cnVjdCBwYXJzZVZpc2l0b3IgeworICAgIHBhcnNl
VmlzaXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJp
bmcsIFNWR1ZhbHVlVmFyaWFudCYgdmFyaWFudCkKKyAgICAgICAgOiBtX2F0dHJOYW1lKGF0dHJO
YW1lKQorICAgICAgICAsIG1fc3RyaW5nKHN0cmluZykKKyAgICAgICAgLCBtX3ZhcmlhbnQodmFy
aWFudCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46OnZh
bHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUm
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQcm9wZXJ0eVR5cGU+IHJlc3VsdCA9IFNW
R1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBhcnNlKG1fYXR0ck5hbWUsIG1fc3RyaW5n
KTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIG1fdmFyaWFudC5lbXBsYWNlPFByb3BlcnR5VHlwZT4oV1RGTW92ZShyZXN1bHQudmFsdWUo
KSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNQYXJz
ZTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBib29sIG9wZXJhdG9yKCko
Y29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbV9hdHRyTmFtZTsKKyAgICBjb25zdCBTdHJpbmcmIG1fc3RyaW5nOworICAgIFNWR1ZhbHVl
VmFyaWFudCYgbV92YXJpYW50OworfTsKKyAgICAKK2NsYXNzIFNWR1ZhbHVlIDogcHVibGljIFJl
ZkNvdW50ZWQ8U1ZHVmFsdWU+LCBwdWJsaWMgU1ZHVmFsdWVWYXJpYW50IHsKK3B1YmxpYzoKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1
ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGU8UHJvcGVydHlUeXBlPihT
VkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7CisgICAgfQor
ICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRp
YyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1bnNpZ25lZCY+KHByb3BlcnR5KSkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxj
bGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0
eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVh
dGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHByb3BlcnR5KSk7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBib29sIGlzKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFByb3BlcnR5VHlwZT4o
KnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWUgJiYgV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8
Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0
eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBjb25zdCBQcm9wZXJ0eVR5
cGUmKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgY29u
c3QgUHJvcGVydHlUeXBlJigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVy
dHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMp
OworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAg
IG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAg
IH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8
IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVy
YXRvciBQcm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5
cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7Cisg
ICAgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBXVEY6OnZpc2l0KHRvU3RyaW5nVmlzaXRvcigpLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1
ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKworICAgIGJvb2wgcGFyc2UoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdURjo6dmlzaXQocGFyc2VWaXNpdG9yKGF0dHJOYW1lLCBzdHJpbmcsIHN0YXRpY19j
YXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVl
VmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZT4KKyAgICBleHBsaWNpdCBTVkdWYWx1ZShjb25zdCBQcm9wZXJ0eVR5
cGUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFyaWFudCh2YWx1ZSkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgIH0KKyAgICAKKyAgICBTVkdWYWx1
ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50KHN0YXRp
Y19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVlKSkKKyAgICB7CisgICAgICAgIEFT
U0VSVChpbmRleCgpID09IHZhbHVlLmluZGV4KCkpOworICAgIH0KK307CisgICAgCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBhbihTVkdab29tQW5kUGFu
TWFnbmlmeSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCisg
ICAgLCBtX3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJpbmdMaXN0VmFsdWVzKFNW
R05hbWVzOjp2aWV3VGFyZ2V0QXR0cikpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjp2aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3
RWxlbWVudCgpOwpAQCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHU3RyaW5nTGlzdD4gU1ZHVmlld0Vs
ZW1lbnQ6OnZpZXdUCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlm
IChuYW1lID09IFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKLSAgICAgICAgbV92aWV3VGFyZ2V0
LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+
KCptX3ZpZXdUYXJnZXQpLnJlc2V0KHZhbHVlKTsKIAogICAgIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdC
b3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2
YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogICAgIFNWR1pvb21B
bmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAgICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1Rh
cmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld1RhcmdldDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzksNiArNzksOSBAQCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIFNWR1ZpZXdT
cGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0
RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQorICAgICwg
bV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQor
ICAgICwgbV92aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRSZWN0PigpKQorICAgICwgbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlPigpKQogewogfQogCkBAIC0xMDgsMTcgKzExMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFuCiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3Jt
U3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNmb3JtKTsKKyAgICByZXR1cm4gbV90cmFu
c2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dmlld0JveFN0cmlu
ZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRv
U3RyaW5nKG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1fdmlld0JveC0+dG9TdHJpbmcoKTsKIH0K
IAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXR1cm4gbV9wcmVz
ZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmluZygpOwogfQogCiBTVkdFbGVtZW50KiBTVkdWaWV3U3Bl
Yzo6dmlld1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSArMTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVk
UHJvcGVydHk+IFNWR1ZpZXdTcGVjOjpsbwogdm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQoKQogewog
ICAgIG1fem9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5NYWduaWZ5OwotICAgIG1fdHJhbnNmb3Jt
LmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94ID0geyB9OwotICAgIG1fcHJlc2VydmVBc3BlY3RSYXRp
byA9IHsgfTsKKyAgICBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJh
bnNmb3JtKS5jbGVhcigpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gp
ID0geyB9OworICAgIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCpt
X3ByZXNlcnZlQXNwZWN0UmF0aW8pID0geyB9OwogICAgIG1fdmlld1RhcmdldFN0cmluZyA9IGVt
cHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpw
YXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVu
ZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFi
bGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJhbnNmb3JtLCBjdXJyVmlld1NwZWMsIGVu
ZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOworICAgICAgICAgICAgU1ZHVHJh
bnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUoc3RhdGljX2Nhc3Q8U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSksIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFu
c2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVj
ID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3U3BlYy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcgKzU1LDE3IEBAIHB1YmxpYzoKIAogICAg
IC8vIEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9ybScgcHJvcGVydHkuCiAgICAgUmVmUHRy
PFNWR1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAg
ICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqbV90cmFuc2Zvcm0pOyB9
CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHByb3BlcnR5LgogICAgIFJlZlB0
cjxTVkdBbmltYXRlZFJlY3Q+IHZpZXdCb3hBbmltYXRlZCgpOwotICAgIEZsb2F0UmVjdCYgdmll
d0JveCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAgIHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1
ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94ID0gdmlld0JveDsgfQorICAg
IEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpt
X3ZpZXdCb3gpOyB9CisgICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVj
dCYgdmlld0JveCkgeyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94KSA9IHZpZXdC
b3g7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRlZCAncHJlc2VydmVBc3BlY3RSYXRpbycgcHJv
cGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gcHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdGVkKCk7Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
JiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9
Ci0gICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CisgICAgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVBc3BlY3RSYXRpbyk7IH0KKyAg
ICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNlVmFsdWUoY29uc3QgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKSB7IHN0YXRpY19jYXN0PFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0UmF0aW8pID0gcHJlc2Vy
dmVBc3BlY3RSYXRpbzsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNWR1ZpZXdTcGVjKFNW
R0VsZW1lbnQmKTsKQEAgLTg0LDkgKzg0LDkgQEAgcHJpdmF0ZToKIAogICAgIFNWR0VsZW1lbnQq
IG1fY29udGV4dEVsZW1lbnQ7CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFuIHsg
U1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIG1fdHJh
bnNmb3JtOwotICAgIEZsb2F0UmVjdCBtX3ZpZXdCb3g7Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1f
dHJhbnNmb3JtOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92aWV3Qm94OworICAgIFJlZlB0cjxT
VkdWYWx1ZT4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgIFN0cmluZyBtX3ZpZXdUYXJnZXRT
dHJpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9m
Zi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDIyICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFN0YXRp
Y1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OnNldEJhc2VWYWwocHJvcGVydHkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxF
bnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIEVudW1UeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQmPihwcm9wZXJ0eSkpKTsK
LSAgICB9Ci0KLSAgICBFbnVtVHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQotICAgIHsKLSAg
ICAgICAgdW5zaWduZWQmIGFuaW1hdGVkVmFsdWUgPSBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5
VGVhck9mZjx1bnNpZ25lZD46OmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7Ci0gICAgICAgIEFTU0VS
VChhbmltYXRlZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJhaXRzPEVudW1UeXBlPjo6aGlnaGVzdEVu
dW1WYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RW51bVR5cGUmPihh
bmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZihTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHVuc2lnbmVkJiBwcm9w
ZXJ0eSkKLSAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25l
ZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBw
cm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQorICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRl
YXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0UHJv
cGVydHlUZWFyT2ZmOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0g
ICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5
VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCB2YWx1ZXMpKTsKQEAgLTg1LDQ0ICs4NSw1MCBAQCBwdWJsaWM6CiAgICAgICAgIExpc3RQcm9w
ZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKCZtX3dyYXBwZXJzLCBuZXdMaXN0U2l6
ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisg
ICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewogICAgICAg
ICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlcygpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJh
c2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Cisg
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOworICAgIH0KKworICAg
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV92YWx1ZXM7CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFy
dGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwgYm9vbCBzaG91bGRPd25WYWx1ZXMgPSBmYWxz
ZSkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVmUHRyPFNWR1ZhbHVlPiBuZXdBbmltVmFs
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJU
KG5ld0FuaW1WYWwpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBl
cnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpj
dXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkV3JhcHBlcnMuaXNFbXB0eSgpKTsKIAogICAgICAgICAvLyBTd2l0
Y2ggdG8gbmV3IHBhc3NlZCBpbiB2YWx1ZSB0eXBlICYgbmV3IHdyYXBwZXJzIGxpc3QuIFRoZSBu
ZXcgd3JhcHBlcnMgbGlzdCBtdXN0IGJlIGNyZWF0ZWQgZm9yIHRoZSBuZXcgdmFsdWUuCi0gICAg
ICAgIGlmICghbmV3QW5pbVZhbC0+aXNFbXB0eSgpKQotICAgICAgICAgICAgbV9hbmltYXRlZFdy
YXBwZXJzLmZpbGwoMCwgbmV3QW5pbVZhbC0+c2l6ZSgpKTsKKyAgICAgICAgaWYgKHNpemVfdCBz
aXplID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm5ld0FuaW1WYWwpLnNpemUoKSkKKyAg
ICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIHNpemUpOwogCiAgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5
LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzLCBz
aG91bGRPd25WYWx1ZXMpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7Cisg
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5pbVZh
bCwgJm1fYW5pbWF0ZWRXcmFwcGVycyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAgICB9CiAKICAgICB2
b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygp
KTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7
CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VW
YWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogCi0gICAgICAgIEFTU0VSVCht
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHkt
PndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygp
LnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogCi0gICAgICAgIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMoJm1fdmFsdWVzLCAmbV93cmFwcGVycywg
ZmFsc2UpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXpl
KCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobV92YWx1ZXMsICZtX3dyYXBw
ZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHko
KS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAg
ICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fd3Jh
cHBlcnMuc2l6ZSgpKTsKIAogICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuY2xlYXIoKTsKQEAg
LTE0MiwzNCArMTQ4LDM0IEBAIHB1YmxpYzoKICAgICAgICAgLy8gQWxzbyBleGlzdGluZyB3cmFw
cGVycyB3aGljaCBwb2ludCBkaXJlY3RseSBhdCBlbGVtZW50cyBpbiB0aGUgZXhpc3RpbmcgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyBoYXZlIHRvIGJlIGRldGFjaGVkIChzbyBhIGNvcHkKICAgICAgICAg
Ly8gb2YgdGhlbSBpcyBjcmVhdGVkLCBzbyBleGlzdGluZyBhbmltVmFsIHZhcmlhYmxlcyBpbiBK
UyBhcmUga2VwdC1hbGl2ZSkuIElmIHdlJ2QgZGV0YWNoIHRoZW0gbGF0ZXIgdGhlIHVuZGVybHlp
bmcKICAgICAgICAgLy8gU1ZHTGVuZ3RoTGlzdFZhbHVlcyB3YXMgYWxyZWFkeSBtdXRhdGVkLCBh
bmQgb3VyIGxpc3QgaXRlbSB3cmFwcGVyIHRlYXIgb2ZmcyB3b3VsZCBwb2ludCBub3doZXJlLiBB
c3NlcnRpb25zIHdvdWxkIGZpcmUuCi0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNo
TGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpKTsKKyAgICAg
ICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMobV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgp
KTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkg
PT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFs
V2lsbENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1f
d3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5VHlw
ZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAg
ICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAgIH0KIAogICAgIHZvaWQg
YW5pbVZhbERpZENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgp
ID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3Bl
cnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUo
KSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVz
KQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAgLCBtX3ZhbHVlcyh2YWx1
ZXMpCiAgICAgewotICAgICAgICBpZiAoIXZhbHVlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBt
X3dyYXBwZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6
ZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp2YWx1ZXMpLnNpemUoKSkKKyAgICAgICAg
ICAgIG1fd3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUm
IG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7CiAKICAgICBMaXN0V3Jh
cHBlckNhY2hlIG1fd3JhcHBlcnM7CiAgICAgTGlzdFdyYXBwZXJDYWNoZSBtX2FuaW1hdGVkV3Jh
cHBlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDEwLCAyMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMx
LDcgKzMyLDcgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhcgogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZH
UGF0aFNlZ0xpc3RWYWx1ZXM+OwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVt
ZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNzYsOCArNzcsOCBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSA9IGJ5dGVTdHJlYW07CiAKICAgICAgICAgLy8gUGFz
cyBzaG91bGRPd25WYWx1ZXM9dHJ1ZSwgYXMgdGhlIFNWR1BhdGhTZWdMaXN0VmFsdWVzIGxpZmV0
aW1lIGlzIHNvbGVseSBtYW5hZ2VkIGJ5IGl0cyB0ZWFyIG9mZiBjbGFzcy4KLSAgICAgICAgYXV0
byogY29weSA9IG5ldyBTVkdQYXRoU2VnTGlzdFZhbHVlcygqYmFzZVZhbHVlKTsKLSAgICAgICAg
QmFzZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LCB0cnVlKTsKKyAgICAgICAgYXV0byBjb3B5ID0g
U1ZHVmFsdWU6OmNyZWF0ZSgqYmFzZVZhbHVlKTsKKyAgICAgICAgQmFzZTo6YW5pbWF0aW9uU3Rh
cnRlZChjb3B5LnB0cigpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKQEAg
LTk1LDcgKzk2LDcgQEAgcHVibGljOgogICAgICAgICAvLyBJZiB0aGUgYW5pbVZhbCBpcyBvYnNl
cnZlZCBmcm9tIEpTLCB3ZSBoYXZlIHRvIHVwZGF0ZSBpdCBvbiBlYWNoIGFuaW1hdGlvbiBzdGVw
LgogICAgICAgICAvLyBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIG9ubHkgZG9u
ZSwgaWYgc29tZW9uZSBhY3R1YWxseSBvYnNlcnZlcyB0aGUgYW5pbWF0ZWRQYXRoU2VnTGlzdCgp
IHdoaWxlIGFuIGFuaW1hdGlvbiBpcyBydW5uaW5nLgogICAgICAgICBpZiAocGF0aEVsZW1lbnQt
PmlzQW5pbVZhbE9ic2VydmVkKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9
IGN1cnJlbnRBbmltYXRlZFZhbHVlKCk7CisgICAgICAgICAgICBhdXRvJiBhbmltYXRlZExpc3Qg
PSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpjdXJyZW50QW5pbWF0ZWRWYWx1
ZSgpKTsKICAgICAgICAgICAgIGFuaW1hdGVkTGlzdC5jbGVhcigpOwogICAgICAgICAgICAgYnVp
bGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKCptX2FuaW1hdGVkUGF0aEJ5dGVT
dHJlYW0sICpwYXRoRWxlbWVudCwgYW5pbWF0ZWRMaXN0LCBVbmFsdGVyZWRQYXJzaW5nKTsKICAg
ICAgICAgfQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0ZWRQYXRo
Qnl0ZVN0cmVhbTsgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkUGF0aFNl
Z0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDog
QmFzZShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IHZhbHVlcykKICAgICAgICAgLCBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0obnVsbHB0cikKICAg
ICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTVkdWYWx1ZTsKIGNsYXNz
IFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsKIApAQCAtNDksNyArNTAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFtZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVy
dHlUeXBlPgotICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBl
cihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgUHJvcGVy
dHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNy
ZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGlu
Zm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGluZm8pOwogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5KGVsZW1l
bnQsIGluZm8tPnByb3BlcnR5SWRlbnRpZmllcik7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAotICAgICAg
ICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUo
ZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IHByb3BlcnR5KTsKKyAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBU
ZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFu
aW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSk7CiAgICAgICAgIGlmIChpbmZvLT5hbmltYXRlZFBy
b3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJc1JlYWRPbmx5KQogICAgICAgICAgICAgd3JhcHBlci0+
c2V0SXNSZWFkT25seSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
TWFjcm9zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC0yMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZH
QXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgi
CisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM0LDI1ICszNiwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3Qg
U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5IHsKICAgICBTVkdTeW5jaHJvbml6YWJs
ZUFuaW1hdGVkUHJvcGVydHkoKQotICAgICAgICA6IHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKQotICAgICAgICAsIHNob3VsZFN5bmNocm9uaXpl
KGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCisgICAgICAgIDogdmFsdWUoU1ZHVmFs
dWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCkpCiAgICAgewogICAgIH0KIAotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMT4KLSAgICBTVkdTeW5jaHJvbml6YWJsZUFu
aW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIxJiB2YWx1ZTEpCi0gICAg
ICAgIDogdmFsdWUodmFsdWUxKQotICAgICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQot
ICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMSwgdHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0
ZXIyPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBDb25zdHJ1
Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSwgY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIyJiB2YWx1
ZTIpCi0gICAgICAgIDogdmFsdWUodmFsdWUxLCB2YWx1ZTIpCi0gICAgICAgICwgc2hvdWxkU3lu
Y2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICBTVkdTeW5jaHJv
bml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAg
ICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4odmFsdWUpKQogICAgIHsK
ICAgICB9CiAKQEAgLTYxLDkgKzUwLDkgQEAgc3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eQogICAgICAgICBvd25lckVsZW1lbnQtPnNldFN5bmNocm9uaXplZExhenlBdHRy
aWJ1dGUoYXR0ck5hbWUsIHZhbHVlKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUgdmFsdWU7
Ci0gICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSA6IDE7Ci0gICAgYm9vbCBpc1ZhbGlkIDogMTsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlOworICAgIGJvb2wgc2hvdWxkU3luY2hyb25pemUg
eyBmYWxzZSB9OworICAgIGJvb2wgaXNWYWxpZCB7IGZhbHNlIH07CiB9OwogCiAvLyBQcm9wZXJ0
eSByZWdpc3RyYXRpb24gaGVscGVycwpAQCAtMTI0LDE5ICsxMTMsMTkgQEAgcHVibGljOiBcCiAg
ICAgeyBcCiAgICAgICAgIGlmIChhdXRvIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojps
b29rdXBXcmFwcGVyPFVzZU93bmVyVHlwZSwgVGVhck9mZlR5cGU+KHRoaXMsIExvd2VyUHJvcGVy
dHkjI1Byb3BlcnR5SW5mbygpKSkgeyBcCiAgICAgICAgICAgICBpZiAod3JhcHBlci0+aXNBbmlt
YXRpbmcoKSkgXAotICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLT5jdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpOyBcCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5
VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsgXAogICAgICAgICB9IFwK
LSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpOyBc
CiAgICAgfSBcCiBcCiAgICAgUHJvcGVydHlUeXBlJiBMb3dlclByb3BlcnR5IyNCYXNlVmFsdWUo
KSBjb25zdCBPdmVycmlkZVNwZWNpZmllciBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBtXyMj
TG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKTsgXAogICAgIH0gXAogXAotICAgIHZv
aWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB0eXBl
LCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVlKSBPdmVycmlkZVNwZWNpZmllciBcCisgICAg
dm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZh
bHVlLCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVlKSBPdmVycmlkZVNwZWNpZmllciBcCiAg
ICAgeyBcCi0gICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlID0gdHlwZTsgXAorICAgICAg
ICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpID0g
dmFsdWU7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuaXNWYWxpZCA9IHZhbGlkVmFsdWU7
IFwKICAgICB9IFwKIFwKQEAgLTE1Niw3ICsxNDUsNyBAQCBwcml2YXRlOiBcCiAgICAgeyBcCiAg
ICAgICAgIGlmICghbV8jI0xvd2VyUHJvcGVydHkuc2hvdWxkU3luY2hyb25pemUpIFwKICAgICAg
ICAgICAgIHJldHVybjsgXAotICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZHUHJvcGVydHlU
cmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcobV8jI0xvd2VyUHJvcGVydHkudmFsdWUpKTsg
XAorICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6dG9TdHJpbmcoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3Bl
cnR5LnZhbHVlKSkpOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnN5bmNocm9uaXplKHRo
aXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7
IFwKICAgICB9IFwKIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBAIHB1YmxpYzoKICAgICB1
c2luZyBQcm9wZXJ0eVR5cGUgPSB0eXBlbmFtZSBQcm9wZXJ0eVRlYXJPZmY6OlByb3BlcnR5VHlw
ZTsKICAgICB1c2luZyBDb250ZW50VHlwZSA9IFByb3BlcnR5VHlwZTsKIAotICAgIHN0YXRpYyBS
ZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlU
eXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4oY29u
dGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0
eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCiAgICAgUmVmPFByb3BlcnR5
VGVhck9mZj4gYmFzZVZhbCgpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KG1fYmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFy
T2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVy
dHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAg
ICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFs
Um9sZSwgbV9iYXNlVmFsdWUpOwogICAgICAgICBtX2Jhc2VWYWwgPSBwcm9wZXJ0eS0+Y3JlYXRl
V2Vha1B0cigpOwogICAgICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAgfQpAQCAtNTMsMzYgKzUz
LDQyIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgIHJldHVy
biAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2ZmKj4obV9hbmltVmFsLmdldCgpKTsKIAotICAg
ICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1W
YWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVh
ck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV9iYXNlVmFsdWUpOwogICAgICAgICBt
X2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICByZXR1cm4gcHJv
cGVydHk7CiAgICAgfQogCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgp
CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIHJldHVybiBt
X2FuaW1hdGVkUHJvcGVydHktPnByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAgICAgIHJldHVybiBt
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVydHlU
eXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3By
b3BlcnR5OworICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBt
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CisgICAgfQorCisgICAgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlU
eXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGlu
ZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwogICAgICAgICBtX2FuaW1hdGVkUHJv
cGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUo
Km5ld0FuaW1WYWwpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG5ld0Fu
aW1WYWwpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNl
dFZhbHVlKG1fcHJvcGVydHkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVl
KG1fYmFzZVZhbHVlKTsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbnVsbHB0cjsKICAg
ICB9CiAKQEAgLTEwNCwxMyArMTEwLDEzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIFNWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgICAg
ICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFu
aW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCisgICAg
ICAgICwgbV9iYXNlVmFsdWUoYmFzZVZhbHVlKQogICAgIHsKICAgICB9CiAKLSAgICBQcm9wZXJ0
eVR5cGUmIG1fcHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX2Jhc2VWYWx1ZTsKICAg
ICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7CiAg
ICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gbV9hbmltVmFsOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgorI2luY2x1
ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIsNTMgKzMzLDU5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYmFzZVZhbHVlKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAgICAgewotICAgICAgICBpZiAobV9hbmlt
YXRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuICptX2FuaW1hdGVkUHJvcGVydHk7Ci0g
ICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBpZiAobV9hbmltYXRlZFZhbHVlKQor
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX2FuaW1hdGVk
VmFsdWUpOworICAgICAgICByZXR1cm4gYmFzZVZhbCgpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5
KQorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0
eVR5cGUmIGJhc2VWYWx1ZSkKICAgICB7Ci0gICAgICAgIG1fcHJvcGVydHkgPSBwcm9wZXJ0eTsK
KyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYmFzZVZhbHVlKSA9IGJhc2VW
YWx1ZTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYW5p
bWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX2FuaW1hdGVkVmFsdWU7IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRT
dGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0
eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3Bl
cnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBj
dXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAg
IHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFZh
bHVlOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgp
IGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgQVNTRVJU
KGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFZhbHVlOworICAgIH0K
KworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9iYXNlVmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBhbmlt
YXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlv
blN0YXJ0ZWQoUmVmUHRyPFNWR1ZhbHVlPiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNT
RVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHkgPSBuZXdBbmltVmFsOworICAgICAgICBtX2FuaW1hdGVkVmFs
dWUgPSBuZXdBbmltVmFsOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAg
IHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1hdGVkUHJv
cGVydHkgPSBudWxscHRyOworICAgICAgICBtX2FuaW1hdGVkVmFsdWUgPSBudWxscHRyOwogICAg
IH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoKQpAQCAtOTksMTYgKzEwNiwxNiBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVk
UHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlU
eXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCi0gICAgICAgICwgbV9hbmltYXRl
ZFByb3BlcnR5KG51bGxwdHIpCisgICAgICAgICwgbV9iYXNlVmFsdWUoYmFzZVZhbHVlKQogICAg
IHsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMobV9iYXNlVmFsdWUsIG1fYmFzZVZhbHVlLT5pczxQ
cm9wZXJ0eVR5cGU+KCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBQcm9wZXJ0eVR5cGUmIG1f
cHJvcGVydHk7Ci0gICAgUHJvcGVydHlUeXBlKiBtX2FuaW1hdGVkUHJvcGVydHk7CisgICAgUmVm
UHRyPFNWR1ZhbHVlPiBtX2Jhc2VWYWx1ZTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fYW5pbWF0
ZWRWYWx1ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBmaW5hbCA6IHB1YmxpYyBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5
VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAgIHsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHku
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
TGlzdFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSw2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBMaXN0TW9kaWZpY2F0aW9uIHsKLSAgICBMaXN0TW9kaWZp
Y2F0aW9uVW5rbm93biA9IDAsCi0gICAgTGlzdE1vZGlmaWNhdGlvbkluc2VydCA9IDEsCi0gICAg
TGlzdE1vZGlmaWNhdGlvblJlcGxhY2UgPSAyLAotICAgIExpc3RNb2RpZmljYXRpb25SZW1vdmUg
PSAzLAotICAgIExpc3RNb2RpZmljYXRpb25BcHBlbmQgPSA0Ci19OwotCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBQcm9wZXJ0eVR5cGU+CiBjbGFzcyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7
CiAKQEAgLTc1LDE5ICs2NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVy
c0FuZFJlc2l6ZShtX3dyYXBwZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAgfQogCi0gICAgdm9pZCBz
ZXRWYWx1ZXNBbmRXcmFwcGVycyhQcm9wZXJ0eVR5cGUqIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSogd3JhcHBlcnMsIGJvb2wgc2hvdWxkT3duVmFsdWVzKQorICAgIHZvaWQgc2V0VmFsdWVzQW5k
V3JhcHBlcnMoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
KiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIGZvciBhbmlt
VmFsIHN1cHBvcnQsIHRvIHN3aXRjaCB0aGUgdW5kZXJseWluZyB2YWx1ZXMgJiB3cmFwcGVycwog
ICAgICAgICAvLyB0byB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZXMsIG9uY2UgYW5pbWF0aW9u
IGZvciBhIGxpc3Qgc3RhcnRzLgogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBB
U1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIEFTU0VSVChtX3JvbGUgPT0gQW5pbVZhbFJvbGUp
OwotICAgICAgICBpZiAobV9vd25zVmFsdWVzKQotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWVz
OwogICAgICAgICBtX3ZhbHVlcyA9IHZhbHVlczsKLSAgICAgICAgbV9vd25zVmFsdWVzID0gc2hv
dWxkT3duVmFsdWVzOwogICAgICAgICBtX3dyYXBwZXJzID0gd3JhcHBlcnM7Ci0gICAgICAgIEFT
U0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFT
U0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAg
IH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKQEAgLTk4LDcgKzg3LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFT
U0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5j
bGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTExMSw3ICsxMDAsNyBA
QCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwog
CiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFy
KCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtMTE5LDcgKzEwOCw3IEBAIHB1
YmxpYzoKICAgICAvLyBTVkdMaXN0OjpudW1iZXJPZkl0ZW1zKCkKICAgICB1bnNpZ25lZCBudW1i
ZXJPZkl0ZW1zKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+c2l6ZSgp
OworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7CiAgICAgfQogCiAgICAg
Ly8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0xMzQsOCArMTIzLDggQEAgcHVibGljOgogICAg
ICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAg
IC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0
IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVj
aWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7Ci0gICAg
ICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTE1MCw3ICsxMzksNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAK
ICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMTU5LDkg
KzE0OCw5IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5n
IGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3Qg
dG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCiAgICAg
ICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKIAotICAgICAgICBtX3ZhbHVlcy0+YXBw
ZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0
eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5k
KG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBA
IC0xNzEsNyArMTYwLDcgQEAgcHVibGljOgogICAgIC8vIFNWR0xpc3Q6OmdldEl0ZW0oKQogICAg
IEV4Y2VwdGlvbk9yPGJvb2w+IGNhbkdldEl0ZW0odW5zaWduZWQgaW5kZXgpCiAgICAgewotICAg
ICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49
IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xODUsNyArMTc0
LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRo
ZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNv
cHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBtX3ZhbHVlcy0+YXQoaW5kZXgpIH07
CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUm
PigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpIH07CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8UmVmPExpc3RJdGVtVGVhck9mZj4+IGdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyhBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkTGlzdCwgdW5zaWduZWQgaW5kZXgpCkBAIC0x
OTksMTMgKzE4OCwxMyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUg
c3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0
ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgogICAgICAgICAvLyBBbnkgY2hhbmdlcyBtYWRlIHRv
IHRoZSBpdGVtIGFyZSBpbW1lZGlhdGVseSByZWZsZWN0ZWQgaW4gdGhlIGxpc3QuCi0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAg
IEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwog
ICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiB3cmFwcGVyID0gc3RhdGljX2Nhc3Q8TGlz
dEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYg
KCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlz
IGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29w
eWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4gb3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0
IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2Fu
IG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QK
ICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBj
YWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAg
ICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVu
ZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAgICAgd3JhcHBlciA9
IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFs
dWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogICAgICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5k
ZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICB9CiAKQEAgLTIyMSw4ICsy
MTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3Ig
ZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgYXBwZW5kZWQgdG8g
dGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMtPnNpemUo
KSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgaWYgKGlu
ZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCisgICAgICAgICAgICBpbmRleCA9IHZhbHVl
c1Byb3BlcnR5KCkuc2l6ZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxy
ZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZv
cmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIGlmICghcHJvY2Vzc0lu
Y29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5kZXgpKSB7CkBAIC0yMzIsNyArMjIxLDcg
QEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRo
ZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBi
ZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBU
aGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRo
ZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAg
ICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1By
b3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3
SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0
ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMjQ4LDEwICsyMzcsMTAgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVj
OiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMs
IHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0g
ICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9
IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChpbmRleCA+IHZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBA
IC0yNjEsNyArMjUwLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBu
ZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRl
eCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAg
IC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlz
IGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBv
ZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbS0+cHJv
cGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4
LCBuZXdJdGVtLT52YWx1ZSgpKTsKIAogICAgICAgICAvLyBTdG9yZSBuZXcgd3JhcHBlciBhdCBw
b3NpdGlvbiAnaW5kZXgnLCBjaGFuZ2UgaXRzIHVuZGVybHlpbmcgdmFsdWUsIHNvIG11dGF0aW9u
cyBvZiBuZXdJdGVtLCBkaXJlY3RseSBhZmZlY3QgdGhlIGl0ZW0gaW4gdGhlIGxpc3QuCiAgICAg
ICAgIG1fd3JhcHBlcnMtPmluc2VydChpbmRleCwgbmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsK
QEAgLTI3OCw3ICsyNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAg
IGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMjk4LDEzICsyODcsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIExpc3RJdGVt
VHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNF
bXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92
ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0
byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
IH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGF0IHRoZSBkZXNp
cmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3
SXRlbTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5
KCkuYXQoaW5kZXgpKSA9IG5ld0l0ZW07CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAg
ICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0zMTksNyArMzA4LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAg
ICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFT
U0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFT
U0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAg
ICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTMyOCw3ICsz
MTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFw
cGVyKG5ld0l0ZW0sICZpbmRleCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVt
KTsKIAotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodmFs
dWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJz
LT5pc0VtcHR5KCkpOwogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4g
b3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5z
IHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEluZGV4U2l6ZUVycm9yIH07CkBAIC0zNDAsNyArMzI5LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
dmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAot
ICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2Uo
KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkgPSBuZXdJdGVtLT52YWx1ZSgp
OwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRy
KCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0zNTUsNyArMzQ0LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRl
eCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVy
dHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJy
b3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM2OCw4ICszNTcsOCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgTGlzdEl0ZW1U
eXBlIG9sZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVt
b3ZlKGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxM
aXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOworICAgICAgICB2YWx1
ZXNQcm9wZXJ0eSgpLnJlbW92ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAg
ICAgICAgIHJldHVybiBXVEZNb3ZlKG9sZEl0ZW0pOwpAQCAtMzg0LDE2ICszNzMsMTYgQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VS
VCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAg
ICAgIC8vIERldGFjaCB0aGUgZXhpc3Rpbmcgd3JhcHBlci4KICAgICAgICAgUmVmUHRyPExpc3RJ
dGVtVGVhck9mZj4gb2xkSXRlbSA9IHN0YXRpY19jYXN0PExpc3RJdGVtVGVhck9mZio+KG1fd3Jh
cHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAgICAgICAgIGlmICghb2xkSXRlbSkKLSAgICAgICAg
ICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVm
aW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAgICAgb2xkSXRlbSA9IExp
c3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVz
UHJvcGVydHkoKS5hdChpbmRleCkpOwogCiAgICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIo
KTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMt
PnJlbW92ZShpbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGluZGV4KTsK
IAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG9sZEl0ZW0ucmVsZWFz
ZU5vbk51bGwoKTsKQEAgLTQxMSw3ICs0MDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJ
bmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRo
ZSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5k
KG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3Jl
YXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZShMaXN0
TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0
ZW0gfTsKQEAgLTQyNiw3ICs0MTUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3
SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5ICs0MjMsMjUgQEAgcHVibGljOgogICAgICAgICBwcm9j
ZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBw
ZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAg
ICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAg
ICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsKICAgICAgICAgbV93
cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gV1RGTW92
ZShuZXdJdGVtKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcygpCisgICAgUmVm
PFNWR1ZhbHVlPiB2YWx1ZXMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVz
KTsKICAgICAgICAgcmV0dXJuICptX3ZhbHVlczsKICAgICB9CiAKKyAgICBQcm9wZXJ0eVR5cGUm
IHZhbHVlc1Byb3BlcnR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV92YWx1ZXMpOwor
ICAgIH0KKwogICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKQEAgLTQ1OSwyMCArNDU0LDEzIEBAIHB1YmxpYzoK
ICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykK
KyAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMpCiAgICAgICAgIDog
bV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9vd25zVmFsdWVzKGZhbHNlKQotICAgICAgICAsIG1f
dmFsdWVzKCZ2YWx1ZXMpCisgICAgICAgICwgbV92YWx1ZXModmFsdWVzKQogICAgICAgICAsIG1f
d3JhcHBlcnMod3JhcHBlcnMpCiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgflNWR0xpc3RQ
cm9wZXJ0eSgpCi0gICAgewotICAgICAgICBpZiAobV9vd25zVmFsdWVzKQotICAgICAgICAgICAg
ZGVsZXRlIG1fdmFsdWVzOwotICAgIH0KLQogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJp
ZGUgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbikK
ICAgICB7CkBAIC00ODMsOCArNDcxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBw
cm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIoUmVmPExpc3RJdGVtVGVhck9mZj4mIG5ld0l0
ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSA9IDA7CiAKICAgICBTVkdQcm9wZXJ0eVJvbGUg
bV9yb2xlOwotICAgIGJvb2wgbV9vd25zVmFsdWVzOwotICAgIFByb3BlcnR5VHlwZSogbV92YWx1
ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlczsKICAgICBMaXN0V3JhcHBlckNhY2hl
KiBtX3dyYXBwZXJzOwogICAgIFdlYWtQdHJGYWN0b3J5PFNWR0xpc3RQcm9wZXJ0eT4gbV93ZWFr
UHRyRmFjdG9yeTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDIyICszNSwyMSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFBy
b3BlcnR5VHlwZT47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IHR5cGVuYW1lIFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpMaXN0V3JhcHBlckNhY2hl
OwogCisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVydHk7CiAgICAgdXNpbmcgQmFzZTo6bV9y
b2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwogICAgIHVzaW5nIEJhc2U6Om1fd3JhcHBl
cnM7CiAKLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5
cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxT
ZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwog
ICAgIH0KIAogICAgIGludCBmaW5kSXRlbShMaXN0SXRlbVRlYXJPZmYqIGl0ZW0pIGNvbnN0CiAg
ICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVy
cyk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMtPnNpemUoKTsKLSAgICAg
ICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzaXpl
ID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlmIChpdGVtID09IG1fd3JhcHBlcnMtPmF0
KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwpAQCAtNjEsMTUgKzYwLDE0IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wg
c2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVz
LT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1By
b3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fd3JhcHBlcnMtPnNpemUoKSk7
CiAKICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVycy0+YXQoaXRlbUluZGV4KTsKICAgICAg
ICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBwZXJzLT5yZW1vdmUoaXRl
bUluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAgICB2
YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgpOwogCiAgICAgICAgIGlmIChzaG91bGRT
eW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0xMTIs
NyArMTEwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBlPihyb2xlLCB2YWx1ZXMs
ICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0
eSkKICAgICB7CkBAIC0xMjksMTggKzEyNywxNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNv
bW1pdENoYW5nZSgpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwog
ICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5n
IHdyYXBwZXJzLCBhcyB0aGUgaW5kZXggaW4gdGhlIHZhbHVlcyBsaXN0IGhhcyBjaGFuZ2VkLgog
ICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NF
UlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFs
dWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpKTsK
ICAgICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHkobV9hbmltYXRlZFByb3BlcnR5LnB0cigp
KTsKLSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5hdChpKSk7CisgICAgICAg
ICAgICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNQcm9wZXJ0eSgpLmF0KGkpKTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdlKCk7CkBAIC0xNjksNyAr
MTY2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gU1ZHUmVjdEVsZW1lbnRzIFNWR0Fu
aW1hdGVkTGVuZ3RoICd3aWR0aCcgcHJvcGVydHkgYmFzZVZhbCBwb2ludHMgdG8gdGhlIHNhbWUg
dGVhciBvZmYgb2JqZWN0CiAgICAgICAgICAgICAvLyB0aGF0J3MgaW5zZXJ0ZWQgaW50byBTVkdU
ZXh0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICd4Jy4gdGV4dEVsZW1lbnQueC5iYXNl
VmFsLmdldEl0ZW0oMCkudmFsdWUgKz0gMTUwIHdvdWxkCiAgICAgICAgICAgICAvLyBtdXRhdGUg
dGhlIHJlY3RFbGVtZW50IHdpZHRoIF9hbmRfIHRoZSB0ZXh0RWxlbWVudCB4IGxpc3QuIFRoYXQn
cyBvYnZpb3VzbHkgd3JvbmcsIHRha2UgY2FyZSBvZiB0aGF0LgotICAgICAgICAgICAgbmV3SXRl
bSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkp
OworICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0t
PnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVh
ck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE5ICsyOCwxOSBAQCBj
bGFzcyBTVkdNYXRyaXhUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWCiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNW
R01hdHJpeFZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUs
ICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOworICAg
ICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnZhbHVlUHJvcGVydHkoKS5zdmdNYXRy
aXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBSZWY8U1ZHTWF0cml4VGVhck9mZj4gcmVzdWx0ID0g
YWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOwogICAgICAgICBwYXJlbnQu
YWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIocmVzdWx0KSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgU1ZHTWF0cml4VmFsdWUmIHByb3Bl
cnR5UmVmZXJlbmNlKCkgZmluYWwgeyByZXR1cm4gbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNl
KCkuc3ZnTWF0cml4KCk7IH0KKyAgICBTVkdNYXRyaXhWYWx1ZSYgdmFsdWVQcm9wZXJ0eSgpIGZp
bmFsIHsgcmV0dXJuIG1fcGFyZW50LT52YWx1ZVByb3BlcnR5KCkuc3ZnTWF0cml4KCk7IH0KIAot
ICAgIHZvaWQgc2V0VmFsdWUoU1ZHTWF0cml4VmFsdWUmIHZhbHVlKSBmaW5hbCB7IG1fcGFyZW50
LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0KKyAgICB2b2lkIHNldFZh
bHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKSBmaW5hbCB7IG1fcGFyZW50LT52YWx1
ZVByb3BlcnR5KCkuc2V0TWF0cml4KHN0YXRpY19jYXN0PFNWR01hdHJpeFZhbHVlJj4oKnZhbHVl
KSk7IH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7Ci0gICAgICAgIG1f
cGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnVwZGF0ZVNWR01hdHJpeCgpOworICAgICAgICBt
X3BhcmVudC0+dmFsdWVQcm9wZXJ0eSgpLnVwZGF0ZVNWR01hdHJpeCgpOwogICAgICAgICBtX3Bh
cmVudC0+Y29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0
eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcgKzY2LDE2IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJu
ICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgdmFsdWVQcm9wZXJ0eSgpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlKTsgfQogICAgIFNWR0Fu
aW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX2FuaW1h
dGVkUHJvcGVydHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShQcm9wZXJ0
eVR5cGUmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KSB7CisgICAg
ICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAg
ICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAgICAgICAgIG1fdmFsdWVJc0Nv
cHkgPSBmYWxzZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2YWx1ZTsKKyAgICAgICAgbV92YWx1ZSA9
IHZhbHVlOwogICAgIH0KIAogICAgIHZvaWQgc2V0QW5pbWF0ZWRQcm9wZXJ0eShTVkdBbmltYXRl
ZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgLy8gaXRlbS52YWx1ZSBzdGlsbCBoYXMgdG8gcmVwb3J0ICc1MCcgYW5kIGl0IGhh
cyB0byBiZSBwb3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0nCiAgICAgICAgIC8vIHcvbyBjaGFuZ2lu
ZyB0aGUgIm5ldyBpdGVtIiAod2l0aCB4PTEwMCkgaW4gdGhlIHRleHQgZWxlbWVudC4KICAgICAg
ICAgLy8gV2hlbmV2ZXIgdGhlIFhNTCBET00gbW9kaWZpZXMgdGhlICJ4IiBhdHRyaWJ1dGUsIGFs
bCBleGlzdGluZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQsIHVzaW5nIHRoaXMgZnVuY3Rpb24uCi0g
ICAgICAgIG1fdmFsdWUgPSBuZXcgUHJvcGVydHlUeXBlKCptX3ZhbHVlKTsKKyAgICAgICAgbV92
YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fdmFs
dWUpKTsKICAgICAgICAgbV92YWx1ZUlzQ29weSA9IHRydWU7CiAgICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTM2LDEwICsxMzYsMTAgQEAgcHVibGljOgog
ICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFBy
b3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlU
eXBlJiB2YWx1ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSog
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3Bl
cnR5KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fdmFsdWUoJnZhbHVlKQor
ICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAgICwgbV92YWx1ZUlzQ29weShmYWxzZSkK
ICAgICB7CiAgICAgfQpAQCAtMTUyLDE3ICsxNTIsMTYgQEAgcHJvdGVjdGVkOgogICAgIFNWR1By
b3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUqIGluaXRpYWxWYWx1ZSkKICAgICAgICAg
OiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAgICAgICAgLCBtX3JvbGUoVW5kZWZpbmVk
Um9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxWYWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUo
KmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAgICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkK
ICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUpCisgICAgICAgICAgICBtX3ZhbHVlID0g
U1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5T
VkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsK
KyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAgICBkZXRhY2hDaGlsZHJlbigp
OwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICB2
b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3NiwxMCArMTc1LDEwIEBAIHByb3RlY3RlZDoKIAog
ICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBtX2FuaW1hdGVkUHJvcGVydHk7CiAgICAg
U1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAg
UmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZlY3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5
VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJv
cGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIGJvb2wgbV92YWx1ZUlzQ29weTsK
KyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9OwogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwyMCArMjAsNDggQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJRdWFs
aWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gTGlzdE1vZGlmaWNhdGlvbiB7CisgICAg
TGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQg
PSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKKyAgICBMaXN0TW9kaWZpY2F0
aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAorfTsKKyAgICAK
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
cyB7IH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxib29sPiB7CiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0
aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmcg
PT0gInRydWUiOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0
dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CitzdHJ1Y3Qg
U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+IHsKKyAgICBzdGF0aWMgQ29sb3IgaW5pdGlhbFZhbHVl
KCkgeyByZXR1cm4gQ29sb3IoKTsgfQorICAgIHN0YXRpYyBDb2xvciBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0
cmlwV2hpdGVTcGFjZSgpKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbG9yPiBwYXJz
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAg
ICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCkpOworICAgICAgICByZXR1cm4gY29sb3IuaXNWYWxpZCgpID8gY29sb3IgOiBzdGQ6
Om9wdGlvbmFsPENvbG9yPigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IENvbG9yJiB0eXBlKSB7IHJldHVybiB0eXBlLnNlcmlhbGl6ZWQoKTsgfQorfTsKKwordGVt
cGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVkPiB7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9
CkBAIC00MiwxOSArNzAsMTA5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czx1bnNpZ25lZD4g
ewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGludD4gewogICAgIHN0YXRp
YyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBpbnQgZnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVybiBzdHJpbmcudG9JbnRTdHJpY3QoKTsg
fQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6
bnVtYmVyKHR5cGUpOyB9CiB9OworICAgIAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIGludD4+IHsKKyAgICBzdGF0aWMgc3RkOjpwYWlyPGludCwg
aW50PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgc3RkOjpwYWly
PGludCwgaW50PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1iZXIgPSAwOworICAgICAgICBpZiAo
IXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJzdE51bWJlciwgc2Vjb25kTnVt
YmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIAorICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmlyc3ROdW1iZXIpKSwgc3Rh
dGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vjb25kTnVtYmVyKSkpOworICAgIH0KK307CiAKIHRlbXBs
YXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD4gewogICAgIHN0YXRpYyBmbG9h
dCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGZsb2F0IGZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBmbG9hdCB0eXBlID0gMDsK
KyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIHR5cGUpID8gdHlw
ZSA6IDA7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBm
bG9hdCBudW1iZXI7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5n
LCBudW1iZXIpID8gbnVtYmVyIDogc3RkOjpvcHRpb25hbDxmbG9hdD4oKTsKKyAgICB9CiAgICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhmbG9hdCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJl
cih0eXBlKTsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0
ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiB7CisgICAgc3RhdGljIHN0ZDo6cGFpcjxmbG9hdCwgZmxv
YXQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1iZXIgPSAwOworICAgICAgICBp
ZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJzdE51bWJlciwgc2Vjb25k
TnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpOworICAgIH0KK307CisKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50PiB7CisgICAgc3RhdGlj
IEZsb2F0UG9pbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxvYXRQb2ludCgpOyB9CisgICAg
c3RhdGljIEZsb2F0UG9pbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7
CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgICAgIHJldHVybiBwYXJzZVBvaW50KHN0
cmluZywgcG9pbnQpID8gcG9pbnQgOiBGbG9hdFBvaW50KCk7CisgICAgfQorICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAg
ICAgIHJldHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8gcG9pbnQgOiBzdGQ6Om9wdGlv
bmFsPEZsb2F0UG9pbnQ+KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgRmxvYXRQb2ludCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnkoKSk7
CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgfQorfTsKKwordGVtcGxh
dGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4geworICAgIHN0YXRpYyBG
bG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICBzdGF0
aWMgRmxvYXRSZWN0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAg
ICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJl
Y3QpID8gcmVjdCA6IEZsb2F0UmVjdCgpOworICAgICAgICAKKyAgICB9CisgICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAg
cmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IHN0ZDo6b3B0aW9uYWw8Rmxv
YXRSZWN0PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0
UmVjdCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnkoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUu
d2lkdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxTdHJpbmc+IHsKICAgICBzdGF0aWMgU3RyaW5nIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFN0
cmluZygpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHR5cGUp
IHsgcmV0dXJuIHR5cGU7IH0KKyAgICBzdGF0aWMgU3RyaW5nIGZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEVudW1UeXBlPgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGlj
TGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5
VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIHB1YmxpYzoKICAgICB1
c2luZyBMaXN0SXRlbVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0
eVR5cGU+OjpMaXN0SXRlbVRlYXJPZmY7CiAKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAg
dXNpbmcgQmFzZTo6bV92YWx1ZXM7CisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVydHk7CiAK
ICAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMpCiAgICAgewpAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHU3Rh
dGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoVW5kZWZpbmVkUm9sZSwg
dmFsdWVzLCBudWxscHRyKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoKmNvbnRleHRFbGVt
ZW50KQogICAgIHsKQEAgLTg5LDggKzg5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBjb21t
aXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAg
ICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAgICAg
dmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudCk7CiAgICAgfQog
CiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlw
ZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQgYXJlIG5vdCBhc3NvY2lh
dGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwgbm9yIHdpdGggYSBYTUwgRE9N
IGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRy
YW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQ29udGV4dEVsZW1lbnQmIGNv
bnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQor
ICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2
YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2NvbnRleHRFbGVtZW50LmdldCgpLT4qbV91cGRh
dGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4
dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRo
b2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZihDb250ZXh0RWxlbWVudCYg
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRo
b2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5VGVhck9mZihVbmRlZmluZWRSb2xlLCB2YWx1
ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUpCiAgICAgICAgICwgbV9jb250ZXh0RWxlbWVu
dCgmY29udGV4dEVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333646</attachid>
            <date>2018-02-12 16:48:53 -0800</date>
            <delta_ts>2018-02-13 14:45:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180212164852.patch</filename>
            <type>text/plain</type>
            <size>362278</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5NyBAQAorMjAxOC0wMi0xMiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBub3Qg
bG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVy
ZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50
IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0aGlz
IHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2ggaXMg
YSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRhIHR5
cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRyaWJ1
dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlwZSB0
byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAgICAg
IGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBkYXRh
IHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRvIGJl
IG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSBT
VkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9sZCBS
ZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6
Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OlNW
R0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1Rh
cmdldCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VOdW1i
ZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNl
VmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFk
ZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0
cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5n
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxl
bmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RS
YXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24pOgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6
OlNWR0VsbGlwc2VFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4
RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVp
bGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQpOgor
ICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
ZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRW
YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVTcGVj
aWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToKKyAg
ICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0
aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhM
aXN0VmFsdWVzPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhWYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+OjpwYXJz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46
OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTGlzdFZhbHVlcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29weSBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6
OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFzdFBy
b3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdNYXJrZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtl
clVuaXRzVHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmhpZ2hl
c3RFbnVtVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1WYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRU
eXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRzPFNW
R01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAgICog
c3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50
OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4
OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRCKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0ZUZy
b21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051bWJl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1i
ZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVl
cz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRzTGlz
dEZyb21TVkdEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVhbTo6
YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjppc0VtcHR5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3Ry
ZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVE
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVE
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0
OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1
aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdFNv
dXJjZTo6cGFyc2VTVkdTZWdtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdFNvdXJjZTo6bmV4dENvbW1hbmQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAgICAo
V2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1BvaW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50
OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZH
UG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExp
c3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50
TGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAg
ICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlF
bGVtZW50Ojpwb2ludExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbyk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1Jl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0Ojpz
ZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1JlY3RUcmFpdHMuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hl
Y2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAgICog
c3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdM
aXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVz
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6
bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06
OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zv
cm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3Qu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0
KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJp
bmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0
b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVs
ZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAgICAg
IChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6OnBhcnNlVmlzaXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6aXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1ZhbHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6U1ZH
VmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdT
cGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6
OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZp
ZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0
aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjph
bmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3Vy
cmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFy
T2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Rh
dGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpzZXRWYWx1ZXNB
bmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFyVmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXNBbmRX
cmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Om51bWJlck9mSXRl
bXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXpl
VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZh
bHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2Fu
R2V0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVzQW5k
V3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVt
QmVmb3JlVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5zZXJ0
SXRlbUJlZm9yZVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6Y2FuUmVwbGFjZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5OjpyZXBsYWNlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OnJlcGxhY2VJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjYW5SZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXNQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQcm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21M
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJP
ZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZVByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46Omlu
aXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJl
Y3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTEyICBN
YXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIyODM3Ni4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjA3MSw3ICsy
MDcxLDYgQEAgc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKIHN2Zy9TVkdB
bmltYXRlZFJlY3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCiBzdmcvU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmNwcAotc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKIHN2Zy9TVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5jcHAKIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAogc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuY3BwCkBAIC0yMTM1LDYgKzIxMzQsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2MzIsNyArMTYzMiwxNSBAQAogCQk1NTUwQ0I0MjFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1
MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTUxMzAwMTFFN0NDQ0NCMDBBNjlFMzgg
LyogRGVjb2RpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1Qjg3
RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyog
SW1hZ2VEZWNvZGVyQ0cuaCAqLzsgfTsKKwkJNTU2MjdCNzgyMDI5MkJGNDAwMkQzOTdEIC8qIFNW
R0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU3NkE1NjUxRDg4QTcw
ODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5
OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RjIyNDMxREQzQjNCOTAwRTkyREEz
IC8qIFNWR0FuZ2xlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZh
bHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
OUMzNjkxRERCODZEMzAwRkVGQjI5IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5QzIwMjU0NjA1
MDA0RDc1RjQgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQ
YXRoU2VnTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlD
MzZCMUREQjg3MUMwMEZFRkIyOSAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RTIwMjU0NjJCMDA0
RDc1RjQgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFERDNEMUM1MDBFOTJEQTMgLyog
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUYyMDI1NDY3NTAwNEQ3NUY0IC8qIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDMzlDMzZEMUREQjhCQjAwMEZFRkIyOSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTVBMzM2RjcxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCAqLzsgfTsKIAkJNTVBMzM2RjkxRDgyMUUzQzAwMjJDNEM3IC8qIElt
YWdlQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUFGMTRF
NjFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElS
ZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xOTMwLDcgKzE5MzgsNyBAQAogCQk3MTU1NkNCRDFGOUYwQTQ5MDBFNzhEMDggLyogSlNB
bmltYXRpb25FZmZlY3RUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxNTU2Q0I5MUY5RjA5RkQwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVj
dFRpbWluZy5oICovOyB9OwogCQk3MTU1NkNCRTFGOUYwQTQ5MDBFNzhEMDggLyogSlNLZXlmcmFt
ZUVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzE1NTZDQjcxRjlGMDlGQzAwRTc4RDA4IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCAqLzsgfTsKIAkJ
NzFBMUI2MDgxREVFNUFENzAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6
ZWQtc3RyaW5ncy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFBMUI2MDYxREVFNUE4MjAwNzNCQ0ZCIC8qIG1vZGVybi1tZWRpYS1jb250cm9scy1s
b2NhbGl6ZWQtc3RyaW5ncy5qcyAqLzsgfTsKLQkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8q
IFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
Ki87IH07CisJCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE1N0RGMDE1
NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxQzkxNjA4MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcxRENCNzAyMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21B
bmRQYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcx
RENCNzAwMTU2ODE5NzYwMDg2MjI3MSAvKiBKU1NWR1pvb21BbmRQYW4uaCAqLzsgfTsKIAkJNzFF
MjE4M0ExNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRTIxODM4MTczNTlGQjgwMDZFNkU0
RCAvKiBQbHVnSW5zUmVzb3VyY2VzLmggKi87IH07CkBAIC0yMDMyLDcgKzIwNDAsNyBAQAogCQk3
QzMwRDk4NjFGODE1QUVDMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMEQ5ODExRjgxNUFDMTAwMjY4MzU2
IC8qIEpTQWJvcnRTaWduYWwuaCAqLzsgfTsKIAkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8q
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzMzBBMDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdDMzMwQTA4MURGOUY5NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9uT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Mz
MzBBMDYxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggKi87IH07Ci0JCTdD
MzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBG
RUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyB9OworCQk3QzM5QzM2NTFEREE4NjUy
MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzM5QzM3NzFEREJFMTcwMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMz
NjcxRERCODJDRjAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNBOTFFNjFDOTYzQjg4MDBE
MUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNBOTFFNTFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJv
YXJkQWNjZXNzUG9saWN5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MzQjc5NzExOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzNC
Nzk2RjE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLzsgfTsKQEAg
LTIxNjQsMTAgKzIxNzIsOSBAQAogCQk3Q0UxOTE3OTFGMkFCRTcxMDAyNzJGNzggLyogSlNGZXRj
aFJlcXVlc3RNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0UxOTE2QzFGMkFCNzBBMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RNb2RlLmggKi87
IH07CiAJCTdDRTE5MTdCMUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0UxOTE2
QTFGMkFCNzA2MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oICovOyB9OwogCQk3
Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBT
VkdQb2ludC5oICovOyB9OwotCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NF
NThENEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLzsgfTsKIAkJN0NFNThE
NTAxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051
bWJlci5oICovOyB9OwotCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3Jt
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwotCQk3
Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1
MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyB9OworCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIg
LyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdD
RTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUy
IC8qIFNWR01hdHJpeFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNjgzNDIxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRl
c2NyaXB0b3IuY3BwICovOyB9OwogCQk3Q0U2ODM0NTE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NFNjgzNDMxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0U2ODM0NzE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVz
Y3JpcHRvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIzMDksNyArMjMxNiw3IEBACiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3MjM3QyAv
KiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgxREE5RjFC
NjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyogRXZlbnRN
b2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFOTAyNjFF
MzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07Ci0JCTg0MTlEMkE3
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8q
IFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CisJCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAv
KiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQx
OUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJE
MDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwogCQk4NDE5RDJB
RDEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkFCMTIwRDkyRkMwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oICovOyB9OwogCQk4NDE5RDJCQTEyMEUw
Qzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkI4MTIwRTBDNzYwMDE0MUY4RiAvKiBT
VkdQYXRoU3RyaW5nQnVpbGRlci5oICovOyB9OwpAQCAtMjMzNiw3ICsyMzQzLDcgQEAKIAkJODQ3
MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAwRDNBOUM5
IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIg
LyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07Ci0JCTg0
NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIw
MiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKKwkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAy
IC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0NzZD
OUYwMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5oICovOyB9OwogCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVH
YXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9Owog
CQk4NDgyQjc0NjExOThDMzU0MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRDOUQzMDBE
NDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi87IH07CkBAIC0zMjgxLDkgKzMyODgsOSBAQAog
CQlCMjIyN0E0QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhCNTBEMDBCRjIw
MDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmggKi87IH07CiAJCUIyMjI3QTRFMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJl
ckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEJCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0
aWxpdGllcy5oICovOyB9OworCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTkwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0
aEVsZW1lbnQuaCAqLzsgfTsKLQkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhT
ZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3
OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IH07CisJCUIyMjI3QTVCMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNl
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIy
MjI3QTVFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDODBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZ0FyYy5oICovOyB9OwogCQlCMjIyN0E2MjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4Q0MwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBh
dGguaCAqLzsgfTsKIAkJQjIyMjdBNjUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyMjI3OENGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmggKi87
IH07CkBAIC03MjgzLDcgKzcyOTAsNiBAQAogCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM5RDMzNDIxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdG9yRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRvckZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBMEYwQjAxM0FDN0Q2RDAwQTVGMEE3IC8qIFNWR0Fu
aW1hdGVkTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNBMEYw
QjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRD
b2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRC
OCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODE3NCwxMCArODE4MCwxMyBAQAogCQk1NTBB
MEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTQ2
NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1hZ2VTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTQ2NzU3
ODFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU1MDRFOTQyMDJDREZEMjAw
NTA3QzczIC8qIFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZh
bHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTBDQjQxMUU5NTVFM0Mw
MDExMUFBMCAvKiBJbWFnZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MTMwMDAxRTdD
Q0NDQTAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEZWNvZGluZ09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTU1Qjg3RUExQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckNHLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdl
RGVjb2RlckNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2Rl
ckNHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1NjI3Qjc2MjAyOEVEQzQwMDJE
Mzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xpc3RWYWx1ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8q
IFNWR01hcmtlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01h
cmtlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYyMUQ4OEE3
MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEltYWdlRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODE4NSw2ICs4MTk0LDcgQEAKIAkJNTVBRjE0RTMxRUFBQzU5QjAwMjZFRUFB
IC8qIFVUSVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUSVJlZ2lzdHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8q
IFVUSVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUSVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1RDQwOEY3MUE3QzYzMTgwMEM3ODQ1MCAvKiBTVkdJbWFnZUNs
aWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW1hZ2VDbGllbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3
QiAvKiBTVkdWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2
MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTkxRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2Jj
Q2ZiUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWVzQ2JjQ2Zi
UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDVCMUU1MzkzNzkw
MDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0Flc0NiY0NmYlBhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NDY2LDcgKzk0NzYsNiBAQAogCQk3Q0UxOTE2RTFGMkFCNzBEMDAyNzJGN0Ig
LyogSlNDYWNoZVF1ZXJ5T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhY2hlUXVl
cnlPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFMTkxNkYxRjJB
QjcwRjAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDRTU4RDQ5MURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdSZWN0VHJhaXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTnVtYmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUxMUREN0IwOTMwMDEyODU1MiAvKiBTVkdMZW5n
dGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGVuZ3RoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTU4RDUyMUREN0IwOTMwMDEyODU1MiAvKiBTVkdM
ZW5ndGhWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdM
ZW5ndGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQzMSw3ICsy
MjQ0MCw2IEBACiAJCQkJNzE1N0YwNjExNTBCNjU2NDAwNkVBQUJEIC8qIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAgKi8sCiAJCQkJMDgyNTA5MzgxMjhCRDREODAwRTJFRDhFIC8qIFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdC5oICovLAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsICovLAotCQkJCTQzQTBGMEI1MTNBQ0NDRkYw
MEE1RjBBNyAvKiBTVkdBbmltYXRlZFR5cGUuY3BwICovLAogCQkJCTQzOUQzMzQwMTNBNjkxMUMw
MEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGUuaCAqLywKIAkJCQk4MzZGQkNFOTE3OEMxMTMyMDBC
MjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovLAogCQkJCTQzOUQzMzQxMTNB
NjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovLApAQCAtMjI2MzIs
MTEgKzIyNjQwLDE0IEBACiAJCQkJQjIyMjc4QTUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVF
bGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBNjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVs
ZW1lbnQuaCAqLywKIAkJCQlCMjIyNzhBNzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1l
bnQuaWRsICovLAorCQkJCTU1NTA0RTk0MjAyQ0RGRDIwMDUwN0M3MyAvKiBTVkdMaXN0VmFsdWVz
LmNwcCAqLywKKwkJCQk1NTYyN0I3NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5o
ICovLAogCQkJCUIyMjI3OEFBMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuY3BwICov
LAogCQkJCUIyMjI3OEFCMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCAqLywKIAkJ
CQlCMjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQjIyMjc4QUUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCAqLywKIAkJ
CQlCMjIyNzhBRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5pZGwgKi8sCisJ
CQkJNTU3NTA1NkMxRTUzQjMwQzAwOERFMzBBIC8qIFNWR01hcmtlclR5cGVzLmggKi8sCiAJCQkJ
QjIyMjc4QjAwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzhCMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaCAqLywKIAkJCQlCMjIy
NzhCMjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuaWRsICovLApAQCAtMjI3NzAs
NyArMjI3ODEsNiBAQAogCQkJCUIyMjI3OTA3MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxl
bWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5MDgwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVt
ZW50LmggKi8sCiAJCQkJQjIyMjc5MDkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50
LmlkbCAqLywKLQkJCQk3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5o
ICovLAogCQkJCUIyMjI3OTBBMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQu
aCAqLywKIAkJCQlCMjIyNzkwQjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50
LmlkbCAqLywKIAkJCQlCMjIyNzkwQzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHU2NyaXB0RWxlbWVu
dC5jcHAgKi8sCkBAIC0yMjg0Nyw2ICsyMjg1Nyw3IEBACiAJCQkJQjIyMjc5NTYwRDAwQkYyMTAw
NzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OTU3MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdVc2VFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NTgwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1VzZUVsZW1lbnQuaWRsICovLAorCQkJCTU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAv
KiBTVkdWYWx1ZS5oICovLAogCQkJCUIyMjI3OTU5MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3
RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NUEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdF
bGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NUIwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVt
ZW50LmlkbCAqLywKQEAgLTI5NjkzLDYgKzI5NzA0LDcgQEAKIAkJCQk2NTY1M0YyRTBEOTcyN0Qy
MDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNEQ5
MTJCODEzQ0E5QTY5MDBEMjE5MTUgLyogU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NThCNjk5OTIwMjU0NUFDMDA0RDc1RjQgLyogU1ZHQW5nbGVWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0EwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4N0I4NDk2MTI3MkNFQzgwMEEx
NDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU3OTcwOTEy
NzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5ODA0LDYgKzI5ODE2LDcgQEAKIAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
TGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA3NjQ0MTI4Mjg1NTYwMDdDNjNC
QSAvKiBTVkdMaXN0UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA5MTI2RUYx
REIwMDk3OEY3QSAvKiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBNDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJr
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODE2LDYgKzI5ODI5LDcgQEAKIAkJCQlC
MjIyN0E0RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUIyMDI1NDVFQTAwNEQ3NUY0IC8qIFNWR051bWJlckxp
c3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0EwRTM2MTNBN0Q3
NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QzY3
ODREMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTg1NCw2ICsyOTg2OCw3IEBACiAJCQkJQjIyMjdBODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhdGhTZWdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlFNjExREY2QTBCMDA1NTVC
MDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEI2Qjk3
ODEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhT
ZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODJERTQyRDEy
OTI2MjE2MDBEOTIzREYgLyogU1ZHUGF0aFNlZ1dpdGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI5ODY1LDEwICsyOTg4MCwxMiBAQAogCQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENEExREQ2NEE1
QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4QzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5
RDIwMjU0NjEyMDA0RDc1RjQgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0E4RjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTkxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bv
bHlsaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2
OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4OEEwRTBBMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxREQ0OUMxM0JBMUE2MDAwREM3NjI3IC8qIFNWR1Byb3Bl
cnR5SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEIxMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg3Niw3ICsyOTg5Myw2
IEBACiAJCQkJQjIyMjdBOUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNW
R1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdSZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0NFNThENEUxREQ2OTRGRTAwMTI4
NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE5N0IxODBDMTUwNjM1
MzIwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FBMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzIyNzQ3OTBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjk5MjEsNiArMjk5MzcsNyBAQAogCQkJCUIyMjI3QURBMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0FERDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1MaXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThENTgxREQ3RDk2RDAwMTI4
NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFMjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHVFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QUU1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUU3BhbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjk5MjgsNiArMjk5NDUsNyBAQAogCQkJCTM3QzczOEVEMUVEQkQ1QkMwMDNGMkIwQiAv
KiBTVkdVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRUEwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1VSSVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RUQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1OEI2OTk4MjAyNTQ1NkQwMDRENzVGNCAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjIyMjdBRjAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0FGMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld1NwZWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdQYXRoRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdQYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTYgKzEw
MCwxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBhdGhFbGVtZW50KFNWR0VsZW1lCiAKIHN0YXRp
YyBQYXRoIHBhdGhGcm9tUG9seWdvbkVsZW1lbnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5p
bWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZH
UG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlc1Byb3BlcnR5
KCk7CiAgICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBQYXRoIHBhdGg7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0KCkpOworICAgIHBhdGgu
bW92ZVRvKHBvaW50cy5maXJzdFByb3BlcnR5KCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBv
aW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5l
VG8ocG9pbnRzLnByb3BlcnR5QXQoaSkpOwogCiAgICAgcGF0aC5jbG9zZVN1YnBhdGgoKTsKICAg
ICByZXR1cm4gcGF0aDsKQEAgLTExNywxNiArMTE3LDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9t
UG9seWdvbkVsZW1lbnQoU1ZHRWwKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5bGluZUVsZW1l
bnQoU1ZHRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxT
VkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlcygpOwor
ICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCku
YW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1v
dmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVy
dHkoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2lu
dHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7
CiAgICAgcmV0dXJuIHBhdGg7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDE1
ICsxNjMsMTUgQEAgdm9pZCBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aQogc3Rh
dGljIGlubGluZSB2b2lkIHVwZGF0ZUNoYXJhY3RlckRhdGEodW5zaWduZWQgaSwgZmxvYXQmIGxh
c3RSb3RhdGlvbiwgU1ZHQ2hhcmFjdGVyRGF0YSYgZGF0YSwgY29uc3QgU1ZHTGVuZ3RoQ29udGV4
dCYgbGVuZ3RoQ29udGV4dCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeExpc3QsIGNvbnN0
IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHlMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBk
eExpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR5TGlzdCwgY29uc3QgU1ZHTnVtYmVy
TGlzdFZhbHVlcyogcm90YXRlTGlzdCkKIHsKICAgICBpZiAoeExpc3QpCi0gICAgICAgIGRhdGEu
eCA9IHhMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS54ID0g
eExpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHlMaXN0
KQotICAgICAgICBkYXRhLnkgPSB5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQp
OwogICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5wcm9wZXJ0eUF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChkeUxpc3QpCi0gICAgICAgIGRhdGEuZHkg
PSBkeUxpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmIChyb3Rh
dGVMaXN0KSB7Ci0gICAgICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+YXQoaSk7CisgICAg
ICAgIGRhdGEucm90YXRlID0gcm90YXRlTGlzdC0+cHJvcGVydHlBdChpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQy
LDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5n
bGUoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3Jl
YXRlKGNvbnN0IFNWR0FuZ2xlVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHQW5nbGU+PiBj
cmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
aW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyArNTEsNyBAQCBwdWJsaWM6CiAK
ICAgICBTVkdBbmdsZVZhbHVlOjpUeXBlIHVuaXRUeXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlKHZh
bHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlRm9yQmluZGluZ3Mo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZSgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lm
aWVkVW5pdHMpCkBAIC04MCw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVJblNwZWNp
ZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIHZhbHVlUHJvcGVydHko
KS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtODgs
NyArODMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRz
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlSW5TcGVj
aWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTk2LDcgKzkxLDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKICAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIApAQCAtMTA2LDcgKzEwMSw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVl
QXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUFzU3RyaW5n
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbmV3VmFsdWVTcGVjaWZpZWRVbml0
cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpA
QCAtMTE0LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRU
eXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjcsNyAr
MTIyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVu
aXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuY29u
dmVydFRvU3BlY2lmaWVkVW5pdHModW5pdFR5cGUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMzYs
NyArMTMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVl
PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwx
MSArMTQwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5n
bGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdB
bmdsZShjb25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjQsNyArMjI0LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZQog
ICAgIGlmICghbV9hbmltYXRlZFR5cGUpCiAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gYW5pbWF0
b3ItPmNvbnN0cnVjdEZyb21TdHJpbmcoYmFzZVZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIG1f
YW5pbWF0ZWRUeXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7
CisgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5wYXJzZShhdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUp
OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0KFNWR0Vs
ZW1lbnQmIHRhcmdldEVsZW1lbnQsIENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCkBAIC0zNDQsMTQgKzM0NCwxNCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXBw
bHlSZXN1bHRzCiAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgewogICAg
ICAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRoLgogICAgICAgICAvLyBD
b252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0cmluZyBhbmQgYXBwbHkg
aXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5zdGFuY2VzLgotICAgICAg
ICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBh
cHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdldEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5kIHRoZSBhbmltYXRpb24g
cHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KICAgICBTaG91bGRBcHBseUFuaW1h
dGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRhcmdldEVsZW1lbnQuZ2V0
KCksIGF0dHJpYnV0ZU5hbWUpOwogICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENT
U0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2Vz
KCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0
YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7
CiAKICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAvLyBB
dCB0aGlzIHBvaW50IHRoZSBTVkcgRE9NIHZhbHVlcyBhcmUgYWxyZWFkeSBjaGFuZ2VkLCB1bmxp
a2UgZm9yIENTUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDMxICsxMzYs
NiBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojp1cGRhdGVBbmltCiAgICAgdXBkYXRl
QW5pbWF0aW9uTW9kZSgpOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmlu
ZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYgKHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdW
aWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOwotICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1
cGNvbnZlcnRlZENoYXJhY3RlcnM7Ci0gICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVu
Z3RoKCk7Ci0gICAgCi0gICAgaWYgKCFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZmxvYXQgeCA9IDA7Ci0gICAgaWYgKCFw
YXJzZU51bWJlcihjdXIsIGVuZCwgeCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBmbG9hdCB5ID0gMDsKLSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHBvaW50ID0gRmxvYXRQb2ludCh4LCB5KTsKLSAg
ICAKLSAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyBleGNlcHQgc3BhY2VzIGF0IHRoZSBlbmQKLSAg
ICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7Ci19Ci0gICAgCiB2b2lk
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSgpCiB7CiAgICAgaWYg
KCFoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEFuZ2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMjIgKzMyLDEyIEBAIFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6U1ZHQW5pbWF0ZWRBbmcKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6bWFrZV91bmlx
dWU8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKSk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQYWlyID0gYW5pbWF0ZWRUeXBlLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0KLSAgICBT
VkdBbmdsZVZhbHVlIGFuZ2xlOwotICAgIFNWR01hcmtlck9yaWVudFR5cGUgb3JpZW50VHlwZSA9
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmlu
ZywgYW5nbGUpOwotICAgIGlmIChvcmllbnRUeXBlID4gMCkKLSAgICAgICAgYW5pbWF0ZWRQYWly
LnNlY29uZCA9IG9yaWVudFR5cGU7Ci0gICAgaWYgKG9yaWVudFR5cGUgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgIGFuaW1hdGVkUGFpci5maXJzdCA9IGFuZ2xlOwotCi0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZH
UHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj46OmZyb21T
dHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1h
dGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01Nyw3ICs0
Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdG9wQW5pbVYKIAogdm9pZCBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5
cGU6OmFuZ2xlQW5kRW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5p
bWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03
NSwxMyArNjUsMTMgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uID0gZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRv
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVt
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOwogICAgIC8v
IE9ubHkgcmVzcGVjdCBieSBhbmltYXRpb25zLCBpZiBmcm9tIGFuZCBieSBhcmUgYm90aCBzcGVj
aWZpZWQgaW4gYW5nbGVzIChhbmQgbm90IGVnLiAnYXV0bycpLgotICAgIGlmIChmcm9tQW5nbGVB
bmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCB8fCBm
cm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisg
ICAgaWYgKGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uIHx8IGZyb21FbnVtZXJhdGlv
biAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnN0IGF1
dG8mIGZyb21BbmdsZSA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgIGF1dG8m
IHRvQW5nbGUgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CiAgICAgdG9BbmdsZS5zZXRW
YWx1ZSh0b0FuZ2xlLnZhbHVlKCkgKyBmcm9tQW5nbGUudmFsdWUoKSk7CiB9CiAKQEAgLTkwLDQ4
ICs4MCw0OSBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5hbmds
ZUFuZEVudW1lcmF0aW9uKCkgOiBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0
byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAg
ICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24gPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIGFuaW1hdGVkQW5nbGVB
bmRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUFuZ2xlID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigq
YW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1
ZXNbMV0pOworICAgIGF1dG8mIHRvQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFs
dWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEFuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVW
YWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZEVudW1lcmF0
aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAg
ICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24p
IHsKICAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIC0gbm8gbGluZWFyIGludGVycG9sYXRp
b24gcG9zc2libGUgYmV0d2VlbiB2YWx1ZXMgKGUuZy4gYXV0byB0byBhbmdsZSkuCiAgICAgICAg
IGlmIChwZXJjZW50YWdlIDwgMC41ZikgewotICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsKLSAgICAg
ICAgICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCi0gICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0ID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgICAgICBhbmltYXRl
ZEVudW1lcmF0aW9uID0gZnJvbUVudW1lcmF0aW9uOworICAgICAgICAgICAgaWYgKGZyb21FbnVt
ZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlID0gZnJvbUFuZ2xlOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAg
ICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSB0b0Fu
Z2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOwotICAgICAgICBpZiAodG9BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHRvRW51bWVyYXRpb247CisgICAgICAgIGlm
ICh0b0VudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgYW5p
bWF0ZWRBbmdsZSA9IHRvQW5nbGU7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFuaW1hdGVk
QW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICAgICAgICAgIGFuaW1h
dGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKSB7
CisgICAgaWYgKGZyb21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgewogICAg
ICAgICAvLyBSZWd1bGFyIGZyb20gYW5nbGUgdG8gYW5nbGUgYW5pbWF0aW9uLCB3aXRoIHN1cHBv
cnQgZm9yIHNtb290aCBpbnRlcnBvbGF0aW9uLCBhbmQgYWRkaXRpdmUgYW5kIGFjY3VtdWxhdGVk
IGFuaW1hdGlvbi4KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9
IFNWR01hcmtlck9yaWVudEFuZ2xlOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZH
TWFya2VyT3JpZW50QW5nbGU7CiAKLSAgICAgICAgYXV0byYgYW5pbWF0ZWRTVkdBbmdsZSA9IGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKLSAgICAgICAgY29uc3QgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25TVkdBbmdsZSA9IHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJh
dGlvbi5maXJzdDsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZSA9IGFuaW1hdGVkU1ZHQW5n
bGUudmFsdWUoKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0LnZhbHVlKCksIHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgpLCB0b0F0RW5k
T2ZEdXJhdGlvblNWR0FuZ2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGUpOwotICAgICAgICBhbmlt
YXRlZFNWR0FuZ2xlLnNldFZhbHVlKGFuaW1hdGVkQW5nbGUpOworICAgICAgICBmbG9hdCBhbmlt
YXRlZEFuZ2xlVmFsdWUgPSBhbmltYXRlZEFuZ2xlLnZhbHVlKCk7CisgICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmcm9tQW5nbGUudmFsdWUoKSwgdG9BbmdsZS52YWx1ZSgpLCB0b0F0RW5kT2ZEdXJhdGlvbkFu
Z2xlLnZhbHVlKCksIGFuaW1hdGVkQW5nbGVWYWx1ZSk7CisgICAgICAgIGFuaW1hdGVkQW5nbGUu
c2V0VmFsdWUoYW5pbWF0ZWRBbmdsZVZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIC8vIGF1dG8sIGF1dG8tc3RhcnQtcmV2ZXJzZSwgb3IgdW5rbm93bi4KLSAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgYW5pbWF0ZWRBbmds
ZS5zZXRWYWx1ZSgwKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKLSAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZDsK
KyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG8gfHwgZnJvbUVu
dW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisgICAgICAgIGFu
aW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CiAgICAgZWxzZQotICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50VW5rbm93
bjsKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVudFVua25vd247
CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2Uo
Y29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OlNW
R0FuaW1hdGVkQgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9v
bGVhbihzdGQ6Om1ha2VfdW5pcXVlPGJvb2w+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+Ym9vbGVh
bigpID0gKHN0cmluZyA9PSAidHJ1ZSIpOyAvLyB3YXQ/Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
Ym9vbD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0
b3BBbmkKIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmJv
b2xlYW4pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2OSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNhbGN1bGEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBib29sIGZyb21Cb29sZWFuID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Ym9v
bGVhbigpIDogZnJvbS0+Ym9vbGVhbigpOwotICAgIGJvb2wgdG9Cb29sZWFuID0gdG8tPmJvb2xl
YW4oKTsKLSAgICBib29sJiBhbmltYXRlZEJvb2xlYW4gPSBhbmltYXRlZC0+Ym9vbGVhbigpOwor
ICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDxib29sJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYm9vbCB0b0Jv
b2xlYW4gPSBzdGF0aWNfY2FzdDxib29sJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGJvb2wmIGFu
aW1hdGVkQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7
CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8Ym9vbD4ocGVy
Y2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5pbWF0ZWRCb29sZWFuKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OlNWR0FuaW1h
dGVkQ29sCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQ29s
b3JBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVDb2xvcihzdGQ6Om1ha2VfdW5pcXVl
PENvbG9yPihDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKSkp
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxD
b2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bykKQEAgLTQ0LDggKzQ0LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0
b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVCh0by0+dHlwZSgpID09IEFuaW1hdGVkQ29sb3IpOwog
CiAgICAgLy8gSWdub3JlcyBhbnkgYWxwaGEgYW5kIHNldHMgYWxwaGEgb24gcmVzdWx0IHRvIDEw
MCUgb3BhcXVlLgotICAgIGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmNvbG9yKCk7Ci0gICAgYXV0
byYgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIGF1dG8mIGZyb21Db2xvciA9IHN0YXRpY19j
YXN0PENvbG9yJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9Db2xvciA9IHN0YXRp
Y19jYXN0PENvbG9yJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHRvQ29sb3IgPSB7IHJvdW5kQW5k
Q2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5yZWQoKSArIGZyb21Db2xvci5yZWQoKSksCiAgICAg
ICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ncmVlbigpICsgZnJvbUNvbG9y
LmdyZWVuKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuYmx1
ZSgpICsgZnJvbUNvbG9yLmJsdWUoKSkgfTsKQEAgLTY5LDggKzY5LDggQEAgdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIENvbG9yIGZyb21Db2xv
ciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmNvbG9yKCkgOiBmcm9tLT5jb2xvcigpOwotICAgIENvbG9yIHRvQ29sb3IgPSB0
by0+Y29sb3IoKTsKKyAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBDb2xvciB0b0NvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7
CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25F
bGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxDb2xvcj4ocGFyc2VDb2xvckZyb21TdHJpbmcs
IG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21Db2xvciwg
bV9jb250ZXh0RWxlbWVudCk7CkBAIC04Miw4ICs4Miw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT50b1Byb3Bl
cnR5VmFsdWVUeXBlKCkgPT0gQ3VycmVudENvbG9yVmFsdWUpCiAgICAgICAgIHRvQ29sb3IgPSBj
dXJyZW50Q29sb3IoKm1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byYgdG9BdEVuZE9mRHVy
YXRpb25Db2xvciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5jb2xvcigpOwotICAgIGF1dG8mIGFuaW1h
dGVkQ29sb3IgPSBhbmltYXRlZC0+Y29sb3IoKTsKKyAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
bkNvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sw
XSk7CisgICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gRklYTUU6IEV4dGVuZGVkQ29sb3IgLSB0aGlzIHdp
bGwgbmVlZCB0byBoYW5kbGUgYmxlbmRpbmcgYmV0d2VlbiBjb2xvcnMgaW4gZGlmZmVyZW50IGNv
bG9yIHNwYWNlcywKICAgICAvLyBhcyB3ZWxsIGFzIHdvcmsgd2l0aCBub24gWzAtMjU1XSBDb2xv
cnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxNCArMTA5LDEyIEBAIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6U1ZHQW5pbWEKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
RW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTx1bnNpZ25lZD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5lbnVtZXJhdGlvbigpID0gZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0dHJpYnV0ZSht
X2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25FbGVtZW50LT5h
dHRyaWJ1dGVOYW1lKCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoZW51bWVyYXRpb25WYWx1ZUZvclRhcmdldEF0
dHJpYnV0ZShtX2FuaW1hdGlvbkVsZW1lbnQtPnRhcmdldEVsZW1lbnQoKSwgbV9hbmltYXRpb25F
bGVtZW50LT5hdHRyaWJ1dGVOYW1lKCksIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRp
b24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRl
ZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC0xMjYsNyArMTI0LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0bwogCiB2b2lkIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
KQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmlt
YXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJhdGlvbik7CisgICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5
cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtMTQ5LDkgKzE0Nyw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1h
dG9yOjpjYWwKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICB1bnNpZ25lZCBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5l
bnVtZXJhdGlvbigpIDogZnJvbS0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gdG8tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQmIGFuaW1hdGVkRW51bWVy
YXRpb24gPSBhbmltYXRlZC0+ZW51bWVyYXRpb24oKTsKKyAgICB1bnNpZ25lZCBmcm9tRW51bWVy
YXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25lZCB0b0VudW1l
cmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgdW5z
aWduZWQmIGFuaW1hdGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2Ny
ZXRlVHlwZTx1bnNpZ25lZD4ocGVyY2VudGFnZSwgZnJvbUVudW1lcmF0aW9uLCB0b0VudW1lcmF0
aW9uLCBhbmltYXRlZEVudW1lcmF0aW9uKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMz
LDEyIEBAIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpTVkdBbmltYXRlZEkKIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjptYWtlX3VuaXF1
ZTxpbnQ+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+aW50ZWdlcigpID0gc3RyaW5nLnRvSW50U3Ry
aWN0KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2Vy
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdl
cj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBT
VkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4LDcgKzY2LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YWRkQW5pbQogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPmludGVnZXIoKSArPSBmcm9tLT5pbnRlZ2VyKCk7
CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGlu
dCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0
aW9uRWxlbWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIGludCBm
cm9tSW50ZWdlciwgaW50IHRvSW50ZWdlciwgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwg
aW50JiBhbmltYXRlZEludGVnZXIpCkBAIC04MywxMCArODEsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGludCBmcm9tSW50ZWdlciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmludGVnZXIoKSA6IGZyb20tPmludGVnZXIoKTsKLSAgICBpbnQgdG9JbnRlZ2VyID0g
dG8tPmludGVnZXIoKTsKLSAgICBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gdG9BdEVu
ZE9mRHVyYXRpb24tPmludGVnZXIoKTsKLSAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1h
dGVkLT5pbnRlZ2VyKCk7CisgICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBpbnQgdG9JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBz
dGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBjYWxjdWxhdGVB
bmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZnJvbUludGVnZXIsIHRvSW50ZWdlciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmlt
YXRlZEludGVnZXIpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyMyArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0bwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6Om1ha2Vf
dW5pcXVlPHN0ZDo6cGFpcjxpbnQsIGludD4+KCkpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4m
IGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVkVHlwZS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigp
OwotICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMDsKLSAgICBmbG9hdCBzZWNvbmROdW1iZXIgPSAw
OwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVy
LCBzZWNvbmROdW1iZXIpKSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IDA7Ci0g
ICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVt
YmVyKSk7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+
KHJvdW5kZihzZWNvbmROdW1iZXIpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3Rk
OjpwYWlyPGludCwgaW50Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFu
aW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdB
bmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0
OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KIAogdm9pZCBT
VkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9C
YXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUs
ICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOworICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1h
dGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBl
KCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9t
SW50ZWdlclBhaXIgPSBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpw
YWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0KLSAgICB0b0ludGVnZXJQYWlyLmZpcnN0ICs9IGZyb21JbnRlZ2VyUGFpci5maXJzdDsK
LSAgICB0b0ludGVnZXJQYWlyLnNlY29uZCArPSBmcm9tSW50ZWdlclBhaXIuc2Vjb25kOworICAg
IHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sxXSkg
Kz0gc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlw
ZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZE
dXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg5LDEzICs3NSwxNyBAQCB2
b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29u
c3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJvbUludGVnZXJQYWlyID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlck9w
dGlvbmFsSW50ZWdlcigpIDogZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGNv
bnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlv
bmFsSW50ZWdlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlck9wdGlvbmFsSW50
ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBh
bmltYXRlZC0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOworICAgIGNvbnN0IGludCYgZm9ybUZp
cnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxp
bnQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIGZvcm1TZWNvbmQgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9t
LT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9GaXJzdCA9IHN0YXRpY19jYXN0PGludCY+
KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBpbnQmIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8
aW50Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25G
aXJzdCA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBpbnQmIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMV0pOworICAgIGludCYgYW5pbWF0ZWRGaXJz
dCA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFu
aW1hdGVkU2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwog
Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwotICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmly
c3QsIGFuaW1hdGVkRmlyc3QpOworICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxj
dWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kLCBh
bmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6U1ZHQW5pbWF0ZWRMZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChz
dGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aFZhbHVlPihtX2xlbmd0aE1vZGUsIHN0cmluZykpOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdMZW5ndGhWYWx1ZShtX2xlbmd0
aE1vZGUsIHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ4
LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02Nyw4
ICs2Nyw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YWRkQW5pbWEKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4
dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwotICAgIGNvbnN0IGF1dG8mIGZyb21M
ZW5ndGggPSBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvJiB0b0xlbmd0aCA9IHRvLT5sZW5ndGgo
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFs
dWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0xlbmd0aCA9IHN0YXRpY19jYXN0
PFNWR0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgdG9MZW5ndGguc2V0VmFs
dWUodG9MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoLnZhbHVlKGxlbmd0
aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KQEAgLTg1LDEwICs4NSwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9u
RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9t
U1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoKCkgOiBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvIHRv
U1ZHTGVuZ3RoID0gdG8tPmxlbmd0aCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uU1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aCgpOwotICAgIGF1dG8mIGFu
aW1hdGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpOworICAgIGF1dG8gZnJvbVNWR0xl
bmd0aCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8g
dG9TVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0aCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVs
ZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5n
dGhWYWx1ZT4ocGFyc2VMZW5ndGhGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Q
cm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU1ZHTGVuZ3RoLCBtX2NvbnRleHRFbGVtZW50KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdMZW5ndGhMaXN0VmFs
dWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmxlbmd0aExpc3QoKS5wYXJzZShzdHJpbmcsIG1f
bGVuZ3RoTW9kZSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46
OmZyb21TdHJpbmcoc3RyaW5nLCBtX2xlbmd0aE1vZGUpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlz
dChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVu
Z3RoTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBl
cywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY4
LDggKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0
aExpc3QgPSBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgdG9MZW5ndGhMaXN0ID0gdG8t
Pmxlbmd0aExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoTGlzdCA9IHN0YXRpY19j
YXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0
b0xlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvLT52YWx1
ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbUxlbmd0aExpc3RTaXplID0gZnJvbUxlbmd0aExp
c3Quc2l6ZSgpOwogICAgIGlmICghZnJvbUxlbmd0aExpc3RTaXplIHx8IGZyb21MZW5ndGhMaXN0
U2l6ZSAhPSB0b0xlbmd0aExpc3Quc2l6ZSgpKQpAQCAtNzcsNyArNzUsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZyb21MZW5ndGhMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b0xlbmd0aExpc3RbaV0uc2V0
VmFsdWUodG9MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOworICAgICAgICB0b0xl
bmd0aExpc3QucHJvcGVydHlBdChpKS5zZXRWYWx1ZSh0b0xlbmd0aExpc3QucHJvcGVydHlBdChp
KS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFs
dWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQogCiBzdGF0aWMgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQq
IGFuaW1hdGlvbkVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtOTIsMTAgKzkwLDEw
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMKICAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAg
ICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bGVuZ3RoTGlzdCgpIDogZnJvbS0+bGVuZ3Ro
TGlzdCgpOwotICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gdG8tPmxlbmd0aExpc3QoKTsKLSAgICBj
b25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlv
bi0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1hdGVk
LT5sZW5ndGhMaXN0KCk7CisgICAgYXV0byBmcm9tTGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTGVu
Z3RoTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlz
dCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAg
ICBhdXRvJiBhbmltYXRlZExlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFs
dWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRh
bmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8
U1ZHTGVuZ3RoTGlzdFZhbHVlcz4ocGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0aExpc3QsIG1fY29u
dGV4dEVsZW1lbnQpOwpAQCAtMTEwLDE4ICsxMDgsMTggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0
aExpc3RBbmltYXRvcjo6Y2FsYwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0
KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b0xlbmd0
aExpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRl
ZExlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7Ci0gICAgICAgIFNWR0xlbmd0aFR5
cGUgdW5pdFR5cGUgPSB0b0xlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKKyAgICAgICAgZmxvYXQg
YW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KTsKKyAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBp
ZiAocGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5n
dGhMaXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxl
bmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5
cGUgPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CisgICAgICAgICAg
ICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKICAgICAgICAgfQotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0g
aSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExp
c3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVU
b0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlv
bkxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCksIGVm
ZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyKTsKKyAgICAgICAgYW5pbWF0ZWRMZW5ndGhM
aXN0LnByb3BlcnR5QXQoaSkuc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1iZXIs
IG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
NiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWROdQogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjptYWtlX3Vu
aXF1ZTxmbG9hdD4oKSk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBl
LT5udW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcsIGFuaW1h
dGVkTnVtYmVyKSkKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIgPSAwOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5
VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01MSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpu
dW1iZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNjksMTQgKzY1LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6YWRkQW5pbWEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVy
KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPm51
bWJlcigpICs9IGZyb20tPm51bWJlcigpOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52
YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAK
IHN0YXRpYyBmbG9hdCBwYXJzZU51bWJlckZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGZsb2F0IG51bWJlciA9IDA7Ci0gICAgcGFy
c2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKTsKLSAgICByZXR1cm4gbnVtYmVyOwor
ICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcoc3RyaW5nKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9m
RHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMCArNzgsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGZs
b2F0IGZyb21OdW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXIoKSA6IGZyb20tPm51bWJlcigpOwotICAgIGZs
b2F0IHRvTnVtYmVyID0gdG8tPm51bWJlcigpOwotICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9u
TnVtYmVyID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlcigpOwotICAgIGZsb2F0JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkLT5udW1iZXIoKTsKKyAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb20tPnZhbHVlc1swXSk7CisgICAgZmxvYXQgdG9OdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9h
dCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGZsb2F0JiBhbmltYXRlZE51bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8ZmxvYXQ+KHBhcnNlTnVtYmVy
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbU51bWJlciwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6U1ZHQW5pbWF0
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0
KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5udW1iZXJMaXN0KCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxT
VkdOdW1iZXJMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVt
YmVyTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5p
bWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBT
VkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcAogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0
ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTY3LDI1ICs2NSwyNSBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjph
ZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tTnVtYmVyTGlzdCA9IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBhdXRvJiB0b051bWJlckxp
c3QgPSB0by0+bnVtYmVyTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigq
dG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNpemUgPSBmcm9t
TnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUgfHwgZnJvbU51
bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTnVtYmVyTGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9OdW1iZXJMaXN0W2ldICs9IGZyb21OdW1iZXJMaXN0W2ldOworICAgICAgICBzdGF0
aWNfY2FzdDxmbG9hdCY+KCp0b051bWJlckxpc3RbaV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KmZyb21OdW1iZXJMaXN0W2ldKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbU51bWJlckxpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1iZXJMaXN0KCkgOiBmcm9tLT5udW1iZXJMaXN0
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51bWJlckxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IGFuaW1h
dGVkLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNf
Y2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
YXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0
by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9u
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVyTGlzdCwgYW5pbWF0ZWROdW1iZXJMaXN0LCBw
ZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05NCw5ICs5Miw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZE
dXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxp
c3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAg
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRv
QXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDog
MDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlv
blNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7Cisg
ICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3QucHJvcGVydHlBdChp
KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkpOwog
ICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxOCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
ckFuaW1hdG9yOgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCkpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAo
IXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBhbmltYXRlZE51bWJlci5maXJzdCwg
YW5pbWF0ZWROdW1iZXIuc2Vjb25kKSkgewotICAgICAgICBhbmltYXRlZE51bWJlci5maXJzdCA9
IDA7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLnNlY29uZCA9IDA7Ci0gICAgfQotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1By
b3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZy
b21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0
ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRl
ZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNTQsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMs
IHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MiwxMSArNjYsOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGZy
b21OdW1iZXJQYWlyID0gZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBh
aXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVy
KCk7Ci0KLSAgICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7Ci0g
ICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CisgICAgc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzFd
KSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRP
ZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTMgKzc1LDE3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBj
b25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5udW1i
ZXJPcHRpb25hbE51bWJlcigpIDogIGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAg
Y29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJP
cHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyT3B0aW9u
YWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXJQ
YWlyID0gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7CisgICAgY29uc3QgYXV0byYg
Zm9ybUZpcnN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1dG8mIHRvRmlyc3QgPSBz
dGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1Nl
Y29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGNvbnN0IGF1
dG8mIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5k
T2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
blNlY29uZCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MV0pOworICAgIGF1dG8mIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFNlY29uZCA9IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwogCi0gICAgbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1i
ZXJQYWlyLmZpcnN0LCB0b051bWJlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVy
UGFpci5maXJzdCwgYW5pbWF0ZWROdW1iZXJQYWlyLmZpcnN0KTsKLSAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJv
bU51bWJlclBhaXIuc2Vjb25kLCB0b051bWJlclBhaXIuc2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlclBhaXIuc2Vjb25kLCBhbmltYXRlZE51bWJlclBhaXIuc2Vjb25kKTsKKyAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZm9ybUZpcnN0LCB0b0ZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0LCBhbmltYXRl
ZEZpcnN0KTsKKyAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihw
ZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZm9ybVNlY29uZCwgdG9TZWNvbmQsIHRvQXRFbmRPZkR1
cmF0aW9uU2Vjb25kLCBhbmltYXRlZFNlY29uZCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBh
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zMyw5ICszMiw3IEBAIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpTVkdBbmltYXRlZFBhdGgKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRo
Qnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJp
bmcsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVQYXRoKFdURk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46
OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDMsOSAr
NDAsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltCiAgICAgQVNT
RVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogCiAgICAgLy8gQnVpbGQgaW5pdGlhbCBw
YXRoIGJ5dGUgc3RyZWFtLgotICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVk
VHlwZXMsIGJ5dGVTdHJlYW0uZ2V0KCkpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgYXV0byBhbmltYXRlZFR5cGUgPSBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKyAgICByZXNldEFu
aW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgKmFuaW1hdGVkVHlwZSk7CisgICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNTgsNyArNTUsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpyZXNldEFuaW1WCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRl
YXJPZmY+IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzWzBdLmdldCgpKTsKICAgICBjb25zdCBhdXRvJiBiYXNlVmFsdWUgPSBwcm9wZXJ0eS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwogCi0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUsICpieXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsK
KyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmJhc2VWYWx1ZSksICpieXRlU3RyZWFtLCBV
bmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3VsdDsKIApAQCAtNzIsNyArNjksNyBAQCB2b2lkIFNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiAgICAgaWYgKCFyZXN1bHQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIFNWR0VsZW1lbnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2Vy
KCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSk7CiAgICAgICAgIGZvciAoYXV0byYgc2VnbWVu
dCA6IHJlc3VsdCkKLSAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0
cmVhbSwgJmJhc2VWYWx1ZSk7CisgICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVk
KGJ5dGVTdHJlYW0sICZzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpiYXNlVmFs
dWUpKTsKICAgICB9CiB9CiAKQEAgLTgwLDcgKzc3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6cmVzZXRBbmltVgogewogICAgIEFTU0VSVChhbmltYXRlZFR5cGVzLnNpemUoKSA+
PSAxKTsKICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICByZXNldEFuaW1W
YWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgdHlwZS5wYXRoKCkpOworICAgIHJlc2V0QW5pbVZh
bFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAmc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0m
PigqdHlwZS52YWx1ZXNbMF0pKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtOTgsMTIgKzk1LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OmFkZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUGF0
aCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIFNWR1Bh
dGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0
cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBm
cm9tUGF0aC0+c2l6ZSgpOwotICAgIGlmICghZnJvbVBhdGhTaXplIHx8IGZyb21QYXRoU2l6ZSAh
PSB0b1BhdGgtPnNpemUoKSkKKyAgICBjb25zdCBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19jYXN0
PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9QYXRo
ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7CisgICAg
dW5zaWduZWQgZnJvbVBhdGhTaXplID0gZnJvbVBhdGguc2l6ZSgpOworICAgIGlmICghZnJvbVBh
dGhTaXplIHx8IGZyb21QYXRoU2l6ZSAhPSB0b1BhdGguc2l6ZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqdG9QYXRoLCAqZnJvbVBhdGgpOworICAgIGFk
ZFRvU1ZHUGF0aEJ5dGVTdHJlYW0odG9QYXRoLCBmcm9tUGF0aCk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFn
ZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0
ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTExMSwzNiArMTA4LDMzIEBAIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsK
ICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSog
ZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvUGF0aCA9
IHRvLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvQXRFbmRPZkR1cmF0aW9uUGF0
aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFu
aW1hdGVkUGF0aCA9IGFuaW1hdGVkLT5wYXRoKCk7CisgICAgYXV0byYgZnJvbVBhdGggPSBzdGF0
aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8m
IHRvUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvLT52YWx1ZXNbMF0p
OworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhC
eXRlU3RyZWFtJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFu
aW1hdGVkUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiB1bmRl
cmx5aW5nUGF0aDsKICAgICBib29sIGlzVG9BbmltYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbjsKLSAgICBpZiAoaXNUb0FuaW1hdGlvbikg
ewotICAgICAgICB1bmRlcmx5aW5nUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29weSgpOwotICAgICAg
ICBmcm9tUGF0aCA9IHVuZGVybHlpbmdQYXRoLmdldCgpOwotICAgIH0KKyAgICBpZiAoaXNUb0Fu
aW1hdGlvbikKKyAgICAgICAgZnJvbVBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBDYWNo
ZSB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZSBiZWZvcmUgdGhlIGJ1aWxkQW5pbWF0ZWRTVkdQ
YXRoQnl0ZVN0cmVhbSgpIGNsZWFycyBhbmltYXRlZFBhdGguCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFNWR1BhdGhCeXRlU3RyZWFtPiBsYXN0QW5pbWF0ZWRQYXRoOwotICAgIGlmICghZnJvbVBhdGgt
PnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9Bbmlt
YXRpb24pKQotICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7
CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gbGFzdEFuaW1hdGVkUGF0aDsKKyAgICBpZiAoIWZyb21Q
YXRoLnNpemUoKSB8fCAobV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0aXZlKCkgJiYgIWlzVG9B
bmltYXRpb24pKQorICAgICAgICBsYXN0QW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWRQYXRoOwogCiAg
ICAgLy8gUGFzcyBmYWxzZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFz
IHRoZSBwYXRoIGFuaW1hdGlvbiBpcyBub3QgYSByZWd1bGFyIFZlY3RvcjxTVkdYWFg+IHR5cGUs
IGJ1dCBhIFNWR1BhdGhCeXRlU3RyZWFtLCB0aGF0IHdvcmtzIGRpZmZlcmVudGx5LgotICAgIGlm
ICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRl
U3RyZWFtPigqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZh
bHNlKSkKKyAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVl
czxTVkdQYXRoQnl0ZVN0cmVhbT4oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQYXRoLCBwZXJj
ZW50YWdlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1aWxkQW5pbWF0ZWRTVkdQ
YXRoQnl0ZVN0cmVhbSgqZnJvbVBhdGgsICp0b1BhdGgsICphbmltYXRlZFBhdGgsIHBlcmNlbnRh
Z2UpOworICAgIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0ZVN0cmVhbShmcm9tUGF0aCwgdG9QYXRo
LCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UpOwogCiAgICAgLy8gSGFuZGxlIGFkZGl0aXZlPSdz
dW0nLgotICAgIGlmIChsYXN0QW5pbWF0ZWRQYXRoKQotICAgICAgICBhZGRUb1NWR1BhdGhCeXRl
U3RyZWFtKCphbmltYXRlZFBhdGgsICpsYXN0QW5pbWF0ZWRQYXRoKTsKKyAgICBpZiAoIWxhc3RB
bmltYXRlZFBhdGguaXNFbXB0eSgpKQorICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKGFu
aW1hdGVkUGF0aCwgbGFzdEFuaW1hdGVkUGF0aCk7CiAKICAgICAvLyBIYW5kbGUgYWNjdW11bGF0
ZT0nc3VtJy4KICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVkKCkgJiYg
cmVwZWF0Q291bnQpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0
aCwgKnRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVwZWF0Q291bnQpOworICAgICAgICBhZGRUb1NW
R1BhdGhCeXRlU3RyZWFtKGFuaW1hdGVkUGF0aCwgdG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBl
YXRDb3VudCk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVE
aXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxNCArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6U1ZHQW5p
bWF0ZQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBvaW50
TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExp
c3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdQb2ludExpc3RWYWx1ZXM+KCkpOwotICAgIHBvaW50c0xp
c3RGcm9tU1ZHRGF0YShhbmltYXRlZFR5cGUtPnBvaW50TGlzdCgpLCBzdHJpbmcpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNW
R1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5nKSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlUG9pbnRMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQ
b2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTEsNyArNDks
NyBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0b3BBCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlz
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0KTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTY5LDI1ICs2NywyNSBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmFkZEFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBvaW50cyk7CiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8m
IGZyb21Qb2ludExpc3QgPSBmcm9tLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiB0b1BvaW50TGlz
dCA9IHRvLT5wb2ludExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gc3Rh
dGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgdG9Qb2ludExpc3QgPSAgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKnRvLT52
YWx1ZXNbMF0pOwogCiAgICAgdW5zaWduZWQgZnJvbVBvaW50TGlzdFNpemUgPSBmcm9tUG9pbnRM
aXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21Qb2ludExpc3RTaXplIHx8IGZyb21Qb2ludExpc3RT
aXplICE9IHRvUG9pbnRMaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGZyb21Qb2ludExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvUG9p
bnRMaXN0W2ldICs9IGZyb21Qb2ludExpc3RbaV07CisgICAgICAgIHRvUG9pbnRMaXN0LnByb3Bl
cnR5QXQoaSkgKz0gZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOwogfQogCiB2b2lkIFNWR0Fu
aW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVy
Y2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZH
QW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZH
QW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKIHsKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50
KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wb2ludExpc3QoKSA6
IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBv
aW50TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0ID0g
dG9BdEVuZE9mRHVyYXRpb24tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRM
aXN0ID0gYW5pbWF0ZWQtPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExp
c3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6
IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGNvbnN0IGF1dG8mIHRvUG9pbnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVz
Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uUG9p
bnRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0
aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRMaXN0ID0gc3RhdGljX2Nh
c3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogICAgIGlmICgh
bV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BvaW50TGlzdFZh
bHVlcz4oZnJvbVBvaW50TGlzdCwgdG9Qb2ludExpc3QsIGFuaW1hdGVkUG9pbnRMaXN0LCBwZXJj
ZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05OCwxNCArOTYsMTQgQEAgdm9pZCBTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAgICAgICAgICAgIGVmZmVj
dGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0g
ZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOworICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3QucHJvcGVydHlBdChpKSA6IEZsb2F0UG9pbnQoKTsKIAotICAgICAgICBmbG9hdCBh
bmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdFtpXS54KCk7Ci0gICAgICAgIGZsb2F0IGFuaW1h
dGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLnkoKTsKLSAgICAgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVj
dGl2ZUZyb20ueCgpLCB0b1BvaW50TGlzdFtpXS54KCksIGVmZmVjdGl2ZVRvQXRFbmQueCgpLCBh
bmltYXRlZFgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51
bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS55KCksIHRvUG9pbnRM
aXN0W2ldLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7Ci0gICAgICAgIGFu
aW1hdGVkUG9pbnRMaXN0W2ldID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFuaW1hdGVkWSk7Cisg
ICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSku
eCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0
eUF0KGkpLnkoKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueCgpLCB0b1BvaW50
TGlzdC5wcm9wZXJ0eUF0KGkpLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7
CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3QucHJvcGVy
dHlBdChpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOworICAgICAgICBh
bmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFu
aW1hdGVkWSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6bWFrZV91bmlxdWU8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnByZXNlcnZl
QXNwZWN0UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Cisg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFu
aW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0Fu
aW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Niw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBl
KQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0
UmF0aW8pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MSw5ICs2OSw5IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKICAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25z
dCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0
aW8oKSA6IGZyb20tPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKLSAgICBjb25zdCBhdXRvJiB0b1By
ZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGF1dG8m
IGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5wcmVzZXJ2ZUFzcGVjdFJh
dGlvKCk7CisgICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0
YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBh
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihw
ZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlv
LCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsMTIg
QEAgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OlNWR0FuaW1hdGVkUmVjdAogCiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0UmVj
dD4oKSk7Ci0gICAgcGFyc2VSZWN0KHN0cmluZywgYW5pbWF0ZWRUeXBlLT5yZWN0KCkpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAK
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVJlY3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlw
ZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+
KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OnN0b3BBbmltVmEKIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6
OnJlY3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphbmltVmFs
V2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC02Nyw3ICs2NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFk
ZEFuaW1hdGUKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUmVjdCk7CiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5yZWN0KCkgKz0g
ZnJvbS0+cmVjdCgpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBd
KSArPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBT
VkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtNzUsMTAgKzczLDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBGbG9hdFJl
Y3QmIGZyb21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+cmVjdCgpIDogZnJvbS0+cmVjdCgpOwotICAgIGNvbnN0IEZs
b2F0UmVjdCYgdG9SZWN0ID0gdG8tPnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJlY3QmIHRvQXRF
bmRPZkR1cmF0aW9uUmVjdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5yZWN0KCk7Ci0gICAgRmxvYXRS
ZWN0JiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+cmVjdCgpOworICAgIGNvbnN0IGF1dG8mIGZy
b21SZWN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRp
b24gPyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0
aWNfY2FzdDxGbG9hdFJlY3QmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0
b1JlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4o
KnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUmVjdCA9
IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIGZs
b2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUmVjdC54KCk7CiAgICAgZmxvYXQgYW5pbWF0ZWRZID0g
YW5pbWF0ZWRSZWN0LnkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0
cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3Ry
aW5nLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVk
U3RyaW5nQW5pbWF0b3I6OlNWR0FuaW1hdGVkU3QKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6bWFrZV91bmlxdWU8U3RyaW5nPigpKTsKLSAgICBh
bmltYXRlZFR5cGUtPnN0cmluZygpID0gc3RyaW5nOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFN0
cmluZz46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDgsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0b3BBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTc2LDkgKzc1LDkgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjYWxj
dWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+c3RyaW5nKCk7Ci0g
ICAgU3RyaW5nIHRvU3RyaW5nID0gdG8tPnN0cmluZygpOwotICAgIFN0cmluZyYgYW5pbWF0ZWRT
dHJpbmcgPSBhbmltYXRlZC0+c3RyaW5nKCk7CisgICAgU3RyaW5nIGZyb21TdHJpbmcgPSBzdGF0
aWNfY2FzdDxTdHJpbmcmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBTdHJpbmcgdG9TdHJpbmcg
PSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqdG8tPnZhbHVlc1swXSk7CisgICAgU3RyaW5nJiBhbmlt
YXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
IAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFN0cmluZz4ocGFyc2VTdHJpbmdGcm9tU3RyaW5n
LCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tU3RyaW5n
LCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsMTUgKzQxLDEyIEBAIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpTVkdBbmkK
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9y
bUxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKTsKLSAgICBh
bmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3QoKS5wYXJzZShtX3RyYW5zZm9ybVR5cGVTdHJpbmcg
KyBzdHJpbmcgKyAnKScpOwotICAgIEFTU0VSVChhbmltYXRlZFR5cGUtPnRyYW5zZm9ybUxpc3Qo
KS5zaXplKCkgPD0gMSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5nICsgJyknKSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01OSw3ICs1Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OnMKIAogdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdB
bmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03NywxNSAr
NzQsMTUgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YQogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5z
Zm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1M
aXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3Jt
TGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVz
WzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxp
c3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVRyYW5zZm9y
bUxpc3RTaXplIHx8IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybUxpc3RTaXpl
ID09IDEpOwotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlz
dFswXTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFswXTsKKyAgICBj
b25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgw
KTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDAp
OwogCiAgICAgQVNTRVJUKGZyb21UcmFuc2Zvcm0udHlwZSgpID09IHRvVHJhbnNmb3JtLnR5cGUo
KSk7CiAgICAgdG9UcmFuc2Zvcm0gPSBTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNm
b3Jtcyhmcm9tVHJhbnNmb3JtLCB0b1RyYW5zZm9ybSk7CkBAIC05OCwxMCArOTUsMTAgQEAgdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgIC8vIFNwZWM6IFRvIGFu
aW1hdGlvbnMgcHJvdmlkZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IHRvIGdldCBhIHNtb290aCBj
aGFuZ2UgZnJvbSB0aGUgdW5kZXJseWluZyB2YWx1ZSB0byB0aGUKICAgICAvLyDigJh0b+KAmSBh
dHRyaWJ1dGUgdmFsdWUsIHdoaWNoIGNvbmZsaWN0cyBtYXRoZW1hdGljYWxseSB3aXRoIHRoZSBy
ZXF1aXJlbWVudCBmb3IgYWRkaXRpdmUgdHJhbnNmb3JtIGFuaW1hdGlvbnMKICAgICAvLyB0byBi
ZSBwb3N0LW11bHRpcGxpZWQuIEFzIGEgY29uc2VxdWVuY2UsIGluIFNWRyAxLjEgdGhlIGJlaGF2
aW9yIG9mIHRvIGFuaW1hdGlvbnMgZm9yIOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkgaXMgdW5kZWZp
bmVkLgotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJhbnNmb3Jt
TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1M
aXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0g
dG9BdEVuZE9mRHVyYXRpb24tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZFRy
YW5zZm9ybUxpc3QgPSBhbmltYXRlZC0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8m
IGZyb21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0
YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CisgICAg
Y29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBhdXRvJiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gUGFzcyBmYWxz
ZSB0byAncmVzaXplQW5pbWF0ZWRMaXN0SWZOZWVkZWQnIGhlcmUsIGFzIHRoZSBzcGVjaWFsIHBv
c3QtbXVsdGlwbGljYXRpb24gYmVoYXZpb3Igb2YgPGFuaW1hdGVUcmFuc2Zvcm0+IG5lZWRzIHRv
IGJlIHJlc3BlY3RlZCBiZWxvdy4KICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0
RnJvbVRvTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihmcm9tVHJhbnNmb3JtTGlz
dCwgdG9UcmFuc2Zvcm1MaXN0LCBhbmltYXRlZFRyYW5zZm9ybUxpc3QsIHBlcmNlbnRhZ2UsIGZh
bHNlKSkKQEAgLTExMiwxNCArMTA5LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
QW5pbWF0b3I6OmMKICAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNsZWFyKCk7CiAKICAg
ICBhdXRvIGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUoKTsK
LSAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdFswXTsKLSAgICBj
b25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJh
bnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUoKSwgU1ZH
VHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgIGNvbnN0IGF1dG8m
IHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CisgICAgY29uc3Qg
YXV0byBlZmZlY3RpdmVGcm9tID0gZnJvbVRyYW5zZm9ybUxpc3RTaXplID8gZnJvbVRyYW5zZm9y
bUxpc3QucHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUo
KSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwogICAgIGF1dG8g
Y3VycmVudFRyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlKGVmZmVjdGl2ZUZyb20sIHRv
VHJhbnNmb3JtKS5zY2FsZWREaXN0YW5jZShwZXJjZW50YWdlKS5hZGRUb1NWR1RyYW5zZm9ybShl
ZmZlY3RpdmVGcm9tKTsKICAgICBpZiAobV9hbmltYXRpb25FbGVtZW50LT5pc0FjY3VtdWxhdGVk
KCkgJiYgcmVwZWF0Q291bnQpIHsKLSAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5k
ID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0
aW9uVHJhbnNmb3JtTGlzdFswXSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUo
KSwgU1ZHVHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOwotICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdU
cmFuc2Zvcm1zKGN1cnJlbnRUcmFuc2Zvcm0sIGVmZmVjdGl2ZVRvQXRFbmQsIHJlcGVhdENvdW50
KSk7CisgICAgICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRFbmRPZkR1cmF0
aW9uVHJhbnNmb3JtTGlzdC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Qu
cHJvcGVydHlBdCgwKSA6IFNWR1RyYW5zZm9ybVZhbHVlKHRvVHJhbnNmb3JtLnR5cGUoKSwgU1ZH
VHJhbnNmb3JtVmFsdWU6OkNvbnN0cnVjdFplcm9UcmFuc2Zvcm0pOworICAgICAgICBhbmltYXRl
ZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+
KFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1zKGN1cnJlbnRUcmFuc2Zvcm0s
IGVmZmVjdGl2ZVRvQXRFbmQsIHJlcGVhdENvdW50KSkpOwogICAgIH0gZWxzZQotICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKGN1cnJlbnRUcmFuc2Zvcm0pOworICAgICAgICBh
bmltYXRlZFRyYW5zZm9ybUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3Jt
VmFsdWU+KGN1cnJlbnRUcmFuc2Zvcm0pKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKQEAgLTEzMSwyMCArMTI4LDIwIEBAIGZsb2F0IFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjoKICAgICBhdXRvIGZyb20gPSBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGZyb21TdHJpbmcpOwogICAgIGF1dG8gdG8gPSBjb25zdHJ1Y3RGcm9tU3Ry
aW5nKHRvU3RyaW5nKTsKIAotICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gZnJvbS0+dHJh
bnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50cmFuc2Zvcm1M
aXN0KCk7CisgICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9UcmFuc2Zv
cm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVz
WzBdKTsKICAgICB1bnNpZ25lZCBpdGVtc0NvdW50ID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgp
OwogICAgIGlmICghaXRlbXNDb3VudCB8fCBpdGVtc0NvdW50ICE9IHRvVHJhbnNmb3JtTGlzdC5z
aXplKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIEFTU0VSVChpdGVtc0NvdW50ID09IDEp
OwotICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdFswXS50eXBlKCkgIT0gdG9UcmFuc2Zvcm1MaXN0
WzBdLnR5cGUoKSkKKyAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBl
KCkgIT0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkudHlwZSgpKQogICAgICAgICByZXR1
cm4gLTE7CiAKICAgICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5o
dG1sI2NvbXBsZXhEaXN0YW5jZXMKICAgICAvLyBQYWNlZCBhbmltYXRpb25zIGFzc3VtZSBhIG5v
dGlvbiBvZiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2YXJpb3VzIGFuaW1hdGlvbiB2YWx1ZXMgZGVm
aW5lZCBieSB0aGUg4oCYdG/igJksIOKAmGZyb23igJksIOKAmGJ54oCZIGFuZCDigJh2YWx1ZXPi
gJkgYXR0cmlidXRlcy4KICAgICAvLyBEaXN0YW5jZSBpcyBkZWZpbmVkIG9ubHkgZm9yIHNjYWxh
ciB0eXBlcyAoc3VjaCBhcyA8bGVuZ3RoPiksIGNvbG9ycyBhbmQgdGhlIHN1YnNldCBvZiB0cmFu
c2Zvcm1hdGlvbiB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkg4oCYYW5pbWF0ZVRyYW5zZm9y
beKAmS4KLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3Rb
MF0sIHRvVHJhbnNmb3JtTGlzdFswXSkuZGlzdGFuY2UoKTsKKyAgICByZXR1cm4gU1ZHVHJhbnNm
b3JtRGlzdGFuY2UoZnJvbVRyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSwgdG9UcmFuc2Zvcm1M
aXN0LnByb3BlcnR5QXQoMCkpLmRpc3RhbmNlKCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDMyNyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEx
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRUeXBlLmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNpbmNsdWRlICJTVkdQ
YXJzZXJVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKEFuaW1h
dGVkUHJvcGVydHlUeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0KLQotU1ZHQW5p
bWF0ZWRUeXBlOjp+U1ZHQW5pbWF0ZWRUeXBlKCkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewot
ICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5hbmdsZUFuZEVu
dW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5ib29sZWFuOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkQ29sb3I6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuY29sb3I7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5l
bnVtZXJhdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuaW50
ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZExl
bmd0aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGg7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aExp
c3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAgIGRl
bGV0ZSBtX2RhdGEubnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVt
YmVyTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJMaXN0OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgICAgIGRlbGV0
ZSBtX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QW5pbWF0ZWRQYXRoOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBhdGg7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucG9pbnRM
aXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5yZWN0
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5nOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLnN0cmluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5z
Zm9ybUxpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihz
dGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4gYW5nbGVB
bmRFbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoYW5nbGVBbmRFbnVtZXJhdGlvbik7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRBbmdsZSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlv
biA9IGFuZ2xlQW5kRW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4gYm9vbGVhbikKLXsKLSAgICBB
U1NFUlQoYm9vbGVhbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRCb29sZWFuKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5ib29sZWFuID0gYm9vbGVhbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVDb2xvcihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+IGNvbG9yKQotewotICAgIEFTU0VS
VChjb2xvcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oQW5pbWF0ZWRDb2xvcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuY29s
b3IgPSBjb2xvci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVt
ZXJhdGlvbihzdGQ6OnVuaXF1ZV9wdHI8dW5zaWduZWQ+IGVudW1lcmF0aW9uKQotewotICAgIEFT
U0VSVChlbnVtZXJhdGlvbik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEuZW51bWVyYXRpb24gPSBlbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+IGludGVn
ZXIpCi17Ci0gICAgQVNTRVJUKGludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlciA9IGludGVnZXIucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9w
dHI8c3RkOjpwYWlyPGludCwgaW50Pj4gaW50ZWdlck9wdGlvbmFsSW50ZWdlcikKLXsKLSAgICBB
U1NFUlQoaW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
ID0gaW50ZWdlck9wdGlvbmFsSW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPiBsZW5ndGgp
Ci17Ci0gICAgQVNTRVJUKGxlbmd0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGgpOwotICAgIGFuaW1hdGVk
VHlwZS0+bV9kYXRhLmxlbmd0aCA9IGxlbmd0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhMaXN0VmFs
dWVzPiBsZW5ndGhMaXN0KQotewotICAgIEFTU0VSVChsZW5ndGhMaXN0KTsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExl
bmd0aExpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmxlbmd0aExpc3QgPSBsZW5ndGhM
aXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihzdGQ6
OnVuaXF1ZV9wdHI8ZmxvYXQ+IG51bWJlcikKLXsKLSAgICBBU1NFUlQobnVtYmVyKTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyID0gbnVtYmVyLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjp1
bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1ZXM+IG51bWJlckxpc3QpCi17Ci0gICAgQVNTRVJU
KG51bWJlckxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEubnVtYmVyTGlzdCA9IG51bWJlckxpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmlt
YXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+PiBudW1iZXJPcHRpb25hbE51bWJlcikKLXsKLSAgICBBU1NFUlQo
bnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwot
ICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyID0gbnVtYmVyT3B0
aW9uYWxOdW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0
aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhdGgpCi17Ci0gICAgQVNTRVJU
KHBhdGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KEFuaW1hdGVkUGF0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucGF0aCA9
IHBhdGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0
KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+IHBvaW50TGlzdCkKLXsKLSAgICBB
U1NFUlQocG9pbnRMaXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFBvaW50cyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEucG9pbnRMaXN0ID0gcG9pbnRMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRyPFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLSAgICBBU1NFUlQo
cHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3Bl
Y3RSYXRpby5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0
ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+IHJlY3QpCi17Ci0gICAgQVNTRVJUKHJlY3QpOwotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFu
aW1hdGVkUmVjdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEucmVjdCA9IHJlY3QucmVsZWFz
ZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlU3RyaW5nKHN0ZDo6dW5pcXVlX3B0
cjxTdHJpbmc+IHN0cmluZykKLXsKLSAgICBBU1NFUlQoc3RyaW5nKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFN0cmlu
Zyk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuc3RyaW5nID0gc3RyaW5nLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVf
cHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHRyYW5zZm9ybUxpc3QpCi17Ci0gICAgQVNTRVJU
KHRyYW5zZm9ybUxpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEudHJhbnNmb3JtTGlzdCA9IHRyYW5zZm9ybUxpc3QucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLVN0cmluZyBTVkdBbmltYXRlZFR5cGU6OnZhbHVl
QXNTdHJpbmcoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmltYXRlZENv
bG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0
YS5jb2xvci0+c2VyaWFsaXplZCgpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGgtPnZh
bHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5sZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5sZW5ndGhMaXN0
LT52YWx1ZUFzU3RyaW5nKCk7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIoKm1fZGF0
YS5udW1iZXIpOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRh
LnJlY3QpOwotICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPngoKSkg
KyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eSgpKSArICcgJwotICAgICAgICAg
ICAgICsgU3RyaW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPndpZHRoKCkpICsgJyAnICsgU3RyaW5n
OjpudW1iZXIobV9kYXRhLnJlY3QtPmhlaWdodCgpKTsKLSAgICBjYXNlIEFuaW1hdGVkU3RyaW5n
OgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnN0cmluZzsKLQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUg
aW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVk
IHZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LgotICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICBj
YXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAg
Y2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNhc2UgQW5pbWF0ZWRQYXRoOgotICAgIGNhc2UgQW5p
bWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAg
Y2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0g
ICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmltYXRpb25zIHVzZSB0aGVzZSBwcm9wZXJ0eSB0eXBl
cyAtIHRoYXQgbWVhbnMgdmFsdWVBc1N0cmluZygpIGlzIG5ldmVyIHVzZWQgZm9yIHRob3NlLgot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotYm9vbCBT
VkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAg
ICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAg
ICAgICAqbV9kYXRhLmNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHZhbHVlLnN0cmlwV2hp
dGVTcGFjZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gIW1fZGF0
YS5sZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhN
b2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRpb24oKTsK
LSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5n
dGhMaXN0KTsKLSAgICAgICAgbV9kYXRhLmxlbmd0aExpc3QtPnBhcnNlKHZhbHVlLCBTVkdMZW5n
dGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHZh
bHVlLCAqbV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5p
bWF0ZWRSZWN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLnJlY3QpOwotICAgICAgICBwYXJzZVJl
Y3QodmFsdWUsICptX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2Ug
QW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAg
Km1fZGF0YS5zdHJpbmcgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBU
aGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1lbnQ6OmNzc1By
b3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCBzZXRWYWx1ZUFzU3RyaW5nKCkg
c3VwcG9ydC4gCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2UgQW5pbWF0ZWRCb29s
ZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNlIEFuaW1hdGVkSW50
ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1i
ZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAg
ICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkVHJh
bnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgLy8gT25seSBT
VkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0gdGhhdCBtZWFucyBz
ZXRWYWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRUeXBlOjpzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgdHlwZSkKLXsKLSAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkgdXNlZCBmb3Ig
Q1NTIHByb3BlcnR5IGFuaW1hdGlvbnMuCi0gICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtu
b3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE5LDI4NCArMjAsMTI5IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKLSNpbmNsdWRlICJTVkdBbmdsZVZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdFZh
bHVlcy5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHTnVtYmVy
TGlzdFZhbHVlcy5oIgotI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgotI2luY2x1ZGUg
IlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5SW5m
by5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdW
YWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1BhdGhCeXRlU3RyZWFt
OwotCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIFNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3BlcnR5VHlwZSk7Ci0g
ICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRUeXBlKCk7Ci0KLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4pOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVl
X3B0cjxib29sPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4pOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVFbnVtZXJhdGlvbihzdGQ6OnVuaXF1ZV9w
dHI8dW5zaWduZWQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50Pik7Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIo
c3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxpbnQsIGludD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTGVuZ3RoKHN0ZDo6dW5pcXVlX3B0cjxT
VkdMZW5ndGhWYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVMZW5ndGhMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhMaXN0VmFsdWVz
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51
bWJlcihzdGQ6OnVuaXF1ZV9wdHI8ZmxvYXQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVt
YmVyTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY3JlYXRlUGF0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUG9pbnRMaXN0
KHN0ZDo6dW5pcXVlX3B0cjxTVkdQb2ludExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6
OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVJlY3Qoc3RkOjp1bmlxdWVfcHRy
PEZsb2F0UmVjdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6dW5p
cXVlX3B0cjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLQotICAgIEFuaW1hdGVkUHJvcGVydHlU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLQotICAgIC8vIE5vbi1tdXRhYmxl
IGFjY2Vzc29ycy4KLSAgICBjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+
JiBhbmdsZUFuZEVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlQW5kRW51
bWVyYXRpb247Ci0gICAgfQotCi0gICAgY29uc3QgYm9vbCYgYm9vbGVhbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmJvb2xlYW47Ci0gICAgfQotCi0gICAgY29uc3QgQ29sb3ImIGNvbG9yKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIGNvbnN0IHVuc2lnbmVk
JiBlbnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsK
LSAgICB9Ci0KLSAgICBjb25zdCBpbnQmIGludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVn
ZXJPcHRpb25hbEludGVnZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aFZh
bHVlJiBsZW5ndGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9Ci0KLSAgICBjb25zdCBmbG9hdCYgbnVtYmVy
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXIp
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZH
TnVtYmVyTGlzdFZhbHVlcyYgbnVtYmVyTGlzdCgpIGNvbnN0CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRU
eXBlIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgU1ZHQW5pbWF0
ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQorICAgICAgICA6IHZhbHVlcyB7IFNWR1Zh
bHVlOjpjcmVhdGUoV1RGTW92ZShwcm9wZXJ0eSkpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVt
YmVyTGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgbnVt
YmVyT3B0aW9uYWxOdW1iZXIoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92ZSh2YWx1ZSkgfQogICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAgICAgfQog
Ci0gICAgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGgoKSBjb25zdAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgU1ZH
QW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHBy
b3BlcnRpZXMpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVz
LmZpcnN0KSwgU1ZHVmFsdWU6OmNyZWF0ZShwcm9wZXJ0aWVzLnNlY29uZCkgfQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9k
YXRhLnBhdGg7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExp
c3QoKSBjb25zdAorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUx
LCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IHZhbHVlcyB7IFdURk1vdmUo
dmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpIH0KICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gQW5pbWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2ludExpc3Q7CiAg
ICAgfQogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFz
cGVjdFJhdGlvKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8
UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAgIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUHJvcGVy
dHlUeXBlJiYgcHJvcGVydHkpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpOwogICAg
IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAotICAgIGNvbnN0
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKSBjb25zdAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnRyYW5zZm9ybUxpc3Q7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+Pjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAg
IC8vIE11dGFibGUgYWNjZXNzb3JzLgotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNp
Z25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJv
cGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVtZXJh
dGlvbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihX
VEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKLSAgICBib29sJiBib29sZWFuKCkKKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdW
YWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLmJvb2xlYW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0KIAotICAgIENv
bG9yJiBjb2xvcigpCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0CiAgICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCYgZW51bWVyYXRpb24oKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQotCi0gICAgaW50JiBpbnRl
Z2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsKLSAgICB9Ci0KLSAgICBzdGQ6OnBhaXI8
aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICB9Ci0KLSAgICBTVkdMZW5n
dGhWYWx1ZSYgbGVuZ3RoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRMZW5ndGgpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxl
bmd0aExpc3Q7Ci0gICAgfQorICAgICAgICBBU1NFUlQodmFsdWVzWzBdKTsKKyAgICAgICAgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMSA9IHZhbHVlQW5pbWF0ZWRUeXBlKCp2YWx1
ZXNbMF0pOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUyID0gdmFs
dWVzWzFdID8gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1sxXSkgOiBBbmltYXRlZFVua25vd247
CiAKLSAgICBmbG9hdCYgbnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWROdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXI7Ci0gICAgfQor
ICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEFuZ2xlKSB7CisgICAgICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEVudW1lcmF0aW9uKTsKKyAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICB9CiAKLSAgICBTVkdOdW1iZXJMaXN0
VmFsdWVzJiBudW1iZXJMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyTGlzdDsKLSAg
ICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkSW50ZWdlciAmJiBhbmlt
YXRlZFR5cGUyID09IEFuaW1hdGVkSW50ZWdlcikKKyAgICAgICAgICAgIHJldHVybiBBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXI7CiAKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYg
bnVtYmVyT3B0aW9uYWxOdW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVt
YmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgfQorICAgICAgICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBB
bmltYXRlZE51bWJlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkTnVtYmVyKQorICAgICAg
ICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI7CiAKLSAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKKyAgICAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRVbmtub3duKTsKKyAgICAgICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTE7CiAgICAgfQogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKQorICAg
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OworICAg
ICAgICBBU1NFUlQodmFsdWVzWzBdICYmICF2YWx1ZXNbMV0pOworICAgICAgICByZXR1cm4gdmFs
dWVzWzBdLT50b1N0cmluZygpOwogICAgIH0KIAotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpCisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIEFTU0VSVCh2YWx1ZXNb
MF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNbMF0tPnBhcnNlKGF0dHJO
YW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCYgcmVjdCgpCisgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBD
U1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRV
bmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLSAgICBTdHJpbmcmIHN0
cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBl
KGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAg
IHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25z
dCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRBbmdsZTsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wmKSAgICAgICAgICAgICAgICAgICAgICAgICB7
IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisgICAgICAgICAgICBbXShjb25zdCBDb2xvciYp
ICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRDb2xvcjsgfSwKKyAgICAg
ICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBB
bmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAgICAgICAgW10oY29uc3QgaW50JikgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkSW50ZWdlcjsgfSwKKyAgICAgICAg
ICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikgICAgICAgICAgICAgICB7IHJldHVybiBBbmlt
YXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMm
KSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7IH0sCisgICAgICAgICAgICBb
XShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRO
dW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgICAg
ICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OyB9LAorICAgICAgICAgICAgW10oY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkUGF0aDsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpICB7
IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87IH0sCisgICAgICAgICAgICBbXShj
b25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQb2lu
dHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBGbG9hdFJlY3QmKSAgICAgICAgICAgICAgICAg
ICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU3RyaW5n
JikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOyB9LAorICAg
ICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpICAgICAgIHsgcmV0dXJu
IEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGF1dG8mKSAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFVua25vd247IH0KKyAgICAg
ICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUpKTsKICAgICB9
CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
bV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAg
ICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAg
ICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRp
b247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAg
ICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNW
R0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0
aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1
ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJP
cHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAg
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAg
ICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVj
dDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2
YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQsMjggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8g
SGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBq
dXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUg
QW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9w
ZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBBbmltVmFsVHlw
ZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZh
bFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAg
YXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVu
dFR5cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+
KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAg
ICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1
ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsK
KyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShhbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFs
dWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYg
KFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNW
R0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkg
PT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0
eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKTsKLSAgICAgICAgcHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgp
OworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sw
XS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVl
ZGVkKCk7CiAKLSAgICAgICAgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmlt
YXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZh
bHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0
aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
JmFuaW1hdGVkVHlwZVZhbHVlKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUg
PSBhbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1Zh
bHVlPiBhbmltYXRlZFZhbHVlID0gdHlwZS52YWx1ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0
PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSY+KCphbmltYXRlZFZhbHVlKSA9IHN0
YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSY+KCpiYXNlVmFsdWUp
OworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlv
biwgYW5pbWF0ZWRUeXBlcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBAIC0xMTAsMzQgKzExMSwzOCBAQCBwcm90ZWN0ZWQ6
CiAKICAgICAvLyBIZWxwZXJzIGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlw
ZXMsIGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0ZWRJbnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVu
YW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAg
IHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0g
Mik7Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZp
cnN0VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgp
OwotICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNv
bmRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihh
bmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7
CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMSogZmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5p
bWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMiogc2Vjb25k
QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5
cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1
dG8gY29weSA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBl
MTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+PihmaXJz
dFR5cGUsIHNlY29uZFR5cGUpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4o
U3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZjb3B5LT5maXJzdCk7Ci0g
ICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwg
YW5pbWF0ZWRUeXBlcywgMSwgJmNvcHktPnNlY29uZCk7Ci0gICAgICAgIHJldHVybiBjb3B5Owor
ICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpj
cmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCkpOworICAgICAgICBS
ZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpz
ZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIGV4ZWN1dGVB
Y3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywg
MCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlw
ZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRl
ZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUo
Zmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFs
VHlwZTI+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBz
dGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5p
bVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIChTVkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisg
ICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAg
ICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJz
dFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUx
PihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBz
ZWNvbmRQcm9wZXJ0eSA9ICBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFs
VHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZp
cnN0UHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNv
bmRQcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3Rk
OjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1W
YWxUeXBlMjo6Q29udGVudFR5cGU+JiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIp
KCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNv
bmRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFu
aW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlw
ZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBl
VmFsdWUuc2Vjb25kKTsKKyAgICAgICAgQW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKKyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNv
bmRBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFs
VHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZp
cnN0QW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAg
c2Vjb25kQW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAg
ICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QmFzZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUt
PmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1h
dGVkVmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUg
QW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGlj
X2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1
ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKworICAgICAgICBS
ZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEJhc2VWYWx1ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVk
VmFsdWUgPSB0eXBlLnZhbHVlc1sxXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5p
bVZhbFR5cGUyOjpDb250ZW50VHlwZSY+KCpzZWNvbmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19j
YXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVl
KTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0
aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4K
QEAgLTE5MCwzMyArMTk1LDMzIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rp
b24gYWN0aW9uLCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250
ZW50VHlwZSogdHlwZSA9IDApCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlv
biBhY3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZh
bHVlID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxl
bWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRl
cGVuZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5z
dGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRUeXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAog
ICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGVkVHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBh
bmltYXRlZFR5cGUucHJvcGVydGllcy5zaXplKCkpOwotICAgICAgICAgICAgQW5pbVZhbFR5cGUq
IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+
KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKKyAgICAgICAg
ICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJv
cGVydHldLmdldCgpKTsKIAogICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAg
ICAgIGNhc2UgU3RhcnRBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5
cGUpOwotICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAg
ICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25TdGFydGVkKHR5cGUpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFu
aW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1h
dGVkUHJvcGVydHktPmFuaW1hdGlvblN0YXJ0ZWQoYW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkt
PmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25F
bmRlZCgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAg
ICAgICAgICAgaWYgKGFuaW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAg
ICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgot
ICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHkt
PmFuaW1WYWxXaWxsQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZh
bHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5n
ZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlk
Q2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAg
ICAgICAgcHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFu
aW1WYWxEaWRDaGFuZ2UoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5
cGU7CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51
bSBBbmltYXRpb25Nb2RlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb24gU1ZHQ29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxp
dHVkZSgpOwogICAgIGZ1bmMuZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0
ID0gb2Zmc2V0KCk7Ci0gICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAg
ZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCkucHJvcGVydGllcygpOwogICAgIHJldHVy
biBmdW5jOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lk
dGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1
ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsK
ICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3Jh
cGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lk
dGgpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVX
aWR0aCkKLSAgICAsIG1fcnkoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCkpCisgICAgLCBtX3J4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkp
CisgICAgLCBtX3J5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFT
U0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjplbGxpcHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmlt
YXRlZFByb3BlcnRpZXNGb3JTVkdFbGxpcHNlRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6
OnNldEZpbHRlckUKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAg
ICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFR5cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCi0gICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+
c2V0VmFsdWVzKHZhbHVlcygpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1
ZXModmFsdWVzKCkucHJvcGVydGllcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0
PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAgICBmaWx0
ZXJWYWx1ZXMgPSB2YWx1ZXMoKS5wcm9wZXJ0aWVzKCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUg
PSBmaWx0ZXJWYWx1ZXMuc2l6ZSgpOwogCiAgICAgICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNP
TE9STUFUUklYX1RZUEVfTUFUUklYICYmIHNpemUgIT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MiwxMiArMjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYg
KCFoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OmRpdmlzb3JBdHRyKSkgewogICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGtlcm5lbE1hdHJpeFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JW
YWx1ZSArPSBrZXJuZWxNYXRyaXguYXQoaSk7CisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0g
a2VybmVsTWF0cml4LnByb3BlcnR5QXQoaSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVlKQog
ICAgICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9
IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9y
ZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwg
dGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZh
bHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRy
aXgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwg
SW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwg
SW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBv
aW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVz
ZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeC5wcm9wZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5w
dXRFZmZlY3RzKCkuYXBwZW5kKGlucHV0MSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDEwIEBAIGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpT
VkdGaWx0ZXJFbGVtZW4KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAg
LCBtX2ZpbHRlclVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElO
R0JPWCkKICAgICAsIG1fcHJpbWl0aXZlVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAg
ICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9k
ZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIp
CisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAg
ICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBt
X3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1f
aGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAg
Ly8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVj
OiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZm
ZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAog
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1f
eChMZW5ndGhNb2RlV2lkdGgsICIwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAl
IikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0LCAiMTAwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoLCAiMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0LCAiMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTAwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCwgIjEwMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBu
b3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNw
ZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBu
b3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUg
c3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAg
QEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95
KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAs
IG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAs
IG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJB
bmltYXRlZFByb3BlcnRpZXNGb3JTVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NSwxMCArNTUsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5l
IFNWR0ltYWdlRWxlbWVudDo6U1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVu
Z3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9o
ZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQor
ICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9h
ZGVyKCp0aGlzKQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VF
bGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgICAgICBTVkdfTEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQ
QwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5n
dGhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9
CkBAIC01NywxMSArNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xl
bmd0aD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0g
ICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxT
VkdMZW5ndGg+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewog
ICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNzEsMTIgKzY2LDEy
IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnVuaXRUeXBlKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkudW5pdFR5cGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjxm
bG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlS
ZWZlcmVuY2UoKS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxl
bWVudCgpIH0pOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlRm9yQmluZGlu
Z3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTg0
LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBT
VkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWUodmFsdWUsIFNWR0xlbmd0aENvbnRleHQgeyBj
b250ZXh0RWxlbWVudCgpIH0pOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC05NCw3ICs4OSw3IEBAIHB1
YmxpYzoKICAgICAKICAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVJblNwZWNpZmllZFVuaXRz
KGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKQEAgLTEwMiw3ICs5Nyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIAogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTEwLDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJp
bmcgdmFsdWVBc1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVu
Y2UoKS52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFs
dWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTExOCw3ICsxMTMsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICAgICAgCkBAIC0xMzEsNyArMTI2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
Lm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVk
VW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAK
QEAgLTE0NCw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3Ig
fTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuY29udmVydFRv
U3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVu
dCgpIH0pOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0VG9T
cGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50
KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE1Myw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQor
ICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwg
cm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE2MiwxMSArMTU3LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0
aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xl
bmd0aFZhbHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVu
Z3RoTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0
PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0xlbmd0aExpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgU1ZHTGVuZ3RoTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xlbmd0aExpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGhMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsy
Miw3IEBACiAjaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgogCiAjaW5jbHVkZSAiU1ZH
UGFyc2VyVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3
LDcgQEAgdm9pZCBTVkdMZW5ndGhMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAobGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVTdHJp
bmcpLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQo
bGVuZ3RoKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHTGVuZ3RoVmFsdWU+
KGxlbmd0aCkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIs
IGVuZCk7CiAgICAgfQogfQpAQCAtNjAsNyArNjEsNyBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZh
bHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3Ry
aW5nKCkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjEsMjYgKzIyLDM5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IlNWR0xlbmd0aFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNW
R0xpc3RWYWx1ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7
CiBjbGFzcyBTVkdMZW5ndGhMaXN0OwogCi1jbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFs
IDogcHVibGljIFZlY3RvcjxTVkdMZW5ndGhWYWx1ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPiB7CiBwdWJs
aWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdMZW5ndGhNb2RlKTsK
ICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKKyAgICBzdGF0
aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9Cisg
ICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZywgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhNb2RlKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7
CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxT
VkdMZW5ndGhMaXN0VmFsdWVzPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVz
IGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3Ro
TW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVy
biBsaXN0OworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0
aExpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CisgICAg
CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gU1ZHTGVuZ3RoVmFsdWU7CiAgICAgdXNpbmcgTGlz
dEl0ZW1UZWFyT2ZmID0gU1ZHTGVuZ3RoOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdMZW5ndGhMaXN0OwotCi0gICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4gIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5n
KCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGhWYWx1ZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0NywxMyBAQCBwcml2
YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1
ZT4gewogICAgIHN0YXRpYyBTVkdMZW5ndGhWYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7
IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB0
eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFNWR0xlbmd0aFZhbHVlPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhWYWx1ZSBs
ZW5ndGg7CisgICAgICAgIGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHN0cmluZywgU1ZHTGVuZ3Ro
VmFsdWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhh
c0V4Y2VwdGlvbigpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgpIHsgcmV0dXJuIGxl
bmd0aC52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
LSAgICAsIG1feDEoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0
KQotICAgICwgbV94MihMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1feTIoTGVuZ3Ro
TW9kZUhlaWdodCkKKyAgICAsIG1feDEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkK
KyAgICAsIG1feTEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3gy
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1feTIoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgy
IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUg
b2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVz
OjpsaW5lYXJHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RW
YWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVz
LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U1ZHTGlzdFZhbHVlcy5oIgorCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgordm9pZCBTVkdMaXN0
VmFsdWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZShzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBzaXpl
X3QgaW5kZXggPSBzaXplKCk7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpyZXNpemUo
bmV3U2l6ZSk7CisgICAgZm9yICg7IGluZGV4IDwgbmV3U2l6ZTsgKytpbmRleCkKKyAgICAgICAg
YXQoaW5kZXgpID0gU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCk7Cit9CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZH
TGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpkZWVwQ29weSgpIGNvbnN0Cit7CisgICAgVmVjdG9y
PFJlZlB0cjxTVkdWYWx1ZT4+IHZhbHVlczsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlIDogKnRoaXMpCisgICAgICAgIHZhbHVlcy5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZSgqdmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWVzOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlv
biBleHBsaWNpdCBpbnN0YW50aWF0aW9uLgordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPGZs
b2F0Pjo6cmVzaXplKHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8RmxvYXRQ
b2ludD46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR0xl
bmd0aFZhbHVlPjo6cmVzaXplKHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8
U1ZHVHJhbnNmb3JtVmFsdWU+OjpyZXNpemUoc2l6ZV90KTsKKwordGVtcGxhdGUgVmVjdG9yPFJl
ZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+OjpkZWVwQ29weSgpIGNvbnN0Owor
dGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U3RyaW5nPjo6
ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdM
aXN0VmFsdWVzPEZsb2F0UG9pbnQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9y
PFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpkZWVwQ29w
eSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1
ZXM8UmVmUHRyPFNWR1BhdGhTZWc+Pjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3Rv
cjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6ZGVl
cENvcHkoKSBjb25zdDsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgU1ZHVmFsdWU7CisgICAgCit0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdMaXN0VmFsdWVzIDogcHVibGlj
IFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiB7CitwdWJsaWM6CisgICAgU1ZHTGlzdFZhbHVlcygp
ID0gZGVmYXVsdDsKKworICAgIFNWR0xpc3RWYWx1ZXMoY29uc3QgU1ZHTGlzdFZhbHVlcyYgb3Ro
ZXIpCisgICAgICAgIDogVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+KG90aGVyLmRlZXBDb3B5KCkp
CisgICAgeworICAgIH0KKworICAgIHZvaWQgcmVzaXplKHNpemVfdCk7CisgICAgVmVjdG9yPFJl
ZlB0cjxTVkdWYWx1ZT4+IGRlZXBDb3B5KCkgY29uc3Q7CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5
cGUmIHByb3BlcnR5QXQoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVR5cGUmPigqYXQoaW5kZXgpKTsgfQorICAgIFByb3BlcnR5VHlwZSYgcHJvcGVydHlB
dChzaXplX3QgaW5kZXgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCphdChp
bmRleCkpOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSBjb25z
dCB7IHJldHVybiBwcm9wZXJ0eUF0KDApOyB9CisgICAgUHJvcGVydHlUeXBlJiBmaXJzdFByb3Bl
cnR5KCkgeyByZXR1cm4gcHJvcGVydHlBdCgwKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBl
JiBsYXN0UHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBwcm9wZXJ0eUF0KHNpemUoKSAtIDEpOyB9
CisgICAgUHJvcGVydHlUeXBlJiBsYXN0UHJvcGVydHkoKSB7IHJldHVybiBwcm9wZXJ0eUF0KHNp
emUoKSAtIDEpOyB9CisKKyAgICBWZWN0b3I8UHJvcGVydHlUeXBlPiBwcm9wZXJ0aWVzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXM7CisgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiAqdGhpcykKKyAgICAgICAgICAgIHByb3BlcnRp
ZXMuYXBwZW5kKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gcHJvcGVydGllczsKKyAgICB9Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDEwICs3MSwx
MCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTWFya2Vy
RWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQot
ICAgICwgbV9yZWZYKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcmVmWShMZW5ndGhNb2RlSGVp
Z2h0KQotICAgICwgbV9tYXJrZXJXaWR0aChMZW5ndGhNb2RlV2lkdGgsICIzIikKLSAgICAsIG1f
bWFya2VySGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIzIikgCisgICAgLCBtX3JlZlgoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fcmVmWShTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fbWFya2VyV2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoLCAiMyIpKQorICAgICwgbV9tYXJrZXJIZWlnaHQoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZUhlaWdodCwgIjMiKSkKICAgICAsIG1fbWFya2VyVW5pdHMoU1ZHTWFya2VyVW5p
dHNTdHJva2VXaWR0aCkKICAgICAsIG1fb3JpZW50VHlwZShTVkdNYXJrZXJPcmllbnRBbmdsZSkK
IHsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRv
QXV0bygpCiAKIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShTVkdBbmds
ZSYgYW5nbGUpCiB7Ci0gICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS5w
cm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICBzZXRPcmllbnQoU1ZHTWFya2VyT3JpZW50QW5nbGUs
IGFuZ2xlLnZhbHVlUHJvcGVydHkoKSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQg
U1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnQKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBhdXRvU3RhcnRSZXZlcnNlU3RyaW5nKCJhdXRvLXN0YXJ0LXJl
dmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIC8vIElm
IG9yaWVudCBpcyBub3QgYXV0byBvciBhdXRvLXN0YXJ0LXJldmVyc2UsIHRoZSBwcmV2aW91cyBj
YWxsIHRvIHN5bmNocm9uaXplT3JpZW50QW5nbGUgYWxyZWFkeSBzZXQgdGhlIG9yaWVudEF0dHIg
dG8gdGhlIHJpZ2h0IGFuZ2xlLgotICAgIGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVl
ID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2Vy
T3JpZW50VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJP
cmllbnRBdXRvKSB7CiAgICAgICAgIG93bmVyVHlwZS5tX29yaWVudFR5cGUuc3luY2hyb25pemUo
Jm93bmVyVHlwZSwgb3JpZW50VHlwZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRv
U3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChvd25lclR5cGUubV9v
cmllbnRUeXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisgICAg
aWYgKHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqb3duZXJUeXBlLm1fb3JpZW50
VHlwZS52YWx1ZSkgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKICAgICAgICAg
b3duZXJUeXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBl
UHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdGFydFJldmVyc2VTdHJpbmcpOwog
fQogCkBAIC0yNTksMTEgKzI1OSwxMSBAQCBTVkdNYXJrZXJPcmllbnRUeXBlJiBTVkdNYXJrZXJF
bGVtZW50OjpvCiB7CiAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6
Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJUeXBlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPih0aGlz
LCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCkpKSB7CiAgICAgICAgIGlmICh3cmFwcGVyLT5pc0Fu
aW1hdGluZygpKSB7Ci0gICAgICAgICAgICBBU1NFUlQod3JhcHBlci0+Y3VycmVudEFuaW1hdGVk
VmFsdWUoKSA8IFNWR01hcmtlck9yaWVudE1heCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4od3JhcHBlci0+Y3VycmVudEFuaW1hdGVk
VmFsdWUoKSk7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50
VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKSA8IFNWR01hcmtlck9yaWVu
dE1heCk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlw
ZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKICAgICAgICAgfQogICAgIH0K
LSAgICByZXR1cm4gbV9vcmllbnRUeXBlLnZhbHVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
VkdNYXJrZXJPcmllbnRUeXBlJj4oKm1fb3JpZW50VHlwZS52YWx1ZSk7CiB9CiAKIFJlZjxTVkdB
bmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBT
VkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlQW5pbWF0ZWQoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3NSArMjksMTAg
QEAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveC5oIgorI2luY2x1ZGUgIlNW
R01hcmtlclR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBTVkdNYXJrZXJV
bml0c1R5cGUgewotICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2Vy
VW5pdHNVc2VyU3BhY2VPblVzZSwKLSAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCi19Owot
Ci1lbnVtIFNWR01hcmtlck9yaWVudFR5cGUgewotICAgIFNWR01hcmtlck9yaWVudFVua25vd24g
PSAwLAotICAgIFNWR01hcmtlck9yaWVudEF1dG8sCi0gICAgU1ZHTWFya2VyT3JpZW50QW5nbGUs
Ci0gICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKLQotICAgIC8vIEFkZCBuZXcg
ZWxlbWVudHMgYmVmb3JlIGhlcmUuCi0gICAgU1ZHTWFya2VyT3JpZW50TWF4Ci19OwotCi10ZW1w
bGF0ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPiB7Ci0g
ICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJV
bml0c1N0cm9rZVdpZHRoOyB9Ci0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtl
clVuaXRzVHlwZSB0eXBlKQotICAgIHsKLSAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAg
IGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgotICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKLSAgICAg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7Ci0gICAgICAgIGNh
c2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKLSAgICAgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoInN0cm9rZVdpZHRoIik7Ci0gICAgICAgIH0KLQotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgc3Rh
dGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0g
ICAgewotICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKLSAgICAgICAgICAg
IHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOwotICAgICAgICBpZiAodmFsdWUg
PT0gInN0cm9rZVdpZHRoIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9r
ZVdpZHRoOwotICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOwotICAgIH0KLX07
Ci0KLXRlbXBsYXRlPD4KLWlubGluZSB1bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtl
ck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtl
ck9yaWVudEFuZ2xlOyB9Ci0KLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R01hcmtlck9yaWVudFR5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1
ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7IH0KLQotICAgIC8v
IHRvU3RyaW5nIGlzIG5vdCBuZWVkZWQsIHN5bmNocm9uaXplT3JpZW50VHlwZSgpIGhhbmRsZXMg
dGhpcyBvbiBpdHMgb3duLgotCi0gICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKLSAgICB7Ci0g
ICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2Vy
T3JpZW50QXV0bzsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQot
ICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7Ci0gICAg
ICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsK
LSAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQotICAgICAgICAgICAg
cmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJP
cmllbnRBbmdsZTsKLSAgICB9Ci19OwotCiBjbGFzcyBTVkdNYXJrZXJFbGVtZW50IGZpbmFsIDog
cHVibGljIFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCB7CkBAIC0xNjQsOCArOTksOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgc3luY2hyb25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KTsKICAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IGxvb2t1cE9y
Q3JlYXRlT3JpZW50VHlwZVdyYXBwZXIoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAg
IFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGUoKSBjb25zdDsKLSAgICBTVkdNYXJrZXJP
cmllbnRUeXBlJiBvcmllbnRUeXBlQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRU
eXBlLnZhbHVlOyB9Ci0gICAgdm9pZCBzZXRPcmllbnRUeXBlQmFzZVZhbHVlKGNvbnN0IFNWR01h
cmtlck9yaWVudFR5cGUmIHR5cGUpIHsgbV9vcmllbnRUeXBlLnZhbHVlID0gdHlwZTsgfQorICAg
IFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm1fb3JpZW50VHlwZS52YWx1ZSk7
IH0KKyAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50
VHlwZSYgdHlwZSkgeyBvcmllbnRUeXBlQmFzZVZhbHVlKCkgPSB0eXBlOyB9CiAgICAgUmVmPFNW
R0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+
IG9yaWVudFR5cGVBbmltYXRlZCgpOwogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hcmtlclR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlclR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0g
U1ZHTWFya2VyVW5pdHNUeXBlIHsKKyAgICBTVkdNYXJrZXJVbml0c1Vua25vd24gPSAwLAorICAg
IFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2UsCisgICAgU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aAorfTsKKworZW51bSBTVkdNYXJrZXJPcmllbnRUeXBlIHsKKyAgICBTVkdNYXJrZXJPcmll
bnRVbmtub3duID0gMCwKKyAgICBTVkdNYXJrZXJPcmllbnRBdXRvLAorICAgIFNWR01hcmtlck9y
aWVudEFuZ2xlLAorICAgIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UsCisgICAgCisg
ICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KKyAgICBTVkdNYXJrZXJPcmllbnRN
YXgKK307CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyVW5pdHNUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7
IHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOyB9CisgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhTVkdNYXJrZXJVbml0c1R5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAo
dHlwZSkgeworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVW5rbm93bjoKKyAgICAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVXNlclNw
YWNlT25Vc2U6CisgICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1c2VyU3BhY2VPblVz
ZSIpOworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg6CisgICAgICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdHJva2VXaWR0aCIpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CisgICAgfQorICAgIHN0YXRpYyBTVkdNYXJrZXJVbml0c1R5cGUgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09ICJ1c2VyU3Bh
Y2VPblVzZSIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVz
ZTsKKyAgICAgICAgaWYgKHZhbHVlID09ICJzdHJva2VXaWR0aCIpCisgICAgICAgICAgICByZXR1
cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsKKyAgICAgICAgcmV0dXJuIFNWR01hcmtlclVu
aXRzVW5rbm93bjsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4geworICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0
RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQor
ICAgIHN0YXRpYyBTVkdNYXJrZXJPcmllbnRUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2
YWx1ZSwgU1ZHQW5nbGVWYWx1ZSYgYW5nbGUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0g
ImF1dG8iKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG87CisgICAgICAg
IGlmICh2YWx1ZSA9PSAiYXV0by1zdGFydC1yZXZlcnNlIikKKyAgICAgICAgICAgIHJldHVybiBT
VkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOworICAgICAgICBhdXRvIHNldFZhbHVlUmVz
dWx0ID0gYW5nbGUuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGlmIChzZXRWYWx1
ZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmll
bnRVbmtub3duOworICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgfQor
fTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+IHsKKyAgICBzdGF0aWMgc3RkOjpwYWlyPFNWR0FuZ2xlVmFs
dWUsIHVuc2lnbmVkPiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgU1ZHQW5nbGVWYWx1ZSBhbmdsZTsKKyAgICAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSBv
cmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21T
dHJpbmcoc3RyaW5nLCBhbmdsZSk7CisgICAgICAgIGlmIChvcmllbnRUeXBlICE9IFNWR01hcmtl
ck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgYW5nbGUgPSB7IH07CisgICAgICAgIHJldHVybiBz
dGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KGFuZ2xlLCBvcmllbnRUeXBlKTsKKyAg
ICB9Cit9OworCit0ZW1wbGF0ZTw+CitpbmxpbmUgdW5zaWduZWQgU1ZHSURMRW51bUxpbWl0czxT
VkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUoKSB7IHJldHVybiBT
VkdNYXJrZXJPcmllbnRBbmdsZTsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDEwICs2MCwxMCBAQCBpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNvCiAg
ICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9tYXNrVW5pdHMoU1ZH
VW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKQogICAgICwgbV9tYXNr
Q29udGVudFVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkK
LSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICItMTAlIikKLSAgICAsIG1feShMZW5ndGhNb2Rl
SGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKQot
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKQorICAgICwgbV94KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4
L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1
ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hl
aWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZh
bHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSBTVkdNYXRyaXggYmVjb21lcyBhbiBhbGlhcyB0byBE
T01NYXRyaXguCiBjbGFzcyBTVkdNYXRyaXggOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R01hdHJpeFZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0
ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlKSk7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hKCk7CisgICAgICAg
IHJldHVybiB2YWx1ZVByb3BlcnR5KCkuYSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEEoZG91YmxlIHZhbHVlKQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNl
dEEodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0QSh2YWx1ZSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03Myw3ICs3Myw3IEBA
IHB1YmxpYzoKIAogICAgIGRvdWJsZSBiKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmIoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5iKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Qihkb3VibGUgdmFsdWUpCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Qih2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVy
dHkoKS5zZXRCKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0
dXJuIHsgfTsKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGMoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYygpOworICAgICAgICByZXR1
cm4gdmFsdWVQcm9wZXJ0eSgpLmMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDKGRvdWJsZSB2YWx1ZSkKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRDKHZh
bHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEModmFsdWUpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTA1LDcgKzEwNSw3IEBAIHB1
YmxpYzoKIAogICAgIGRvdWJsZSBkKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLmQoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5kKCk7CiAgICAg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RChkb3VibGUgdmFsdWUpCkBAIC0xMTMsNyAr
MTEzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXREKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0
eSgpLnNldEQodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4geyB9OwpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBlKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmUoKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlUHJvcGVydHkoKS5lKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0RShkb3VibGUgdmFsdWUpCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRF
KHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEUodmFsdWUpOwogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTM3LDcgKzEzNyw3IEBA
IHB1YmxpYzoKIAogICAgIGRvdWJsZSBmKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmYoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS5mKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Rihkb3VibGUgdmFsdWUpCkBAIC0xNDUs
NyArMTQ1LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRGKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9w
ZXJ0eSgpLnNldEYodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtMTU2LDcgKzE1Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5tdWx0aXBseShzZWNvbmRNYXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC52YWx1ZVBy
b3BlcnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZH
TWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3Bl
cnR5UmVmZXJlbmNlKCkuaW52ZXJzZSgpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJv
cGVydHkoKS5pbnZlcnNlKCk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgCkBA
IC0xODAsNyArMTgwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0ZSh4
LCB5KTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS50cmFu
c2xhdGUoeCwgeSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBT
VkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5zY2FsZShzY2FsZUZhY3Rvcik7ICAgICAgICAKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0
KTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGVO
b25Vbmlmb3JtKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsgICAgICAgIAorICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JY
LCBzY2FsZUZhY3RvclkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9
IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRv
IHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5yb3RhdGUoYW5nbGUpOwogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAg
LTIyNCw3ICsyMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlRnJvbVZl
Y3Rvcih4LCB5KTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHko
KS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAg
ICAgIApAQCAtMjM3LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlw
WCgpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmZsaXBY
KCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5mbGlwWSgpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9w
ZXJ0eSgpLmZsaXBZKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WChhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2tld1goYW5nbGUpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI3
MCwxNCArMjcwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WShhbmdsZSk7
ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2tld1koYW5n
bGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhW
YWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlci5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXIgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFy
T2ZmPGZsb2F0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgZmxvYXQmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTnVtYmVyKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAg
fQpAQCAtNDEsMTEgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdOdW1iZXIoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdO
dW1iZXI+IGNyZWF0ZShjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTnVtYmVy
Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAg
aWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU1LDcgKzUwLDcgQEAgcHVibGlj
OgogCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4g
cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZh
bHVlKQpAQCAtNjMsMTQgKzU4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkgPSB2YWx1ZTsKKyAgICAgICAg
dmFsdWVQcm9wZXJ0eSgpID0gdmFsdWU7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR051bWJlcihTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxv
YXQmIHZhbHVlKQorICAgIFNWR051bWJlcihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PigmYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTc5LDExICs3NCw2IEBAIHByaXZhdGU6
CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0Pihpbml0aWFsVmFsdWUpCiAgICAg
ewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR051bWJlcihjb25zdCBmbG9hdCogaW5pdGlhbFZh
bHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQot
ICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVy
Q2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgU1ZHTnVtYmVyTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1
ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB2b2lkIFNWR051bWJlckxpc3RW
YWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgd2hpbGUgKHB0ciA8IGVuZCkgewogICAgICAgICBp
ZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCBudW1iZXIpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBhcHBlbmQobnVtYmVyKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
ZmxvYXQ+KG51bWJlcikpOwogICAgIH0KIH0KIApAQCAtNTIsNyArNTIsNyBAQCBTdHJpbmcgU1ZH
TnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlmIChpID4gMCkKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoYXQoaSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwcm9wZXJ0eUF0KGkpKTsK
ICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MCwyNCArMjAsMzEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyOwogY2xhc3MgU1ZH
TnVtYmVyTGlzdDsKIAotY2xhc3MgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBW
ZWN0b3I8ZmxvYXQ+IHsKK2NsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMg
U1ZHTGlzdFZhbHVlczxmbG9hdD4gewogcHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3Ry
aW5nJik7CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKKyAgICAKIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsK
K3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVz
PiB7CiAgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlz
dDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAg
ICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVz
JiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlz
dEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVy
OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTksNiArMjE5LDMxIEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJl
cihjb25zdCBTdHIKICAgICByZXR1cm4gY3VyID09IGVuZDsKIH0KIAorYm9vbCBwYXJzZVBvaW50
KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgaWYgKHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3Rl
cnMgPSBTdHJpbmdWaWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOworICAgIGNvbnN0IFVD
aGFyKiBjdXIgPSB1cGNvbnZlcnRlZENoYXJhY3RlcnM7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9
IGN1ciArIHMubGVuZ3RoKCk7CisKKyAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIs
IGVuZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZsb2F0IHggPSAwOworICAgIGlm
ICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOworCisgICAg
Ly8gZGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0IHNwYWNlcyBhdCB0aGUgZW5kCisgICAgcmV0dXJu
ICFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpOworfQorCiBib29sIHBhcnNlUmVjdChj
b25zdCBTdHJpbmcmIHN0cmluZywgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGF1dG8gdXBjb252
ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5nVmlldyhzdHJpbmcpLnVwY29udmVydGVkQ2hhcmFjdGVy
cygpOwpAQCAtMjY0LDcgKzI4OSw3IEBAIGJvb2wgcG9pbnRzTGlzdEZyb21TVkdEYXRhKFNWR1Bv
aW50TGlzdFYKICAgICAgICAgfQogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBl
bmQpOwogCi0gICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKEZsb2F0UG9pbnQoeFBvcywgeVBvcykp
OworICAgICAgICBwb2ludHNMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPEZsb2F0UG9pbnQ+
KEZsb2F0UG9pbnQoeFBvcywgeVBvcykpKTsKICAgICB9CiAgICAgcmV0dXJuIGN1ciA9PSBlbmQg
JiYgIWRlbGltUGFyc2VkOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0
aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIGJvb2wgcGFyc2VO
dW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHIKIGJvb2wgcGFyc2VBcmNGbGFnKGNvbnN0IExD
aGFyKiYgcHRyLCBjb25zdCBMQ2hhciogZW5kLCBib29sJiBmbGFnKTsKIGJvb2wgcGFyc2VBcmNG
bGFnKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29sJiBmbGFnKTsKIGJv
b2wgcGFyc2VSZWN0KGNvbnN0IFN0cmluZyYsIEZsb2F0UmVjdCYpOworYm9vbCBwYXJzZVBvaW50
KGNvbnN0IFN0cmluZyYsIEZsb2F0UG9pbnQmKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+CiBib29sIHBhcnNlRmxvYXRQb2ludChjb25zdCBDaGFyYWN0ZXJUeXBlKiYgY3Vy
cmVudCwgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kLCBGbG9hdFBvaW50Jik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5
LDYgKzE5LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDM0ICs0OCw0MiBAQCBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBEYXRhOjpjb25zdF9pdGVyYXRvciBEYXRhSXRlcmF0b3I7CiAKICAgICBTVkdQ
YXRoQnl0ZVN0cmVhbSgpIHsgfQotICAgIFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IERhdGEmIGRh
dGEpIDogbV9kYXRhKGRhdGEpIHsgfQorICAgIFNWR1BhdGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRl
U3RyZWFtJiYgb3RoZXIpCisgICAgICAgIDogbV9kYXRhKFdURk1vdmUob3RoZXIubV9kYXRhKSkK
KyAgICB7CisgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpIGNvbnN0CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0
aEJ5dGVTdHJlYW0mIG90aGVyKQorICAgICAgICA6IG1fZGF0YShvdGhlci5tX2RhdGEpCiAgICAg
ewotICAgICAgICByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsKICAgICB9CiAKLSAgICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAg
IFNWR1BhdGhCeXRlU3RyZWFtJiBvcGVyYXRvcj0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikK
KyAgICB7CisgICAgICAgIG1fZGF0YSA9IFdURk1vdmUob3RoZXIubV9kYXRhKTsKKyAgICAgICAg
cmV0dXJuICp0aGlzOworICAgIH0KKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0b3I9KGNv
bnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiAhKCp0
aGlzID09IG90aGVyKTsKKyAgICAgICAgbV9kYXRhID0gb3RoZXIubV9kYXRhOworICAgICAgICBy
ZXR1cm4gKnRoaXM7CiAgICAgfQogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR1BhdGhC
eXRlU3RyZWFtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhID09IG90aGVyLm1fZGF0YTsg
fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KKwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gY29weSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4obV9kYXRhKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVTdHJlYW0+KCp0aGlzKTsKICAgICB9
CiAKICAgICBEYXRhSXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2RhdGEuYmVnaW4o
KTsgfQogICAgIERhdGFJdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZW5kKCk7
IH0KIAogICAgIHZvaWQgYXBwZW5kKHVuc2lnbmVkIGNoYXIgYnl0ZSkgeyBtX2RhdGEuYXBwZW5k
KGJ5dGUpOyB9Ci0gICAgdm9pZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVy
KQotICAgIHsKLSAgICAgICAgZm9yIChhdXRvIHN0cmVhbSA6IG90aGVyKQotICAgICAgICAgICAg
YXBwZW5kKHN0cmVhbSk7Ci0gICAgfQorICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNWR1BhdGhCeXRl
U3RyZWFtJiBvdGhlcikgeyBtX2RhdGEuYXBwZW5kVmVjdG9yKG90aGVyLm1fZGF0YSk7IH0KICAg
ICB2b2lkIGNsZWFyKCkgeyBtX2RhdGEuY2xlYXIoKTsgfQotICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0IHsgcmV0dXJuICFtX2RhdGEuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhLmlzRW1wdHkoKTsgfQogICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEuc2l6ZSgpOyB9CiAKICAgICAvLyBPbmx5IGRlZmluZWQgdG8gbGV0IFNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yIHVzZSB0aGUgc3RhbmRhcmQgbGlzdCBjb2RlIHBhdGhzIC0g
dGhpcyBtZXRob2QgaXMgbmV2ZXIgY2FsbGVkLgpAQCAtODIsNSArOTIsMTYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBEYXRhIG1fZGF0YTsKIH07CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3Qg
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+IHsKKyAgICBzdGF0aWMgU1ZHUGF0
aEJ5dGVTdHJlYW0gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUGF0aEJ5dGVTdHJlYW0oKTsg
fQorICAgIHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gYnl0ZVN0cmVhbTsKKyAg
ICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5nLCBieXRlU3RyZWFt
LCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgcmV0dXJuIGJ5dGVTdHJlYW07CisgICAgfQor
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdQYXRoRWxlbWVudDo6U1ZHUGF0
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9w
YXRoU2VnTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSkKKyAgICAsIG1fcGF0aFNlZ0xpc3QoU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpKQogICAgICwgbV9pc0FuaW1W
YWxPYnNlcnZlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6cGF0
aFRhZykpOwpAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQKICAgICAgICAgaWYgKG1fcGF0aFNlZ0xpc3Quc2hvdWxkU3luY2hyb25pemUg
JiYgIVNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUGF0aEVsZW1lbnQsIFNW
R0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KHRoaXMsIGRQcm9wZXJ0eUluZm8o
KSktPmlzQW5pbWF0aW5nKCkpIHsKICAgICAgICAgICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzIG5l
d0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpOwogICAgICAgICAgICAgYnVpbGRTVkdQYXRoU2Vn
TGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG1fcGF0aEJ5dGVTdHJlYW0sICp0aGlzLCBuZXdMaXN0
LCBVbmFsdGVyZWRQYXJzaW5nKTsKLSAgICAgICAgICAgIG1fcGF0aFNlZ0xpc3QudmFsdWUgPSBu
ZXdMaXN0OworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigq
bV9wYXRoU2VnTGlzdC52YWx1ZSkgPSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKHJlbmRlcmVyKQpAQCAtMzI3LDggKzMyNyw4IEBAIFJlZjxTVkdBbmltYXRlZFBy
b3BlcnR5PiBTVkdQYXRoRWxlbWVudDoKICAgICBpZiAoYXV0byBwcm9wZXJ0eSA9IFNWR0FuaW1h
dGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSkpCiAg
ICAgICAgIHJldHVybiAqcHJvcGVydHk7CiAKLSAgICBpZiAob3duZXJUeXBlLm1fcGF0aFNlZ0xp
c3QudmFsdWUuaXNFbXB0eSgpKQotICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJv
bUJ5dGVTdHJlYW0ob3duZXJUeXBlLm1fcGF0aEJ5dGVTdHJlYW0sIG93bmVyVHlwZSwgb3duZXJU
eXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUsIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIGlmIChzdGF0
aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpvd25lclR5cGUubV9wYXRoU2VnTGlzdC52
YWx1ZSkuaXNFbXB0eSgpKQorICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5
dGVTdHJlYW0ob3duZXJUeXBlLm1fcGF0aEJ5dGVTdHJlYW0sIG93bmVyVHlwZSwgc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUp
LCBVbmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIHJldHVybiBTVkdBbmltYXRlZFByb3BlcnR5Ojps
b29rdXBPckNyZWF0ZVdyYXBwZXI8U1ZHUGF0aEVsZW1lbnQsIFNWR0FuaW1hdGVkUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmYsIFNWR1BhdGhTZWdMaXN0VmFsdWVzPigmb3duZXJUeXBlLCBkUHJv
cGVydHlJbmZvKCksIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKTsKIH0KQEAgLTMzOSw3
ICszMzksNyBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzeW5jaHJvbml6ZUQoU1ZHRWxlCiAgICAg
U1ZHUGF0aEVsZW1lbnQmIG93bmVyVHlwZSA9IGRvd25jYXN0PFNWR1BhdGhFbGVtZW50PigqY29u
dGV4dEVsZW1lbnQpOwogICAgIGlmICghb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc2hvdWxkU3lu
Y2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBvd25lclR5cGUubV9wYXRoU2VnTGlzdC5z
eW5jaHJvbml6ZSgmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIG93
bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJU
eXBlLm1fcGF0aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygp
LT5hdHRyaWJ1dGVOYW1lLCBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpvd25l
clR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSkudmFsdWVBc1N0cmluZygpKTsKIH0KIAogdm9pZCBT
VkdQYXRoRWxlbWVudDo6YW5pbWF0ZWRQcm9wZXJ0eVdpbGxCZURlbGV0ZWQoKQpAQCAtMzkyLDEw
ICszOTIsMTAgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKAogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBhdGhTZWdVbmFsdGVyZWRSb2xlOgogICAgICAgICBpZiAo
bGlzdE1vZGlmaWNhdGlvbiA9PSBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoIW1fcGF0aFNlZ0xpc3QudmFsdWUuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIGFw
cGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcobV9wYXRoU2VnTGlzdC52YWx1ZS5s
YXN0KCkuY29weVJlZigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9w
YXRoU2VnTGlzdC52YWx1ZSkuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgIGFwcGVuZFNWR1BhdGhC
eXRlU3RyZWFtRnJvbVNWR1BhdGhTZWcoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMm
PigqbV9wYXRoU2VnTGlzdC52YWx1ZSkubGFzdFByb3BlcnR5KCkuY29weVJlZigpLCBtX3BhdGhC
eXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNl
Z0xpc3QudmFsdWUsIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAg
ICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhzdGF0
aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKSwgbV9w
YXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIG1fY2FjaGVkUGF0aCA9
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5kZWZpbmVk
Um9sZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBT
VkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMoKQogewotICAgIEFTU0VSVChtX3Zh
bHVlcyk7Ci0gICAgZm9yIChhdXRvJiBpdGVtIDogKm1fdmFsdWVzKQorICAgIGZvciAoYXV0byYg
aXRlbSA6IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydGllcygpKQogICAgICAgICBzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnV2l0aENvbnRleHQqPihpdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUo
bnVsbHB0ciwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBT
VkdQYXRoU2VnTGlzdDo6Y2xlYXIoKQogewotICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgaWYg
KG1fdmFsdWVzLT5pc0VtcHR5KCkpCisgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgY2xlYXJDb250ZXh0QW5kUm9sZXMoKTsKQEAg
LTUwLDggKzQ4LDggQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoUwog
CiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTZWdMaXN0OjpyZXBsYWNl
SXRlbShSZWY8U1ZHUGF0aFNlZz4mJiBuZXdJdGVtLCB1bnNpZ25lZCBpbmRleCkKIHsKLSAgICBp
ZiAoaW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKSB7Ci0gICAgICAgIExpc3RJdGVtVHlwZSByZXBs
YWNlZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgpOworICAgIGlmIChpbmRleCA8IHZhbHVlc1By
b3BlcnR5KCkuc2l6ZSgpKSB7CisgICAgICAgIExpc3RJdGVtVHlwZSByZXBsYWNlZEl0ZW0gPSB2
YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaW5kZXgpOwogICAgICAgICBBU1NFUlQocmVwbGFj
ZWRJdGVtKTsKICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4ocmVw
bGFjZWRJdGVtLmdldCgpKS0+c2V0Q29udGV4dEFuZFJvbGUobnVsbHB0ciwgUGF0aFNlZ1VuZGVm
aW5lZFJvbGUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjo6TGlzdEl0ZW1UeXBlOwogCi0gICAgc3Rh
dGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xl
IHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xl
LCBwYXRoU2VnUm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVl
cyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNW
R1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2Vn
TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSwgdmFsdWVz
LCB3cmFwcGVycykpOwpAQCAtNDUsMTEgKzQ1LDkgQEAgcHVibGljOgogCiAgICAgaW50IGZpbmRJ
dGVtKGNvbnN0IExpc3RJdGVtVHlwZSYgaXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7Ci0KLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fdmFsdWVzLT5zaXplKCk7
CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChp
dGVtID09IG1fdmFsdWVzLT5hdChpKSkKKyAgICAgICAgICAgIGlmIChpdGVtID09IHZhbHVlc1By
b3BlcnR5KCkucHJvcGVydHlBdChpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAg
ICAgfQogCkBAIC01OCwxMCArNTYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUl0ZW1G
cm9tTGlzdChzaXplX3QgaXRlbUluZGV4LCBib29sIHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMp
CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVt
SW5kZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgpOwogCiAg
ICAgICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CkBAIC05Myw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUs
IFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQorICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdS
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxTVkdQYXRoU2VnTGlzdFZhbHVlcz4o
cm9sZSwgdmFsdWVzLCAmd3JhcHBlcnMpCiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KCZh
bmltYXRlZFByb3BlcnR5KQogICAgICAgICAsIG1fcGF0aFNlZ1JvbGUocGF0aFNlZ1JvbGUpCkBA
IC0xMTcsMTQgKzExNCwxMiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBm
aW5hbAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMt
PmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0
TW9kaWZpY2F0aW9uVW5rbm93bik7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hh
bmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRp
b25Vbmtub3duKTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0
aW9uIGxpc3RNb2RpZmljYXRpb24pIGZpbmFsCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1
ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHkt
PmNvbnRleHRFbGVtZW50KCksIGxpc3RNb2RpZmljYXRpb24pOworICAgICAgICB2YWx1ZXNQcm9w
ZXJ0eSgpLmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgp
LCBsaXN0TW9kaWZpY2F0aW9uKTsKICAgICB9CiAKICAgICBib29sIHByb2Nlc3NJbmNvbWluZ0xp
c3RJdGVtVmFsdWUoY29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhU
b01vZGlmeSkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RC
dWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDc4ICs1OCw3OCBA
QCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OlNWR1BhdGhTZWdMaXN0QnVpCiB2b2lkIFNWR1BhdGhT
ZWdMaXN0QnVpbGRlcjo6bW92ZVRvKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBib29s
LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNv
b3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z01vdmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9s
ZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnTW92ZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvKGNvbnN0
IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAg
ICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0
LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4o
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsKHRhcmdldFBvaW50LngoKSwg
dGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdM
aXN0QnVpbGRlcjo6bGluZVRvSG9yaXpvbnRhbChmbG9hdCB4LCBQYXRoQ29vcmRpbmF0ZU1vZGUg
bW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkpKTsK
ICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpOworICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRo
U2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCh4
LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGlu
ZVRvVmVydGljYWwoZmxvYXQgeSwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYg
KG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMoeSwgbV9w
YXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3Jl
YXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxBYnMoeSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsUmVsKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAK
IHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWMoY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50
Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQy
LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBw
b2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdS
b2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljU21v
b3RoKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MiwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9p
bnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRl
Q29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIu
eSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
KHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgp
LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50MSwgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBt
b2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCks
IHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQ
b2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQu
eSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+Piht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRy
YXRpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVN
b2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
bV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6
Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhS
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7
CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjphcmNUbyhmbG9hdCByMSwgZmxvYXQg
cjIsIGZsb2F0IGFuZ2xlLCBib29sIGxhcmdlQXJjRmxhZywgYm9vbCBzd2VlcEZsYWcsIGNvbnN0
IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAg
ICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0
LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNBYnModGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBG
bGFnLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdBcmNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5n
bGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UK
LSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQXJjUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xl
LCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRo
U2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCgp
CiB7Ci0gICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ2xvc2VQYXRoKG1fcGF0aFNlZ1JvbGUpKTsKKyAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChT
VkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnQ2xvc2VQYXRoKG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpoYXNN
b3JlRGF0YSgpCiAKIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWVudFR5
cGUoU1ZHUGF0aFNlZ1R5cGUmIHBhdGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0
aFNlZ0xpc3QuYXQobV9pdGVtQ3VycmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlz
dC5wcm9wZXJ0eUF0KG1faXRlbUN1cnJlbnQpOwogICAgIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ1R5cGU+KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0
ZW1DdXJyZW50OwogICAgIHJldHVybiB0cnVlOwpAQCAtNTEsNyArNTEsNyBAQCBib29sIFNWR1Bh
dGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lCiAKIFNWR1BhdGhTZWdUeXBlIFNWR1BhdGhT
ZWdMaXN0U291cmNlOjpuZXh0Q29tbWFuZChTVkdQYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21l
bnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1f
cGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2VnVHlw
ZSBwYXRoU2VnVHlwZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBh
dGhTZWdUeXBlKCkpOwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNlZ1R5
cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5LDEwICsxOSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiU1ZHTGlzdFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgog
I2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzMsNyArMzIsNyBAQCBjbGFzcyBTVkdQYXRoU2Vn
TGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwog
Ci1jbGFzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPFNWR1Bh
dGhTZWc+PiB7CitjbGFzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBTVkdMaXN0VmFs
dWVzPFJlZlB0cjxTVkdQYXRoU2VnPj4gewogcHVibGljOgogICAgIGV4cGxpY2l0IFNWR1BhdGhT
ZWdMaXN0VmFsdWVzKFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgICAgIDogbV9yb2xlKHJvbGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTCiAgICAgQVNTRVJUKHBhcnNpbmdNb2RlID09IFVuYWx0ZXJlZFBhcnNpbmcp
OwogCiAgICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgYXBwZW5kZWRJdGVtTGlzdChQYXRoU2VnVW5h
bHRlcmVkUm9sZSk7Ci0gICAgYXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoV1RGTW92ZShwYXRoU2Vn
KSk7CisgICAgYXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KFdURk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFt
IGFwcGVuZGVkQnl0ZVN0cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBw
ZW5kZWRJdGVtTGlzdCk7CkBAIC0yMDYsMTUgKzIwNiwxNCBAQCBib29sIGJ1aWxkQW5pbWF0ZWRT
VkdQYXRoQnl0ZVN0cmVhbShjb25zCiAKIGJvb2wgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShTVkdQ
YXRoQnl0ZVN0cmVhbSYgc3RyZWFtVG9BcHBlbmRUbywgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0m
IGJ5U3RyZWFtLCB1bnNpZ25lZCByZXBlYXRDb3VudCkKIHsKLSAgICAvLyBXaHkgcmV0dXJuIHdo
ZW4gc3RyZWFtVG9BcHBlbmRUbyBpcyBlbXB0eT8gRG9uJ3Qgd2Ugc3RpbGwgbmVlZCB0byBhcHBl
bmQ/CisgICAgLy8gVGhlIGJ5U3RyZWFtIHdpbGwgYmUgYmxlbmRlZCB3aXRoIHN0cmVhbVRvQXBw
ZW5kVG8uIFNvIHN0cmVhbVRvQXBwZW5kVG8gaGFzIHRvIGhhdmUgZWxlbWVudHMuCiAgICAgaWYg
KHN0cmVhbVRvQXBwZW5kVG8uaXNFbXB0eSgpIHx8IGJ5U3RyZWFtLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBJcyBpdCBPSyB0byBtYWtlIHRoZSBTVkdQYXRoQnl0
ZVN0cmVhbUJ1aWxkZXIgZnJvbSBhIHN0cmVhbSwgYW5kIHRoZW4gY2xlYXIgdGhhdCBzdHJlYW0/
CisgICAgLy8gYnVpbGRlciBpcyB0aGUgZGVzdGluYXRpb24gb2YgYmxlbmRpbmcgZnJvbVNvdXJj
ZSBhbmQgYnlTb3VyY2UuIFRoZSBzdHJlYW0gb2YgYnVpbGRlcgorICAgIC8vIChpLmUuIHN0cmVh
bVRvQXBwZW5kVG8pIGhhcyB0byBiZSBjbGVhcmVkIGJlZm9yZSBjYWxsaW5nIGFkZEFuaW1hdGVk
UGF0aC4KICAgICBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIgYnVpbGRlcihzdHJlYW1Ub0FwcGVu
ZFRvKTsKLQotICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gc3RyZWFtVG9B
cHBlbmRUbzsKLSAgICBzdHJlYW1Ub0FwcGVuZFRvLmNsZWFyKCk7CisgICAgU1ZHUGF0aEJ5dGVT
dHJlYW0gZnJvbVN0cmVhbUNvcHkgPSBXVEZNb3ZlKHN0cmVhbVRvQXBwZW5kVG8pOwogCiAgICAg
U1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UgZnJvbVNvdXJjZShmcm9tU3RyZWFtQ29weSk7CiAgICAg
U1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UgYnlTb3VyY2UoYnlTdHJlYW0pOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvaW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU1ZHUG9pbnQgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9p
bnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0
UG9pbnQmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQb2ludChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAg
LTQzLDExICs0Myw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UG9pbnQoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludD4g
Y3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHUG9pbnQ+PiBj
cmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAo
aW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTcsNyArNTIsNyBAQCBwdWJsaWM6CiAK
ICAgICBmbG9hdCB4KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LngoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS54KCk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0WChmbG9hdCB4VmFsdWUpCkBAIC02NSw3ICs2MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0WCh4VmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WCh4
VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpA
QCAtNzMsNyArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJv
cGVydHkoKS55KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4
VmFsdWUpCkBAIC04MSw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAg
ICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WSh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtOTIsMTkgKzg3LDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gbmV3UG9pbnQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLm1hdHJpeFRyYW5zZm9ybShtYXRyaXgucHJvcGVydHlSZWZlcmVu
Y2UoKSk7CisgICAgICAgIGF1dG8gbmV3UG9pbnQgPSB2YWx1ZVByb3BlcnR5KCkubWF0cml4VHJh
bnNmb3JtKG1hdHJpeC52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
IAogICAgICAgICByZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1Bv
aW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQog
ICAgIHsKICAgICB9CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQ
b2ludCYgdmFsdWUpCisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9h
dFBvaW50PihudWxscHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTEzLDExICsx
MDgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9p
bnQ+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUG9pbnQo
Y29uc3QgRmxvYXRQb2ludCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVh
ck9mZjxGbG9hdFBvaW50Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsMTMgKzM3LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9p
bnRMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQ
b2ludExpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+
IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUG9pbnRMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMp
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1Bv
aW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBT
VkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmPFNWR1BvaW50TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3
cmFwcGVycykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIFN0
cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcKICAgICAgICAgaWYgKGkgPiAw
KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3
ZSB1c2UgY29tbWFzIHRvIHNlcGVyYXRlPwogCi0gICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0g
YXQoaSk7CisgICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gcHJvcGVydHlBdChpKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjEsMjIgKzIxLDI4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlU
cmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHUG9pbnQ7CiBjbGFzcyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNWR1BvaW50
TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xhc3MgU1ZH
UG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD4g
ewogcHVibGljOgogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1w
bGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3Rl
bXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsK
ICAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsg
fTsgfQotCisgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7Cisg
ICAgICAgIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1
cm4gbGlzdDsKKyAgICB9CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAg
ICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVy
dHlUZWFyT2ZmID0gU1ZHUG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU1ZHUG9s
eUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9
IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0Fu
aW1hdGVkUG9pbnRMaXN0Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAg
ICBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0
YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1
ZSA9IG5ld0xpc3Q7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpt
X3BvaW50cy52YWx1ZSkgPSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQ
b2ludHMoUwogICAgIFNWR1BvbHlFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5
RWxlbWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5z
aG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50
cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRl
TmFtZSwgb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3du
ZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5m
bygpLT5hdHRyaWJ1dGVOYW1lLCBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqb3du
ZXJUeXBlLm1fcG9pbnRzLnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5p
bWF0ZWRQcm9wZXJ0eT4gU1ZHUG9seUVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBl
cihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
RWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAg
UmVmPFNWR1BvaW50TGlzdD4gcG9pbnRzKCk7CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gYW5pbWF0
ZWRQb2ludHMoKTsKIAotICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3Qg
eyByZXR1cm4gbV9wb2ludHMudmFsdWU7IH0KKyAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCpt
X3BvaW50cy52YWx1ZSk7IH0KIAogICAgIHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIHBv
aW50c1Byb3BlcnR5SW5mbygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDog
cHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIs
MTEgKzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewog
ICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTYsNyArNTEsNyBA
QCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCBhbGlnbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbGlnbigpOworICAgICAgICByZXR1cm4gdmFsdWVQ
cm9wZXJ0eSgpLmFsaWduKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxp
Z24oZmxvYXQgdmFsdWUpCkBAIC02NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRBbGlnbih2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0
eSgpLnNldEFsaWduKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTc0LDcgKzY5LDcgQEAgcHVibGljOgog
CiAgICAgdW5zaWduZWQgc2hvcnQgbWVldE9yU2xpY2UoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHByb3BlcnR5UmVmZXJlbmNlKCkubWVldE9yU2xpY2UoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
UHJvcGVydHkoKS5tZWV0T3JTbGljZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldE1lZXRPclNsaWNlKGZsb2F0IHZhbHVlKQpAQCAtODIsNyArNzcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkuc2V0TWVldE9yU2xpY2UodmFsdWUpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7CiAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBA
IC05MSw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTEw
MCwxMSArOTUsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0g
ICAgZXhwbGljaXQgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTEgQEAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlOjpTVkdQcmVzZXJ2ZQogewogfQogCitTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBw
YXJzZShzdHJpbmcpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU6OnNldEFsaWduKHVuc2lnbmVkIHNob3J0IGFsaWduKQogewogICAgIGlmIChhbGln
biA9PSBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOIHx8IGFsaWduID4gU1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1BWFlNQVgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUoKTsKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGlnbih1bnNpZ25lZCBzaG9y
dCk7CiAgICAgdW5zaWduZWQgc2hvcnQgYWxpZ24oKSBjb25zdCB7IHJldHVybiBtX2FsaWduOyB9
CkBAIC03Nyw2ICs3OCw3IEBAIHByaXZhdGU6CiAKIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogICAgIHN0YXRpYyBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlKCk7IH0KKyAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZShzdHJpbmcpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUu
dmFsdWVBc1N0cmluZygpOyB9CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1LDEyICs1NSwxMiBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBp
bmxpbmUgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9jeChMZW5ndGhN
b2RlV2lkdGgsICI1MCUiKQotICAgICwgbV9jeShMZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikKLSAg
ICAsIG1fcihMZW5ndGhNb2RlT3RoZXIsICI1MCUiKQotICAgICwgbV9meChMZW5ndGhNb2RlV2lk
dGgpCi0gICAgLCBtX2Z5KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX2ZyKExlbmd0aE1vZGVP
dGhlciwgIjAlIikKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAi
NTAlIikpCisgICAgLCBtX2N5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICI1MCUi
KSkKKyAgICAsIG1fcihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIsICI1MCUiKSkKKyAg
ICAsIG1fZngoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fZnkoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX2ZyKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVPdGhlciwgIjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIGN4L2N5L3Iv
ZnIgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1
ZSBvZiAiNTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6cmFkaWFsR3JhZGllbnRUYWcpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMjAsMTMgKzIwLDEzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR1Byb3BlcnR5
VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR1JlY3RUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdQcm9w
ZXJ0eVRyYWl0cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1JlY3QgOiBw
dWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4gewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U1ZHUmVjdD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFJlY3QmIHZhbHVlKQorICAgIHN0YXRpYyBS
ZWY8U1ZHUmVjdD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3QoYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC0zNiwxMSArMzYsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3QoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFs
VmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRp
YWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNl
cHRpb25PcjxSZWY8U1ZHUmVjdD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01
MCw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0
eSgpLngoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1
ZSkKQEAgLTU4LDcgKzUzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAg
IHZhbHVlUHJvcGVydHkoKS5zZXRYKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC02Niw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIGZs
b2F0IHkoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRZKGZsb2F0IHhWYWx1ZSkKQEAgLTc0LDcgKzY5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRZKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1ZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Miw3
ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkud2lkdGgoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXaWR0
aChmbG9hdCB3aWR0aFZhbHVlKQpAQCAtOTAsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFdp
ZHRoKHdpZHRoVmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0V2lkdGgod2lkdGhW
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC05OCw3ICs5Myw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IGhlaWdodCgpCiAgICAgewotICAg
ICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5oZWlnaHQoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUHJvcGVydHkoKS5oZWlnaHQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0VmFsdWUpCkBAIC0xMDYsMTQgKzEwMSwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHko
KS5zZXRIZWlnaHQoaGVpZ2h0VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdSZWN0KFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9h
dFJlY3QmIHZhbHVlKQorICAgIFNWR1JlY3QoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KCZhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTIyLDExICsxMTcsNiBAQCBw
cml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+KGluaXRpYWxW
YWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUmVjdChjb25zdCBGbG9hdFJl
Y3QqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0
Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdFRyYWl0cy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdFRyYWl0cy5oCShub25leGlzdGVudCkKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiU1ZH
UHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdGVtcGxhdGU8Pgotc3RydWN0IFNWR1Byb3BlcnR5VHJh
aXRzPEZsb2F0UmVjdD4gewotICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyBy
ZXR1cm4geyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3Qm
IHR5cGUpCi0gICAgewotICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRo
KCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcih0eXBlLmhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDExICs3MSwxMiBA
QCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHU1ZHRWxlbWVu
dDo6U1ZHU1ZHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0g
ICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0g
ICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpCi0gICAg
LCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKKyAgICAs
IG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKSkKKyAgICAsIG1faGVpZ2h0KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKSkKICAg
ICAsIG1fdGltZUNvbnRhaW5lcihTTUlMVGltZUNvbnRhaW5lcjo6Y3JlYXRlKCp0aGlzKSkKKyAg
ICAsIG1fY3VycmVudFRyYW5zbGF0ZShTVkdWYWx1ZTo6Y3JlYXRlPEZsb2F0UG9pbnQ+KCkpCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1RhZykpOwogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHU1ZHRWxlbWVudCgpOwpAQCAtMTk3LDkgKzE5OCw5IEBA
IFJlZjxTVkdQb2ludD4gU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW4KIAogdm9pZCBTVkdTVkdF
bGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9u
KQogewotICAgIGlmIChtX2N1cnJlbnRUcmFuc2xhdGUgPT0gdHJhbnNsYXRpb24pCisgICAgaWYg
KHN0YXRpY19jYXN0PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKSA9PSB0cmFuc2xh
dGlvbikKICAgICAgICAgcmV0dXJuOwotICAgIG1fY3VycmVudFRyYW5zbGF0ZSA9IHRyYW5zbGF0
aW9uOworICAgIHN0YXRpY19jYXN0PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKSA9
IHRyYW5zbGF0aW9uOwogICAgIHVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKTsKIH0KIApAQCAtMzM1
LDEyICszMzYsMTIgQEAgUmVmPE5vZGVMaXN0PiBTVkdTVkdFbGVtZW50Ojpjb2xsZWN0SW50ZQog
CiBzdGF0aWMgYm9vbCBjaGVja0ludGVyc2VjdGlvbldpdGhvdXRVcGRhdGluZ0xheW91dChTVkdF
bGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiByZWN0KQogewotICAgIHJldHVybiBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y2hlY2tJbnRlcnNlY3Rpb24oZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnBy
b3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hl
Y2tJbnRlcnNlY3Rpb24oZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnZhbHVlUHJvcGVydHkoKSk7
CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBjaGVja0VuY2xvc3VyZVdpdGhvdXRVcGRhdGluZ0xheW91
dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiByZWN0KQogewotICAgIHJldHVybiBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCByZWN0
LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6
Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnZhbHVlUHJvcGVydHkoKSk7
CiB9CiAKIFJlZjxOb2RlTGlzdD4gU1ZHU1ZHRWxlbWVudDo6Z2V0SW50ZXJzZWN0aW9uTGlzdChT
VkdSZWN0JiByZWN0LCBTVkdFbGVtZW50KiByZWZlcmVuY2VFbGVtZW50KQpAQCAtNDE0LDcgKzQx
NSw3IEBAIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVMKIAogUmVmPFNW
R1RyYW5zZm9ybT4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChT
VkdNYXRyaXgmIG1hdHJpeCkKIHsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUoU1ZH
VHJhbnNmb3JtVmFsdWUgeyBtYXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSB9KTsKKyAgICByZXR1
cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUoU1ZHVHJhbnNmb3JtVmFsdWUgeyBtYXRyaXgudmFsdWVQ
cm9wZXJ0eSgpIH0pOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVudDo6bG9jYWxD
b29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjMsNyArMTYzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNlQ3VycmVudFZpZXcgeyBmYWxz
ZSB9OwogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21BbmRQYW5N
YWduaWZ5IH07CiAgICAgUmVmPFNNSUxUaW1lQ29udGFpbmVyPiBtX3RpbWVDb250YWluZXI7Ci0g
ICAgRmxvYXRQb2ludCBtX2N1cnJlbnRUcmFuc2xhdGU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X2N1cnJlbnRUcmFuc2xhdGU7CiAgICAgUmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVjOwog
ICAgIFN0cmluZyBtX2N1cnJlbnRWaWV3RnJhZ21lbnRJZGVudGlmaWVyOwogfTsKQEAgLTE3NSw3
ICsxNzUsNyBAQCBpbmxpbmUgYm9vbCBTVkdTVkdFbGVtZW50Ojp1c2VDdXJyZW50VmllCiAKIGlu
bGluZSBGbG9hdFBvaW50IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSgpCiB7
Ci0gICAgcmV0dXJuIG1fY3VycmVudFRyYW5zbGF0ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RmxvYXRQb2ludCY+KCptX2N1cnJlbnRUcmFuc2xhdGUpOwogfQogCiBpbmxpbmUgU1ZHWm9vbUFu
ZFBhblR5cGUgU1ZHU1ZHRWxlbWVudDo6em9vbUFuZFBhbigpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHJpbmdMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHJpbmdMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEyICszNiwxMiBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVy
Q2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50
JiBjb250ZXh0RWxlbWVudCwgU1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRp
YyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0KCZjb250ZXh0RWxlbWVudCwgdmFsdWVzKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVydHlSb2xlLCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmKQorICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3Jl
YXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJikKICAgICB7CiAgICAg
ICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIHJlbW92ZSB0aGlzLiBJdCdzIG9ubHkgbmVlZGVk
IHRvIGtlZXAgV2luZG93cyBjb21waWxpbmcuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1N0
cmluZ0xpc3QoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMm
IHZhbHVlcykKKyAgICBTVkdTdHJpbmdMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHU3RhdGljTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdTdHJpbmdMaXN0VmFsdWVzPihjb250ZXh0RWxlbWVudCwgdmFsdWVz
KQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RW
YWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBT
VkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldChjb25zdCBTdAogCiAgICAgLy8gQWRkIGVtcHR5IHN0
cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0eSgpKQotICAgICAgICBhcHBl
bmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0cmlu
Zz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNl
KGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICBwdHIr
KzsKICAgICAgICAgaWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOworICAgICAgICBhcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKSk7CiAgICAg
ICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5kLCBkZWxpbWl0ZXIp
OwogICAgIH0KIH0KQEAgLTcwLDcgKzcwLDcgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1ZXM6
OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQocHJvcGVydHlBdChpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RW
YWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsOCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgog
I2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgU1ZHU3RyaW5n
TGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwog
Ci1jbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+
IHsKK2NsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVl
czxTdHJpbmc+IHsKIHB1YmxpYzoKICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJp
YnV0ZU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Nyw5ICsxMDcsOSBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9
CiAKIFNWR1Rlc3RzOjpTVkdUZXN0cygpCi0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWly
ZWRGZWF0dXJlc0F0dHIpCi0gICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVu
c2lvbnNBdHRyKQotICAgICwgbV9zeXN0ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisg
ICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1
cmVzQXR0cikpCisgICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVz
KHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpKQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJp
bmdMaXN0VmFsdWVzKHN5c3RlbUxhbmd1YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0
LDIwIEBAIGJvb2wgU1ZHVGVzdHM6Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcKIAogYm9vbCBT
VkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDogbV9y
ZXF1aXJlZEZlYXR1cmVzLnZhbHVlKSB7CisgICAgYXV0byBmZWF0dXJlcyA9IHN0YXRpY19jYXN0
PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKS5wcm9wZXJ0
aWVzKCk7CisgICAgZm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVyZXMpIHsKICAgICAgICAgaWYg
KGZlYXR1cmUuaXNFbXB0eSgpIHx8ICFzdXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5zKGZl
YXR1cmUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3IgKGF1dG8m
IGxhbmd1YWdlIDogbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkgeworCisgICAgYXV0byBsYW5ndWFn
ZXMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3VhZ2Uu
dmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2Vz
KSB7CiAgICAgICAgIGlmIChsYW5ndWFnZSAhPSBkZWZhdWx0TGFuZ3VhZ2UoKS5zdWJzdHJpbmco
MCwgMikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGZvciAoYXV0byYg
ZXh0ZW5zaW9uIDogbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpIHsKKworICAgIGF1dG8gZXh0
ZW5zaW9ucyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEV4
dGVuc2lvbnMudmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6
IGV4dGVuc2lvbnMpIHsKICAgICAgICAgaWYgKCFoYXNFeHRlbnNpb24oZXh0ZW5zaW9uKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNzIsMTEgKzE3NywxMSBAQCBib29s
IFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRGZWF0dXJlc0F0dHIp
Ci0gICAgICAgIG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAg
IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9yZXF1aXJlZEZlYXR1cmVzLnZh
bHVlKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRFeHRl
bnNpb25zQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUucmVzZXQodmFs
dWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWly
ZWRFeHRlbnNpb25zLnZhbHVlKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5hbWUg
PT0gc3lzdGVtTGFuZ3VhZ2VBdHRyKQotICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLnJl
c2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCpt
X3N5c3RlbUxhbmd1YWdlLnZhbHVlKS5yZXNldCh2YWx1ZSk7CiB9CiAKIGJvb2wgU1ZHVGVzdHM6
OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKQEAg
LTIwOCw3ICsyMTMsNyBAQCB2b2lkIFNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShTVkdF
CiB7CiAgICAgaWYgKCFwcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJu
OwotICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIHByb3BlcnR5LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgbV9yZXF1
aXJlZEZlYXR1cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
c3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCpwcm9wZXJ0eS52YWx1ZSkudmFsdWVB
c1N0cmluZygpKTsKIH0KIAogdm9pZCBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEZlYXR1
cmVzKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Niw4ICs2Niw4IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fdGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIp
Ci0gICAgLCBtX3NwZWNpZmllZFRleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV90
ZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCisgICAgLCBtX3NwZWNp
ZmllZFRleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKICAgICAsIG1f
bGVuZ3RoQWRqdXN0KFNWR0xlbmd0aEFkanVzdFNwYWNpbmcpCiB7CiAgICAgcmVnaXN0ZXJBbmlt
YXRlZFByb3BlcnRpZXNGb3JTVkdUZXh0Q29udGVudEVsZW1lbnQoKTsKQEAgLTk1LDcgKzk1LDcg
QEAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBTVkdUZXh0Q29udGVudEVsZQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTVkdMZW5ndGhWYWx1ZT4gZGVmYXVsdFRleHRMZW5ndGgoTGVuZ3Ro
TW9kZU90aGVyKTsKICAgICBpZiAobV9zcGVjaWZpZWRUZXh0TGVuZ3RoID09IGRlZmF1bHRUZXh0
TGVuZ3RoKQotICAgICAgICBtX3RleHRMZW5ndGgudmFsdWUubmV3VmFsdWVTcGVjaWZpZWRVbml0
cyhMZW5ndGhUeXBlTnVtYmVyLCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CisgICAgICAgIHN0
YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKm1fdGV4dExlbmd0aC52YWx1ZSkubmV3VmFsdWVT
cGVjaWZpZWRVbml0cyhMZW5ndGhUeXBlTnVtYmVyLCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7
CiAKICAgICBtX3RleHRMZW5ndGguc2hvdWxkU3luY2hyb25pemUgPSB0cnVlOwogICAgIHJldHVy
biBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U1ZHQW5pbWF0ZWRMZW5ndGg+KGxvb2t1cE9yQ3JlYXRl
VGV4dExlbmd0aFdyYXBwZXIodGhpcykpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIEV4Y2VwdGlvbk9y
PGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OmdldENoYXJOdW1BdFBvc2l0aW9uKFNWR1BvaW50JiBwb2ludCkKIHsKICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIHJldHVybiBTVkdU
ZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC5wcm9w
ZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNo
YXJhY3Rlck51bWJlckF0UG9zaXRpb24ocG9pbnQudmFsdWVQcm9wZXJ0eSgpKTsKIH0KIAogRXhj
ZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJpbmcodW5z
aWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzKQpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQg
U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnUKICAgICAgICAgaWYgKHByb3BlcnR5
VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVuZ3RoQWRqdXN0QmFzZVZhbHVlKHByb3BlcnR5
VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIp
Ci0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3Qo
TGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhz
KTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZh
bHVlKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0
ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKQEAgLTI0NSw3ICsyNDUs
NyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAgICAgfQogCiAg
ICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV9z
cGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLnZhbHVlOworICAgICAgICBtX3NwZWNp
ZmllZFRleHRMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5n
dGgudmFsdWUpOwogCiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdUZXh0UGF0aEVsZW1lbnQ6OlNWR1RleHRQYXRoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdUZXh0
Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3N0YXJ0T2Zmc2V0KExl
bmd0aE1vZGVPdGhlcikKKyAgICAsIG1fc3RhcnRPZmZzZXQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyKSkKICAgICAsIG1fbWV0aG9kKFNWR1RleHRQYXRoTWV0aG9kQWxpZ24pCiAgICAg
LCBtX3NwYWNpbmcoU1ZHVGV4dFBhdGhTcGFjaW5nRXhhY3QpCiB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8U1ZHTWF0cml4PiBTVkdUcmFuc2Zvcm06Om1hdHJpeCgp
CiB7Ci0gICAgcmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgcHJvcGVydHlS
ZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSk7CisgICAgcmV0dXJuIFNWR01hdHJpeFRlYXJPZmY6OmNy
ZWF0ZSgqdGhpcywgdmFsdWVQcm9wZXJ0eSgpLnN2Z01hdHJpeCgpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVHJh
bnNmb3JtIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5z
Zm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkp
OwogICAgIH0KQEAgLTQzLDExICs0Myw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRp
YWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9y
bShpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYm
IGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0
aW9uKCkpCkBAIC01NywxNCArNTIsMTQgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQg
dHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS50eXBlKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudHlwZSgpOwogICAgIH0KIAogICAgIFJl
ZjxTVkdNYXRyaXg+IG1hdHJpeCgpOwogCiAgICAgZmxvYXQgYW5nbGUoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYW5nbGUoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUHJvcGVydHkoKS5hbmdsZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAgLTcyLDcgKzY3LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZVBy
b3BlcnR5KCkuc2V0TWF0cml4KG1hdHJpeC52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtODMsNyArNzgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFRyYW5zbGF0ZSh0eCwgdHkpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCku
c2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAg
IHJldHVybiB7IH07CkBAIC05NCw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0U2NhbGUoc3gs
IHN5KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFNjYWxlKHN4LCBzeSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTAwLDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRSb3RhdGUoYW5nbGUsIGN4LCBjeSk7CisgICAgICAgIHZhbHVl
UHJvcGVydHkoKS5zZXRSb3RhdGUoYW5nbGUsIGN4LCBjeSk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMTYsNyArMTExLDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRTa2V3WChhbmdsZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRTa2V3WChh
bmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC0xMjcsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3Ig
fTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdZKGFuZ2xlKTsKKyAgICAg
ICAgdmFsdWVQcm9wZXJ0eSgpLnNldFNrZXdZKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJh
bnNmb3JtKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1WYWx1ZSYgdmFsdWUpCisgICAgU1ZHVHJhbnNmb3JtKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkK
ICAgICB7CiAgICAgfQpAQCAtMTQzLDExICsxMzgsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsK
ICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdUcmFuc2Zvcm0oY29uc3QgU1ZHVHJhbnNmb3JtVmFs
dWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNm
b3JtVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgi
CisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMSwyMCArMzIsMTggQEAgcHVibGlj
OgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0
V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNh
Y2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlz
dChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAg
ICAgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21N
YXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMp
OwotICAgICAgICByZXR1cm4gbV92YWx1ZXMtPmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
bWF0cml4KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCkuY3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxT
VkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1
ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgYXV0byByZXN1bHQg
PSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1MSwyMyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5
KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYg
dGhlIGxpc3Qgd2FzIGVtcHR5LCB0aGVuIGEgdmFsdWUgb2YgbnVsbCBpcyByZXR1cm5lZC4KLSAg
ICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0
eSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGRl
dGFjaExpc3RXcmFwcGVycygwKTsKICAgICAgICAgCi0gICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zv
cm0+IHdyYXBwZXIgPSBtX3ZhbHVlcy0+Y29uc29saWRhdGUoKTsKKyAgICAgICAgUmVmUHRyPFNW
R1RyYW5zZm9ybT4gd3JhcHBlciA9IHZhbHVlc1Byb3BlcnR5KCkuY29uc29saWRhdGUoKTsKICAg
ICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAg
ICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKHdyYXBwZXIpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMm
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHVHJhbnNmb3JtTGlz
dChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3
IEBAIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKIAogICAgIFNWR1Ry
YW5zZm9ybVZhbHVlIHRyYW5zZm9ybShtYXRyaXgpOwogICAgIGNsZWFyKCk7Ci0gICAgYXBwZW5k
KHRyYW5zZm9ybSk7CisgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFs
dWU+KHRyYW5zZm9ybSkpOwogICAgIHJldHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZSh0cmFuc2Zv
cm0pOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
Y29uY2F0ZW5hdGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcmVzdWx0ICo9IGF0KGkpLm1hdHJpeCgpOwor
ICAgICAgICByZXN1bHQgKj0gcHJvcGVydHlBdChpKS5tYXRyaXgoKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtNjUsNyArNjUsNyBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6
dmFsdWVBc1N0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwog
ICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjAsMTggKzIxLDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHUHJvcGVy
dHlUcmFpdHMuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bVZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LWNsYXNzIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY7Ci0KK2NsYXNzIFNWR01hdHJpeDsKK2NsYXNz
IFNWR1RyYW5zZm9ybTsKIGNsYXNzIFNWR1RyYW5zZm9ybUxpc3Q7CiAKLWNsYXNzIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPFNWR1RyYW5zZm9ybVZhbHVlLCAx
PiB7CitjbGFzcyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RW
YWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKIHB1YmxpYzoKICAgICBSZWY8U1ZHVHJhbnNmb3Jt
PiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNWR01hdHJpeCYpIGNvbnN0OwogICAgIFJl
ZjxTVkdUcmFuc2Zvcm0+IGNvbnNvbGlkYXRlKCk7CkBAIC00Miw4ICs0MSwxNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4K
K3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiAgICAg
c3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9
OyB9CisgICAgc3RhdGljIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbGlz
dDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICBBU1NFUlQobGlzdC5zaXpl
KCkgPD0gMSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxp
c3QudmFsdWVBc1N0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdUcmFu
c2Zvcm1WYWx1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtOTEsNCArOTEsOSBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFNWR1RyYW5zZm9yCiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KIAordGVtcGxhdGU8
PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKKyAgICBzdGF0
aWMgU1ZHVHJhbnNmb3JtVmFsdWUgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSYgdHJhbnNmb3Jt
KSB7IHJldHVybiB0cmFuc2Zvcm0udmFsdWVBc1N0cmluZygpOyB9Cit9OworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3Bw
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw3ICsxOTcsNyBAQCBib29sIFNWR1RyYW5zZm9y
bWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0CiAgICAgICAgIGlmICghcGFyc2VUcmFuc2Zvcm1WYWx1
ZSh0eXBlLCBjdXJyVHJhbnNmb3JtLCBlbmQsIHRyYW5zZm9ybSkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAgICAgbGlzdC5hcHBlbmQodHJhbnNmb3JtKTsKKyAgICAgICAgbGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7
CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXJyVHJhbnNmb3JtLCBlbmQpOwogICAg
ICAgICBpZiAoY3VyclRyYW5zZm9ybSA8IGVuZCAmJiAqY3VyclRyYW5zZm9ybSA9PSAnLCcpIHsK
ICAgICAgICAgICAgIGRlbGltUGFyc2VkID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDEwIEBAIEVORF9S
RUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdVc2VFbGVtZW50OjpTVkdV
c2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1f
eChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1f
d2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkK
KyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX3N2Z0xvYWRFdmVudFRpbWVyKCp0aGlzLCAmU1ZHRWxl
bWVudDo6c3ZnTG9hZEV2ZW50VGltZXJGaXJlZCkKIHsKICAgICBBU1NFUlQoaGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0
UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJTVkdBbmdsZVZhbHVl
LmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR0xlbmd0
aFZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKKyNpbmNsdWRlICJTVkdOdW1i
ZXJMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRl
ICJTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5o
IgorI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgorI2luY2x1ZGUgIlNW
R1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIgorI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1W
YWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgU1ZHVmFsdWVWYXJpYW50ID0gVmFyaWFudDwKKyAgICBTVkdBbmdsZVZhbHVlLCAg
ICAgICAgICAgICAgICAgIC8vICAwOiBhbmdsZQorICAgIGJvb2wsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gIDE6IGJvb2xlYW4KKyAgICBDb2xvciwgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vICAyOiBjb2xvcgorICAgIHVuc2lnbmVkLCAgICAgICAgICAgICAgICAgICAgICAgLy8g
IDM6IGVudW1lcmF0aW9uCisgICAgaW50LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAg
NDogaW50ZWdlcgorICAgIFNWR0xlbmd0aFZhbHVlLCAgICAgICAgICAgICAgICAgLy8gIDU6IGxl
bmd0aAorICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gIDY6IGxlbmd0aExp
c3QKKyAgICBTVkdNYXRyaXhWYWx1ZSwgICAgICAgICAgICAgICAgIC8vICA3OiBtYXRyaXgKKyAg
ICBmbG9hdCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICA4OiBudW1iZXIKKyAgICBTVkdO
dW1iZXJMaXN0VmFsdWVzLCAgICAgICAgICAgIC8vICA5OiBudW1iZXJMaXN0CisgICAgU1ZHUGF0
aEJ5dGVTdHJlYW0sICAgICAgICAgICAgICAvLyAxMDogcGF0aAorICAgIFJlZlB0cjxTVkdQYXRo
U2VnPiwgICAgICAgICAgICAgLy8gMTE6IHBhdGhTZWcKKyAgICBTVkdQYXRoU2VnTGlzdFZhbHVl
cywgICAgICAgICAgIC8vIDEyOiBwYXRoU2VnTGlzdAorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSwgICAgLy8gMTM6IHByZXNlcnZlQXNwZWN0UmF0aW8KKyAgICBGbG9hdFBvaW50LCAg
ICAgICAgICAgICAgICAgICAgIC8vIDE0OiBwb2ludAorICAgIFNWR1BvaW50TGlzdFZhbHVlcywg
ICAgICAgICAgICAgLy8gMTU6IHBvaW50TGlzdAorICAgIEZsb2F0UmVjdCwgICAgICAgICAgICAg
ICAgICAgICAgLy8gMTY6IHJlY3QKKyAgICBTdHJpbmcsICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIDE3OiBzdHJpbmcKKyAgICBTVkdTdHJpbmdMaXN0VmFsdWVzLCAgICAgICAgICAgIC8vIDE4
OiBzdHJpbmdMaXN0CisgICAgU1ZHVHJhbnNmb3JtVmFsdWUsICAgICAgICAgICAgICAvLyAxOTog
dHJhbnNmb3JtCisgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyAgICAgICAgICAvLyAyMDogdHJh
bnNmb3JtTGlzdAorPjsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNz
IFNWR1RyYWl0SGFzVG9TdHJpbmcgeworICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRl
ZiBsb25nIHR3bzsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3Qo
ZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+Ojp0b1N0cmluZykpOworICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdvIHRlc3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0g
eyB2YWx1ZSA9IHNpemVvZih0ZXN0PFByb3BlcnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihj
aGFyKSB9OworfTsKKyAgICAKK3N0cnVjdCB0b1N0cmluZ1Zpc2l0b3IgeworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1RvU3Ry
aW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRv
cigpKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gU1ZH
UHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcodmFsdWUpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZH
VHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBT
dHJpbmcgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorfTsKKyAgICAK
K3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdUcmFpdEhhc1BhcnNl
IHsKKyAgICB0eXBlZGVmIGNoYXIgb25lOworICAgIHR5cGVkZWYgbG9uZyB0d287CisKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIG9uZSB0ZXN0KGRlY2x0eXBlKCZTVkdQcm9wZXJ0
eVRyYWl0czxUPjo6cGFyc2UpKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3
byB0ZXN0KC4uLik7CisKK3B1YmxpYzoKKyAgICBlbnVtIHsgdmFsdWUgPSBzaXplb2YodGVzdDxQ
cm9wZXJ0eVR5cGU+KG51bGxwdHIpKSA9PSBzaXplb2YoY2hhcikgfTsKK307CisKK3N0cnVjdCBw
YXJzZVZpc2l0b3IgeworICAgIHBhcnNlVmlzaXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIFNWR1ZhbHVlVmFyaWFudCYgdmFyaWFudCkKKyAg
ICAgICAgOiBtX2F0dHJOYW1lKGF0dHJOYW1lKQorICAgICAgICAsIG1fc3RyaW5nKHN0cmluZykK
KyAgICAgICAgLCBtX3ZhcmlhbnQodmFyaWFudCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhh
c1BhcnNlPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0
b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQ
cm9wZXJ0eVR5cGU+IHJlc3VsdCA9IFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBh
cnNlKG1fYXR0ck5hbWUsIG1fc3RyaW5nKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fdmFyaWFudC5lbXBsYWNlPFByb3BlcnR5VHlw
ZT4oV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFi
bGVfaWZfdDwhU1ZHVHJhaXRIYXNQYXJzZTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0
cj4KKyAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgbV9hdHRyTmFtZTsKKyAgICBjb25zdCBTdHJpbmcm
IG1fc3RyaW5nOworICAgIFNWR1ZhbHVlVmFyaWFudCYgbV92YXJpYW50OworfTsKKyAgICAKK2Ns
YXNzIFNWR1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHVmFsdWU+LCBwdWJsaWMgU1ZHVmFs
dWVWYXJpYW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBjcmVhdGU8UHJvcGVydHlUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojpp
bml0aWFsVmFsdWUoKSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0
eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVl
PiogPSBudWxscHRyPgorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9w
ZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHVmFsdWUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCY+KHByb3BlcnR5KSkpOwor
ICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lm
X3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBz
dGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHByb3BlcnR5KSk7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdW
YWx1ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1
ZSh2YWx1ZSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
KyAgICBib29sIGlzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPFByb3BlcnR5VHlwZT4oKnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVydHlU
eXBlPjo6dmFsdWUgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBv
cGVyYXRvciBjb25zdCBQcm9wZXJ0eVR5cGUmKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25l
ZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBz
dGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51
bGxwdHI+CisgICAgb3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNvbnN0CisgICAgewor
ICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6
Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQ
cm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46
OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7
CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0
PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0
eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1
ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBQcm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8
UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KHRvU3RyaW5nVmlzaXRvcigpLCBz
dGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKworICAg
IGJvb2wgcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQocGFyc2VWaXNpdG9yKGF0
dHJOYW1lLCBzdHJpbmcsIHN0YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSksIHN0
YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBleHBsaWNpdCBT
VkdWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFy
aWFudCh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOwor
ICAgIH0KKyAgICAKKyAgICBTVkdWYWx1ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgICAg
IDogU1ZHVmFsdWVWYXJpYW50KHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZh
bHVlKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRleCgpID09IHZhbHVlLmluZGV4KCkpOwor
ICAgIH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcg
QEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVu
dDo6U1ZHVmlld0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1f
em9vbUFuZFBhbihTVkdab29tQW5kUGFuTWFnbmlmeSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdO
YW1lczo6dmlld1RhcmdldEF0dHIpCisgICAgLCBtX3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0
ZShTVkdTdHJpbmdMaXN0VmFsdWVzKFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikpKQogewogICAg
IEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp2aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmlt
YXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwpAQCAtNjAsNyArNjAsNyBAQCBSZWY8
U1ZHU3RyaW5nTGlzdD4gU1ZHVmlld0VsZW1lbnQ6OnZpZXdUCiB2b2lkIFNWR1ZpZXdFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0
cikKLSAgICAgICAgbV92aWV3VGFyZ2V0LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3ZpZXdUYXJnZXQpLnJlc2V0KHZhbHVlKTsKIAog
ICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZh
bHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIAogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAgICBTVkdT
dHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmll
d1RhcmdldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOSBAQCBjb25zdCBT
VkdQcm9wZXJ0eUluZm8qIFNWR1ZpZXdTcGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3
U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQo
JmNvbnRleHRFbGVtZW50KQorICAgICwgbV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICwgbV92aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8
RmxvYXRSZWN0PigpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVh
dGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKQogewogfQogCkBAIC0xMDgsMTcgKzEx
MSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFuCiAKIFN0cmlu
ZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNm
b3JtKTsKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBT
VkdWaWV3U3BlYzo6dmlld0JveFN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3Bl
cnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1f
dmlld0JveC0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFz
cGVjdFJhdGlvU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJh
dGlvKTsKKyAgICByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmluZygpOwogfQog
CiBTVkdFbGVtZW50KiBTVkdWaWV3U3BlYzo6dmlld1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSAr
MTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1ZpZXdTcGVjOjpsbwogdm9pZCBT
VkdWaWV3U3BlYzo6cmVzZXQoKQogewogICAgIG1fem9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5N
YWduaWZ5OwotICAgIG1fdHJhbnNmb3JtLmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94ID0geyB9Owot
ICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHsgfTsKKyAgICBzdGF0aWNfY2FzdDxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJhbnNmb3JtKS5jbGVhcigpOworICAgIHN0YXRpY19jYXN0
PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpID0geyB9OworICAgIHN0YXRpY19jYXN0PFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0UmF0aW8pID0geyB9OwogICAg
IG1fdmlld1RhcmdldFN0cmluZyA9IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQs
NyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAg
ICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAg
ICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJh
bnNmb3JtLCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxp
c3QpOworICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1
dGUoc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSksIGN1
cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAg
ICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMr
KzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcg
KzU1LDE3IEBAIHB1YmxpYzoKIAogICAgIC8vIEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9y
bScgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwot
ICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9y
bUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMmPigqbV90cmFuc2Zvcm0pOyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ZpZXdC
b3gnIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFJlY3Q+IHZpZXdCb3hBbmltYXRl
ZCgpOwotICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAg
IHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgbV92
aWV3Qm94ID0gdmlld0JveDsgfQorICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpOyB9CisgICAgdm9pZCBzZXRWaWV3Qm94
QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyBzdGF0aWNfY2FzdDxGbG9hdFJl
Y3QmPigqbV92aWV3Qm94KSA9IHZpZXdCb3g7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRlZCAn
cHJlc2VydmVBc3BlY3RSYXRpbycgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCk7Ci0gICAgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4g
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9Ci0gICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3Bl
Y3RSYXRpbykgeyBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9
CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJl
c2VydmVBc3BlY3RSYXRpbyk7IH0KKyAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNl
VmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJh
dGlvKSB7IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNl
cnZlQXNwZWN0UmF0aW8pID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmKTsKQEAgLTg0LDkgKzg0LDkgQEAgcHJp
dmF0ZToKIAogICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQ7CiAgICAgU1ZHWm9vbUFu
ZFBhblR5cGUgbV96b29tQW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKLSAgICBTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzIG1fdHJhbnNmb3JtOwotICAgIEZsb2F0UmVjdCBtX3ZpZXdCb3g7
Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdHJhbnNmb3JtOworICAgIFJlZlB0cjxTVkdWYWx1ZT4g
bV92aWV3Qm94OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwog
ICAgIFN0cmluZyBtX3ZpZXdUYXJnZXRTdHJpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFy
T2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDIyICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OnNldEJh
c2VWYWwocHJvcGVydHkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIEVudW1UeXBlJiBwcm9wZXJ0eSkKKyAg
ICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5
cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAgICAgICBB
U1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdB
bmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQmPihwcm9wZXJ0eSkpKTsKLSAgICB9Ci0KLSAgICBFbnVtVHlwZSYgY3VycmVudEFu
aW1hdGVkVmFsdWUoKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQmIGFuaW1hdGVkVmFsdWUgPSBT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OmN1cnJlbnRBbmltYXRl
ZFZhbHVlKCk7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJh
aXRzPEVudW1UeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8RW51bVR5cGUmPihhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlw
ZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBi
YXNlVmFsdWUpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
blByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIHVuc2lnbmVkJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRp
Y1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUs
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQorICAgICAgICA6
IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkKICAgICB7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0
czxQcm9wZXJ0eVR5cGU+OjpMaXN0UHJvcGVydHlUZWFyT2ZmOwogICAgIHVzaW5nIENvbnRlbnRU
eXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5
VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3Jl
YXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRl
eHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTg1LDQ0ICs4NSw1MCBAQCBw
dWJsaWM6CiAgICAgICAgIExpc3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXpl
KCZtX3dyYXBwZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBj
dXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CiAgICAgICAg
IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwogICAgIH0KIAotICAgIGNvbnN0
IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNBbmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHkt
PnZhbHVlcygpOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJh
c2VWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZXM7CiAgICAgfQog
Ci0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwgYm9v
bCBzaG91bGRPd25WYWx1ZXMgPSBmYWxzZSkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVm
UHRyPFNWR1ZhbHVlPiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1h
dGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwotICAgICAgICBBU1NFUlQobV92
YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkV3JhcHBlcnMuaXNFbXB0
eSgpKTsKIAogICAgICAgICAvLyBTd2l0Y2ggdG8gbmV3IHBhc3NlZCBpbiB2YWx1ZSB0eXBlICYg
bmV3IHdyYXBwZXJzIGxpc3QuIFRoZSBuZXcgd3JhcHBlcnMgbGlzdCBtdXN0IGJlIGNyZWF0ZWQg
Zm9yIHRoZSBuZXcgdmFsdWUuCi0gICAgICAgIGlmICghbmV3QW5pbVZhbC0+aXNFbXB0eSgpKQot
ICAgICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwgbmV3QW5pbVZhbC0+c2l6ZSgp
KTsKKyAgICAgICAgaWYgKHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4o
Km5ld0FuaW1WYWwpLnNpemUoKSkKKyAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxs
KDAsIHNpemUpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAg
ICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFs
LCAmbV9hbmltYXRlZFdyYXBwZXJzLCBzaG91bGRPd25WYWx1ZXMpOwotICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFs
dWVzQW5kV3JhcHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycyk7CisgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMu
c2l6ZSgpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUo
KSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXpl
KCkpOwogCi0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUo
KSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmlt
YXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1h
dGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXpl
KCkpOwogCi0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMo
Jm1fdmFsdWVzLCAmbV93cmFwcGVycywgZmFsc2UpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3Jh
cHBlcnMobV92YWx1ZXMsICZtX3dyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53
cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndy
YXBwZXJzKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKIAogICAgICAgICBtX2FuaW1h
dGVkV3JhcHBlcnMuY2xlYXIoKTsKQEAgLTE0MiwzNCArMTQ4LDM0IEBAIHB1YmxpYzoKICAgICAg
ICAgLy8gQWxzbyBleGlzdGluZyB3cmFwcGVycyB3aGljaCBwb2ludCBkaXJlY3RseSBhdCBlbGVt
ZW50cyBpbiB0aGUgZXhpc3RpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBoYXZlIHRvIGJlIGRldGFj
aGVkIChzbyBhIGNvcHkKICAgICAgICAgLy8gb2YgdGhlbSBpcyBjcmVhdGVkLCBzbyBleGlzdGlu
ZyBhbmltVmFsIHZhcmlhYmxlcyBpbiBKUyBhcmUga2VwdC1hbGl2ZSkuIElmIHdlJ2QgZGV0YWNo
IHRoZW0gbGF0ZXIgdGhlIHVuZGVybHlpbmcKICAgICAgICAgLy8gU1ZHTGVuZ3RoTGlzdFZhbHVl
cyB3YXMgYWxyZWFkeSBtdXRhdGVkLCBhbmQgb3VyIGxpc3QgaXRlbSB3cmFwcGVyIHRlYXIgb2Zm
cyB3b3VsZCBwb2ludCBub3doZXJlLiBBc3NlcnRpb25zIHdvdWxkIGZpcmUuCi0gICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0
V3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAK
LSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJv
cGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAg
ICAgfQogCiAgICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9
PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRl
ZCgpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbERpZENoYW5nZSgpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNp
emUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJ
Zk5lZWRlZCgpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3Bl
cnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkK
ICAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgewotICAgICAgICBpZiAoIXZhbHVlcy5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7
CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp2
YWx1ZXMpLnNpemUoKSkKKyAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKICAg
ICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4g
bV92YWx1ZXM7CiAKICAgICBMaXN0V3JhcHBlckNhY2hlIG1fd3JhcHBlcnM7CiAgICAgTGlzdFdy
YXBwZXJDYWNoZSBtX2FuaW1hdGVkV3JhcHBlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLCAyMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDcgKzMyLDcgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQYXRo
U2VnTGlzdFByb3BlcnR5VGVhcgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OwogCi0gICAgc3RhdGlj
IFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUs
IEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlz
dFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNzYsOCAr
NzcsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSA9IGJ5dGVT
dHJlYW07CiAKICAgICAgICAgLy8gUGFzcyBzaG91bGRPd25WYWx1ZXM9dHJ1ZSwgYXMgdGhlIFNW
R1BhdGhTZWdMaXN0VmFsdWVzIGxpZmV0aW1lIGlzIHNvbGVseSBtYW5hZ2VkIGJ5IGl0cyB0ZWFy
IG9mZiBjbGFzcy4KLSAgICAgICAgYXV0byogY29weSA9IG5ldyBTVkdQYXRoU2VnTGlzdFZhbHVl
cygqYmFzZVZhbHVlKTsKLSAgICAgICAgQmFzZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LCB0cnVl
KTsKKyAgICAgICAgYXV0byBjb3B5ID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYmFzZVZhbHVlKTsKKyAg
ICAgICAgQmFzZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LnB0cigpKTsKICAgICB9CiAKICAgICB2
b2lkIGFuaW1hdGlvbkVuZGVkKCkKQEAgLTk1LDcgKzk2LDcgQEAgcHVibGljOgogICAgICAgICAv
LyBJZiB0aGUgYW5pbVZhbCBpcyBvYnNlcnZlZCBmcm9tIEpTLCB3ZSBoYXZlIHRvIHVwZGF0ZSBp
dCBvbiBlYWNoIGFuaW1hdGlvbiBzdGVwLgogICAgICAgICAvLyBUaGlzIGlzIGFuIGV4cGVuc2l2
ZSBvcGVyYXRpb24gYW5kIG9ubHkgZG9uZSwgaWYgc29tZW9uZSBhY3R1YWxseSBvYnNlcnZlcyB0
aGUgYW5pbWF0ZWRQYXRoU2VnTGlzdCgpIHdoaWxlIGFuIGFuaW1hdGlvbiBpcyBydW5uaW5nLgog
ICAgICAgICBpZiAocGF0aEVsZW1lbnQtPmlzQW5pbVZhbE9ic2VydmVkKCkpIHsKLSAgICAgICAg
ICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IGN1cnJlbnRBbmltYXRlZFZhbHVlKCk7CisgICAgICAg
ICAgICBhdXRvJiBhbmltYXRlZExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVl
cyY+KCpjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKICAgICAgICAgICAgIGFuaW1hdGVkTGlzdC5j
bGVhcigpOwogICAgICAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3Ry
ZWFtKCptX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0sICpwYXRoRWxlbWVudCwgYW5pbWF0ZWRMaXN0
LCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgfQpAQCAtMTA2LDcgKzEwNyw3IEBAIHB1Ymxp
YzoKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbTsgfQogCiBwcml2YXRlOgotICAgIFNW
R0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVz
KQorICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMpCiAgICAgICAgIDogQmFzZShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykKICAgICAgICAgLCBtX2FuaW1hdGVkUGF0
aEJ5dGVTdHJlYW0obnVsbHB0cikKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBTVkdWYWx1ZTsKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsK
IApAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFtZSBUZWFy
T2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5
cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1By
b3BlcnR5SW5mbyogaW5mbywgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVm
PFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBj
b25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZm8pOwogICAgICAgICBTVkdBbmltYXRlZFByb3Bl
cnR5RGVzY3JpcHRpb24ga2V5KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRlbnRpZmllcik7CkBA
IC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkK
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpyZXN1bHQuaXRl
cmF0b3ItPnZhbHVlKTsKIAotICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBl
ciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5m
by0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAgUmVmPFNWR0FuaW1h
dGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8t
PmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSk7CiAgICAg
ICAgIGlmIChpbmZvLT5hbmltYXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJc1JlYWRPbmx5
KQogICAgICAgICAgICAgd3JhcHBlci0+c2V0SXNSZWFkT25seSgpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eU1hY3Jvcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI1LDYgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFBy
b3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5oIgogI2luY2x1
ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAK
QEAgLTM0LDI1ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5
IHsKICAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoKQotICAgICAgICA6IHZh
bHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKQotICAg
ICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2Up
CisgICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCkpCiAgICAg
ewogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMT4K
LSAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQ
YXJhbWV0ZXIxJiB2YWx1ZTEpCi0gICAgICAgIDogdmFsdWUodmFsdWUxKQotICAgICAgICAsIHNo
b3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCi0gICAgewot
ICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMSwgdHlw
ZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIyPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSwgY29uc3QgQ29u
c3RydWN0b3JQYXJhbWV0ZXIyJiB2YWx1ZTIpCi0gICAgICAgIDogdmFsdWUodmFsdWUxLCB2YWx1
ZTIpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxp
ZChmYWxzZSkKKyAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgUHJv
cGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3Bl
cnR5VHlwZT4odmFsdWUpKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDkgKzUwLDkgQEAgc3RydWN0
IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eQogICAgICAgICBvd25lckVsZW1lbnQt
PnNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoYXR0ck5hbWUsIHZhbHVlKTsKICAgICB9CiAK
LSAgICBQcm9wZXJ0eVR5cGUgdmFsdWU7Ci0gICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSA6IDE7
Ci0gICAgYm9vbCBpc1ZhbGlkIDogMTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlOworICAg
IGJvb2wgc2hvdWxkU3luY2hyb25pemUgeyBmYWxzZSB9OworICAgIGJvb2wgaXNWYWxpZCB7IGZh
bHNlIH07CiB9OwogCiAvLyBQcm9wZXJ0eSByZWdpc3RyYXRpb24gaGVscGVycwpAQCAtMTI0LDE5
ICsxMTMsMTkgQEAgcHVibGljOiBcCiAgICAgeyBcCiAgICAgICAgIGlmIChhdXRvIHdyYXBwZXIg
PSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFVzZU93bmVyVHlwZSwgVGVhck9m
ZlR5cGU+KHRoaXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygpKSkgeyBcCiAgICAgICAg
ICAgICBpZiAod3JhcHBlci0+aXNBbmltYXRpbmcoKSkgXAotICAgICAgICAgICAgICAgIHJldHVy
biB3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOyBcCisgICAgICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRW
YWx1ZSgpKTsgXAogICAgICAgICB9IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5
LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8j
I0xvd2VyUHJvcGVydHkudmFsdWUpOyBcCiAgICAgfSBcCiBcCiAgICAgUHJvcGVydHlUeXBlJiBM
b3dlclByb3BlcnR5IyNCYXNlVmFsdWUoKSBjb25zdCBPdmVycmlkZVNwZWNpZmllciBcCiAgICAg
eyBcCi0gICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVl
KTsgXAogICAgIH0gXAogXAotICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUo
Y29uc3QgUHJvcGVydHlUeXBlJiB0eXBlLCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVlKSBP
dmVycmlkZVNwZWNpZmllciBcCisgICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1
ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVl
KSBPdmVycmlkZVNwZWNpZmllciBcCiAgICAgeyBcCi0gICAgICAgIG1fIyNMb3dlclByb3BlcnR5
LnZhbHVlID0gdHlwZTsgXAorICAgICAgICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8j
I0xvd2VyUHJvcGVydHkudmFsdWUpID0gdmFsdWU7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVy
dHkuaXNWYWxpZCA9IHZhbGlkVmFsdWU7IFwKICAgICB9IFwKIFwKQEAgLTE1Niw3ICsxNDUsNyBA
QCBwcml2YXRlOiBcCiAgICAgeyBcCiAgICAgICAgIGlmICghbV8jI0xvd2VyUHJvcGVydHkuc2hv
dWxkU3luY2hyb25pemUpIFwKICAgICAgICAgICAgIHJldHVybjsgXAotICAgICAgICBBdG9taWNT
dHJpbmcgdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcobV8j
I0xvd2VyUHJvcGVydHkudmFsdWUpKTsgXAorICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZH
UHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcoc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSkpOyBcCiAgICAgICAgIG1fIyNMb3dl
clByb3BlcnR5LnN5bmNocm9uaXplKHRoaXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygp
LT5hdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7IFwKICAgICB9IFwKIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAg
KzMyLDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSB0eXBlbmFtZSBQcm9w
ZXJ0eVRlYXJPZmY6OlByb3BlcnR5VHlwZTsKICAgICB1c2luZyBDb250ZW50VHlwZSA9IFByb3Bl
cnR5VHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJv
cGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNW
R0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVu
dCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFy
T2ZmPFByb3BlcnR5VGVhck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAg
ICAgfQogCiAgICAgUmVmPFByb3BlcnR5VGVhck9mZj4gYmFzZVZhbCgpCkBAIC00Myw3ICs0Myw3
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fYmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiAq
c3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAotICAgICAg
ICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxS
b2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9m
Zjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV9iYXNlVmFsdWUpOwogICAgICAgICBtX2Jh
c2VWYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICByZXR1cm4gcHJvcGVy
dHk7CiAgICAgfQpAQCAtNTMsMzYgKzUzLDQyIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fYW5p
bVZhbCkKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2ZmKj4o
bV9hbmltVmFsLmdldCgpKTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFy
T2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgYXV0
byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwg
bV9iYXNlVmFsdWUpOwogICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0
cigpOwogICAgICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAgfQogCiAgICAgYm9vbCBpc0FuaW1h
dGluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQogCi0gICAg
UHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRp
bmcoKSk7Ci0gICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnByb3BlcnR5UmVmZXJl
bmNlKCk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CiAgICAg
fQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAg
ICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBBU1NFUlQoaXNBbmltYXRp
bmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CisgICAg
fQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFu
aW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0
aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwp
OwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUoKm5ld0FuaW1WYWwpOworICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlKG5ld0FuaW1WYWwpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0
aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG1fcHJvcGVydHkpOworICAgICAgICBtX2Fu
aW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG1fYmFzZVZhbHVlKTsKICAgICAgICAgbV9hbmltYXRl
ZFByb3BlcnR5ID0gbnVsbHB0cjsKICAgICB9CiAKQEAgLTEwNCwxMyArMTEwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5
cGUmIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgYmFzZVZhbHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1f
cHJvcGVydHkocHJvcGVydHkpCisgICAgICAgICwgbV9iYXNlVmFsdWUoYmFzZVZhbHVlKQogICAg
IHsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBtX2Jhc2VWYWx1ZTsKICAgICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9w
ZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJv
cGVydHlUeXBlPj4gbV9hbmltVmFsOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzIsNTMgKzMzLDU5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3Qg
UHJvcGVydHlUeXBlJiBiYXNlVmFsKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5
OworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYmFzZVZhbHVl
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAg
ICAgewotICAgICAgICBpZiAobV9hbmltYXRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJu
ICptX2FuaW1hdGVkUHJvcGVydHk7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAg
ICBpZiAobV9hbmltYXRlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBy
b3BlcnR5VHlwZSY+KCptX2FuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gYmFzZVZhbCgp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25z
dCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWx1ZSkKICAgICB7Ci0gICAgICAg
IG1fcHJvcGVydHkgPSBwcm9wZXJ0eTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBl
Jj4oKm1fYmFzZVZhbHVlKSA9IGJhc2VWYWx1ZTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmlt
YXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2FuaW1hdGVkVmFsdWU7IH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3Rh
dGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IGJhc2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50
LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAg
fQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRy
PFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQo
aXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OworICAg
ICAgICByZXR1cm4gbV9hbmltYXRlZFZhbHVlOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9w
cm9wZXJ0eTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4g
bV9hbmltYXRlZFZhbHVlOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3Vy
cmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9iYXNlVmFsdWU7
CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5p
bVZhbCkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVmUHRyPFNWR1ZhbHVlPiBuZXdBbmlt
VmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNT
RVJUKG5ld0FuaW1WYWwpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBuZXdBbmltVmFs
OworICAgICAgICBtX2FuaW1hdGVkVmFsdWUgPSBuZXdBbmltVmFsOwogICAgIH0KIAogICAgIHZv
aWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkp
OwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOworICAgICAgICBtX2FuaW1h
dGVkVmFsdWUgPSBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2Uo
KQpAQCAtOTksMTYgKzEwNiwxNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlU
eXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIFNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVl
KQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVy
dHkpCi0gICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCisgICAgICAgICwgbV9i
YXNlVmFsdWUoYmFzZVZhbHVlKQogICAgIHsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMobV9iYXNl
VmFsdWUsIG1fYmFzZVZhbHVlLT5pczxQcm9wZXJ0eVR5cGU+KCkpOwogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7Ci0gICAgUHJvcGVydHlUeXBlKiBtX2Fu
aW1hdGVkUHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX2Jhc2VWYWx1ZTsKKyAgICBS
ZWZQdHI8U1ZHVmFsdWU+IG1fYW5pbWF0ZWRWYWx1ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVh
ck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVh
ck9mZiBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VS
VChjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTMsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFBy
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAg
ICAgIDogU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXM+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwg
dmFsdWVzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDE0ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBMaXN0TW9kaWZp
Y2F0aW9uIHsKLSAgICBMaXN0TW9kaWZpY2F0aW9uVW5rbm93biA9IDAsCi0gICAgTGlzdE1vZGlm
aWNhdGlvbkluc2VydCA9IDEsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlcGxhY2UgPSAyLAotICAg
IExpc3RNb2RpZmljYXRpb25SZW1vdmUgPSAzLAotICAgIExpc3RNb2RpZmljYXRpb25BcHBlbmQg
PSA0Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBjbGFzcyBTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7CiAKQEAgLTc1LDE5ICs2NywxNiBAQCBwdWJsaWM6CiAg
ICAgICAgIGRldGFjaExpc3RXcmFwcGVyc0FuZFJlc2l6ZShtX3dyYXBwZXJzLCBuZXdMaXN0U2l6
ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhQcm9wZXJ0eVR5cGUq
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMsIGJvb2wgc2hvdWxkT3duVmFsdWVz
KQorICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIC8vIFRo
aXMgaXMgb25seSB1c2VkIGZvciBhbmltVmFsIHN1cHBvcnQsIHRvIHN3aXRjaCB0aGUgdW5kZXJs
eWluZyB2YWx1ZXMgJiB3cmFwcGVycwogICAgICAgICAvLyB0byB0aGUgY3VycmVudCBhbmltYXRl
ZCB2YWx1ZXMsIG9uY2UgYW5pbWF0aW9uIGZvciBhIGxpc3Qgc3RhcnRzLgogICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIEFTU0VS
VChtX3JvbGUgPT0gQW5pbVZhbFJvbGUpOwotICAgICAgICBpZiAobV9vd25zVmFsdWVzKQotICAg
ICAgICAgICAgZGVsZXRlIG1fdmFsdWVzOwogICAgICAgICBtX3ZhbHVlcyA9IHZhbHVlczsKLSAg
ICAgICAgbV9vd25zVmFsdWVzID0gc2hvdWxkT3duVmFsdWVzOwogICAgICAgICBtX3dyYXBwZXJz
ID0gd3JhcHBlcnM7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBt
X3dyYXBwZXJzLT5zaXplKCkpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKQEAg
LTk4LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkp
OwogCi0gICAgICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgp
LmNsZWFyKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9Owog
ICAgIH0KQEAgLTExMSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsK
LSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xl
YXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQpAQCAtMTE5LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdMaXN0OjpudW1iZXJPZkl0
ZW1zKCkKICAgICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHko
KS5zaXplKCk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0xMzQs
OCArMTIzLDggQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVl
KG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3Vy
cmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBo
b2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAgICAg
bV92YWx1ZXMtPmNsZWFyKCk7Ci0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHko
KS5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0
ZW0gfTsKQEAgLTE1MCw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3
SXRlbShpdGVtKTsKIApAQCAtMTU5LDkgKzE0OCw5IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBT
cGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQg
cmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVk
IGJ5IHRoZSBwYXJhbWV0ZXIuCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAg
ICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsK
IAotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkp
OworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsKICAg
ICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0xNzEsNyArMTYwLDcgQEAgcHVibGljOgogICAgIC8v
IFNWR0xpc3Q6OmdldEl0ZW0oKQogICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGNhbkdldEl0ZW0odW5z
aWduZWQgaW5kZXgpCiAgICAgewotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUo
KSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0xODUsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRo
ZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUg
aXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUg
eyBtX3ZhbHVlcy0+YXQoaW5kZXgpIH07CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBz
dGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpIH07
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmPExpc3RJdGVtVGVhck9mZj4+IGdldEl0ZW1W
YWx1ZXNBbmRXcmFwcGVycyhBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkTGlz
dCwgdW5zaWduZWQgaW5kZXgpCkBAIC0xOTksMTMgKzE4OCwxMyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgLy8gU3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4gVGhl
IHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgogICAgICAg
ICAvLyBBbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSBpdGVtIGFyZSBpbW1lZGlhdGVseSByZWZsZWN0
ZWQgaW4gdGhlIGxpc3QuCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiB3
cmFwcGVyID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5k
ZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBDcmVh
dGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBp
dGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4gb3Vy
IG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmlt
YXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9s
ZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4g
bW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRl
ZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6
OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkp
OworICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVk
TGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogICAgICAg
ICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOwog
ICAgICAgICB9CiAKQEAgLTIyMSw4ICsyMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBp
bmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUg
bmV3IGl0ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYg
KGluZGV4ID4gbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMt
PnNpemUoKTsKKyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCisg
ICAgICAgICAgICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCiAgICAgICAgIC8v
IFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJv
bSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3Qu
CiAgICAgICAgIGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5k
ZXgpKSB7CkBAIC0yMzIsNyArMjIxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IElu
c2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24u
IFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJl
CiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhl
IGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRo
ZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3
SXRlbSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBTVkdWYWx1ZTo6
Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMjQ4LDEwICsy
MzcsMTAgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRv
IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXpl
KCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChp
bmRleCA+IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSB2YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFy
T2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0yNjEsNyArMjUwLDcgQEAgcHVibGljOgogCiAgICAg
ICAgIC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVj
aWZpZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5l
dyBpdGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBu
dW1iZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlz
IGluc2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmlu
c2VydChpbmRleCwgbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVl
c1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBuZXdJdGVtLT52YWx1ZSgpKTsKIAogICAgICAgICAv
LyBTdG9yZSBuZXcgd3JhcHBlciBhdCBwb3NpdGlvbiAnaW5kZXgnLCBjaGFuZ2UgaXRzIHVuZGVy
bHlpbmcgdmFsdWUsIHNvIG11dGF0aW9ucyBvZiBuZXdJdGVtLCBkaXJlY3RseSBhZmZlY3QgdGhl
IGl0ZW0gaW4gdGhlIGxpc3QuCiAgICAgICAgIG1fd3JhcHBlcnMtPmluc2VydChpbmRleCwgbmV3
SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKQEAgLTI3OCw3ICsyNjcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJU
KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IG1f
dmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNp
emUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9Owog
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjk4LDEzICsyODcsMTMgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQcm9w
ZXJ0eSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2
ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNo
IG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBVcGRh
dGUgdGhlIHZhbHVlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBt
X3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TGlzdEl0
ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSA9IG5ld0l0ZW07CiAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVt
IH07CkBAIC0zMTksNyArMzA4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBt
X3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0
ZW0oaXRlbSk7CiAKQEAgLTMyOCw3ICszMTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcHJv
Y2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sICZpbmRleCkpCiAgICAgICAgICAg
ICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKIAotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1w
dHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIEFTU0VSVChtX3dyYXBwZXJzLT5pc0VtcHR5KCkpOwogICAgICAgICAgICAgLy8gJ25l
d0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cg
d2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CkBAIC0zNDAsNyAr
MzI5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwog
CiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNp
cmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3
SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hdChp
bmRleCkgPSBuZXdJdGVtLT52YWx1ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkg
PSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBA
IC0zNTUsNyArMzQ0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBp
ZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTM2OCw4ICszNTcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSk7CiAKLSAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgp
OwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1UeXBl
IG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5h
dChpbmRleCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpbmRleCk7CiAKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG9sZEl0ZW0pOwpA
QCAtMzg0LDE2ICszNzMsMTYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMt
PnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIERldGFjaCB0aGUgZXhpc3Rpbmcgd3JhcHBl
ci4KICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gb2xkSXRlbSA9IHN0YXRpY19jYXN0
PExpc3RJdGVtVGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAgICAgICAg
IGlmICghb2xkSXRlbSkKLSAgICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNy
ZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOwor
ICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlz
dCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogCiAgICAgICAg
IG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGlu
ZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIHZhbHVlc1By
b3BlcnR5KCkucmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAg
ICAgcmV0dXJuIG9sZEl0ZW0ucmVsZWFzZU5vbk51bGwoKTsKQEAgLTQxMSw3ICs0MDAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7
CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0Lgot
ICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0
eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAg
ICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTQyNiw3ICs0MTUsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAg
UmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5ICs0MjMsMjUg
QEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRl
bSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0aGUg
ZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3Bl
cnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVt
LT52YWx1ZSgpKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdl
YWtQdHIoKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQp
OwogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0
eVR5cGUmIHZhbHVlcygpCisgICAgUmVmPFNWR1ZhbHVlPiB2YWx1ZXMoKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgcmV0dXJuICptX3ZhbHVlczsKICAg
ICB9CiAKKyAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlc1Byb3BlcnR5KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbV92YWx1ZXMpOworICAgIH0KKwogICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKQEAgLTQ1
OSwyMCArNDU0LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdMaXN0
UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlKiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSogd3JhcHBlcnMpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9vd25zVmFs
dWVzKGZhbHNlKQotICAgICAgICAsIG1fdmFsdWVzKCZ2YWx1ZXMpCisgICAgICAgICwgbV92YWx1
ZXModmFsdWVzKQogICAgICAgICAsIG1fd3JhcHBlcnMod3JhcHBlcnMpCiAgICAgewogICAgIH0K
IAotICAgIHZpcnR1YWwgflNWR0xpc3RQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICBpZiAobV9v
d25zVmFsdWVzKQotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWVzOwotICAgIH0KLQogICAgIHZv
aWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRD
aGFuZ2UoTGlzdE1vZGlmaWNhdGlvbikKICAgICB7CkBAIC00ODMsOCArNDcxLDcgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIoUmVm
PExpc3RJdGVtVGVhck9mZj4mIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSA9IDA7
CiAKICAgICBTVkdQcm9wZXJ0eVJvbGUgbV9yb2xlOwotICAgIGJvb2wgbV9vd25zVmFsdWVzOwot
ICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVl
czsKICAgICBMaXN0V3JhcHBlckNhY2hlKiBtX3dyYXBwZXJzOwogICAgIFdlYWtQdHJGYWN0b3J5
PFNWR0xpc3RQcm9wZXJ0eT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIyICszNSwyMSBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT47CiAgICAgdXNpbmcgTGlzdFdyYXBw
ZXJDYWNoZSA9IHR5cGVuYW1lIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVR5cGU+OjpMaXN0V3JhcHBlckNhY2hlOwogCisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVy
dHk7CiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwog
ICAgIHVzaW5nIEJhc2U6Om1fd3JhcHBlcnM7CiAKLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0
ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3Jh
cHBlcnMpCisgICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogICAgIGludCBmaW5kSXRlbShMaXN0SXRl
bVRlYXJPZmYqIGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwog
ICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1f
d3JhcHBlcnMtPnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUo
KSk7CisgICAgICAgIEFTU0VSVChzaXplID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlm
IChpdGVtID09IG1fd3JhcHBlcnMtPmF0KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwpA
QCAtNjEsMTUgKzYwLDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0
KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsK
LSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsK
KyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRl
eCA8IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVy
cy0+YXQoaXRlbUluZGV4KTsKICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAg
ICBtX3dyYXBwZXJzLT5yZW1vdmUoaXRlbUluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92
ZShpdGVtSW5kZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgp
OwogCiAgICAgICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CkBAIC0xMTIsNyArMTEwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlU
eXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8UHJv
cGVydHlUeXBlPihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVk
UHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICB7CkBAIC0xMjksMTggKzEyNywxNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlCiAgICAgewotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAg
ICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIHdyYXBwZXJzLCBhcyB0aGUgaW5kZXggaW4gdGhlIHZh
bHVlcyBsaXN0IGhhcyBjaGFuZ2VkLgogICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVy
cy0+c2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0
ZW0gPSBtX3dyYXBwZXJzLT5hdChpKTsKICAgICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHko
bV9hbmltYXRlZFByb3BlcnR5LnB0cigpKTsKLSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1f
dmFsdWVzLT5hdChpKSk7CisgICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNQcm9wZXJ0
eSgpLmF0KGkpKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29t
bWl0Q2hhbmdlKCk7CkBAIC0xNjksNyArMTY2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAg
Ly8gU1ZHUmVjdEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoICd3aWR0aCcgcHJvcGVydHkgYmFz
ZVZhbCBwb2ludHMgdG8gdGhlIHNhbWUgdGVhciBvZmYgb2JqZWN0CiAgICAgICAgICAgICAvLyB0
aGF0J3MgaW5zZXJ0ZWQgaW50byBTVkdUZXh0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
ICd4Jy4gdGV4dEVsZW1lbnQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgKz0gMTUwIHdvdWxk
CiAgICAgICAgICAgICAvLyBtdXRhdGUgdGhlIHJlY3RFbGVtZW50IHdpZHRoIF9hbmRfIHRoZSB0
ZXh0RWxlbWVudCB4IGxpc3QuIFRoYXQncyBvYnZpb3VzbHkgd3JvbmcsIHRha2UgY2FyZSBvZiB0
aGF0LgotICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0
ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVt
VGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0tPnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDE5ICsyOCwxOSBAQCBjbGFzcyBTVkdNYXRyaXhUZWFyT2ZmIGZpbmFsIDogcHVi
bGljIFNWCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUo
U1ZHVHJhbnNmb3JtJiBwYXJlbnQsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdN
YXRyaXgoKSA9PSAmdmFsdWUpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50
LnZhbHVlUHJvcGVydHkoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBSZWY8U1ZH
TWF0cml4VGVhck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBh
cmVudCkpOwogICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIocmVzdWx0KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0g
ICAgU1ZHTWF0cml4VmFsdWUmIHByb3BlcnR5UmVmZXJlbmNlKCkgZmluYWwgeyByZXR1cm4gbV9w
YXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCk7IH0KKyAgICBTVkdNYXRyaXhW
YWx1ZSYgdmFsdWVQcm9wZXJ0eSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT52YWx1ZVByb3Bl
cnR5KCkuc3ZnTWF0cml4KCk7IH0KIAotICAgIHZvaWQgc2V0VmFsdWUoU1ZHTWF0cml4VmFsdWUm
IHZhbHVlKSBmaW5hbCB7IG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2
YWx1ZSk7IH0KKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KSBmaW5hbCB7IG1fcGFyZW50LT52YWx1ZVByb3BlcnR5KCkuc2V0TWF0cml4KHN0YXRpY19jYXN0
PFNWR01hdHJpeFZhbHVlJj4oKnZhbHVlKSk7IH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkg
ZmluYWwKICAgICB7Ci0gICAgICAgIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnVwZGF0
ZVNWR01hdHJpeCgpOworICAgICAgICBtX3BhcmVudC0+dmFsdWVQcm9wZXJ0eSgpLnVwZGF0ZVNW
R01hdHJpeCgpOwogICAgICAgICBtX3BhcmVudC0+Y29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRl
YXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHku
aCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcgKzY2
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5
VHlwZSYgdmFsdWVQcm9wZXJ0eSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCptX3ZhbHVlKTsgfQogICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHko
KSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlm
IChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAg
ICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAg
ICB9CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSBmYWxzZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2
YWx1ZTsKKyAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIHZvaWQgc2V0QW5p
bWF0ZWRQcm9wZXJ0eShTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KQpAQCAt
MTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gaXRlbS52YWx1ZSBzdGlsbCBoYXMg
dG8gcmVwb3J0ICc1MCcgYW5kIGl0IGhhcyB0byBiZSBwb3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0n
CiAgICAgICAgIC8vIHcvbyBjaGFuZ2luZyB0aGUgIm5ldyBpdGVtIiAod2l0aCB4PTEwMCkgaW4g
dGhlIHRleHQgZWxlbWVudC4KICAgICAgICAgLy8gV2hlbmV2ZXIgdGhlIFhNTCBET00gbW9kaWZp
ZXMgdGhlICJ4IiBhdHRyaWJ1dGUsIGFsbCBleGlzdGluZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQs
IHVzaW5nIHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIG1fdmFsdWUgPSBuZXcgUHJvcGVydHlUeXBl
KCptX3ZhbHVlKTsKKyAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKm1fdmFsdWUpKTsKICAgICAgICAgbV92YWx1ZUlzQ29weSA9IHRy
dWU7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTM2
LDEwICsxMzYsMTAgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1Byb3Bl
cnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJP
ZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0
ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAg
ICAgICAsIG1fdmFsdWUoJnZhbHVlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAg
ICwgbV92YWx1ZUlzQ29weShmYWxzZSkKICAgICB7CiAgICAgfQpAQCAtMTUyLDE3ICsxNTIsMTYg
QEAgcHJvdGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUq
IGluaXRpYWxWYWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAg
ICAgICAgLCBtX3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxW
YWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAg
ICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUp
CisgICAgICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAg
ICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAg
ICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0g
ICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3NiwxMCAr
MTc1LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBt
X2FuaW1hdGVkUHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9w
ZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZl
Y3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAg
ICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5Owot
ICAgIGJvb2wgbV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwy
MCArMjAsNDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0g
TGlzdE1vZGlmaWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAg
IExpc3RNb2RpZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNl
ID0gMiwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0
aW9uQXBwZW5kID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKSB7IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9
OwogCiB0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+IHsKKyAgICBz
dGF0aWMgQ29sb3IgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gQ29sb3IoKTsgfQorICAgIHN0YXRp
YyBDb2xvciBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBDU1NQYXJz
ZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsgfQorICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENvbG9yPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFy
c2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICByZXR1cm4gY29sb3Iu
aXNWYWxpZCgpID8gY29sb3IgOiBzdGQ6Om9wdGlvbmFsPENvbG9yPigpOworICAgIH0KKyAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IENvbG9yJiB0eXBlKSB7IHJldHVybiB0eXBlLnNl
cmlhbGl6ZWQoKTsgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PHVuc2lnbmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IDA7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUpIHsgcmV0dXJu
IFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CkBAIC00MiwxOSArNzAsMTA5IEBAIHN0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czx1bnNpZ25lZD4gewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPGludD4gewogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsg
fQorICAgIHN0YXRpYyBpbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVy
biBzdHJpbmcudG9JbnRTdHJpY3QoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50
IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OworICAgIAordGVtcGxh
dGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIGludD4+IHsKKyAg
ICBzdGF0aWMgc3RkOjpwYWlyPGludCwgaW50PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07
IH0KKyAgICBzdGF0aWMgc3RkOjpwYWlyPGludCwgaW50PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmRO
dW1iZXIgPSAwOworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5n
LCBmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIAorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8aW50Pihy
b3VuZGYoZmlyc3ROdW1iZXIpKSwgc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vjb25kTnVtYmVy
KSkpOworICAgIH0KK307CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxm
bG9hdD4gewogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9Cisg
ICAgc3RhdGljIGZsb2F0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICBmbG9hdCB0eXBlID0gMDsKKyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0
cmluZyhzdHJpbmcsIHR5cGUpID8gdHlwZSA6IDA7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBmbG9hdCBudW1iZXI7CisgICAgICAgIHJldHVybiBwYXJz
ZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpID8gbnVtYmVyIDogc3RkOjpvcHRpb25h
bDxmbG9hdD4oKTsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhmbG9hdCB0eXBl
KSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiB7CisgICAgc3Rh
dGljIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQorICAgIHN0YXRpYyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNv
bmROdW1iZXIgPSAwOworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3Ry
aW5nLCBmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZpcnN0TnVtYmVyLCBzZWNvbmROdW1i
ZXIpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxG
bG9hdFBvaW50PiB7CisgICAgc3RhdGljIEZsb2F0UG9pbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4gRmxvYXRQb2ludCgpOyB9CisgICAgc3RhdGljIEZsb2F0UG9pbnQgZnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAg
ICAgIHJldHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8gcG9pbnQgOiBGbG9hdFBvaW50
KCk7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBhcnNlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAg
IEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgICAgIHJldHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9p
bnQpID8gcG9pbnQgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+KCk7CisgICAgfQorICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRQb2ludCYgdHlwZSkKKyAgICB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
dHlwZS54KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcih0eXBlLnkoKSk7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD4geworICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4g
RmxvYXRSZWN0KCk7IH0KKyAgICBzdGF0aWMgRmxvYXRSZWN0IGZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0
dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IEZsb2F0UmVjdCgpOworICAgICAg
ICAKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBG
bG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8g
cmVjdCA6IHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PigpOworICAgIH0KKyAgICBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLnkoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOworICAg
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4K
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+IHsKICAgICBzdGF0aWMgU3RyaW5nIGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBTdHJpbmcmIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0KKyAgICBzdGF0aWMgU3Ry
aW5nIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQor
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0K
IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRl
YXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSB0eXBlbmFtZSBT
VkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVRlYXJPZmY7CiAKICAgICB1
c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CisgICAgdXNpbmcg
QmFzZTo6dmFsdWVzUHJvcGVydHk7CiAKICAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdF
bGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCiAgICAgewpAQCAt
NzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHU3RhdGlj
TGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlU
eXBlJiB2YWx1ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAg
ICA6IEJhc2UoVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAgICAsIG1fY29u
dGV4dEVsZW1lbnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzg5LDcgQEAgcHJv
dGVjdGVkOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2Nv
bnRleHRFbGVtZW50KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UobV9j
b250ZXh0RWxlbWVudCk7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRl
bVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5
cGVzIHRoYXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9i
amVjdCwgbm9yIHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBsZTog
U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxmPiBj
cmVhdGUoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVl
LCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRl
eHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUs
IFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQsNyAr
NDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2NvbnRl
eHRFbGVtZW50LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0
eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3BlcnR5
VGVhck9mZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5VGVh
ck9mZihVbmRlZmluZWRSb2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUpCiAg
ICAgICAgICwgbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333728</attachid>
            <date>2018-02-13 14:45:24 -0800</date>
            <delta_ts>2018-02-14 10:37:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180213144523.patch</filename>
            <type>text/plain</type>
            <size>368539</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODQyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxMCBAQAorMjAxOC0wMi0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgbWF5IGhhdmUKKyAgICAgICAgZG9lcyBub3Qg
bG9vayB0aGUgY2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVy
ZSB0aGUKKyAgICAgICAgdW5pb24gU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50
IGFsbCB0aGUgZGF0YSB0eXBlcy4gU28gaGVyZSBpcworICAgICAgICB0aGUgcGxhbiBvZiB0aGlz
IHBhdGNoOgorCisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2ggaXMg
YSB2YXJpYW50IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRhIHR5
cGVzIGluY2x1ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRyaWJ1
dGUKKyAgICAgICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlwZSB0
byBob2xkIHR3byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAgICAg
IGFuZCBvbmx5IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBkYXRh
IHR5cGVzLgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIFNWRyBhdHRyaWJ1dGVzIHRvIGJl
IG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSBT
VkcgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIHRlYXItb2ZmIG9iamVjdHMgdG8gaG9sZCBS
ZWZQdHI8U1ZHVmFsdWU+IGluc3RlYWQgb2YKKyAgICAgICAgaG9sZGluZyBhIHJhdyByZWZlcmVu
Y2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMgZm9yIFNWR1ZhbHVlIGFu
ZCBTVkdMaXN0VmxhdWVzLiBNb3ZlIGRlZmluaXRpb25zIGZyb20KKyAgICAgICAgU1ZHTWFya2Vy
RWxlbWVudC5oIHRvIFNWR01hcmtlclR5cGVzLmguIE1vdmUgZGVmaW5pdGlvbnMgb2YgU1ZHUmVj
dFRyYWl0cy5oCisgICAgICAgIHRvIFNWR1Byb3BlcnR5VHJhaXRzLmguCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBv
bHlnb25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOiBS
ZXBsYWNlIHRoZSBwYXJhbWV0ZXIgU1ZHQW5nbGVWYWx1ZSYgYnkKKyAgICAgICAgUmVmUHRyPFNW
R1ZhbHVlPi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp1bml0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmdsZTo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6c2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
Z2xlOjp2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6
OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlQXNT
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6Om5ld1ZhbHVlU3BlY2lmaWVkVW5p
dHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OmNvbnZlcnRUb1NwZWNpZmllZFVuaXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpTVkdBbmdsZSk6CisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKTogRnVuY3Rpb25zIHdlcmUgcmVuYW1lZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXBwbHlSZXN1bHRzVG9U
YXJnZXQpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZVBvaW50KTogRGVsZXRlZC4gTW92ZWQgdG8gU1ZHUGFyc2VyVXRp
bGl0aWVzLmNwcC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICBVc2UgdGhlIFNWR1Byb3BlcnR5VHJhaXRzOjpmcm9tU3RyaW5nIHRvIGNyZWF0
ZSB0aGUgZGF0YSBtZW1iZXJzIG9mIHRoZQorICAgICAgICBTVkdBbmltYXRlZFR5cGUuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKToKKyAgICAgICAgY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoKSBub3cgcmV0dXJucyBh
IHVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgRG9uJ3Qg
cGFzcyBTVkdBbmltYXRlZFR5cGUgZ2V0dGVyIHRvIHJlc2V0RnJvbUJhc2VWYWx1ZXMoKS4gVGhl
IFByb3BlcnR5VFlwZQorICAgICAgICBjYW4gYmUgdXNlZCB0byBnZXQgdGhlIGRhdGEgZWxlbWVu
dCBmcm9tIHRoZSBTVkdBbmltYXRlZFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICBDYXN0IHRoZSBTVkdW
YWx1ZSBlbGVtZW50cyB0byB0aGUgcmVxdWlyZWQgZGF0YSBtZW1iZXJzLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTog
RGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERp
dHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVy
YXRpb25BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9u
QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlckFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1h
dG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVu
Z3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6
OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VOdW1iZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKwor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1W
YWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJB
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNh
bGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9T
VkdBbmltYXRlZFBvaW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmlt
YXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBv
aW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRv
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdl
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxl
bmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RS
YXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgIFNpbXBsaWZ5IFNWR0FuaW1hdGVkVHlwZS4gSXQgaXMgbm93IGEgc3RydWN0
IHdoaWNoIGhhcyB0d28gUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAgVGhlIHNlY29uZCBwb2lu
dGVyIGNhbiBiZSBudWxsIGV4cGVjdCB3aXRoIHRoZSB0eXBlcyB3aXRoIHR3byB2YWx1ZXMuCisK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKTogQ29u
c3RydWN0IHRoZSAKKyAgICAgICAgYW5pbWF0ZWQgU1ZHVmFsdWUgZnJvbSB0aGUgU1ZHVmFsdWUg
b2YgdGhlIGJhc2UgdmFsdWUgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICAgICAgICBhbmltYXRpb24u
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFz
ZVZhbHVlKTogUmVzZXQgdGhlIGFuaW1hdGVkCisgICAgICAgIFNWR1ZBbHVlIHRvIHRoZSBTVkdW
YWx1ZSBvZiB0aGUgYmFzZSB2YWx1ZSBiZWZvcmUgZW5kaW5nIHRoZSBhbmltYXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VW
YWx1ZXMpOiBTYW1lIGFzIAorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKCkgYnV0IGZv
ciB0d28tU1ZHQXZsdWVzIGFuaW1hdGVkIHR5cGVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFzCisgICAgICAg
IHJlc2V0RnJvbUJhc2VWYWx1ZSgpIGJ1dCBmb3IgdHdvLVNWR0F2bHVlcyBhbmltYXRlZCB0eXBl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0
aW9uKToKKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0
aW9uIGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxs
aXBzZUVsZW1lbnQ6OlNWR0VsbGlwc2VFbGVtZW50KTogIEV4cGxpY2l0bHkgY3JlYXRlIGFuCisg
ICAgICAgIFNWR0xlbmd0aFZhbHVlIHdoaWNoIHdpbGwgaW1wbGljaXRseSBmb3JjZSBjYWxsaW5n
IHRoZSBjb25zdHJ1Y3RvciBvZgorICAgICAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJv
cGVydHkuCisKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6YnVp
bGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVpbGQpOgorCisgICAg
ICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmls
dGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCk6CisgICAgICAgIERp
dHRvLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp1bml0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnZhbHVlRm9yQmluZGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRWYWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5n
dGg6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpuZXdW
YWx1ZVNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6Y29udmVy
dFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpTVkdMZW5n
dGgpOgorICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpIHdhcyByZW5hbWVkIHRvIHZhbHVlUHJv
cGVydHkoKQorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhM
aXN0OjpTVkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmluaXRpYWxWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6
ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5n
dGhMaXN0VmFsdWVzPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKyAgICAgICAgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyBpcyBub3cgYSB2ZWN0b3Igb2YgUmVmUHRyPFNWR1ZhbHVlPi4gSG93ZXZlciB0aGUK
KyAgICAgICAgb25seSBleHBlY3RlZCB2YWx1ZSBpbiB0aGUgZWxlbWVudHMgb2YgdGhpcyB2ZWN0
b3IgaXMgU1ZHTGVuZ3RoVmFsdWUuCisKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoVmFsdWUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPjo6cGFy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+
Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNWR0xpbmVhckdy
YWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6cmVzaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6ZGVlcENvcHkg
Y29uc3QpOgorCisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1ZXMuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpTVkdMaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFZhbHVlczo6cHJvcGVydHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzOjpmaXJzdFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1
ZXM6OmZpcnN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6bGFz
dFByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0aWVzIGNv
bnN0KToKKyAgICAgICAgVGhpcyBpcyB0aGUgYmFzZSBjbGFzcyBvZiBhbGwgdGhlIFNWRyBsaXN0
IGF0dHJpYnV0ZXMuIFdlIG5lZWQgdG8gaGF2ZQorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24g
b2Ygc29tZSBmdW5jdGlvbiBiZSBpbiBhIHNvdXJjZSBmaWxlIHRvIHdvcmsgYXJvdW5kCisgICAg
ICAgIGhlYWRlciBmaWxlIGRlcGVuZGVuY3kgaXNzdWVzLiBUaGUgU1ZHIGxpc3QgYXR0cmlidXRl
cyBjYW4gYmUgb25lIG9mCisgICAgICAgIFNWR1ZhbHVlIGRhdGEgbWVtYmVycyBidXQgYXQgdGhl
IHNhbWUgdGltZSBpdCBpcyB2ZWN0b3Igb2YgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAq
IHN2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVs
ZW1lbnQ6OlNWR01hcmtlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxl
bWVudDo6c2V0T3JpZW50VG9BbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVt
ZW50OjpzeW5jaHJvbml6ZU9yaWVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2Vy
RWxlbWVudDo6b3JpZW50VHlwZSBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRz
VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6dG9TdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6
ZnJvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRz
PFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBl
Pjo6aGlnaGVzdEVudW1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyk6IERlbGV0ZWQuCisg
ICAgICAgIFRoaXMgY29kZSBpcyBtb3ZlZCB0byB0aGUgbmV3IGZpbGUgU1ZHTWFya2VyVHlwZXMu
aC4KKworICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmhpZ2hlc3RFbnVt
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5p
dHNUeXBlPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTWFya2VyVW5pdHNUeXBlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6
ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJRExFbnVtTGltaXRzPFNWR01hcmtl
ck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSk6CisgICAgICAgICogc3ZnL1NW
R01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpTVkdN
YXNrRWxlbWVudCk6CisKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmEp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRBKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6Yik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEIpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJp
eDo6c2V0Qyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWF0cml4OjpzZXREKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWF0cml4OjpmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0Rik6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6Om11bHRpcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hdHJpeDo6aW52ZXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnRyYW5zbGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6c2NhbGVOb25Vbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6cm90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZl
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpz
a2V3WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNrZXdZKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6U1ZHTWF0cml4KToKKyAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KSB3YXMgcmVuYW1lZCB0byB2YWx1ZVByb3BlcnR5KCkuCisKKyAgICAgICAgKiBzdmcvU1ZHTWF0
cml4VmFsdWUuaDoKKyAgICAgICAgVXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIEFmZmluZVRy
YW5zZm9ybSBvcGVyYXRpb24gYW5kIGxldCB0aGUgY29uc3RydWN0b3IKKyAgICAgICAgb2YgU1ZH
TWF0cml4VmFsdWUgYmUgY2FsbGVkIGltcGxpY2l0bHkuCisKKyAgICAgICAgKiBzdmcvU1ZHTnVt
YmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdOdW1iZXI6OnZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTnVtYmVyOjpzZXRWYWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR051
bWJlcjo6U1ZHTnVtYmVyKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R051bWJlckxpc3Q6OlNWR051bWJlckxpc3QpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3RWYWx1ZXM6OnBhcnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcg
Y29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFs
dWVzPjo6dG9TdHJpbmcpOgorCisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVBvaW50KTogVGhpcyBmdW5jdGlvbiB3YXMgbW92ZWQg
ZnJvbSBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpwb2lu
dHNMaXN0RnJvbVNWR0RhdGEpOgorCisgICAgICAgICogc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5o
OgorCisgICAgICAgICogc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoQnl0ZVN0cmVhbTo6U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoQnl0ZVN0cmVhbTo6Y29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0
ZVN0cmVhbTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjpp
c0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1Bh
dGhCeXRlU3RyZWFtPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIEFkZCBj
b3B5IGNvbnN0cnVjdG9yIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9yLgorCisgICAgICAgICogc3Zn
L1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpT
VkdQYXRoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3Vw
T3JDcmVhdGVEV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3lu
Y2hyb25pemVEKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlz
dENoYW5nZWQpOgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpjbGVhckNvbnRleHRBbmRSb2xlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0xpc3Q6OnJlcGxhY2VJdGVtKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3Qu
aDoKKyAgICAgICAgQWNjZXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIHRocm91Z2ggdmFsdWVzUHJv
cGVydHkoKSBpbnN0ZWFkIG9mIG1fdmFsdWVzCisgICAgICAgIHdoaWNoIGlzIG5vdyBhIFJlZlB0
cjxTVkdWYWx1ZT4uCisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bW92ZVRvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvSG9yaXpvbnRhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljU21vb3RoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFk
cmF0aWNTbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjph
cmNUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmNsb3NlUGF0
aCk6CisgICAgICAgIFN0b3JlIGEgbmV3IFJlZlB0cjxTVkdWYWx1ZT4gZm9yIGV2ZXJ5IFNWR1Bh
dGhTZWcuCisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWVudFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5kKToKKyAg
ICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaDoKKworICAgICAgICAqIHN2Zy9TVkdQ
YXRoVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFNWR1BhdGhCeXRlU3Ry
ZWFtRnJvbVNWR1BhdGhTZWcpOgorICAgICAgICAoV2ViQ29yZTo6YWRkVG9TVkdQYXRoQnl0ZVN0
cmVhbSk6CisgICAgICAgIEFuc3dlciBTaW1vbidzIHF1ZXN0aW9ucyB3aGljaCB3ZXJlIGFkZGVk
IGluIHIxOTA4NDQuCisKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OngpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9pbnQ6OnkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OnNldFkpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9pbnQ6Om1hdHJpeFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2ludDo6U1ZHUG9pbnQpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50TGlzdDo6U1ZHUG9pbnRMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFs
dWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0
cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0
cmluZyk6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQb2ludHMpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBvaW50TGlzdCBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjphbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRBbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvOjptZWV0T3JTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRNZWV0T3JTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKToKKyAgICAgICAg
KiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
KToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OngpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdS
ZWN0Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFkpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVjdDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6c2V0V2lk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6aGVpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3Q6OnNldEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpTVkdS
ZWN0KToKKworICAgICAgICAqIHN2Zy9TVkdSZWN0VHJhaXRzLmg6IFJlbW92ZWQuIFRoaXMgc3Ry
dWN0IHdhcyBtb3ZlZCB0byBTVkdQcm9wZXJ0eVRyYWl0cy5oCisKKyAgICAgICAgKiBzdmcvU1ZH
U1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRp
bmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRp
bmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAg
ICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5j
aHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250
ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRl
eHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250
ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENv
bnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6
U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZH
VHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVHJhbnNmb3JtOjphbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNl
dE1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFNjYWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0Um90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Ry
YW5zZm9ybTo6c2V0U2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRT
a2V3WSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6Cisg
ICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFu
c2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJh
bnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6
cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorCisg
ICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9TdHJp
bmdWaXNpdG9yOjpvcGVyYXRvcigpKTogVGhpcyB2aXNpdG9yIHJldHVybnMgdGhlIHN0cmluZwor
ICAgICAgICBvZiB0aGUgYWx0ZXJuYXRpdmUgb2YgU1ZHVmFsdWVWYXJpYW50LgorICAgICAgICAo
V2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpwYXJzZVZpc2l0b3IpOiBUaGlzIHJlcGxhY2VzIHRoZSBh
bHRlcm5hdGl2ZSBvZgorICAgICAgICBTVkdWYWx1ZVZhcmlhbnQgd2l0aCB0aGUgdmFsdWUgd2Ug
Z2V0IGZyb20gcGFyc2luZyB0aGUgc3RyaW5nIG9mIGFuCisgICAgICAgIGF0dHJpYnV0ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlVmlzaXRvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6b3BlcmF0b3IgY29uc3QgUHJvcGVy
dHlUeXBlJiBjb25zdCk6IENhc3Rpbmcgb3BlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTVkdW
YWx1ZTo6b3BlcmF0b3IgUHJvcGVydHlUeXBlJik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1
ZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnBhcnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpTVkdWYWx1ZSk6CisKKyAgICAgICAgKiBzdmcv
U1ZHVmlld0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld0VsZW1lbnQ6OlNW
R1ZpZXdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6CisKKyAgICAgICAgKiBz
dmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1Zp
ZXdTcGVjKTogSW5pdGlhbGl6ZSBwb2ludGVycyB3aXRoIHRoZSBkZWZhdWx0CisgICAgICAgIHZh
bHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnZpZXdCb3hTdHJpbmcgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcv
U1ZHVmlld1NwZWMuaDoKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51
bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDogTm8gbmVlZCBmb3IgdGhlCisgICAgICAgIGNhc3Rp
bmcgY3VycmVudEFuaW1hdGVkVmFsdWUoKSBtZXRob2QuIFNpbmNlIHRoZSBiYXNlIGNsYXNzIG1l
dGhvZCByZXR1cm5zIAorICAgICAgICBhIFJlZlB0cjxTVkdWYWx1ZT4uIFRoZSBjYXN0aW5nIHdp
bGwgaGFwcGVuIHdoZW4gZ2V0dGluZyB0aGUgZW51bSB2YWx1ZSAKKyAgICAgICAgZnJvbSB0aGUg
U1ZHVmFsdWUuCisKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJl
bnRCYXNlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uRW5kZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpzeW5jaHJvbml6ZVdyYXBwZXJz
SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmOjphbmltVmFsV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWxEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBP
ckNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlNYWNyb3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5p
bVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmY6OmN1cnJlbnRCYXNlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpTVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6c2V0VmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjbGVhclZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OmNsZWFyVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5OjpudW1iZXJPZkl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmNhbkdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5OjpnZXRJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eTo6Z2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6aW5zZXJ0SXRlbUJlZm9yZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXNBbmRXcmFwcGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlcGxhY2VJdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2FuUmVtb3ZlSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzQW5kV3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZhbHVlc0FuZFdy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzUHJvcGVydHkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpTVkdMaXN0UHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVs
ZXRlZC4KKyAgICAgICAgTm8gbmVlZCBmb3IgbV9vd25zVmFsdWVzIGFueW1vcmUuIG1fdmFsdWVz
IGlzIG5vdyBhIFJlZlB0cjxTVkdWYWx1ZT4uIEl0CisgICAgICAgIHdpbGwgYmUgZGVsZXRlZCBv
bmNlIHRoZSByZWYtY291bnQgYmVjb21lcyB6ZXJvLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY6OmZpbmRJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OnJlbW92ZUl0ZW1Gcm9tTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRl
YXJPZmY6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9m
Zjo6dmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6
OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6U1ZHUHJv
cGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6flNW
R1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6
OnByb3BlcnR5UmVmZXJlbmNlKTogRGVsZXRlZC4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PGludD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Rmxv
YXRQb2ludD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAg
ICBVbmlmeSB0aGUgdHJhaXRzIGZvciBhbGwgdGhlIGRhdGEgdHlwZXMgY2FuIGFuIFNWR1ZhbHVl
IGNhbiBob2xkLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3Bl
cnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVh
ck9mZjo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisKIDIwMTgtMDItMTMgIE5hbiBXYW5n
ICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogUmVtb3ZlIEFjY2Vzc2libGVOb2Rl
IGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIwNzEsNyArMjA3MSw2IEBAIHN2
Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCiBzdmcvU1ZHQW5pbWF0ZWRSZWN0
LmNwcAogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcAogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdC5jcHAKLXN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuY3BwCiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKIHN2Zy9TVkdDaXJjbGVFbGVt
ZW50LmNwcApAQCAtMjEzNSw2ICsyMTM0LDcgQEAgc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
CiBzdmcvU1ZHTGVuZ3RoVmFsdWUuY3BwCiBzdmcvU1ZHTGluZUVsZW1lbnQuY3BwCiBzdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCiBzdmcvU1ZH
TG9jYXRhYmxlLmNwcAogc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKIHN2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMyLDcgKzE2
MzIsMTUgQEAKIAkJNTU1MENCNDIxRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTBDQjQxMUU5NTVF
M0MwMDExMUFBMCAvKiBJbWFnZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTU1MTMwMDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5n
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NUI4N0VEMUNBQUYwQUIw
MDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2Rl
ckNHLmggKi87IH07CisJCTU1NjI3Qjc4MjAyOTJCRjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTYyN0I3
NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NzZBNTY1MUQ4OEE3MDgwMENDQzA0QyAv
KiBJbWFnZUZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTk4MjAyNTQ1NkQw
MDRENzVGNCAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OTkyMDI1
NDVBQzAwNEQ3NUY0IC8qIFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQzMUREM0IzQjkwMEU5MkRBMyAvKiBTVkdBbmds
ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTU4QjY5OUIyMDI1NDVFQTAwNEQ3NUY0IC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY5MUREQjg2
RDMwMEZFRkIyOSAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUMyMDI1NDYwNTAwNEQ3NUY0IC8q
IFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzM5QzM2RjFEREJBM0UwMDBGRUZCMjkgLyogU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk1NThCNjk5RDIwMjU0NjEyMDA0RDc1RjQgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2QjFEREI4NzFD
MDBGRUZCMjkgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUUyMDI1NDYyQjAwNEQ3NUY0IC8qIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0M4RjIyNDYxREQzRDFDNTAwRTkyREEzIC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVGNCAvKiBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzM5QzM2RDFEREI4QkIwMDBGRUZCMjkgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QTMzNkY3MUQ4
MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUlt
YWdlLmggKi87IH07CiAJCTU1QTMzNkY5MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdT
dG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVB
MzM2RjgxRDgyMUUzQzAwMjJDNEM3IC8qIEltYWdlQmFja2luZ1N0b3JlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTVBRjE0RTYxRUFBQzU5QjAw
MjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NUFGMTRFNDFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTkzMCw3
ICsxOTM4LDcgQEAKIAkJNzE1NTZDQkQxRjlGMEE0OTAwRTc4RDA4IC8qIEpTQW5pbWF0aW9uRWZm
ZWN0VGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MTU1NkNCOTFGOUYwOUZEMDBFNzhEMDggLyogSlNBbmltYXRpb25FZmZlY3RUaW1pbmcuaCAq
LzsgfTsKIAkJNzE1NTZDQkUxRjlGMEE0OTAwRTc4RDA4IC8qIEpTS2V5ZnJhbWVFZmZlY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxNTU2Q0I3MUY5
RjA5RkMwMEU3OEQwOCAvKiBKU0tleWZyYW1lRWZmZWN0LmggKi87IH07CiAJCTcxQTFCNjA4MURF
RTVBRDcwMDczQkNGQiAvKiBtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVkLXN0cmluZ3Mu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTFC
NjA2MURFRTVBODIwMDczQkNGQiAvKiBtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVkLXN0
cmluZ3MuanMgKi87IH07Ci0JCTcxQTU3REYyMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MUE1N0RGMDE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oICovOyB9OworCQk3
MUE1N0RGMjE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlE
MTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3MUM5MTYwODFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzFDOTE2MDcxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MURDQjcwMjE1NjgxOTc2MDA4NjIyNzEgLyogSlNTVkdab29tQW5kUGFuLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MURDQjcwMDE1Njgx
OTc2MDA4NjIyNzEgLyogSlNTVkdab29tQW5kUGFuLmggKi87IH07CiAJCTcxRTIxODNBMTczNTlG
QjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVzb3VyY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUUyMTgzODE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0lu
c1Jlc291cmNlcy5oICovOyB9OwpAQCAtMjAzMiw3ICsyMDQwLDcgQEAKIAkJN0MzMEQ5ODYxRjgx
NUFFQzAwMjY4MzU2IC8qIEpTQWJvcnRTaWduYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzBEOTgxMUY4MTVBQzEwMDI2ODM1NiAvKiBKU0Fib3J0
U2lnbmFsLmggKi87IH07CiAJCTdDMzMwQTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0Nv
bnRleHQzREF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDMzMwQTAxMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QzMzMEEwODFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzMwQTA2MURGOUY5
NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9uT3B0aW9ucy5oICovOyB9OwotCQk3QzM5QzM2NTFEREE4
NjUyMDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNW
R0xlbmd0aExpc3RWYWx1ZXMuaCAqLzsgfTsKKwkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8q
IFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFs
dWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0MzOUMzNzcxRERCRTE3MDAwRkVGQjI5IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY3MUREQjgyQ0Yw
MEZFRkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8qIENs
aXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0MzQTkxRTUxQzk2M0I4ODAwRDFBN0UzIC8qIENsaXBib2FyZEFjY2Vzc1Bv
bGljeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdDM0I3OTcxMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzQjc5NkYxOTA4NzU3
QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgKi87IH07CkBAIC0yMTY0LDEwICsy
MTcyLDkgQEAKIAkJN0NFMTkxNzkxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0TW9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFMTkx
NkMxRjJBQjcwQTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0TW9kZS5oICovOyB9OwogCQk3Q0Ux
OTE3QjFGMkFCRTcxMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFMTkxNkExRjJBQjcwNjAw
MjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCAqLzsgfTsKIAkJN0NFNThENEExREQ2
NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAq
LzsgfTsKLQkJN0NFNThENEUxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDREMURENjk0
RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi87IH07CiAJCTdDRTU4RDUwMURENjlBMUUw
MDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTU4RDRGMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCAqLzsg
fTsKLQkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1NjFERDdE
OTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsKLQkJN0NFNThENUMxREQ3
RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0
cml4VmFsdWUuaCAqLzsgfTsKKwkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5z
Zm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Q0U1OEQ1QzFERDdF
QzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRy
aXhWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNw
cCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxl
ckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NF
NjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
MzA5LDcgKzIzMTYsNyBAQAogCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudElu
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3
Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3Q0E4MURBOUYxQjYwMDM3MjM3QyAv
KiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNG
RTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTkwMjYxRTMwN0MxQzAwM0U5
MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9OwotCQk4NDE5RDJBNzEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbS5oICovOyB9OworCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5
dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MTlEMkE5MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAv
KiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsKIAkJODQxOUQyQUQxMjBEOTJGQzAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBQjEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJODQxOUQyQkExMjBFMEM3NjAwMTQxRjhG
IC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJCODEyMEUwQzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmlu
Z0J1aWxkZXIuaCAqLzsgfTsKQEAgLTIzMzYsNyArMjM0Myw3IEBACiAJCTg0NzMwRDkzMTI0OEYw
QjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc2MTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGln
aHRTb3VyY2UuaCAqLzsgfTsKIAkJODQ3NkM5RTYxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhT
ZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5o
ICovOyB9OwogCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU4MTFE
RjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oICovOyB9OwotCQk4NDc2QzlFQzExREY2
QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0
aENvbnN1bWVyLmggKi87IH07CisJCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
Q29uc3VtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDc2QzlGMDExREY2QTU4
MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RUUxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJz
ZXIuaCAqLzsgfTsKIAkJODQ4MDE5NTUxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDgwMTk1
MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCAqLzsgfTsKIAkJODQ4MkI3NDYx
MTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8qIEhh
c2hDaGFuZ2VFdmVudC5oICovOyB9OwpAQCAtMzI4MSw5ICszMjg4LDkgQEAKIAkJQjIyMjdBNEIw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjUwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR01ldGFkYXRhRWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E0RTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHTVBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMjIyNzhCODBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTVBhdGhFbGVtZW50Lmgg
Ki87IH07CiAJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhCQjBEMDBC
RjIwMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
YXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyMjI3OEMxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCAq
LzsgfTsKKwkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzEw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyMjI3QTU5MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50Lmgg
Ki87IH07Ci0JCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIw
MDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyB9OworCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1RTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0FyYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhT
ZWdBcmMuaCAqLzsgfTsKIAkJQjIyMjdBNjIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdD
bG9zZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIyMjI3OENDMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmggKi87IH07
CiAJCUIyMjI3QTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDRjBE
MDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oICovOyB9OwpAQCAtNzI4
Myw3ICs3MjkwLDYgQEAKIAkJNDM5RDMzNDExM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzOUQzMzQy
MTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRvckZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTBGMEIwMTNBQzdENkQwMEE1RjBBNyAvKiBTVkdBbmltYXRlZE51bWJl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZE51
bWJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQTBGMEI1MTNBQ0NDRkYw
MEE1RjBBNyAvKiBTVkdBbmltYXRlZFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDNBNjI1RjYxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0M0E2MjVGNzEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5p
bWF0ZWRDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdB
bmltYXRlZENvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI2NjYx
M0IzRDExMDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgxNzQsMTAgKzgxODAsMTMgQEAKIAkJNTUwQTBCQzgwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTU0Njc1NzcxRkQxRkMx
QTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAw
M0IxMEIwIC8qIEltYWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1NTA0RTk0MjAyQ0RGRDIwMDUwN0M3MyAvKiBT
VkdMaXN0VmFsdWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0xpc3RWYWx1ZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyog
SW1hZ2VUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVR5cGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUz
OCAvKiBEZWNvZGluZ09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGVjb2RpbmdPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NUI4N0VB
MUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZURlY29kZXJDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJDRy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTYyN0I3NjIwMjhFREM0MDAyRDM5N0QgLyogU1ZH
TGlzdFZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU1NzUwNTZDMUU1M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJrZXJU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdNYXJrZXJUeXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2MjFEODhBNzA4MDBDQ0MwNEMg
LyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjMxRDg4
QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUEzMzZG
NjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmF0aXZlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTgxODUsNiArODE5NCw3IEBACiAJCTU1QUYxNEUzMUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdp
c3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVElSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3Ry
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVVElSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGllbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTcxRTUzODUxNjAwMzU2NjAxIC8qIENyeXB0
b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MDQ0MDU5MUU1MzkzNjIwMDM1NjYwMSAvKiBKU0Flc0NiY0NmYlBhcmFtcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Flc0NiY0NmYlBhcmFtcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1QjFFNTM5Mzc5MDAzNTY2MDEgLyog
SlNBZXNDYmNDZmJQYXJhbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNBZXNDYmNDZmJQYXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTQ2Niw3ICs5NDc2LDYgQEAKIAkJN0NFMTkxNkUxRjJBQjcwRDAwMjcyRjdCIC8qIEpTQ2FjaGVR
dWVyeU9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWNoZVF1ZXJ5T3B0aW9ucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTE5MTZGMUYyQUI3MEYwMDI3MkY3
OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0
Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1
OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NF
NThENEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHUmVjdFRyYWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR051bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0U1OEQ1MTFERDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3RoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Q0U1OEQ1MjFERDdCMDkzMDAxMjg1NTIgLyogU1ZHTGVuZ3RoVmFsdWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGVuZ3RoVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0MzEsNyArMjI0NDAsNiBAQAog
CQkJCTcxNTdGMDYxMTUwQjY1NjQwMDZFQUFCRCAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qu
Y3BwICovLAogCQkJCTA4MjUwOTM4MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3QuaCAqLywKIAkJCQlCMjIyNzdGODBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmlkbCAqLywKLQkJCQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyog
U1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLywKIAkJCQk0MzlEMzM0MDEzQTY5MTFDMDBDMjBGNEYgLyog
U1ZHQW5pbWF0ZWRUeXBlLmggKi8sCiAJCQkJODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLywKIAkJCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBG
NEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCAqLywKQEAgLTIyNjMyLDExICsyMjY0MCwx
NCBAQAogCQkJCUIyMjI3OEE1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5jcHAg
Ki8sCiAJCQkJQjIyMjc4QTYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggKi8s
CiAJCQkJQjIyMjc4QTcwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLywK
KwkJCQk1NTUwNEU5NDIwMkNERkQyMDA1MDdDNzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8sCisJ
CQkJNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLywKIAkJCQlC
MjIyNzhBQTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmNwcCAqLywKIAkJCQlCMjIy
NzhBQjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggKi8sCiAJCQkJQjIyMjc4QUQw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEFF
MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QUYw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaWRsICovLAorCQkJCTU1NzUwNTZD
MUU1M0IzMEMwMDhERTMwQSAvKiBTVkdNYXJrZXJUeXBlcy5oICovLAogCQkJCUIyMjI3OEIwMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QjEwRDAw
QkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4QjIwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR01hc2tFbGVtZW50LmlkbCAqLywKQEAgLTIyNzcwLDcgKzIyNzgxLDYg
QEAKIAkJCQlCMjIyNzkwNzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuY3BwICov
LAogCQkJCUIyMjI3OTA4MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5oICovLAog
CQkJCUIyMjI3OTA5MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5pZGwgKi8sCi0J
CQkJN0NFNThENEQxREQ2OTRGRTAwMTI4NTUyIC8qIFNWR1JlY3RUcmFpdHMuaCAqLywKIAkJCQlC
MjIyNzkwQTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50LmggKi8sCiAJCQkJ
QjIyMjc5MEIwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlbmRlcmluZ0ludGVudC5pZGwgKi8sCiAJ
CQkJQjIyMjc5MEMwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1NjcmlwdEVsZW1lbnQuY3BwICovLApA
QCAtMjI4NDcsNiArMjI4NTcsNyBAQAogCQkJCUIyMjI3OTU2MEQwMEJGMjEwMDcxQjc4MiAvKiBT
VkdVc2VFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzk1NzBEMDBCRjIxMDA3MUI3ODIgLyogU1ZH
VXNlRWxlbWVudC5oICovLAogCQkJCUIyMjI3OTU4MEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdVc2VF
bGVtZW50LmlkbCAqLywKKwkJCQk1NUU0NEFFMDFFNEJGQkM1MDA5MjQ1N0IgLyogU1ZHVmFsdWUu
aCAqLywKIAkJCQlCMjIyNzk1OTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuY3Bw
ICovLAogCQkJCUIyMjI3OTVBMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oICov
LAogCQkJCUIyMjI3OTVCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5pZGwgKi8s
CkBAIC0yOTY5Myw2ICsyOTcwNCw3IEBACiAJCQkJNjU2NTNGMkUwRDk3MjdEMjAwQ0E5NzIzIC8q
IFNWR0FsdEdseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjREOTEyQjgxM0NBOUE2
OTAwRDIxOTE1IC8qIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3OTc3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTU4QjY5OTkyMDI1NDVBQzAwNEQ3NUY0IC8qIFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3OTdBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODdCODQ5NjEyNzJDRUM4MDBBMTQ0MTcgLyogU1ZH
QW5pbWF0ZWRBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1Nzk3MDkxMjc4Mzk0QzAwQThF
QzVGIC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTgwNCw2ICsy
OTgxNiw3IEBACiAJCQkJQjIyMjdBM0MwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODEwNzY0NDEyODI4NTU2MDA3QzYzQkEgLyogU1ZHTGlz
dFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwOTEyNkVGMURCMDA5NzhGN0Eg
LyogU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU2MjdCNzgy
MDI5MkJGNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QTQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E0NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTgxNiw2ICsyOTgyOSw3IEBACiAJCQkJQjIyMjdBNEUwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NF
NThENTAxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAg
LyogU1ZHUGFyc2luZ0Vycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEM2Nzg0RDEyMTQ4MTQ3
MDBBOTI5MDIgLyogU1ZHUGF0aEJsZW5kZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4NTQsNiAr
Mjk4NjgsNyBAQAogCQkJCUIyMjI3QTgxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3NkM5RTYxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1Bh
dGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRCNkI5NzgxMjBGMTNFNTAw
QjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThC
Njk5QzIwMjU0NjA1MDA0RDc1RjQgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQzFENDM1MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNjE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgyREU0MkQxMjkyNjIxNjAwRDky
M0RGIC8qIFNWR1BhdGhTZWdXaXRoQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg2NSwx
MCArMjk4ODAsMTIgQEAKIAkJCQlCMjIyN0E4ODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0dGVy
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAv
KiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOEMwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR1BvaW50TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUQyMDI1NDYxMjAw
NEQ3NUY0IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
OEYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5RTIwMjU0NjJC
MDA0RDc1RjQgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODhBMEUwQTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MURENDlDMTNCQTFBNjAwMERDNzYyNyAvKiBTVkdQcm9wZXJ0eUluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTA4OEEwRTBCMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0
eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4NzYsNyArMjk4OTMsNiBAQAogCQkJCUIy
MjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0E5RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdS
ZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxOTdCMTgwQzE1MDYzNTMyMDBFNEFEQTgg
LyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQTAwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1JlbmRlcmluZ0ludGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMyMjc0NzkwRTgzNjZFMjAwRTdGOTc1IC8qIFNWR1JlbmRlclN0eWxlLmggaW4gSGVhZGVycyAq
LywKQEAgLTI5OTIxLDYgKzI5OTM3LDcgQEAKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTU4QjY5OUYyMDI1NDY3NTAwNEQ3NUY0IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5OTI4
LDYgKzI5OTQ1LDcgQEAKIAkJCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVBMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVEMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5ODIw
MjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYw
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdTcGVjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERh
dGEuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1BhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgc3Rh
dGljIFBhdGggcGF0aEZyb21QYXRoRWxlbWVudChTVkdFbGVtZQogCiBzdGF0aWMgUGF0aCBwYXRo
RnJvbVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9p
bnRzID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRz
KCktPnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlm
IChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRo
OwotICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2lu
dHMuZmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGgu
YWRkTGluZVRvKHBvaW50cy5hdChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5w
cm9wZXJ0eUF0KGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CiAgICAgcmV0dXJuIHBh
dGg7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25FbGVt
ZW50KFNWR0VsCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9seWxpbmVFbGVtZW50KFNWR0VsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVF
bGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRvJiBw
b2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9p
bnRzKCktPnZhbHVlc1Byb3BlcnR5KCk7CiAgICAgaWYgKHBvaW50cy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKICAgICBQYXRoIHBhdGg7Ci0gICAgcGF0aC5tb3ZlVG8ocG9pbnRz
LmZpcnN0KCkpOworICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdFByb3BlcnR5KCkpOwogCiAg
ICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsK
KyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLnByb3BlcnR5QXQoaSkpOwogICAgIHJldHVy
biBwYXRoOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxNSArMTYzLDE1IEBA
IHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWkKIHN0YXRpYyBpbmxpbmUg
dm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90YXRpb24s
IFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxlbmd0aENv
bnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHhMaXN0LCBjb25zdCBTVkdMZW5ndGhM
aXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHhMaXN0LCBjb25z
dCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMq
IHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQotICAgICAgICBkYXRhLnggPSB4TGlzdC0+
YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEueCA9IHhMaXN0LT5wcm9w
ZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgIGlmICh5TGlzdCkKLSAgICAgICAg
ZGF0YS55ID0geUxpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRh
LnkgPSB5TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAo
ZHhMaXN0KQotICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250
ZXh0KTsKKyAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQotICAgICAgICBkYXRhLmR5ID0gZHlMaXN0LT5h
dChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keSA9IGR5TGlzdC0+cHJv
cGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAocm90YXRlTGlzdCkgewot
ICAgICAgICBkYXRhLnJvdGF0ZSA9IHJvdGF0ZUxpc3QtPmF0KGkpOworICAgICAgICBkYXRhLnJv
dGF0ZSA9IHJvdGF0ZUxpc3QtPnByb3BlcnR5QXQoaSk7CiAgICAgICAgIGxhc3RSb3RhdGlvbiA9
IGRhdGEucm90YXRlOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmds
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FuZ2xl
IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVlPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdBbmdsZVZhbHVlJiB2YWx1ZSkK
KyAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MiwxMSArNDIsNiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGluaXRpYWxW
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShjb25zdCBT
VkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmdsZShpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR0FuZ2xlPj4gY3JlYXRlKEV4Y2Vw
dGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1
ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU2LDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgU1ZHQW5n
bGVWYWx1ZTo6VHlwZSB1bml0VHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlS
ZWZlcmVuY2UoKS51bml0VHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnVu
aXRUeXBlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5k
aW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTY0LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1
ZSh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZSh2YWx1ZSk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03Miw3ICs2Nyw3
IEBAIHB1YmxpYzoKICAgICAKICAgICBmbG9hdCB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkudmFsdWUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpA
QCAtODAsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWVJ
blNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogICAgICAgICAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg4LDcgKzgzLDcgQEAg
cHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cygpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUluU3BlY2lmaWVkVW5pdHMo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUluU3BlY2lmaWVkVW5pdHMo
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0
IFN0cmluZyYgdmFsdWUpCkBAIC05Niw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1
ZVByb3BlcnR5KCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAg
LTEwNiw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAg
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVBc1N0cmluZygpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQg
c2hvcnQgdW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKQEAgLTExNCw3ICsx
MDksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubmV3VmFsdWVTcGVjaWZpZWRVbml0
cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB2YWx1ZVByb3BlcnR5KCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTI3LDcgKzEyMiw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVz
dWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlw
ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKHVuaXRUeXBlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTM2LDcgKzEzMSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oJmFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xNDUsMTEgKzE0MCw2IEBA
IHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGlu
aXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHQW5nbGUoY29uc3Qg
U1ZHQW5nbGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdBbmdsZVZhbHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxl
bWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0LDcgKzIyNCw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGUKICAgICBpZiAoIW1f
YW5pbWF0ZWRUeXBlKQogICAgICAgICBtX2FuaW1hdGVkVHlwZSA9IGFuaW1hdG9yLT5jb25zdHJ1
Y3RGcm9tU3RyaW5nKGJhc2VWYWx1ZSk7CiAgICAgZWxzZQotICAgICAgICBtX2FuaW1hdGVkVHlw
ZS0+c2V0VmFsdWVBc1N0cmluZyhhdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUpOworICAgICAgICBt
X2FuaW1hdGVkVHlwZS0+cGFyc2UoYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKTsKIH0KIAogc3Rh
dGljIGlubGluZSB2b2lkIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldChTVkdFbGVtZW50JiB0YXJn
ZXRFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMzQ0
LDE0ICszNDQsMTQgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFwcGx5UmVzdWx0cwog
ICAgIGlmIChtX2FuaW1hdGVkUHJvcGVydGllcy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gQ1NT
IHByb3BlcnRpZXMgYW5pbWF0aW9uIGNvZGUtcGF0aC4KICAgICAgICAgLy8gQ29udmVydCB0aGUg
cmVzdWx0IG9mIHRoZSBhbmltYXRpb24gdG8gYSBTdHJpbmcgYW5kIGFwcGx5IGl0IGFzIENTUyBw
cm9wZXJ0eSBvbiB0aGUgdGFyZ2V0ICYgYWxsIGluc3RhbmNlcy4KLSAgICAgICAgYXBwbHlDU1NQ
cm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYXBwbHlDU1NQcm9w
ZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKCp0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBt
X2FuaW1hdGVkVHlwZS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICAvLyBXZSBkbyB1cGRhdGUgdGhlIHN0eWxlIGFuZCB0aGUgYW5pbWF0aW9uIHByb3BlcnR5IGlu
ZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIuCiAgICAgU2hvdWxkQXBwbHlBbmltYXRpb24gc2hvdWxk
QXBwbHkgPSBzaG91bGRBcHBseUFuaW1hdGlvbih0YXJnZXRFbGVtZW50LmdldCgpLCBhdHRyaWJ1
dGVOYW1lKTsKICAgICBpZiAoc2hvdWxkQXBwbHkgPT0gQXBwbHlYTUxhbmRDU1NBbmltYXRpb24p
Ci0gICAgICAgIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxl
bWVudCwgYXR0cmlidXRlTmFtZSwgbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKSk7Cisg
ICAgICAgIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSwgbV9hbmltYXRlZFR5cGUtPnRvU3RyaW5nKCkpOwogCiAgICAgLy8g
U1ZHIERPTSBhbmltVmFsIGFuaW1hdGlvbiBjb2RlLXBhdGguCiAgICAgLy8gQXQgdGhpcyBwb2lu
dCB0aGUgU1ZHIERPTSB2YWx1ZXMgYXJlIGFscmVhZHkgY2hhbmdlZCwgdW5saWtlIGZvciBDU1Mu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwzMSArMTM2LDYgQEAgdm9pZCBT
VkdBbmltYXRlTW90aW9uRWxlbWVudDo6dXBkYXRlQW5pbQogICAgIHVwZGF0ZUFuaW1hdGlvbk1v
ZGUoKTsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2VQb2ludChjb25zdCBTdHJpbmcmIHMsIEZsb2F0
UG9pbnQmIHBvaW50KQotewotICAgIGlmIChzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5nVmlldyhzKS51cGNv
bnZlcnRlZENoYXJhY3RlcnMoKTsKLSAgICBjb25zdCBVQ2hhciogY3VyID0gdXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzOwotICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjdXIgKyBzLmxlbmd0aCgpOwotICAg
IAotICAgIGlmICghc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIGZsb2F0IHggPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXIo
Y3VyLCBlbmQsIHgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZmxvYXQgeSA9
IDA7Ci0gICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBwb2ludCA9IEZsb2F0UG9pbnQoeCwgeSk7Ci0gICAgCi0gICAgLy8g
ZGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0IHNwYWNlcyBhdCB0aGUgZW5kCi0gICAgcmV0dXJuICFz
a2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpOwotfQotICAgIAogdm9pZCBTVkdBbmltYXRl
TW90aW9uRWxlbWVudDo6cmVzZXRBbmltYXRlZFR5cGUoKQogewogICAgIGlmICghaGFzVmFsaWRB
dHRyaWJ1dGVUeXBlKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRB
bmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDIyICszMiwxMiBAQCBTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OlNWR0FuaW1hdGVkQW5nCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFp
cjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCkpOwotICAgIGF1dG8mIGFuaW1hdGVkUGFpciA9
IGFuaW1hdGVkVHlwZS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotCi0gICAgU1ZHQW5nbGVWYWx1
ZSBhbmdsZTsKLSAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsK
LSAgICBpZiAob3JpZW50VHlwZSA+IDApCi0gICAgICAgIGFuaW1hdGVkUGFpci5zZWNvbmQgPSBv
cmllbnRUeXBlOwotICAgIGlmIChvcmllbnRUeXBlID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQot
ICAgICAgICBhbmltYXRlZFBhaXIuZmlyc3QgPSBhbmdsZTsKLQotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJh
aXRzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+Ojpmcm9tU3RyaW5nKHN0cmlu
ZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFu
Z2xlQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlQW5nbGVBbmRFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxT
VkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUsIFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkQW5nbGVBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTcsNyArNDcsNyBAQCB2b2lk
IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6c3RvcEFuaW1WCiAKIHZvaWQgU1ZHQW5pbWF0ZWRB
bmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjphbmdsZUFu
ZEVudW1lcmF0aW9uKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkQW5nbGUs
IFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzUsMTMgKzY1LDEz
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphZGRBbmltYXQKICAgICBBU1NFUlQo
ZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkQW5nbGUpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlv
biA9IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51
bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8mIGZy
b21BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBhdXRvJiBmcm9tRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+
KCpmcm9tLT52YWx1ZXNbMV0pOworICAgIGF1dG8mIHRvQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdB
bmdsZVZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvRW51bWVyYXRpb24gPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzFdKTsKICAgICAvLyBPbmx5IHJlc3Bl
Y3QgYnkgYW5pbWF0aW9ucywgaWYgZnJvbSBhbmQgYnkgYXJlIGJvdGggc3BlY2lmaWVkIGluIGFu
Z2xlcyAoYW5kIG5vdCBlZy4gJ2F1dG8nKS4KLSAgICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kICE9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgfHwgZnJvbUFuZ2xlQW5k
RW51bWVyYXRpb24uc2Vjb25kICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgIGlmIChmcm9t
RW51bWVyYXRpb24gIT0gdG9FbnVtZXJhdGlvbiB8fCBmcm9tRW51bWVyYXRpb24gIT0gU1ZHTWFy
a2VyT3JpZW50QW5nbGUpCiAgICAgICAgIHJldHVybjsKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5n
bGUgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKLSAgICBhdXRvJiB0b0FuZ2xlID0g
dG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwogICAgIHRvQW5nbGUuc2V0VmFsdWUodG9Bbmds
ZS52YWx1ZSgpICsgZnJvbUFuZ2xlLnZhbHVlKCkpOwogfQogCkBAIC05MCw0OCArODAsNDkgQEAg
dm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNv
bnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+YW5nbGVBbmRFbnVtZXJh
dGlvbigpIDogZnJvbS0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQW5nbGVB
bmRFbnVtZXJhdGlvbiA9IHRvLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFu
Z2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24gPSBhbmltYXRlZC0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOworICAgIGNvbnN0IGF1dG8mIGZy
b21BbmdsZSA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0
aW9uID8gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6
IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25z
dCBhdXRvJiBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1v
ZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAg
ICBhdXRvJiB0b0FuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0by0+dmFsdWVz
WzBdKTsKKyAgICBhdXRvJiB0b0VudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigq
dG8tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25BbmdsZSA9IHN0YXRp
Y19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRBbmdsZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pOwogCi0gICAgaWYgKGZyb21B
bmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25k
KSB7CisgICAgaWYgKGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uKSB7CiAgICAgICAg
IC8vIERpc2NyZXRlIGFuaW1hdGlvbiAtIG5vIGxpbmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxl
IGJldHdlZW4gdmFsdWVzIChlLmcuIGF1dG8gdG8gYW5nbGUpLgogICAgICAgICBpZiAocGVyY2Vu
dGFnZSA8IDAuNWYpIHsKLSAgICAgICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5z
ZWNvbmQgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgICAgICBpZiAo
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQot
ICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IGZyb21B
bmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OworICAgICAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlv
biA9IGZyb21FbnVtZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0g
U1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZSA9IGZy
b21BbmdsZTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xl
QW5kRW51bWVyYXRpb24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICAgICAgYW5pbWF0
ZWRBbmdsZS5zZXRWYWx1ZSgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAg
ICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gdG9BbmdsZUFuZEVudW1l
cmF0aW9uLnNlY29uZDsKLSAgICAgICAgaWYgKHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3QgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgIGFu
aW1hdGVkRW51bWVyYXRpb24gPSB0b0VudW1lcmF0aW9uOworICAgICAgICBpZiAodG9FbnVtZXJh
dGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUg
PSB0b0FuZ2xlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICBhbmltYXRlZEFuZ2xlLnNl
dFZhbHVlKDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgeworICAgIGlmIChm
cm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpIHsKICAgICAgICAgLy8gUmVn
dWxhciBmcm9tIGFuZ2xlIHRvIGFuZ2xlIGFuaW1hdGlvbiwgd2l0aCBzdXBwb3J0IGZvciBzbW9v
dGggaW50ZXJwb2xhdGlvbiwgYW5kIGFkZGl0aXZlIGFuZCBhY2N1bXVsYXRlZCBhbmltYXRpb24u
Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJP
cmllbnRBbmdsZTsKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVu
dEFuZ2xlOwogCi0gICAgICAgIGF1dG8mIGFuaW1hdGVkU1ZHQW5nbGUgPSBhbmltYXRlZEFuZ2xl
QW5kRW51bWVyYXRpb24uZmlyc3Q7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uU1ZHQW5nbGUgPSB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7
Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkQW5nbGUgPSBhbmltYXRlZFNWR0FuZ2xlLnZhbHVlKCk7
Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgp
LCB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25T
VkdBbmdsZS52YWx1ZSgpLCBhbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgYW5pbWF0ZWRTVkdBbmds
ZS5zZXRWYWx1ZShhbmltYXRlZEFuZ2xlKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZVZh
bHVlID0gYW5pbWF0ZWRBbmdsZS52YWx1ZSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xl
LnZhbHVlKCksIHRvQW5nbGUudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25BbmdsZS52YWx1ZSgp
LCBhbmltYXRlZEFuZ2xlVmFsdWUpOworICAgICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKGFu
aW1hdGVkQW5nbGVWYWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBhdXRv
LCBhdXRvLXN0YXJ0LXJldmVyc2UsIG9yIHVua25vd24uCi0gICAgYW5pbWF0ZWRBbmdsZUFuZEVu
dW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUo
MCk7CiAKLSAgICBpZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtl
ck9yaWVudEF1dG8gfHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtl
ck9yaWVudEF1dG9TdGFydFJldmVyc2UpCi0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7CisgICAgaWYgKGZy
b21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21FbnVtZXJhdGlvbiA9
PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQorICAgICAgICBhbmltYXRlZEVudW1l
cmF0aW9uID0gZnJvbUVudW1lcmF0aW9uOwogICAgIGVsc2UKLSAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAg
IGFuaW1hdGVkRW51bWVyYXRpb24gPSBTVkdNYXJrZXJPcmllbnRVbmtub3duOwogfQogCiBmbG9h
dCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmlu
ZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpTVkdBbmltYXRlZEIK
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oc3RkOjpt
YWtlX3VuaXF1ZTxib29sPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmJvb2xlYW4oKSA9IChzdHJp
bmcgPT0gInRydWUiKTsgLy8gd2F0PwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9t
U3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgs
NyArNDYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pCiAKIHZv
aWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29s
ZWFuPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6YW5pbVZhbFdpbGxD
aGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNzEsOSArNjksOSBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxj
dWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4
dEVsZW1lbnQpOwogCi0gICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmJvb2xlYW4oKSA6IGZy
b20tPmJvb2xlYW4oKTsKLSAgICBib29sIHRvQm9vbGVhbiA9IHRvLT5ib29sZWFuKCk7Ci0gICAg
Ym9vbCYgYW5pbWF0ZWRCb29sZWFuID0gYW5pbWF0ZWQtPmJvb2xlYW4oKTsKKyAgICBib29sIGZy
b21Cb29sZWFuID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBzdGF0aWNfY2FzdDxib29sJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8Ym9vbCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGJvb2wgdG9Cb29sZWFuID0gc3Rh
dGljX2Nhc3Q8Ym9vbCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBib29sJiBhbmltYXRlZEJvb2xl
YW4gPSBzdGF0aWNfY2FzdDxib29sJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVUeXBlPGJvb2w+KHBlcmNlbnRhZ2UsIGZy
b21Cb29sZWFuLCB0b0Jvb2xlYW4sIGFuaW1hdGVkQm9vbGVhbik7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpTVkdBbmltYXRlZENvbAogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQ29sb3Ioc3RkOjptYWtlX3VuaXF1ZTxDb2xvcj4oQ1NT
UGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSkpKTsKKyAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9t
U3RyaW5nKHN0cmluZykpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRk
QW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8p
CkBAIC00NCw4ICs0NCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmlt
YXQKICAgICBBU1NFUlQodG8tPnR5cGUoKSA9PSBBbmltYXRlZENvbG9yKTsKIAogICAgIC8vIEln
bm9yZXMgYW55IGFscGhhIGFuZCBzZXRzIGFscGhhIG9uIHJlc3VsdCB0byAxMDAlIG9wYXF1ZS4K
LSAgICBhdXRvJiBmcm9tQ29sb3IgPSBmcm9tLT5jb2xvcigpOwotICAgIGF1dG8mIHRvQ29sb3Ig
PSB0by0+Y29sb3IoKTsKKyAgICBhdXRvJiBmcm9tQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xv
ciY+KCp0by0+dmFsdWVzWzBdKTsKICAgICB0b0NvbG9yID0geyByb3VuZEFuZENsYW1wQ29sb3JD
aGFubmVsKHRvQ29sb3IucmVkKCkgKyBmcm9tQ29sb3IucmVkKCkpLAogICAgICAgICByb3VuZEFu
ZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuZ3JlZW4oKSArIGZyb21Db2xvci5ncmVlbigpKSwK
ICAgICAgICAgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmJsdWUoKSArIGZyb21D
b2xvci5ibHVlKCkpIH07CkBAIC02OSw4ICs2OSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFu
aW1hdG9yOjpjYWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBB
U1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBDb2xvciBmcm9tQ29sb3IgPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5j
b2xvcigpIDogZnJvbS0+Y29sb3IoKTsKLSAgICBDb2xvciB0b0NvbG9yID0gdG8tPmNvbG9yKCk7
CisgICAgQ29sb3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxDb2xvciY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKSA6IHN0YXRpY19jYXN0PENvbG9yJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgQ29sb3Ig
dG9Db2xvciA9IHN0YXRpY19jYXN0PENvbG9yJj4oKnRvLT52YWx1ZXNbMF0pOwogCiAgICAgLy8g
QXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRq
dXN0Rm9ySW5oZXJpdGFuY2U8Q29sb3I+KHBhcnNlQ29sb3JGcm9tU3RyaW5nLCBtX2FuaW1hdGlv
bkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tQ29sb3IsIG1fY29udGV4dEVs
ZW1lbnQpOwpAQCAtODIsOCArODIsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6
Y2FsY3VsYXRlCiAgICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+dG9Qcm9wZXJ0eVZhbHVlVHlw
ZSgpID09IEN1cnJlbnRDb2xvclZhbHVlKQogICAgICAgICB0b0NvbG9yID0gY3VycmVudENvbG9y
KCptX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQ29sb3Ig
PSB0b0F0RW5kT2ZEdXJhdGlvbi0+Y29sb3IoKTsKLSAgICBhdXRvJiBhbmltYXRlZENvbG9yID0g
YW5pbWF0ZWQtPmNvbG9yKCk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Db2xvciA9IHN0
YXRpY19jYXN0PENvbG9yJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1
dG8mIGFuaW1hdGVkQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKTsKIAogICAgIC8vIEZJWE1FOiBFeHRlbmRlZENvbG9yIC0gdGhpcyB3aWxsIG5lZWQgdG8g
aGFuZGxlIGJsZW5kaW5nIGJldHdlZW4gY29sb3JzIGluIGRpZmZlcmVudCBjb2xvciBzcGFjZXMs
CiAgICAgLy8gYXMgd2VsbCBhcyB3b3JrIHdpdGggbm9uIFswLTI1NV0gQ29sb3JzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksMTQgKzEwOSwxMiBAQCBTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OlNWR0FuaW1hCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9u
KHN0ZDo6bWFrZV91bmlxdWU8dW5zaWduZWQ+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+ZW51bWVy
YXRpb24oKSA9IGVudW1lcmF0aW9uVmFsdWVGb3JUYXJnZXRBdHRyaWJ1dGUobV9hbmltYXRpb25F
bGVtZW50LT50YXJnZXRFbGVtZW50KCksIG1fYW5pbWF0aW9uRWxlbWVudC0+YXR0cmlidXRlTmFt
ZSgpLCBzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKGVudW1lcmF0aW9uVmFsdWVGb3JUYXJnZXRBdHRyaWJ1dGUobV9h
bmltYXRpb25FbGVtZW50LT50YXJnZXRFbGVtZW50KCksIG1fYW5pbWF0aW9uRWxlbWVudC0+YXR0
cmlidXRlTmFtZSgpLCBzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKGNvbnN0cnVj
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+
KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRv
cjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtMTI2LDcgKzEyNCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkFuaW1hdG9yOjpzdG8KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywg
dHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24pOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTE0
OSw5ICsxNDcsOSBAQCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y2FsCiAg
ICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1l
bnQpOwogCi0gICAgdW5zaWduZWQgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+ZW51bWVyYXRpb24o
KSA6IGZyb20tPmVudW1lcmF0aW9uKCk7Ci0gICAgdW5zaWduZWQgdG9FbnVtZXJhdGlvbiA9IHRv
LT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkJiBhbmltYXRlZEVudW1lcmF0aW9uID0gYW5p
bWF0ZWQtPmVudW1lcmF0aW9uKCk7CisgICAgdW5zaWduZWQgZnJvbUVudW1lcmF0aW9uID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgdW5zaWduZWQgdG9FbnVtZXJhdGlvbiA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIHVuc2lnbmVkJiBhbmlt
YXRlZEVudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8dW5z
aWduZWQ+KHBlcmNlbnRhZ2UsIGZyb21FbnVtZXJhdGlvbiwgdG9FbnVtZXJhdGlvbiwgYW5pbWF0
ZWRFbnVtZXJhdGlvbik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywxMiBAQCBTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWRJCiAKIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8aW50PigpKTsK
LSAgICBhbmltYXRlZFR5cGUtPmludGVnZXIoKSA9IHN0cmluZy50b0ludFN0cmljdCgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUlu
dGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVk
VHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZElu
dGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmkKIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZT
VkdBbmltYXRlZFR5cGU6OmludGVnZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw3ICs2Niw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFkZEFuaW0KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IEFuaW1hdGVkSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlw
ZSgpKTsKIAotICAgIHRvLT5pbnRlZ2VyKCkgKz0gZnJvbS0+aW50ZWdlcigpOworICAgIHN0YXRp
Y19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+
dmFsdWVzWzBdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRJbnRlZ2VyKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdGlvbkVsZW1lbnQs
IGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBpbnQgZnJvbUludGVnZXIs
IGludCB0b0ludGVnZXIsIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGludCYgYW5pbWF0
ZWRJbnRlZ2VyKQpAQCAtODMsMTAgKzgxLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmNhbGN1bGEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRl
Z2VyKCkgOiBmcm9tLT5pbnRlZ2VyKCk7Ci0gICAgaW50IHRvSW50ZWdlciA9IHRvLT5pbnRlZ2Vy
KCk7Ci0gICAgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHRvQXRFbmRPZkR1cmF0aW9u
LT5pbnRlZ2VyKCk7Ci0gICAgaW50JiBhbmltYXRlZEludGVnZXIgPSBhbmltYXRlZC0+aW50ZWdl
cigpOworICAgIGludCBmcm9tSW50ZWdlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1
ZXNbMF0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgaW50IHRv
SW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBpbnQgdG9B
dEVuZE9mRHVyYXRpb25JbnRlZ2VyID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0
aW9uLT52YWx1ZXNbMF0pOworICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8
aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgY2FsY3VsYXRlQW5pbWF0ZWRJbnRl
Z2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRl
Z2VyLCB0b0ludGVnZXIsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciwgYW5pbWF0ZWRJbnRlZ2Vy
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsMjMgKzMzLDEyIEBAIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlckFuaW1hdG8KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6
OnBhaXI8aW50LCBpbnQ+PigpKTsKLSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBhbmltYXRlZElu
dGVnZXIgPSBhbmltYXRlZFR5cGUtPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBmbG9h
dCBmaXJzdE51bWJlciA9IDA7Ci0gICAgZmxvYXQgc2Vjb25kTnVtYmVyID0gMDsKLSAgICBpZiAo
IXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJzdE51bWJlciwgc2Vjb25kTnVt
YmVyKSkgewotICAgICAgICBhbmltYXRlZEludGVnZXIuZmlyc3QgPSAwOwotICAgICAgICBhbmlt
YXRlZEludGVnZXIuc2Vjb25kID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICBhbmltYXRlZElu
dGVnZXIuZmlyc3QgPSBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikpOwotICAg
ICAgICBhbmltYXRlZEludGVnZXIuc2Vjb25kID0gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vj
b25kTnVtYmVyKSk7Ci0gICAgfQotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQs
IGludD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50
ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNv
bnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0ZWRJbnRl
Z2VyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTksNyArNDgsNyBAQCB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkSW50
ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0
ZWRUeXBlOjppbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNzcsMTEgKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXJBbgogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50
eXBlKCkpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgZnJvbUludGVnZXJQYWly
ID0gZnJvbS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGlu
dD4mIHRvSW50ZWdlclBhaXIgPSB0by0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotCi0gICAg
dG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7Ci0gICAgdG9JbnRl
Z2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29uZDsKKyAgICBzdGF0aWNfY2Fz
dDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMV0pICs9IHN0YXRpY19j
YXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMV0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBl
cmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNW
R0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNW
R0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04OSwxMyArNzUsMTcgQEAgdm9pZCBTVkdBbmlt
YXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFp
cjxpbnQsIGludD4mIGZyb21JbnRlZ2VyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmludGVnZXJPcHRpb25hbEludGVn
ZXIoKSA6IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBh
aXI8aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIo
KTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0F0RW5kT2ZEdXJhdGlvbkludGVn
ZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAg
ICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmlu
dGVnZXJPcHRpb25hbEludGVnZXIoKTsKKyAgICBjb25zdCBpbnQmIGZvcm1GaXJzdCA9IG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nh
c3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgaW50JiBmb3JtU2Vjb25kID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxpbnQmPigq
YW5pbWF0ZWQtPnZhbHVlc1sxXSkgOiBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFd
KTsKKyAgICBjb25zdCBpbnQmIHRvRmlyc3QgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVl
c1swXSk7CisgICAgY29uc3QgaW50JiB0b1NlY29uZCA9IHN0YXRpY19jYXN0PGludCY+KCp0by0+
dmFsdWVzWzFdKTsKKyAgICBjb25zdCBpbnQmIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSBzdGF0
aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgY29uc3Qg
aW50JiB0b0F0RW5kT2ZEdXJhdGlvblNlY29uZCA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5k
T2ZEdXJhdGlvbi0+dmFsdWVzWzFdKTsKKyAgICBpbnQmIGFuaW1hdGVkRmlyc3QgPSBzdGF0aWNf
Y2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CisgICAgaW50JiBhbmltYXRlZFNlY29u
ZCA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKTsKIAotICAgIFNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRp
b25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLmZpcnN0
LCB0b0ludGVnZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXJQYWlyLmZpcnN0
LCBhbmltYXRlZEludGVnZXJQYWlyLmZpcnN0KTsKLSAgICBTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFpci5zZWNvbmQsIHRvSW50ZWdlclBhaXIu
c2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXJQYWlyLnNlY29uZCwgYW5pbWF0ZWRJbnRl
Z2VyUGFpci5zZWNvbmQpOworICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZm9ybUZpcnN0LCB0b0ZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0LCBhbmltYXRl
ZEZpcnN0KTsKKyAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0
ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZv
cm1TZWNvbmQsIHRvU2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlvblNlY29uZCwgYW5pbWF0ZWRTZWNv
bmQpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRv
cjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsMTIgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OlNWR0Fu
aW1hdGVkTGUKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRM
ZW5ndGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGgoc3RkOjptYWtlX3Vu
aXF1ZTxTVkdMZW5ndGhWYWx1ZT4obV9sZW5ndGhNb2RlLCBzdHJpbmcpKTsKKyAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHTGVuZ3RoVmFsdWUobV9sZW5ndGhNb2RlLCBzdHJp
bmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRM
ZW5ndGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVMZW5ndGgoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExl
bmd0aD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTGVuZ3RoPihhbmltYXRlZFR5cGVz
LCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsOCArNjcsOCBAQCB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1hCiAgICAgQVNTRVJUKGZyb20t
PnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29u
dGV4dChtX2NvbnRleHRFbGVtZW50KTsKLSAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoID0gZnJv
bS0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgdG9MZW5ndGggPSB0by0+bGVuZ3RoKCk7CisgICAgY29u
c3QgYXV0byYgZnJvbUxlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9MZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhW
YWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHRvTGVuZ3RoLnNldFZhbHVlKHRvTGVuZ3Ro
LnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSwg
bGVuZ3RoQ29udGV4dCk7CiB9CkBAIC04NSwxMCArODUsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExl
bmd0aEFuaW1hdG9yOjpjYWxjdWxhdAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwog
ICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbVNWR0xlbmd0aCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmxlbmd0aCgpIDogZnJvbS0+bGVuZ3RoKCk7Ci0gICAgYXV0byB0b1NWR0xlbmd0aCA9
IHRvLT5sZW5ndGgoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xlbmd0
aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5sZW5ndGgoKTsKLSAgICBhdXRvJiBhbmltYXRlZFNWR0xl
bmd0aCA9IGFuaW1hdGVkLT5sZW5ndGgoKTsKKyAgICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PFNWR0xlbmd0aFZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvIHRvU1ZHTGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5n
dGhWYWx1ZSY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmlt
YXRlZFNWR0xlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U1ZHTGVuZ3RoVmFsdWU+KHBh
cnNlTGVuZ3RoRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1
ZVR5cGUoKSwgZnJvbVNWR0xlbmd0aCwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDE0ICszMywxMiBAQCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRv
cjo6U1ZHQW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVMZW5ndGhMaXN0KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKSk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5sZW5ndGhMaXN0KCkucGFyc2Uoc3RyaW5nLCBtX2xlbmd0aE1vZGUp
OwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5n
KHN0cmluZywgbV9sZW5ndGhNb2RlKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3QoY29uc3RydWN0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFu
aW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpz
dG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0QW5pbWF0b3I6OnN0b3AKIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZT
VkdBbmltYXRlZFR5cGU6Omxlbmd0aExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw4ICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gZnJv
bS0+bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0
KCk7CisgICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5n
dGhMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9MZW5ndGhMaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKIAog
ICAgIHVuc2lnbmVkIGZyb21MZW5ndGhMaXN0U2l6ZSA9IGZyb21MZW5ndGhMaXN0LnNpemUoKTsK
ICAgICBpZiAoIWZyb21MZW5ndGhMaXN0U2l6ZSB8fCBmcm9tTGVuZ3RoTGlzdFNpemUgIT0gdG9M
ZW5ndGhMaXN0LnNpemUoKSkKQEAgLTc3LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0
aExpc3RBbmltYXRvcjo6YWRkQQogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0
KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTGVu
Z3RoTGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9MZW5ndGhMaXN0W2ldLnNldFZhbHVlKHRvTGVu
Z3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGhMaXN0W2ldLnZhbHVl
KGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgdG9MZW5ndGhMaXN0LnBy
b3BlcnR5QXQoaSkuc2V0VmFsdWUodG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVu
Z3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENv
bnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KIAogc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMg
cGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25F
bGVtZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTkyLDEwICs5MCwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9u
RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9t
TGVuZ3RoTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5p
bWF0aW9uID8gYW5pbWF0ZWQtPmxlbmd0aExpc3QoKSA6IGZyb20tPmxlbmd0aExpc3QoKTsKLSAg
ICBhdXRvIHRvTGVuZ3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYg
dG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aExp
c3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZExlbmd0aExpc3QgPSBhbmltYXRlZC0+bGVuZ3RoTGlz
dCgpOworICAgIGF1dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1
ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFs
dWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byB0b0xlbmd0aExpc3QgPSBzdGF0aWNf
Y2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1
dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExp
c3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5p
bWF0ZWRMZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4K
ICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFNWR0xlbmd0aExp
c3RWYWx1ZXM+KHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+
ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21MZW5ndGhMaXN0LCBtX2NvbnRleHRFbGVtZW50
KTsKQEAgLTExMCwxOCArMTA4LDE4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0
b3I6OmNhbGMKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRF
bGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9MZW5ndGhMaXN0U2l6ZTsg
KytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0
W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBl
ID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkTnVt
YmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4
dCk7CisgICAgICAgIFNWR0xlbmd0aFR5cGUgdW5pdFR5cGUgPSB0b0xlbmd0aExpc3QucHJvcGVy
dHlBdChpKS51bml0VHlwZSgpOwogICAgICAgICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gMDsKICAg
ICAgICAgaWYgKGZyb21MZW5ndGhMaXN0U2l6ZSkgewogICAgICAgICAgICAgaWYgKHBlcmNlbnRh
Z2UgPCAwLjUpCi0gICAgICAgICAgICAgICAgdW5pdFR5cGUgPSBmcm9tTGVuZ3RoTGlzdFtpXS51
bml0VHlwZSgpOwotICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0W2ld
LnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICAgICAgICAgIHVuaXRUeXBlID0gZnJvbUxl
bmd0aExpc3QucHJvcGVydHlBdChpKS51bml0VHlwZSgpOworICAgICAgICAgICAgZWZmZWN0aXZl
RnJvbSA9IGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7
CiAgICAgICAgIH0KLSAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5k
T2ZEdXJhdGlvbkxpc3RTaXplID8gdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0W2ldLnZhbHVl
KGxlbmd0aENvbnRleHQpIDogMDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkg
PCB0b0F0RW5kT2ZEdXJhdGlvbkxpc3RTaXplID8gdG9BdEVuZE9mRHVyYXRpb25MZW5ndGhMaXN0
LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCkgOiAwOwogCi0gICAgICAgIG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENv
dW50LCBlZmZlY3RpdmVGcm9tLCB0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCks
IGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyKTsKLSAgICAgICAgYW5pbWF0ZWRMZW5n
dGhMaXN0W2ldLnNldFZhbHVlKGxlbmd0aENvbnRleHQsIGFuaW1hdGVkTnVtYmVyLCBtX2xlbmd0
aE1vZGUsIHVuaXRUeXBlKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRk
aXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVu
Z3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBlZmZlY3RpdmVUb0F0
RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAgICAgIGFuaW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0
eUF0KGkpLnNldFZhbHVlKGxlbmd0aENvbnRleHQsIGFuaW1hdGVkTnVtYmVyLCBtX2xlbmd0aE1v
ZGUsIHVuaXRUeXBlKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZE51bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTYgKzMyLDEyIEBA
IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OlNWR0FuaW1hdGVkTnUKIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6bWFrZV91bmlxdWU8ZmxvYXQ+
KCkpOwotICAgIGZsb2F0JiBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyKCk7
Ci0gICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCBhbmltYXRlZE51bWJlcikp
Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyID0gMDsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxmbG9h
dD46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0g
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKGNvbnN0cnVjdEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NTEsNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltCiAK
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51
bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5
cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTY5LDE0ICs2NSwxMiBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmFkZEFu
aW1hCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlcik7CiAgICAgQVNT
RVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5udW1iZXIoKSArPSBm
cm9tLT5udW1iZXIoKTsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSAr
PSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiBzdGF0aWMgZmxv
YXQgcGFyc2VOdW1iZXJGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKLSAgICBmbG9hdCBudW1iZXIgPSAwOwotICAgIHBhcnNlTnVtYmVyRnJv
bVN0cmluZyhzdHJpbmcsIG51bWJlcik7Ci0gICAgcmV0dXJuIG51bWJlcjsKKyAgICByZXR1cm4g
U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZyk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBT
VkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTAgKzc4LDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBmbG9hdCBmcm9tTnVt
YmVyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24g
PyBhbmltYXRlZC0+bnVtYmVyKCkgOiBmcm9tLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0b051bWJl
ciA9IHRvLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5udW1iZXIoKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBh
bmltYXRlZC0+bnVtYmVyKCk7CisgICAgZmxvYXQgZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8ZmxvYXQm
PigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1
ZXNbMF0pOworICAgIGZsb2F0IHRvTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZh
bHVlc1swXSk7CisgICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXIgPSBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCYgYW5p
bWF0ZWROdW1iZXIgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
IAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPGZsb2F0PihwYXJzZU51bWJlckZyb21TdHJpbmcs
IG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21OdW1iZXIs
IG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIs
MTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OlNWR0FuaW1hdAogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFu
aW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6Om1ha2Vf
dW5pcXVlPFNWR051bWJlckxpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bnVtYmVy
TGlzdCgpLnBhcnNlKHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlz
dFZhbHVlcz46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3QoY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMp
KTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxp
c3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OSw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0QW5pbWF0b3I6OnN0b3AKIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJl
c2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5
cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlckxpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZE51bWJlckxpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02NywyNSAr
NjUsMjUgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YWRkQQogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxp
c3QgPSBmcm9tLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPm51
bWJlckxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b051
bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNb
MF0pOwogCiAgICAgdW5zaWduZWQgZnJvbU51bWJlckxpc3RTaXplID0gZnJvbU51bWJlckxpc3Qu
c2l6ZSgpOwogICAgIGlmICghZnJvbU51bWJlckxpc3RTaXplIHx8IGZyb21OdW1iZXJMaXN0U2l6
ZSAhPSB0b051bWJlckxpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZnJvbU51bWJlckxpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTnVt
YmVyTGlzdFtpXSArPSBmcm9tTnVtYmVyTGlzdFtpXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Zmxv
YXQmPigqdG9OdW1iZXJMaXN0W2ldKSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tTnVtYmVy
TGlzdFtpXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQs
IFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRU
eXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKIHsKICAg
ICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21OdW1i
ZXJMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRp
b24gPyBhbmltYXRlZC0+bnVtYmVyTGlzdCgpIDogZnJvbS0+bnVtYmVyTGlzdCgpOwotICAgIGNv
bnN0IGF1dG8mIHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7Ci0gICAgY29uc3QgYXV0
byYgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJl
ckxpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBhbmltYXRlZC0+bnVtYmVy
TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdOdW1i
ZXJMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHTnVt
YmVyTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvTnVt
YmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1sw
XSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0ID0gc3RhdGlj
X2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBd
KTsKKyAgICBhdXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJM
aXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogICAgIGlmICghbV9hbmltYXRpb25F
bGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR051bWJlckxpc3RWYWx1ZXM+KGZyb21O
dW1iZXJMaXN0LCB0b051bWJlckxpc3QsIGFuaW1hdGVkTnVtYmVyTGlzdCwgcGVyY2VudGFnZSkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtOTQsOSArOTIsOSBAQCB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpjYWxjCiAgICAgdW5zaWduZWQgdG9BdEVuZE9mRHVyYXRpb25TaXpl
ID0gdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0LnNpemUoKTsKIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0b051bWJlckxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgZWZm
ZWN0aXZlRnJvbSA9IGZyb21OdW1iZXJMaXN0U2l6ZSA/IGZyb21OdW1iZXJMaXN0W2ldIDogMDsK
LSAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNp
emUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3RbaV0gOiAwOwotICAgICAgICBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZWZmZWN0aXZlRnJvbSwgdG9OdW1iZXJMaXN0W2ldLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmlt
YXRlZE51bWJlckxpc3RbaV0pOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51
bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxpc3QucHJvcGVydHlBdChpKSA6IDA7CisgICAgICAg
IGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9B
dEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkgOiAwOworICAgICAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZWZmZWN0aXZlRnJvbSwgdG9OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSksIGVmZmVjdGl2
ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpKTsKICAgICB9CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMsMTggKzMzLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjoK
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVO
dW1iZXJPcHRpb25hbE51bWJlcihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxmbG9hdCwgZmxv
YXQ+PigpKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgYW5pbWF0ZWROdW1iZXIgPSBh
bmltYXRlZFR5cGUtPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgaWYgKCFwYXJzZU51bWJl
ck9wdGlvbmFsTnVtYmVyKHN0cmluZywgYW5pbWF0ZWROdW1iZXIuZmlyc3QsIGFuaW1hdGVkTnVt
YmVyLnNlY29uZCkpIHsKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIuZmlyc3QgPSAwOwotICAgICAg
ICBhbmltYXRlZE51bWJlci5zZWNvbmQgPSAwOwotICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0
czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
czxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU0LDcgKzQ4
LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNl
VmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywg
U1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5p
bWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZH
QW5pbWF0ZWRUeXBlOjpudW1iZXJPcHRpb25hbE51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNzIsMTEgKzY2LDggQEAgdm9pZCBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlw
ZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFp
ciA9IGZyb20tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4mIHRvTnVtYmVyUGFpciA9IHRvLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotCi0gICAg
dG9OdW1iZXJQYWlyLmZpcnN0ICs9IGZyb21OdW1iZXJQYWlyLmZpcnN0OwotICAgIHRvTnVtYmVy
UGFpci5zZWNvbmQgKz0gZnJvbU51bWJlclBhaXIuc2Vjb25kOworICAgIHN0YXRpY19jYXN0PGZs
b2F0Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1sxXSkgKz0gc3RhdGlj
X2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQg
cGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwg
U1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwg
U1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEzICs3NSwxNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxl
bWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3Qgc3RkOjpw
YWlyPGZsb2F0LCBmbG9hdD4mIGZyb21OdW1iZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bnVtYmVyT3B0aW9uYWxO
dW1iZXIoKSA6ICBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1i
ZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9BdEVuZE9mRHVyYXRp
b25OdW1iZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7
Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGFuaW1hdGVkTnVtYmVyUGFpciA9IGFuaW1h
dGVkLT5udW1iZXJPcHRpb25hbE51bWJlcigpOworICAgIGNvbnN0IGF1dG8mIGZvcm1GaXJzdCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxmbG9h
dCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIGZvcm1TZWNvbmQgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19j
YXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
ZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBhdXRvJiB0b0ZpcnN0ID0gc3RhdGljX2Nhc3Q8
ZmxvYXQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9TZWNvbmQgPSBzdGF0
aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzFdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvbkZpcnN0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQgPSBz
dGF0aWNfY2FzdDxmbG9hdCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzFdKTsKKyAgICBh
dXRvJiBhbmltYXRlZEZpcnN0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCph
bmltYXRlZC0+dmFsdWVzWzFdKTsKIAotICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFk
ZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5maXJz
dCwgdG9OdW1iZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIuZmlyc3Qs
IGFuaW1hdGVkTnVtYmVyUGFpci5maXJzdCk7Ci0gICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1iZXJQYWly
LnNlY29uZCwgdG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWly
LnNlY29uZCwgYW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CisgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZvcm1G
aXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7Cisg
ICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGZvcm1TZWNvbmQsIHRvU2Vjb25kLCB0b0F0RW5kT2ZEdXJhdGlvblNlY29u
ZCwgYW5pbWF0ZWRTZWNvbmQpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKIAogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVt
ZW50QmFzZS5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCIKLSNpbmNsdWRlICJTVkdQYXRoVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzMsOSArMzIsNyBAQCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6U1ZHQW5pbWF0
ZWRQYXRoCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIGF1dG8gYnl0ZVN0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVTdHJlYW0+
KCk7Ci0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoc3RyaW5nLCAqYnl0ZVN0
cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlUGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9tU3RyaW5n
KHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQzLDkgKzQwLDkgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbQogICAgIEFTU0VSVChhbmltYXRl
ZFR5cGVzLnNpemUoKSA+PSAxKTsKIAogICAgIC8vIEJ1aWxkIGluaXRpYWwgcGF0aCBieXRlIHN0
cmVhbS4KLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRl
U3RyZWFtPigpOwotICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCBieXRl
U3RyZWFtLmdldCgpKTsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRoKFdU
Rk1vdmUoYnl0ZVN0cmVhbSkpOworICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGU8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgcmVzZXRBbmltVmFsVG9CYXNl
VmFsKGFuaW1hdGVkVHlwZXMsICphbmltYXRlZFR5cGUpOworICAgIHJldHVybiBhbmltYXRlZFR5
cGU7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU4LDcgKzU1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmlt
VgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBwcm9w
ZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNl
Z0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQo
KSk7CiAgICAgY29uc3QgYXV0byYgYmFzZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKIAotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMoYmFzZVZhbHVlLCAqYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgYnVpbGRT
VkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhzdGF0aWNfY2FzdDxTVkdQ
YXRoU2VnTGlzdFZhbHVlcyY+KCpiYXNlVmFsdWUpLCAqYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFy
c2luZyk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmY+PiByZXN1bHQ7CiAKQEAgLTcyLDcgKzY5LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewogICAg
ICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigqcHJvcGVydHkt
PmNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiByZXN1bHQp
Ci0gICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0sICZiYXNl
VmFsdWUpOworICAgICAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFt
LCAmc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqYmFzZVZhbHVlKSk7CiAgICAg
fQogfQogCkBAIC04MCw3ICs3Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJl
c2V0QW5pbVYKIHsKICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAgICAg
QVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7Ci0gICAgcmVzZXRBbmltVmFsVG9CYXNlVmFs
KGFuaW1hdGVkVHlwZXMsIHR5cGUucGF0aCgpKTsKKyAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwo
YW5pbWF0ZWRUeXBlcywgJnN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnR5cGUudmFs
dWVzWzBdKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTk4LDEyICs5NSwxMiBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphZGRB
bmltYXRlCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBhdGgpOwogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRvUGF0
aCA9IHRvLT5wYXRoKCk7Ci0gICAgdW5zaWduZWQgZnJvbVBhdGhTaXplID0gZnJvbVBhdGgtPnNp
emUoKTsKLSAgICBpZiAoIWZyb21QYXRoU2l6ZSB8fCBmcm9tUGF0aFNpemUgIT0gdG9QYXRoLT5z
aXplKCkpCisgICAgY29uc3QgYXV0byYgZnJvbVBhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0
ZVN0cmVhbSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvUGF0aCA9IHN0YXRpY19j
YXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIHVuc2lnbmVkIGZy
b21QYXRoU2l6ZSA9IGZyb21QYXRoLnNpemUoKTsKKyAgICBpZiAoIWZyb21QYXRoU2l6ZSB8fCBm
cm9tUGF0aFNpemUgIT0gdG9QYXRoLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0oKnRvUGF0aCwgKmZyb21QYXRoKTsKKyAgICBhZGRUb1NWR1BhdGhC
eXRlU3RyZWFtKHRvUGF0aCwgZnJvbVBhdGgpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8s
IFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5p
bWF0ZWQpCkBAIC0xMTEsMzYgKzEwOCwzMyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpjYWxjdWxhdGVBCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJU
KG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0g
ZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgp
OwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b0F0RW5kT2ZEdXJhdGlvblBhdGggPSB0b0F0RW5k
T2ZEdXJhdGlvbi0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmltYXRlZFBhdGgg
PSBhbmltYXRlZC0+cGF0aCgpOworICAgIGF1dG8mIGZyb21QYXRoID0gc3RhdGljX2Nhc3Q8U1ZH
UGF0aEJ5dGVTdHJlYW0mPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1BhdGggPSBz
dGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRv
JiB0b0F0RW5kT2ZEdXJhdGlvblBhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+
KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFBhdGgg
PSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gdW5kZXJseWluZ1BhdGg7
CiAgICAgYm9vbCBpc1RvQW5pbWF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCkgPT0gVG9BbmltYXRpb247Ci0gICAgaWYgKGlzVG9BbmltYXRpb24pIHsKLSAgICAgICAg
dW5kZXJseWluZ1BhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKLSAgICAgICAgZnJvbVBhdGgg
PSB1bmRlcmx5aW5nUGF0aC5nZXQoKTsKLSAgICB9CisgICAgaWYgKGlzVG9BbmltYXRpb24pCisg
ICAgICAgIGZyb21QYXRoID0gYW5pbWF0ZWRQYXRoOwogCiAgICAgLy8gQ2FjaGUgdGhlIGN1cnJl
bnQgYW5pbWF0ZWQgdmFsdWUgYmVmb3JlIHRoZSBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJl
YW0oKSBjbGVhcnMgYW5pbWF0ZWRQYXRoLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0
ZVN0cmVhbT4gbGFzdEFuaW1hdGVkUGF0aDsKLSAgICBpZiAoIWZyb21QYXRoLT5zaXplKCkgfHwg
KG1fYW5pbWF0aW9uRWxlbWVudC0+aXNBZGRpdGl2ZSgpICYmICFpc1RvQW5pbWF0aW9uKSkKLSAg
ICAgICAgbGFzdEFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkUGF0aC0+Y29weSgpOworICAgIFNWR1Bh
dGhCeXRlU3RyZWFtIGxhc3RBbmltYXRlZFBhdGg7CisgICAgaWYgKCFmcm9tUGF0aC5zaXplKCkg
fHwgKG1fYW5pbWF0aW9uRWxlbWVudC0+aXNBZGRpdGl2ZSgpICYmICFpc1RvQW5pbWF0aW9uKSkK
KyAgICAgICAgbGFzdEFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIFBhc3Mg
ZmFsc2UgdG8gJ3Jlc2l6ZUFuaW1hdGVkTGlzdElmTmVlZGVkJyBoZXJlLCBhcyB0aGUgcGF0aCBh
bmltYXRpb24gaXMgbm90IGEgcmVndWxhciBWZWN0b3I8U1ZHWFhYPiB0eXBlLCBidXQgYSBTVkdQ
YXRoQnl0ZVN0cmVhbSwgdGhhdCB3b3JrcyBkaWZmZXJlbnRseS4KLSAgICBpZiAoIW1fYW5pbWF0
aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQYXRoQnl0ZVN0cmVhbT4oKmZy
b21QYXRoLCAqdG9QYXRoLCAqYW5pbWF0ZWRQYXRoLCBwZXJjZW50YWdlLCBmYWxzZSkpCisgICAg
aWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5
dGVTdHJlYW0+KGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFs
c2UpKQogICAgICAgICByZXR1cm47CiAKLSAgICBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJl
YW0oKmZyb21QYXRoLCAqdG9QYXRoLCAqYW5pbWF0ZWRQYXRoLCBwZXJjZW50YWdlKTsKKyAgICBi
dWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oZnJvbVBhdGgsIHRvUGF0aCwgYW5pbWF0ZWRQ
YXRoLCBwZXJjZW50YWdlKTsKIAogICAgIC8vIEhhbmRsZSBhZGRpdGl2ZT0nc3VtJy4KLSAgICBp
ZiAobGFzdEFuaW1hdGVkUGF0aCkKLSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5p
bWF0ZWRQYXRoLCAqbGFzdEFuaW1hdGVkUGF0aCk7CisgICAgaWYgKCFsYXN0QW5pbWF0ZWRQYXRo
LmlzRW1wdHkoKSkKKyAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShhbmltYXRlZFBhdGgs
IGxhc3RBbmltYXRlZFBhdGgpOwogCiAgICAgLy8gSGFuZGxlIGFjY3VtdWxhdGU9J3N1bScuCiAg
ICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+aXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdENvdW50
KQotICAgICAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCphbmltYXRlZFBhdGgsICp0b0F0RW5k
T2ZEdXJhdGlvblBhdGgsIHJlcGVhdENvdW50KTsKKyAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0
cmVhbShhbmltYXRlZFBhdGgsIHRvQXRFbmRPZkR1cmF0aW9uUGF0aCwgcmVwZWF0Q291bnQpOwog
fQogCiBmbG9hdCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBvaW50TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUG9pbnRMaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTQg
KzM0LDEyIEBAIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OlNWR0FuaW1hdGUKIAogc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRv
IGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUG9pbnRMaXN0KHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHUG9pbnRMaXN0VmFsdWVzPigpKTsKLSAgICBwb2ludHNMaXN0RnJvbVNWR0Rh
dGEoYW5pbWF0ZWRUeXBlLT5wb2ludExpc3QoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRy
YWl0czxTVkdQb2ludExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVBvaW50TGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0Pihh
bmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUxLDcgKzQ5LDcgQEAgdm9pZCBT
VkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdG9wQQogCiB2b2lkIFNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkK
IHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+KGFuaW1hdGVk
VHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk7CisgICAgcmVzZXRGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02
OSwyNSArNjcsMjUgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbgog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQb2ludHMpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRM
aXN0ID0gZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cG9p
bnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IHN0YXRpY19jYXN0PFNW
R1BvaW50TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvUG9pbnRM
aXN0ID0gIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsK
IAogICAgIHVuc2lnbmVkIGZyb21Qb2ludExpc3RTaXplID0gZnJvbVBvaW50TGlzdC5zaXplKCk7
CiAgICAgaWYgKCFmcm9tUG9pbnRMaXN0U2l6ZSB8fCBmcm9tUG9pbnRMaXN0U2l6ZSAhPSB0b1Bv
aW50TGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBmcm9tUG9pbnRMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b1BvaW50TGlzdFtpXSAr
PSBmcm9tUG9pbnRMaXN0W2ldOworICAgICAgICB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0KGkpICs9
IGZyb21Qb2ludExpc3QucHJvcGVydHlBdChpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlw
ZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlw
ZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAKLSAgICBj
b25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25N
b2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cG9pbnRMaXN0KCkgOiBmcm9tLT5wb2lu
dExpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b1BvaW50TGlzdCA9IHRvLT5wb2ludExpc3QoKTsK
LSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdCA9IHRvQXRFbmRPZkR1
cmF0aW9uLT5wb2ludExpc3QoKTsKLSAgICBhdXRvJiBhbmltYXRlZFBvaW50TGlzdCA9IGFuaW1h
dGVkLT5wb2ludExpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUG9pbnRMaXN0ID0gbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2Fz
dDxTVkdQb2ludExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2Fz
dDxTVkdQb2ludExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRv
JiB0b1BvaW50TGlzdCA9IHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0by0+dmFs
dWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdCA9IHN0
YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVz
WzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFBvaW50TGlzdCA9IHN0YXRpY19jYXN0PFNWR1BvaW50
TGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKICAgICBpZiAoIW1fYW5pbWF0aW9u
RWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdQb2ludExpc3RWYWx1ZXM+KGZyb21Q
b2ludExpc3QsIHRvUG9pbnRMaXN0LCBhbmltYXRlZFBvaW50TGlzdCwgcGVyY2VudGFnZSkpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtOTgsMTQgKzk2LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcjo6Y2FsY3UKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9Qb2lu
dExpc3RTaXplOyArK2kpIHsKICAgICAgICAgRmxvYXRQb2ludCBlZmZlY3RpdmVGcm9tOwogICAg
ICAgICBpZiAoZnJvbVBvaW50TGlzdFNpemUpCi0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0g
ZnJvbVBvaW50TGlzdFtpXTsKLSAgICAgICAgRmxvYXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0g
aSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0W2ld
IDogRmxvYXRQb2ludCgpOworICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2ludExp
c3QucHJvcGVydHlBdChpKTsKKyAgICAgICAgRmxvYXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0g
aSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LnBy
b3BlcnR5QXQoaSkgOiBGbG9hdFBvaW50KCk7CiAKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0g
YW5pbWF0ZWRQb2ludExpc3RbaV0ueCgpOwotICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmlt
YXRlZFBvaW50TGlzdFtpXS55KCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLngo
KSwgdG9Qb2ludExpc3RbaV0ueCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwgYW5pbWF0ZWRYKTsK
LSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50TGlzdFtpXS55KCks
IGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOwotICAgICAgICBhbmltYXRlZFBvaW50
TGlzdFtpXSA9IEZsb2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOworICAgICAgICBmbG9h
dCBhbmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLngoKTsKKyAgICAg
ICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3QucHJvcGVydHlBdChpKS55KCk7
CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLngoKSwgdG9Qb2ludExpc3QucHJvcGVy
dHlBdChpKS54KCksIGVmZmVjdGl2ZVRvQXRFbmQueCgpLCBhbmltYXRlZFgpOworICAgICAgICBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZWZmZWN0aXZlRnJvbS55KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueSgp
LCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsKKyAgICAgICAgYW5pbWF0ZWRQb2lu
dExpc3QucHJvcGVydHlBdChpKSA9IEZsb2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwog
ICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSwxNCArMzEsMTIgQEAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6Om1ha2VfdW5pcXVlPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZT4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5wcmVzZXJ2ZUFzcGVjdFJhdGlv
KCkucGFyc2Uoc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6c3Rv
cEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpb0FuaW1hCiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRl
ZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmlt
YXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW9BbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzEsOSArNjksOSBAQCB2b2lkIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVu
dCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJv
bVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgOiBmcm9t
LT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgY29uc3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVj
dFJhdGlvID0gdG8tPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKLSAgICBhdXRvJiBhbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8gPSBhbmltYXRlZC0+cHJlc2VydmVBc3BlY3RSYXRpbygpOworICAg
IGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25z
dCBhdXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvID0gc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRlRGlzY3JldGVUeXBlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4ocGVyY2VudGFnZSwg
ZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8sIHRvUHJlc2VydmVBc3BlY3RSYXRpbywgYW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFJlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFJlY3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRSZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1h
dGVkUmVjdEFuaW1hdG9yOjpTVkdBbmltYXRlZFJlY3QKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3RkOjptYWtlX3VuaXF1ZTxGbG9hdFJlY3Q+KCkpOwotICAg
IHBhcnNlUmVjdChzdHJpbmcsIGFuaW1hdGVkVHlwZS0+cmVjdCgpKTsKLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5cGVzKSk7CisgICAg
cmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5
cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNDksNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdG9wQW5p
bVZhCiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNW
R0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWRSZWN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTsKKyAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5cGVzLCB0eXBl
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NjcsNyArNjUsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjphZGRBbmltYXRlCiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFJlY3QpOwogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+cmVjdCgpICs9IGZyb20tPnJlY3Qo
KTsKKyAgICBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGlj
X2Nhc3Q8RmxvYXRSZWN0Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0
ZWRSZWN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRU
eXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRU
eXBlKiBhbmltYXRlZCkKQEAgLTc1LDEwICs3MywxMCBAQCB2b2lkIFNWR0FuaW1hdGVkUmVjdEFu
aW1hdG9yOjpjYWxjdWxhdGVBCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAg
QVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVj
dCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPnJlY3QoKSA6IGZyb20tPnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJlY3QmIHRv
UmVjdCA9IHRvLT5yZWN0KCk7Ci0gICAgY29uc3QgRmxvYXRSZWN0JiB0b0F0RW5kT2ZEdXJhdGlv
blJlY3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cmVjdCgpOwotICAgIEZsb2F0UmVjdCYgYW5pbWF0
ZWRSZWN0ID0gYW5pbWF0ZWQtPnJlY3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUmVjdCA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGlj
X2Nhc3Q8RmxvYXRSZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8Rmxv
YXRSZWN0Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9SZWN0ID0gc3Rh
dGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0b0F0RW5kT2ZE
dXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZFJlY3QgPSBzdGF0aWNfY2Fz
dDxGbG9hdFJlY3QmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICBmbG9hdCBhbmltYXRl
ZFggPSBhbmltYXRlZFJlY3QueCgpOwogICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUmVj
dC55KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTMxLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFN0cmluZ0FuaW1h
dG9yOjpTVkdBbmltYXRlZFN0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVN0cmluZyhzdGQ6Om1ha2VfdW5pcXVlPFN0cmluZz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBl
LT5zdHJpbmcoKSA9IHN0cmluZzsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+Ojpmcm9t
U3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ3
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnN0cmluZyk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03Niw5
ICs3NSw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBB
U1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7
CiAKLSAgICBTdHJpbmcgZnJvbVN0cmluZyA9IGZyb20tPnN0cmluZygpOwotICAgIFN0cmluZyB0
b1N0cmluZyA9IHRvLT5zdHJpbmcoKTsKLSAgICBTdHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gYW5p
bWF0ZWQtPnN0cmluZygpOworICAgIFN0cmluZyBmcm9tU3RyaW5nID0gc3RhdGljX2Nhc3Q8U3Ry
aW5nJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgU3RyaW5nIHRvU3RyaW5nID0gc3RhdGljX2Nh
c3Q8U3RyaW5nJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIFN0cmluZyYgYW5pbWF0ZWRTdHJpbmcg
PSBzdGF0aWNfY2FzdDxTdHJpbmcmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBB
cHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1
c3RGb3JJbmhlcml0YW5jZTxTdHJpbmc+KHBhcnNlU3RyaW5nRnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbVN0cmluZywgbV9jb250ZXh0
RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwx
MiBAQCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6U1ZHQW5pCiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6
bWFrZV91bmlxdWU8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBl
LT50cmFuc2Zvcm1MaXN0KCkucGFyc2UobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5nICsg
JyknKTsKLSAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlLT50cmFuc2Zvcm1MaXN0KCkuc2l6ZSgpIDw9
IDEpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9t
U3RyaW5nKG1fdHJhbnNmb3JtVHlwZVN0cmluZyArIHN0cmluZyArICcpJykpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVUcmFuc2Zvcm1MaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NTksNyArNTYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
Ojp0cmFuc2Zvcm1MaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzcsMTUgKzc0LDE1IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0g
ZnJvbS0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50
cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0
aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAg
YXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyY+KCp0by0+dmFsdWVzWzBdKTsKICAgICBhdXRvIGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9IGZy
b21UcmFuc2Zvcm1MaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21UcmFuc2Zvcm1MaXN0U2l6ZSB8
fCBmcm9tVHJhbnNmb3JtTGlzdFNpemUgIT0gdG9UcmFuc2Zvcm1MaXN0LnNpemUoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAg
ICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAg
YXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3RbMF07CisgICAgY29uc3QgYXV0byYg
ZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CisgICAgYXV0
byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsKIAogICAgIEFT
U0VSVChmcm9tVHJhbnNmb3JtLnR5cGUoKSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRv
VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRy
YW5zZm9ybSwgdG9UcmFuc2Zvcm0pOwpAQCAtOTgsMTAgKzk1LDEwIEBAIHZvaWQgU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmMKICAgICAvLyBTcGVjOiBUbyBhbmltYXRpb25zIHBy
b3ZpZGUgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSB0byBnZXQgYSBzbW9vdGggY2hhbmdlIGZyb20g
dGhlIHVuZGVybHlpbmcgdmFsdWUgdG8gdGhlCiAgICAgLy8g4oCYdG/igJkgYXR0cmlidXRlIHZh
bHVlLCB3aGljaCBjb25mbGljdHMgbWF0aGVtYXRpY2FsbHkgd2l0aCB0aGUgcmVxdWlyZW1lbnQg
Zm9yIGFkZGl0aXZlIHRyYW5zZm9ybSBhbmltYXRpb25zCiAgICAgLy8gdG8gYmUgcG9zdC1tdWx0
aXBsaWVkLiBBcyBhIGNvbnNlcXVlbmNlLCBpbiBTVkcgMS4xIHRoZSBiZWhhdmlvciBvZiB0byBh
bmltYXRpb25zIGZvciDigJhhbmltYXRlVHJhbnNmb3Jt4oCZIGlzIHVuZGVmaW5lZC4KLSAgICBj
b25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAg
ICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOwotICAg
IGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdCA9IHRvQXRFbmRPZkR1
cmF0aW9uLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
ID0gYW5pbWF0ZWQtPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNm
b3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFs
dWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8m
IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYg
YW5pbWF0ZWRUcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIFBhc3MgZmFsc2UgdG8gJ3Jlc2l6
ZUFuaW1hdGVkTGlzdElmTmVlZGVkJyBoZXJlLCBhcyB0aGUgc3BlY2lhbCBwb3N0LW11bHRpcGxp
Y2F0aW9uIGJlaGF2aW9yIG9mIDxhbmltYXRlVHJhbnNmb3JtPiBuZWVkcyB0byBiZSByZXNwZWN0
ZWQgYmVsb3cuCiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RW
YWx1ZXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oZnJvbVRyYW5zZm9ybUxpc3QsIHRvVHJhbnNm
b3JtTGlzdCwgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LCBwZXJjZW50YWdlLCBmYWxzZSkpCkBAIC0x
MTIsMTQgKzEwOSwxNCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpj
CiAgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5jbGVhcigpOwogCiAgICAgYXV0byBmcm9t
VHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7Ci0gICAgY29uc3Qg
YXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3RbMF07Ci0gICAgY29uc3QgYXV0byBl
ZmZlY3RpdmVGcm9tID0gZnJvbVRyYW5zZm9ybUxpc3RTaXplID8gZnJvbVRyYW5zZm9ybUxpc3Rb
MF0gOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZh
bHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9y
bSA9IHRvVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApOworICAgIGNvbnN0IGF1dG8gZWZmZWN0
aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1MaXN0LnByb3Bl
cnR5QXQoMCkgOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5z
Zm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKICAgICBhdXRvIGN1cnJlbnRUcmFu
c2Zvcm0gPSBTVkdUcmFuc2Zvcm1EaXN0YW5jZShlZmZlY3RpdmVGcm9tLCB0b1RyYW5zZm9ybSku
c2NhbGVkRGlzdGFuY2UocGVyY2VudGFnZSkuYWRkVG9TVkdUcmFuc2Zvcm0oZWZmZWN0aXZlRnJv
bSk7CiAgICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+aXNBY2N1bXVsYXRlZCgpICYmIHJlcGVh
dENvdW50KSB7Ci0gICAgICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRFbmRP
ZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9y
bUxpc3RbMF0gOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5z
Zm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKLSAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNmb3Jtcyhj
dXJyZW50VHJhbnNmb3JtLCBlZmZlY3RpdmVUb0F0RW5kLCByZXBlYXRDb3VudCkpOworICAgICAg
ICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9y
bUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQo
MCkgOiBTVkdUcmFuc2Zvcm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZh
bHVlOjpDb25zdHJ1Y3RaZXJvVHJhbnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihTVkdUcmFuc2Zv
cm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNmb3JtcyhjdXJyZW50VHJhbnNmb3JtLCBlZmZlY3RpdmVU
b0F0RW5kLCByZXBlYXRDb3VudCkpKTsKICAgICB9IGVsc2UKLSAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChjdXJyZW50VHJhbnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihjdXJy
ZW50VHJhbnNmb3JtKSk7CiB9CiAKIGZsb2F0IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0
cmluZyYgdG9TdHJpbmcpCkBAIC0xMzEsMjAgKzEyOCwyMCBAQCBmbG9hdCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6CiAgICAgYXV0byBmcm9tID0gY29uc3RydWN0RnJvbVN0cmlu
Zyhmcm9tU3RyaW5nKTsKICAgICBhdXRvIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0b1N0cmlu
Zyk7CiAKLSAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3Qo
KTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAg
IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0
YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAgICAg
dW5zaWduZWQgaXRlbXNDb3VudCA9IGZyb21UcmFuc2Zvcm1MaXN0LnNpemUoKTsKICAgICBpZiAo
IWl0ZW1zQ291bnQgfHwgaXRlbXNDb3VudCAhPSB0b1RyYW5zZm9ybUxpc3Quc2l6ZSgpKQogICAg
ICAgICByZXR1cm4gLTE7CiAKICAgICBBU1NFUlQoaXRlbXNDb3VudCA9PSAxKTsKLSAgICBpZiAo
ZnJvbVRyYW5zZm9ybUxpc3RbMF0udHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdFswXS50eXBlKCkp
CisgICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkudHlwZSgpICE9IHRvVHJh
bnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLnR5cGUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAg
ICAgLy8gU3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2FuaW1hdGUuaHRtbCNjb21wbGV4
RGlzdGFuY2VzCiAgICAgLy8gUGFjZWQgYW5pbWF0aW9ucyBhc3N1bWUgYSBub3Rpb24gb2YgZGlz
dGFuY2UgYmV0d2VlbiB0aGUgdmFyaW91cyBhbmltYXRpb24gdmFsdWVzIGRlZmluZWQgYnkgdGhl
IOKAmHRv4oCZLCDigJhmcm9t4oCZLCDigJhieeKAmSBhbmQg4oCYdmFsdWVz4oCZIGF0dHJpYnV0
ZXMuCiAgICAgLy8gRGlzdGFuY2UgaXMgZGVmaW5lZCBvbmx5IGZvciBzY2FsYXIgdHlwZXMgKHN1
Y2ggYXMgPGxlbmd0aD4pLCBjb2xvcnMgYW5kIHRoZSBzdWJzZXQgb2YgdHJhbnNmb3JtYXRpb24g
dHlwZXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkuCi0gICAg
cmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0WzBdLCB0b1RyYW5z
Zm9ybUxpc3RbMF0pLmRpc3RhbmNlKCk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNl
KGZyb21UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCksIHRvVHJhbnNmb3JtTGlzdC5wcm9wZXJ0
eUF0KDApKS5kaXN0YW5jZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRUeXBlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHlwZS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlw
ZS5oIgotCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCi0jaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0
aWVzLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1TVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZShBbmltYXRlZFByb3BlcnR5
VHlwZSB0eXBlKQotICAgIDogbV90eXBlKHR5cGUpCi17Ci19Ci0KLVNWR0FuaW1hdGVkVHlwZTo6
flNWR0FuaW1hdGVkVHlwZSgpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFu
aW1hdGVkQW5nbGU6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAgICAgIGRlbGV0
ZSBtX2RhdGEuYm9vbGVhbjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZENvbG9y
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmNvbG9yOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuZW51bWVyYXRpb247
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLmludGVnZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyOgotICAgICAgICBkZWxldGUgbV9kYXRhLmludGVnZXJPcHRpb25h
bEludGVnZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1h
dGVkTGVuZ3RoTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5sZW5ndGhMaXN0OwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRh
Lm51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlckxpc3Q6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEubnVtYmVyTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgICAgICBkZWxldGUgbV9kYXRhLm51
bWJlck9wdGlvbmFsTnVtYmVyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkUGF0
aDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wYXRoOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkUG9pbnRzOgotICAgICAgICBkZWxldGUgbV9kYXRhLnBvaW50TGlzdDsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgICAg
IGRlbGV0ZSBtX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucmVjdDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5z
dHJpbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Ogot
ICAgICAgICBkZWxldGUgbV9kYXRhLnRyYW5zZm9ybUxpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVf
cHRyPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IGFuZ2xlQW5kRW51bWVyYXRp
b24pCi17Ci0gICAgQVNTRVJUKGFuZ2xlQW5kRW51bWVyYXRpb24pOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkQW5nbGUp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb24gPSBhbmdsZUFu
ZEVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1z
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJv
b2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+IGJvb2xlYW4pCi17Ci0gICAgQVNTRVJUKGJvb2xl
YW4pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkQm9vbGVhbik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuYm9vbGVh
biA9IGJvb2xlYW4ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQ29s
b3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPiBjb2xvcikKLXsKLSAgICBBU1NFUlQoY29sb3IpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KEFuaW1hdGVkQ29sb3IpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmNvbG9yID0gY29sb3Iu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlRW51bWVyYXRpb24oc3Rk
Ojp1bmlxdWVfcHRyPHVuc2lnbmVkPiBlbnVtZXJhdGlvbikKLXsKLSAgICBBU1NFUlQoZW51bWVy
YXRpb24pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRh
LmVudW1lcmF0aW9uID0gZW51bWVyYXRpb24ucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8aW50PiBpbnRlZ2VyKQotewotICAg
IEFTU0VSVChpbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+
bV9kYXRhLmludGVnZXIgPSBpbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVnZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFp
cjxpbnQsIGludD4+IGludGVnZXJPcHRpb25hbEludGVnZXIpCi17Ci0gICAgQVNTRVJUKGludGVn
ZXJPcHRpb25hbEludGVnZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEuaW50ZWdlck9wdGlvbmFsSW50ZWdlciA9IGludGVnZXJP
cHRpb25hbEludGVnZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
TGVuZ3RoKHN0ZDo6dW5pcXVlX3B0cjxTVkdMZW5ndGhWYWx1ZT4gbGVuZ3RoKQotewotICAgIEFT
U0VSVChsZW5ndGgpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3RoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0
YS5sZW5ndGggPSBsZW5ndGgucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gbGVuZ3Ro
TGlzdCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRMZW5ndGhMaXN0KTsK
LSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5sZW5ndGhMaXN0ID0gbGVuZ3RoTGlzdC5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjp1bmlxdWVfcHRy
PGZsb2F0PiBudW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlcik7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXIp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJlciA9IG51bWJlci5yZWxlYXNlKCk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxT
VkdOdW1iZXJMaXN0VmFsdWVzPiBudW1iZXJMaXN0KQotewotICAgIEFTU0VSVChudW1iZXJMaXN0
KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRU
eXBlPihBbmltYXRlZE51bWJlckxpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLm51bWJl
ckxpc3QgPSBudW1iZXJMaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj4gbnVtYmVyT3B0aW9uYWxOdW1iZXIpCi17Ci0gICAgQVNTRVJUKG51bWJlck9wdGlv
bmFsTnVtYmVyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICBhbmltYXRl
ZFR5cGUtPm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlciA9IG51bWJlck9wdGlvbmFsTnVtYmVy
LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoc3RkOjp1bmlx
dWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBwYXRoKQotewotICAgIEFTU0VSVChwYXRoKTsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihB
bmltYXRlZFBhdGgpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBhdGggPSBwYXRoLnJlbGVh
c2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6OnVuaXF1
ZV9wdHI8U1ZHUG9pbnRMaXN0VmFsdWVzPiBwb2ludExpc3QpCi17Ci0gICAgQVNTRVJUKHBvaW50
TGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkVHlwZT4oQW5pbWF0ZWRQb2ludHMpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnBvaW50
TGlzdCA9IHBvaW50TGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+IHByZXNlcnZlQXNwZWN0UmF0aW8pCi17Ci0gICAgQVNTRVJUKHByZXNlcnZlQXNw
ZWN0UmF0aW8pOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbyA9IHByZXNlcnZlQXNwZWN0UmF0aW8ucmVs
ZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9w
dHI8RmxvYXRSZWN0PiByZWN0KQotewotICAgIEFTU0VSVChyZWN0KTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFJlY3Qp
OwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnJlY3QgPSByZWN0LnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPiBz
dHJpbmcpCi17Ci0gICAgQVNTRVJUKHN0cmluZyk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRTdHJpbmcpOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLnN0cmluZyA9IHN0cmluZy5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPiB0cmFuc2Zvcm1MaXN0KQotewotICAgIEFTU0VSVCh0cmFuc2Zvcm1M
aXN0KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRh
LnRyYW5zZm9ybUxpc3QgPSB0cmFuc2Zvcm1MaXN0LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOwotfQotCi1TdHJpbmcgU1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFzU3RyaW5nKCkK
LXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAg
ICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7Ci0gICAgICAgIHJldHVybiBtX2RhdGEuY29sb3ItPnNl
cmlhbGl6ZWQoKTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBBU1NFUlQobV9k
YXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEubGVuZ3RoLT52YWx1ZUFzU3RyaW5n
KCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEu
bGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEubGVuZ3RoTGlzdC0+dmFsdWVBc1N0
cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXI6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEu
bnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKCptX2RhdGEubnVtYmVyKTsK
LSAgICBjYXNlIEFuaW1hdGVkUmVjdDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsKLSAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT54KCkpICsgJyAnICsgU3Ry
aW5nOjpudW1iZXIobV9kYXRhLnJlY3QtPnkoKSkgKyAnICcKLSAgICAgICAgICAgICArIFN0cmlu
Zzo6bnVtYmVyKG1fZGF0YS5yZWN0LT53aWR0aCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1f
ZGF0YS5yZWN0LT5oZWlnaHQoKSk7Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAg
QVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7Ci0K
LSAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBhcHBlYXIgaW4gdGhlIHRhYmxlIGluIFNWR0VsZW1l
bnQ6OmNzc1Byb3BlcnR5VG9UeXBlTWFwKCkgYW5kIHRodXMgZG9uJ3QgbmVlZCB2YWx1ZUFzU3Ry
aW5nKCkgc3VwcG9ydC4KLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBBbmltYXRl
ZEJvb2xlYW46Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0
ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgotICAg
IGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlcjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRz
OgotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2UgQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICAvLyBP
bmx5IFNWRyBET00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0aGF0IG1l
YW5zIHZhbHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZWRU
eXBlOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmlt
YXRlZENvbG9yOgotICAgICAgICBBU1NFUlQobV9kYXRhLmNvbG9yKTsKLSAgICAgICAgKm1fZGF0
YS5jb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcih2YWx1ZS5zdHJpcFdoaXRlU3BhY2UoKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEubGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICFtX2RhdGEubGVuZ3RoLT5z
ZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1h
dGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7Ci0gICAgY2FzZSBB
bmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEubGVuZ3RoTGlzdCk7Ci0g
ICAgICAgIG1fZGF0YS5sZW5ndGhMaXN0LT5wYXJzZSh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxl
bmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQobV9k
YXRhLm51bWJlcik7Ci0gICAgICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSwgKm1fZGF0
YS5udW1iZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkUmVjdDoK
LSAgICAgICAgQVNTRVJUKG1fZGF0YS5yZWN0KTsKLSAgICAgICAgcGFyc2VSZWN0KHZhbHVlLCAq
bV9kYXRhLnJlY3QpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkU3Ry
aW5nOgotICAgICAgICBBU1NFUlQobV9kYXRhLnN0cmluZyk7Ci0gICAgICAgICptX2RhdGEuc3Ry
aW5nID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgLy8gVGhlc2UgdHlwZXMg
ZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlw
ZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgc2V0VmFsdWVBc1N0cmluZygpIHN1cHBvcnQuIAot
ICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKLSAgICBjYXNlIEFuaW1hdGVkQm9vbGVhbjoKLSAgICBj
YXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6Ci0gICAg
Y2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgY2FzZSBBbmltYXRlZE51
bWJlckxpc3Q6Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOgotICAgIGNh
c2UgQW5pbWF0ZWRQYXRoOgotICAgIGNhc2UgQW5pbWF0ZWRQb2ludHM6Ci0gICAgY2FzZSBBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6
Ci0gICAgY2FzZSBBbmltYXRlZFVua25vd246Ci0gICAgICAgIC8vIE9ubHkgU1ZHIERPTSBhbmlt
YXRpb25zIHVzZSB0aGVzZSBwcm9wZXJ0eSB0eXBlcyAtIHRoYXQgbWVhbnMgc2V0VmFsdWVBc1N0
cmluZygpIGlzIG5ldmVyIHVzZWQgZm9yIHRob3NlLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5
cGUpCi17Ci0gICAgLy8gQW5pbWF0ZWRDb2xvciBpcyBvbmx5IHVzZWQgZm9yIENTUyBwcm9wZXJ0
eSBhbmltYXRpb25zLgotICAgIHJldHVybiB0eXBlICE9IEFuaW1hdGVkVW5rbm93biAmJiB0eXBl
ICE9IEFuaW1hdGVkQ29sb3I7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwyODQgKzIwLDEyOSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVk
ZSAiU1ZHQW5nbGVWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIKLSNp
bmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMu
aCIKLSNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKLSNpbmNsdWRlICJTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eUluZm8uaCIKLSNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTVkdQYXRoQnl0ZVN0cmVhbTsKLQotY2xhc3Mg
U1ZHQW5pbWF0ZWRUeXBlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoK
LSAgICBTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotICAgIHZpcnR1YWwg
flNWR0FuaW1hdGVkVHlwZSgpOwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IGNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQm9vbGVhbihzdGQ6OnVuaXF1ZV9wdHI8Ym9vbD4p
OwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVDb2xv
cihzdGQ6OnVuaXF1ZV9wdHI8Q29sb3I+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY3JlYXRlRW51bWVyYXRpb24oc3RkOjp1bmlxdWVfcHRyPHVuc2lnbmVk
Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUlu
dGVnZXIoc3RkOjp1bmlxdWVfcHRyPGludD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVl
X3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFs
dWU+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
TGVuZ3RoTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXIoc3RkOjp1
bmlxdWVfcHRyPGZsb2F0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IGNyZWF0ZU51bWJlckxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR051bWJlckxpc3RWYWx1
ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
TnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjp1bmlxdWVfcHRyPHN0ZDo6cGFpcjxmbG9hdCwgZmxv
YXQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0
ZVBhdGgoc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVBvaW50TGlzdChzdGQ6OnVuaXF1
ZV9wdHI8U1ZHUG9pbnRMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjp1bmlxdWVfcHRy
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVSZWN0KHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJlY3Q+
KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlU3Ry
aW5nKHN0ZDo6dW5pcXVlX3B0cjxTdHJpbmc+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQW5pbVZhbChB
bmltYXRlZFByb3BlcnR5VHlwZSk7Ci0KLSAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICAvLyBOb24tbXV0YWJsZSBhY2Nlc3NvcnMu
Ci0gICAgY29uc3Qgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRF
bnVtZXJhdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOwot
ICAgIH0KLQotICAgIGNvbnN0IGJvb2wmIGJvb2xlYW4oKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5ib29sZWFuOwotICAgIH0KLQotICAgIGNvbnN0IENvbG9yJiBjb2xvcigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQ29sb3IpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5jb2xvcjsKLSAgICB9Ci0KLSAgICBjb25zdCB1bnNpZ25lZCYgZW51bWVyYXRp
b24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEVudW1l
cmF0aW9uKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuZW51bWVyYXRpb247Ci0gICAgfQotCi0g
ICAgY29uc3QgaW50JiBpbnRlZ2VyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlcjsK
LSAgICB9Ci0KLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBpbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuaW50ZWdlck9w
dGlvbmFsSW50ZWdlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3Ro
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgp
OwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyYgbGVuZ3RoTGlzdCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
Lmxlbmd0aExpc3Q7Ci0gICAgfQotCi0gICAgY29uc3QgZmxvYXQmIG51bWJlcigpIGNvbnN0Ci0g
ICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEubnVtYmVyOwotICAgIH0KLQotICAgIGNvbnN0IFNWR051bWJlckxpc3RW
YWx1ZXMmIG51bWJlckxpc3QoKSBjb25zdAorc3RydWN0IFNWR0FuaW1hdGVkVHlwZSB7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIFNWR0FuaW1hdGVkVHlwZShQcm9w
ZXJ0eVR5cGUmJiBwcm9wZXJ0eSkKKyAgICAgICAgOiB2YWx1ZXMgeyBTVkdWYWx1ZTo6Y3JlYXRl
KFdURk1vdmUocHJvcGVydHkpKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkTnVtYmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7CiAg
ICAgfQogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51bWJlck9wdGlvbmFs
TnVtYmVyKCkgY29uc3QKKyAgICBTVkdBbmltYXRlZFR5cGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZh
bHVlKQorICAgICAgICA6IHZhbHVlcyB7IFdURk1vdmUodmFsdWUpIH0KICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLm51bWJlck9wdGlvbmFsTnVtYmVyOwogICAgIH0KIAotICAgIGNvbnN0
IFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIFNWR0FuaW1hdGVkVHlw
ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQor
ICAgICAgICA6IHZhbHVlcyB7IFNWR1ZhbHVlOjpjcmVhdGUocHJvcGVydGllcy5maXJzdCksIFNW
R1ZhbHVlOjpjcmVhdGUocHJvcGVydGllcy5zZWNvbmQpIH0KICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5wYXRoOwog
ICAgIH0KIAotICAgIGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QK
KyAgICBTVkdBbmltYXRlZFR5cGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNW
R1ZhbHVlPiYmIHZhbHVlMikKKyAgICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZhbHVlMSksIFdU
Rk1vdmUodmFsdWUyKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
UG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OwogICAgIH0KIAotICAg
IGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygp
IGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgICAgICBy
ZXR1cm4gKm1fZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlw
ZT46OmluaXRpYWxWYWx1ZSgpKTsKICAgICB9CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3Qo
KSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHBy
b3BlcnR5KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFJlY3QpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5yZWN0OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUocHJvcGVydHkpKTsKICAgICB9CiAKLSAgICBj
b25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3RyaW5nKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEuc3RyaW5nOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KFdURk1vdmUodmFsdWUpKTsKICAgICB9CiAKLSAgICBjb25zdCBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS50cmFuc2Zvcm1MaXN0OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZFR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQ
cm9wZXJ0eVR5cGUyPj46OmluaXRpYWxWYWx1ZSgpKTsKICAgICB9CiAKLSAgICAvLyBNdXRhYmxl
IGFjY2Vzc29ycy4KLSAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JiBhbmds
ZUFuZEVudW1lcmF0aW9uKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0
eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjcmVhdGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+
JiYgcHJvcGVydGllcykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRB
bmdsZSk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb247CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9w
ZXJ0aWVzKSk7CiAgICAgfQogCi0gICAgYm9vbCYgYm9vbGVhbigpCisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFs
dWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZEJvb2xlYW4pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5ib29sZWFu
OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1v
dmUodmFsdWUxKSwgV1RGTW92ZSh2YWx1ZTIpKTsKICAgICB9CiAKLSAgICBDb2xvciYgY29sb3Io
KQorICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUoKSBjb25zdAogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
Y29sb3I7Ci0gICAgfQotCi0gICAgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLmVudW1lcmF0aW9uOwotICAgIH0KLQotICAgIGludCYgaW50ZWdlcigpCi0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQotCi0gICAgc3RkOjpwYWlyPGludCwgaW50PiYg
aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgU1ZHTGVuZ3RoVmFsdWUmIGxl
bmd0aCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIFNWR0xlbmd0aExp
c3RWYWx1ZXMmIGxlbmd0aExpc3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhMaXN0Owot
ICAgIH0KKyAgICAgICAgQVNTRVJUKHZhbHVlc1swXSk7CisgICAgICAgIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkVHlwZTEgPSB2YWx1ZUFuaW1hdGVkVHlwZSgqdmFsdWVzWzBdKTsKKyAg
ICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMiA9IHZhbHVlc1sxXSA/IHZh
bHVlQW5pbWF0ZWRUeXBlKCp2YWx1ZXNbMV0pIDogQW5pbWF0ZWRVbmtub3duOwogCi0gICAgZmxv
YXQmIG51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVt
YmVyKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubnVtYmVyOwotICAgIH0KKyAgICAgICAgaWYg
KGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRBbmdsZSkgeworICAgICAgICAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7CisgICAgICAgICAgICByZXR1cm4g
QW5pbWF0ZWRBbmdsZTsKKyAgICAgICAgfQogCi0gICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbnVt
YmVyTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVy
TGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAgfQorICAgICAg
ICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0ZWRUeXBlMiA9
PSBBbmltYXRlZEludGVnZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyOwogCi0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIG51bWJlck9wdGlv
bmFsTnVtYmVyKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWROdW1i
ZXJPcHRpb25hbE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlck9wdGlvbmFs
TnVtYmVyOwotICAgIH0KKyAgICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWROdW1i
ZXIgJiYgYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZE51bWJlcikKKyAgICAgICAgICAgIHJldHVy
biBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0q
IHBhdGgoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBhdGgpOwot
ICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7CisgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGUy
ID09IEFuaW1hdGVkVW5rbm93bik7CisgICAgICAgIHJldHVybiBhbmltYXRlZFR5cGUxOwogICAg
IH0KIAotICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkKKyAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBv
aW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1swXSAmJiAhdmFsdWVzWzFdKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1swXS0+dG9T
dHJpbmcoKTsKICAgICB9CiAKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNl
cnZlQXNwZWN0UmF0aW8oKQorICAgIGJvb2wgcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgICAgICBBU1NFUlQodmFsdWVzWzBdICYmICF2YWx1
ZXNbMV0pOworICAgICAgICByZXR1cm4gdmFsdWVzWzBdLT5wYXJzZShhdHRyTmFtZSwgc3RyaW5n
KTsKICAgICB9CiAKLSAgICBGbG9hdFJlY3QmIHJlY3QoKQorICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzQW5pbVZhbChBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFJlY3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5yZWN0
OworICAgICAgICAvLyBBbmltYXRlZENvbG9yIGlzIG9ubHkgdXNlZCBmb3IgQ1NTIHByb3BlcnR5
IGFuaW1hdGlvbnMuCisgICAgICAgIHJldHVybiB0eXBlICE9IEFuaW1hdGVkVW5rbm93biAmJiB0
eXBlICE9IEFuaW1hdGVkQ29sb3I7CiAgICAgfQogCi0gICAgU3RyaW5nJiBzdHJpbmcoKQorICAg
IHN0YXRpYyBBbmltYXRlZFByb3BlcnR5VHlwZSB2YWx1ZUFuaW1hdGVkVHlwZShjb25zdCBTVkdW
YWx1ZSYgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkU3Ry
aW5nKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOworICAgICAgICByZXR1cm4gV1RG
Ojp2aXNpdChXVEY6Om1ha2VWaXNpdG9yKAorICAgICAgICAgICAgW10oY29uc3QgU1ZHQW5nbGVW
YWx1ZSYpICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkQW5nbGU7IH0sCisgICAgICAg
ICAgICBbXShjb25zdCBib29sJikgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5p
bWF0ZWRCb29sZWFuOyB9LAorICAgICAgICAgICAgW10oY29uc3QgQ29sb3ImKSAgICAgICAgICAg
ICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkQ29sb3I7IH0sCisgICAgICAgICAgICBbXShj
b25zdCB1bnNpZ25lZCYpICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRFbnVt
ZXJhdGlvbjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGludCYpICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHJldHVybiBBbmltYXRlZEludGVnZXI7IH0sCisgICAgICAgICAgICBbXShjb25z
dCBTVkdMZW5ndGhWYWx1ZSYpICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRMZW5ndGg7
IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJikgICAgICAgICAg
eyByZXR1cm4gQW5pbWF0ZWRMZW5ndGhMaXN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgZmxv
YXQpICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkTnVtYmVyOyB9LAor
ICAgICAgICAgICAgW10oY29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYpICAgICAgICAgIHsgcmV0
dXJuIEFuaW1hdGVkTnVtYmVyTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1BhdGhC
eXRlU3RyZWFtJikgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFBhdGg7IH0sCisgICAgICAg
ICAgICBbXShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKSAgeyByZXR1cm4gQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHUG9p
bnRMaXN0VmFsdWVzJikgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkUG9pbnRzOyB9LAorICAg
ICAgICAgICAgW10oY29uc3QgRmxvYXRSZWN0JikgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJu
IEFuaW1hdGVkUmVjdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFN0cmluZyYpICAgICAgICAg
ICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFN0cmluZzsgfSwKKyAgICAgICAgICAgIFtd
KGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmKSAgICAgICB7IHJldHVybiBBbmltYXRlZFRy
YW5zZm9ybUxpc3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBhdXRvJikgICAgICAgICAgICAg
ICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRVbmtub3duOyB9CisgICAgICAgICksIHN0YXRp
Y19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVlKSk7CiAgICAgfQogCi0gICAgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpCi0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLnRyYW5zZm9ybUxpc3Q7Ci0gICAgfQotCi0gICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKTsK
LSAgICBib29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0
cmluZyYpOwotCi1wcml2YXRlOgotICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIG1fdHlwZTsKLQot
ICAgIHVuaW9uIERhdGFVbmlvbiB7Ci0gICAgICAgIERhdGFVbmlvbigpCi0gICAgICAgICAgICA6
IGxlbmd0aChudWxscHRyKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGQ6OnBh
aXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KiBhbmdsZUFuZEVudW1lcmF0aW9uOwotICAgICAg
ICBib29sKiBib29sZWFuOwotICAgICAgICBDb2xvciogY29sb3I7Ci0gICAgICAgIHVuc2lnbmVk
KiBlbnVtZXJhdGlvbjsKLSAgICAgICAgaW50KiBpbnRlZ2VyOwotICAgICAgICBzdGQ6OnBhaXI8
aW50LCBpbnQ+KiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBTVkdMZW5ndGhWYWx1
ZSogbGVuZ3RoOwotICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzKiBsZW5ndGhMaXN0OwotICAg
ICAgICBmbG9hdCogbnVtYmVyOwotICAgICAgICBTVkdOdW1iZXJMaXN0VmFsdWVzKiBudW1iZXJM
aXN0OwotICAgICAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiogbnVtYmVyT3B0aW9uYWxOdW1i
ZXI7Ci0gICAgICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoOwotICAgICAgICBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUqIHByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIFNWR1BvaW50
TGlzdFZhbHVlcyogcG9pbnRMaXN0OwotICAgICAgICBGbG9hdFJlY3QqIHJlY3Q7Ci0gICAgICAg
IFN0cmluZyogc3RyaW5nOwotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzKiB0cmFuc2Zv
cm1MaXN0OwotICAgIH0gbV9kYXRhOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFsdWVzWzJdOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMS0yMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtNjMsMjggKzY0LDI4IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhlbHBlcnMgZm9y
IGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gc2luZ2xlIHR5cGVzLCBlZy4ganVzdCBvbmUgU1ZH
QW5pbWF0ZWRJbnRlZ2VyLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAg
IHN0ZDo6dW5pcXVlX3B0cjx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+IGNvbnN0
cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0
cnVjdEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllcy5zaXplKCkgPT0gMSk7Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBl
OjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVh
bFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSkt
PmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29uc3QgQW5pbVZhbFR5cGUqIGFuaW1hdGVk
VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gY29weSA9
IHN0ZDo6bWFrZV91bmlxdWU8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPihhbmlt
YXRlZFR5cGUpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgY29weS5nZXQoKSk7Ci0gICAgICAgIHJldHVy
biBjb3B5OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1
ZTo6Y3JlYXRlKCphbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIGV4
ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5
cGVzLCAwLCBhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlKFdURk1vdmUoYW5pbWF0ZWRWYWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRU
eXBlJiB0eXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIChTVkdBbmltYXRl
ZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5
cGUmIHR5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0
aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7
Ci0gICAgICAgIGF1dG8qIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5
cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0g
ICAgICAgIHByb3BlcnR5LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAg
QW5pbVZhbFR5cGUqIGFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwor
ICAgICAgICBhbmltYXRlZFR5cGUtPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0g
ICAgICAgIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgYW5pbWF0ZWRUeXBlVmFs
dWUgPSAodHlwZS4qZ2V0dGVyKSgpOwotICAgICAgICBhbmltYXRlZFR5cGVWYWx1ZSA9IHByb3Bl
cnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0KLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5
cGVWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYmFzZVZhbHVlID0gYW5pbWF0ZWRU
eXBlLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0
ZWRWYWx1ZSA9IHR5cGUudmFsdWVzWzBdOworICAgICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBB
bmltVmFsVHlwZTo6Q29udGVudFR5cGUmPigqYW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmPigqYmFzZVZhbHVlKTsKKyAgICAgICAg
ZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
VHlwZXMsIDAsIGFuaW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFuaW1WYWxUeXBlPgpAQCAtMTEwLDM0ICsxMTEsMzggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8g
SGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBwYWlyIHR5cGVzLCBlZy4gYSBw
YWlyIG9mIFNWR0FuaW1hdGVkSW50ZWdlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6
cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFs
VHlwZTI6OkNvbnRlbnRUeXBlPj4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKICAgICB7CiAgICAgICAg
IEFTU0VSVChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDIpOwotICAgICAg
ICBjb25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlJiBmaXJzdFR5cGUgPSBj
YXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLSAgICAgICAg
Y29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSYgc2Vjb25kVHlwZSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBj
b25zdCBBbmltVmFsVHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MF0uZ2V0KCkpOworICAgICAgICBjb25zdCBBbmltVmFsVHlwZTIqIHNlY29uZEFuaW1hdGVkVHlw
ZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0
ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKIAotICAgICAgICBhdXRvIGNvcHkgPSBz
dGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRU
eXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlPj4oZmlyc3RUeXBlLCBzZWNv
bmRUeXBlKTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0
aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmY29weS0+Zmlyc3QpOwotICAgICAgICBleGVj
dXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlw
ZXMsIDEsICZjb3B5LT5zZWNvbmQpOwotICAgICAgICByZXR1cm4gY29weTsKKyAgICAgICAgUmVm
UHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpmaXJz
dEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgUmVmUHRyPFNWR1Zh
bHVlPiBzZWNvbmRBbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqc2Vjb25kQW5pbWF0
ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCkpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGZpcnN0QW5p
bWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFu
aW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgc2Vjb25kQW5pbWF0ZWRWYWx1ZSk7Cisg
ICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZpcnN0QW5pbWF0
ZWRWYWx1ZSksIFdURk1vdmUoc2Vjb25kQW5pbWF0ZWRWYWx1ZSkpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgotICAg
IHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSwgc3RkOjpwYWlyPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6
Q29udGVudFR5cGU+JiAoU1ZHQW5pbWF0ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVz
ZXRGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VS
VChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDIpOwogICAgICAgICBBU1NF
UlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogZmlyc3RQcm9wZXJ0eSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICAgICAgYXV0byogc2Vjb25kUHJvcGVy
dHkgPSAgY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOwotICAgICAgICBmaXJzdFByb3BlcnR5
LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLSAgICAgICAgc2Vjb25kUHJvcGVydHkt
PnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotCi0gICAgICAgIHN0ZDo6cGFpcjx0eXBl
bmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNv
bnRlbnRUeXBlPiYgYW5pbWF0ZWRUeXBlVmFsdWUgPSAodHlwZS4qZ2V0dGVyKSgpOwotICAgICAg
ICBhbmltYXRlZFR5cGVWYWx1ZS5maXJzdCA9IGZpcnN0UHJvcGVydHktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kID0gc2Vjb25kUHJvcGVydHkt
PmN1cnJlbnRCYXNlVmFsdWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBl
MT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZhbmltYXRlZFR5cGVW
YWx1ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFu
aW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJmFuaW1hdGVkVHlwZVZhbHVlLnNlY29u
ZCk7CisgICAgICAgIEFuaW1WYWxUeXBlMSogZmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0
ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIEFuaW1WYWxUeXBlMiogc2Vjb25kQW5pbWF0ZWRU
eXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOworICAgICAgICBmaXJzdEFuaW1hdGVk
VHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CisgICAgICAgIHNlY29uZEFuaW1h
dGVkVHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CisKKyAgICAgICAgUmVmUHRy
PFNWR1ZhbHVlPiBmaXJzdEJhc2VWYWx1ZSA9IGZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFz
ZVZhbHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0g
dHlwZS52YWx1ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBl
MTo6Q29udGVudFR5cGUmPigqZmlyc3RBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVu
YW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmPigqZmlyc3RCYXNlVmFsdWUpOworICAgICAg
ICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1h
dGVkVHlwZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1ZSk7CisKKyAgICAgICAgUmVmUHRyPFNWR1Zh
bHVlPiBzZWNvbmRCYXNlVmFsdWUgPSBzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFs
dWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBzZWNvbmRBbmltYXRlZFZhbHVlID0gdHlw
ZS52YWx1ZXNbMV07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6
Q29udGVudFR5cGUmPigqc2Vjb25kQW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2FzdDx0eXBlbmFt
ZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJj4oKnNlY29uZEJhc2VWYWx1ZSk7CisgICAgICAg
IGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0
ZWRUeXBlcywgMSwgc2Vjb25kQW5pbWF0ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xOTAsMzMg
KzE5NSwzMyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmlt
VmFsVHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwg
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCB1bnNp
Z25lZCB3aGljaFByb3BlcnR5LCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUqIHR5
cGUgPSAwKQorICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2ln
bmVkIHdoaWNoUHJvcGVydHksIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IG51bGxw
dHIpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgdXNlIFNWR0VsZW1lbnQ6Okluc3Rh
bmNlVXBkYXRlQmxvY2tlciBiZWNhdXNlIG9mIGNpcmN1bGFyIGhlYWRlciBkZXBlbmRlbmN5LiBX
b3VsZCBiZSBuaWNlIHRvIHVudGFuZ2xlIHRoaXMuCiAgICAgICAgIHNldEluc3RhbmNlVXBkYXRl
c0Jsb2NrZWQoKmFuaW1hdGVkVHlwZXNbMF0uZWxlbWVudCwgdHJ1ZSk7CiAKICAgICAgICAgZm9y
IChhdXRvJiBhbmltYXRlZFR5cGUgOiBhbmltYXRlZFR5cGVzKSB7CiAgICAgICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih3aGljaFByb3BlcnR5IDwgYW5pbWF0ZWRUeXBl
LnByb3BlcnRpZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBwcm9wZXJ0eSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5
cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7CisgICAgICAgICAgICBBbmltVmFs
VHlwZSogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBl
PEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQo
KSk7CiAKICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgICAgICAgICBjYXNlIFN0
YXJ0QW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCh0eXBlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXByb3BlcnR5LT5pc0FuaW1hdGluZygpKQotICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZCh0eXBlKTsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbmltYXRlZFByb3Bl
cnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5
LT5hbmltYXRpb25TdGFydGVkKGFuaW1hdGVkVmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBTdG9wQW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAg
IEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LT5pc0FuaW1hdGlu
ZygpKQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uRW5kZWQoKTsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGlm
IChhbmltYXRlZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBh
bmltYXRlZFByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBBbmltVmFsV2lsbENoYW5nZUFjdGlvbjoKLSAgICAgICAgICAg
ICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltVmFsV2ls
bENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbFdpbGxDaGFuZ2UoKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQW5pbVZhbERpZENoYW5nZUFjdGlv
bjoKLSAgICAgICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3Bl
cnR5LT5hbmltVmFsRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRl
ZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsRGlkQ2hh
bmdlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb25kaXRpb25FdmVudExpc3RlbmVyOwotY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlOworc3RydWN0
IFNWR0FuaW1hdGVkVHlwZTsKIGNsYXNzIFRpbWVDb250YWluZXI7CiAKIGVudW0gQW5pbWF0aW9u
TW9kZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsNyBAQCBDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uIFNWR0NvbXBvbmVudFRyCiAgICAgZnVuYy5hbXBsaXR1ZGUgPSBhbXBsaXR1ZGUoKTsKICAg
ICBmdW5jLmV4cG9uZW50ID0gZXhwb25lbnQoKTsKICAgICBmdW5jLm9mZnNldCA9IG9mZnNldCgp
OwotICAgIGZ1bmMudGFibGVWYWx1ZXMgPSB0YWJsZVZhbHVlcygpOworICAgIGZ1bmMudGFibGVW
YWx1ZXMgPSB0YWJsZVZhbHVlcygpLnByb3BlcnRpZXMoKTsKICAgICByZXR1cm4gZnVuYzsKIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwg
bV95KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6Y3Vyc29yVGFnKSk7CiAgICAgcmVnaXN0
ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdDdXJzb3JFbGVtZW50KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ4LDEwICs0OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxp
bmUgU1ZHRWxsaXBzZUVsZW1lbnQ6OlNWR0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwg
bV9jeShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9yeChMZW5ndGhNb2RlV2lkdGgpCi0gICAg
LCBtX3J5KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX2N4KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVXaWR0aCkpCisgICAgLCBtX2N5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV9yeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9y
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6ZWxsaXBzZVRhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0
aWVzRm9yU1ZHRWxsaXBzZUVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODMsNyArODMsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRGaWx0ZXJF
CiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikKICAgICAgICAgcmV0dXJu
IGNvbG9yTWF0cml4LT5zZXRUeXBlKHR5cGUoKSk7CiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjp2YWx1ZXNBdHRyKQotICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFZhbHVlcyh2
YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVlcygp
LnByb3BlcnRpZXMoKSk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xMzMsNyArMTMzLDcgQEAgUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVDb2xv
ck1hdHJpeEVsZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9IGVsc2Ugewot
ICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKTsKKyAgICAgICAgZmlsdGVyVmFsdWVzID0g
dmFsdWVzKCkucHJvcGVydGllcygpOwogICAgICAgICB1bnNpZ25lZCBzaXplID0gZmlsdGVyVmFs
dWVzLnNpemUoKTsKIAogICAgICAgICBpZiAoKGZpbHRlclR5cGUgPT0gRkVDT0xPUk1BVFJJWF9U
WVBFX01BVFJJWCAmJiBzaXplICE9IDIwKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODIsMTIgKzI4MiwxMiBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNv
bnZvbHZlTWF0cml4CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICghaGFzQXR0cmli
dXRlKFNWR05hbWVzOjpkaXZpc29yQXR0cikpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBrZXJuZWxNYXRyaXhTaXplOyArK2kpCi0gICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2Vy
bmVsTWF0cml4LmF0KGkpOworICAgICAgICAgICAgZGl2aXNvclZhbHVlICs9IGtlcm5lbE1hdHJp
eC5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBpZiAoIWRpdmlzb3JWYWx1ZSkKICAgICAgICAgICAg
IGRpdmlzb3JWYWx1ZSA9IDE7CiAgICAgfQogCi0gICAgYXV0byBlZmZlY3QgPSBGRUNvbnZvbHZl
TWF0cml4OjpjcmVhdGUoZmlsdGVyLCBJbnRTaXplKG9yZGVyWFZhbHVlLCBvcmRlcllWYWx1ZSks
IGRpdmlzb3JWYWx1ZSwgYmlhcygpLCBJbnRQb2ludCh0YXJnZXRYVmFsdWUsIHRhcmdldFlWYWx1
ZSksIGVkZ2VNb2RlKCksIEZsb2F0UG9pbnQoa2VybmVsVW5pdExlbmd0aFhWYWx1ZSwga2VybmVs
VW5pdExlbmd0aFlWYWx1ZSksIHByZXNlcnZlQWxwaGEoKSwga2VybmVsTWF0cml4KTsKKyAgICBh
dXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3Jk
ZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRh
cmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxV
bml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgp
LCBrZXJuZWxNYXRyaXgucHJvcGVydGllcygpKTsKICAgICBlZmZlY3QtPmlucHV0RWZmZWN0cygp
LmFwcGVuZChpbnB1dDEpOwogICAgIHJldHVybiBXVEZNb3ZlKGVmZmVjdCk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDEwICs2NCwxMCBAQCBpbmxpbmUgU1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxl
bWVuCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9maWx0ZXJV
bml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAg
LCBtX3ByaW1pdGl2ZVVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VP
TlVTRSkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICItMTAlIikKLSAgICAsIG1feShMZW5n
dGhNb2RlSGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEy
MCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKQorICAgICwgbV94
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKSkKKyAgICAsIG1feShTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpKQorICAgICwgbV93aWR0aChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikpCisgICAgLCBtX2hlaWdodChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpKQogewogICAgIC8vIFNwZWM6IElm
IHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYg
YSB2YWx1ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdp
ZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBp
ZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsMTAg
KzUxLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9k
ZVdpZHRoLCAiMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICIwJSIpCi0gICAgLCBt
X3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9k
ZUhlaWdodCwgIjEwMCUiKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCwgIjAlIikpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjAl
IikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUi
KSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMDAl
IikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmll
ZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAg
ICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmll
ZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTAgKzUzLDEwIEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdGb3JlaWduT2JqZWN0RWxlbWVu
dDo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2Rl
SGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChM
ZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBt
X3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZShTVkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9w
ZXJ0aWVzRm9yU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTAgKzU1LDEw
IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdJbWFnZUVs
ZW1lbnQ6OlNWR0ltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWln
aHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0
aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkK
KyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lk
dGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykK
IHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ltYWdlRWxlbWVudCgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICAgICAgU1ZHX0xFTkdUSFRZUEVfUEMgPSBMZW5ndGhUeXBlUEMKICAgICB9Owog
Ci0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TGVuZ3RoKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTcsMTEg
KzU3LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgo
aW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0
ZShjb25zdCBTVkdMZW5ndGhWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTGVuZ3RoPj4g
Y3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYg
KGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTcxLDEyICs2NiwxMiBAQCBwdWJsaWM6
CiAKICAgICB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4g
cHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9w
ZXJ0eSgpLnVuaXRUeXBlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8ZmxvYXQ+IHZhbHVl
Rm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
dmFsdWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0
aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC04NCw3ICs3OSw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8g
cmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1ZSh2YWx1ZSwgU1ZHTGVuZ3RoQ29u
dGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQ
cm9wZXJ0eSgpLnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1l
bnQoKSB9KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtOTQsNyArODksNyBAQCBwdWJsaWM6CiAgICAg
CiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOworICAgICAgICBy
ZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMDIsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZh
bHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1
ZVByb3BlcnR5KCkuc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKHZhbHVlSW5TcGVjaWZpZWRVbml0
cyk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICAKICAgICAgICAgcmV0dXJuIHsg
fTsKQEAgLTExMCw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RyaW5nIHZhbHVlQXNT
dHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVB
c1N0cmluZygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlQXNTdHJpbmco
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0
IFN0cmluZyYgdmFsdWUpCkBAIC0xMTgsNyArMTEzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZh
bHVlUHJvcGVydHkoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApA
QCAtMTMxLDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRU
eXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xNDQsNyAr
MTM5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVu
aXRzKHVuaXRUeXBlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5pdFR5cGUsIFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgCkBAIC0xNTMsNyArMTQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBTVkdMZW5ndGgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSkKKyAgICBTVkdMZW5n
dGgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3Bl
cnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KQogICAgIHsKICAgICB9CkBAIC0xNjIsMTEgKzE1Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIDog
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewog
ICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR0xlbmd0aChjb25zdCBTVkdMZW5ndGhWYWx1ZSogaW5p
dGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1ZT4o
aW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDEzICszNiwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aExpc3RWYWx1ZXM+
OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5n
dGhMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHTGVuZ3RoTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhMaXN0
VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR0xlbmd0
aExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3Jh
cHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNW
R0xlbmd0aExpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBl
cnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0
VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGhMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2lu
Y2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIKIAogI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxp
dGllcy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Nyw3IEBAIHZvaWQg
U1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgaWYgKGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlU3RyaW5nKS5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKGxlbmd0aCk7Cisg
ICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR0xlbmd0aFZhbHVlPihsZW5ndGgpKTsK
ICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBlbmQpOwogICAg
IH0KIH0KQEAgLTYwLDcgKzYxLDcgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5QXQoaSkudmFsdWVBc1N0cmluZygpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIxLDI2ICsyMiwzOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdMZW5ndGhW
YWx1ZS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTGVuZ3RoOwogY2xhc3MgU1ZH
TGVuZ3RoTGlzdDsKIAotY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBW
ZWN0b3I8U1ZHTGVuZ3RoVmFsdWU+IHsKK2NsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwg
OiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT4gewogcHVibGljOgogICAgIHZv
aWQgcGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSk7CiAgICAgU3RyaW5n
IHZhbHVlQXNTdHJpbmcoKSBjb25zdDsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7CisgICAgc3RhdGljIFNWR0xlbmd0
aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gIHsgfTsgfQorICAgIHN0YXRpYyBT
VkdMZW5ndGhMaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFNWR0xl
bmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMg
bGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcsIGxlbmd0aE1vZGUpOworICAgICAgICBy
ZXR1cm4gbGlzdDsKKyAgICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTGVuZ3RoTGlz
dFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBsaXN0OworICAg
ICAgICBsaXN0LnBhcnNlKHN0cmluZywgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmlt
YXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAg
ICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVz
JiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIAogICAgIHVzaW5n
IExpc3RJdGVtVHlwZSA9IFNWR0xlbmd0aFZhbHVlOwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9m
ZiA9IFNWR0xlbmd0aDsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHTGVuZ3Ro
TGlzdDsKLQotICAgIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsg
cmV0dXJuICB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0
aExpc3RWYWx1ZXMmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFs
dWUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsMTMgQEAgcHJpdmF0ZToKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoVmFsdWU+IHsKICAgICBz
dGF0aWMgU1ZHTGVuZ3RoVmFsdWUgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdHlwZSkgeyByZXR1
cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdM
ZW5ndGhWYWx1ZT4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoVmFsdWUgbGVuZ3RoOworICAg
ICAgICBsZW5ndGguc2V0VmFsdWVBc1N0cmluZyhzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5n
dGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKS5oYXNFeGNlcHRpb24o
KTsKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKSB7IHJldHVybiBsZW5ndGgudmFsdWVB
c1N0cmluZygpOyB9CiB9OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsMTAgKzUxLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNWR0xpbmVhckdyYWRpZW50
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3gx
KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feTEoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1f
eDIoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX3kyKExlbmd0aE1vZGVIZWlnaHQp
CisgICAgLCBtX3gxKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3kx
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV94MihTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikpCisgICAgLCBtX3kyKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4MiBhdHRyaWJ1dGUg
aXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3
ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6bGluZWFyR3Jh
ZGllbnRUYWcpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1
ZXMuaCIKKworI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK3ZvaWQgU1ZHTGlzdFZhbHVlczxQcm9w
ZXJ0eVR5cGU+OjpyZXNpemUoc2l6ZV90IG5ld1NpemUpCit7CisgICAgc2l6ZV90IGluZGV4ID0g
c2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+Pjo6cmVzaXplKG5ld1NpemUpOwor
ICAgIGZvciAoOyBpbmRleCA8IG5ld1NpemU7ICsraW5kZXgpCisgICAgICAgIGF0KGluZGV4KSA9
IFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgUHJvcGVydHlUeXBlPgorVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8
UHJvcGVydHlUeXBlPjo6ZGVlcENvcHkoKSBjb25zdAoreworICAgIFZlY3RvcjxSZWZQdHI8U1ZH
VmFsdWU+PiB2YWx1ZXM7CisgICAgZm9yIChjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSA6
ICp0aGlzKQorICAgICAgICB2YWx1ZXMuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGUoKnZhbHVlKSk7
CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLy8gVGVtcGxhdGUgZnVuY3Rpb24gZXhwbGljaXQg
aW5zdGFudGlhdGlvbi4KK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxmbG9hdD46OnJlc2l6
ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPEZsb2F0UG9pbnQ+OjpyZXNp
emUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46
OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9y
bVZhbHVlPjo6cmVzaXplKHNpemVfdCk7CisKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFs
dWU+PiBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZl
Y3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFN0cmluZz46OmRlZXBDb3B5KCkg
Y29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxG
bG9hdFBvaW50Pjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZH
VmFsdWU+PiBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6ZGVlcENvcHkoKSBjb25zdDsK
K3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFJlZlB0cjxT
VkdQYXRoU2VnPj46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNW
R1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT46OmRlZXBDb3B5KCkgY29u
c3Q7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFNWR1ZhbHVlOworICAgIAordGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHTGlzdFZhbHVlcyA6IHB1YmxpYyBWZWN0b3I8UmVm
UHRyPFNWR1ZhbHVlPj4geworcHVibGljOgorICAgIFNWR0xpc3RWYWx1ZXMoKSA9IGRlZmF1bHQ7
CisKKyAgICBTVkdMaXN0VmFsdWVzKGNvbnN0IFNWR0xpc3RWYWx1ZXMmIG90aGVyKQorICAgICAg
ICA6IFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PihvdGhlci5kZWVwQ29weSgpKQorICAgIHsKKyAg
ICB9CisKKyAgICB2b2lkIHJlc2l6ZShzaXplX3QpOworICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFs
dWU+PiBkZWVwQ29weSgpIGNvbnN0OworCisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0
eUF0KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBl
Jj4oKmF0KGluZGV4KSk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5QXQoc2l6ZV90IGlu
ZGV4KSB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqYXQoaW5kZXgpKTsgfQor
CisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBmaXJzdFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4g
cHJvcGVydHlBdCgwKTsgfQorICAgIFByb3BlcnR5VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIHsgcmV0
dXJuIHByb3BlcnR5QXQoMCk7IH0KKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgbGFzdFByb3Bl
cnR5KCkgY29uc3QgeyByZXR1cm4gcHJvcGVydHlBdChzaXplKCkgLSAxKTsgfQorICAgIFByb3Bl
cnR5VHlwZSYgbGFzdFByb3BlcnR5KCkgeyByZXR1cm4gcHJvcGVydHlBdChzaXplKCkgLSAxKTsg
fQorCisgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllcygpIGNvbnN0CisgICAgewor
ICAgICAgICBWZWN0b3I8UHJvcGVydHlUeXBlPiBwcm9wZXJ0aWVzOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHZhbHVlIDogKnRoaXMpCisgICAgICAgICAgICBwcm9wZXJ0aWVzLmFwcGVuZChz
dGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHByb3Bl
cnRpZXM7CisgICAgfQorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMCArNzEsMTAgQEAgRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNW
R01hcmtlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVm
WChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3JlZlkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAs
IG1fbWFya2VyV2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpCi0gICAgLCBtX21hcmtlckhlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0LCAiMyIpIAorICAgICwgbV9yZWZYKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3JlZlkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCisgICAgLCBtX21hcmtlcldpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCwgIjMiKSkKKyAgICAsIG1fbWFya2VySGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQsICIzIikpCiAgICAgLCBtX21hcmtlclVuaXRzKFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGgpCiAgICAgLCBtX29yaWVudFR5cGUoU1ZHTWFya2VyT3JpZW50QW5nbGUpCiB7CkBAIC0yMTEs
NyArMjExLDcgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0F1dG8oKQogCiB2
b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUmIGFuZ2xlKQog
ewotICAgIHNldE9yaWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5nbGUucHJvcGVydHlSZWZl
cmVuY2UoKSk7CisgICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS52YWx1
ZVByb3BlcnR5KCkpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCkBAIC0yMzgsMTIgKzIzOCwxMiBAQCB2b2lkIFNWR01hcmtlckVs
ZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gYXV0b1N0YXJ0UmV2ZXJzZVN0cmluZygiYXV0by1zdGFydC1yZXZlcnNlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAvLyBJZiBvcmllbnQgaXMg
bm90IGF1dG8gb3IgYXV0by1zdGFydC1yZXZlcnNlLCB0aGUgcHJldmlvdXMgY2FsbCB0byBzeW5j
aHJvbml6ZU9yaWVudEFuZ2xlIGFscmVhZHkgc2V0IHRoZSBvcmllbnRBdHRyIHRvIHRoZSByaWdo
dCBhbmdsZS4KLSAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlwZS52YWx1ZSA9PSBTVkdNYXJr
ZXJPcmllbnRBdXRvKSB7CisgICAgaWYgKHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUm
Pigqb3duZXJUeXBlLm1fb3JpZW50VHlwZS52YWx1ZSkgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykg
ewogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25lclR5cGUs
IG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0cmluZyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlwZS52
YWx1ZSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQorICAgIGlmIChzdGF0aWNf
Y2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUp
ID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCiAgICAgICAgIG93bmVyVHlwZS5t
X29yaWVudFR5cGUuc3luY2hyb25pemUoJm93bmVyVHlwZSwgb3JpZW50VHlwZVByb3BlcnR5SW5m
bygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRvU3RhcnRSZXZlcnNlU3RyaW5nKTsKIH0KIApAQCAtMjU5
LDExICsyNTksMTEgQEAgU1ZHTWFya2VyT3JpZW50VHlwZSYgU1ZHTWFya2VyRWxlbWVudDo6bwog
ewogICAgIGlmIChhdXRvIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFw
cGVyPFVzZU93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4odGhpcywgb3JpZW50VHlw
ZVByb3BlcnR5SW5mbygpKSkgewogICAgICAgICBpZiAod3JhcHBlci0+aXNBbmltYXRpbmcoKSkg
ewotICAgICAgICAgICAgQVNTRVJUKHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkgPCBT
VkdNYXJrZXJPcmllbnRNYXgpOwotICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U1ZHTWFya2VyT3JpZW50VHlwZSY+KHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwor
ICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqd3Jh
cHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSkgPCBTVkdNYXJrZXJPcmllbnRNYXgpOworICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqd3JhcHBl
ci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJu
IG1fb3JpZW50VHlwZS52YWx1ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3Jp
ZW50VHlwZSY+KCptX29yaWVudFR5cGUudmFsdWUpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gU1ZHTWFya2VyRWxl
bWVudDo6b3JpZW50VHlwZUFuaW1hdGVkKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNzUgKzI5LDEwIEBACiAjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQu
aCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKKyNpbmNsdWRlICJTVkdNYXJrZXJUeXBl
cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gU1ZHTWFya2VyVW5pdHNUeXBlIHsK
LSAgICBTVkdNYXJrZXJVbml0c1Vua25vd24gPSAwLAotICAgIFNWR01hcmtlclVuaXRzVXNlclNw
YWNlT25Vc2UsCi0gICAgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aAotfTsKLQotZW51bSBTVkdN
YXJrZXJPcmllbnRUeXBlIHsKLSAgICBTVkdNYXJrZXJPcmllbnRVbmtub3duID0gMCwKLSAgICBT
VkdNYXJrZXJPcmllbnRBdXRvLAotICAgIFNWR01hcmtlck9yaWVudEFuZ2xlLAotICAgIFNWR01h
cmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UsCi0KLSAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJl
Zm9yZSBoZXJlLgotICAgIFNWR01hcmtlck9yaWVudE1heAotfTsKLQotdGVtcGxhdGU8Pgotc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT4gewotICAgIHN0YXRpYyB1
bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aDsgfQotCi0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhTVkdNYXJrZXJVbml0c1R5cGUg
dHlwZSkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFNWR01h
cmtlclVuaXRzVW5rbm93bjoKLSAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAg
ICAgICBjYXNlIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U6Ci0gICAgICAgICAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJ1c2VyU3BhY2VPblVzZSIpOwotICAgICAgICBjYXNlIFNWR01hcmtl
clVuaXRzU3Ryb2tlV2lkdGg6Ci0gICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdHJv
a2VXaWR0aCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotICAgIH0KLQotICAgIHN0YXRpYyBTVkdNYXJr
ZXJVbml0c1R5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZH
TWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZTsKLSAgICAgICAgaWYgKHZhbHVlID09ICJzdHJva2VX
aWR0aCIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsKLSAg
ICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVW5rbm93bjsKLSAgICB9Ci19OwotCi10ZW1wbGF0
ZTw+Ci1pbmxpbmUgdW5zaWduZWQgU1ZHSURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBl
Pjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmds
ZTsgfQotCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmll
bnRUeXBlPiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVy
biBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9Ci0KLSAgICAvLyB0b1N0cmluZyBp
cyBub3QgbmVlZGVkLCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoKSBoYW5kbGVzIHRoaXMgb24gaXRz
IG93bi4KLQotICAgIHN0YXRpYyBTVkdNYXJrZXJPcmllbnRUeXBlIGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgU1ZHQW5nbGVWYWx1ZSYgYW5nbGUpCi0gICAgewotICAgICAgICBpZiAo
dmFsdWUgPT0gImF1dG8iKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG87
Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0by1zdGFydC1yZXZlcnNlIikKLSAgICAgICAgICAg
IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOwotICAgICAgICBhdXRvIHNl
dFZhbHVlUmVzdWx0ID0gYW5nbGUuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgIGlm
IChzZXRWYWx1ZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBTVkdN
YXJrZXJPcmllbnRVbmtub3duOwotICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7
Ci0gICAgfQotfTsKLQogY2xhc3MgU1ZHTWFya2VyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdGaXRUb1ZpZXdCb3ggewpAQCAtMTY0LDggKzk5LDggQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHN5bmNocm9uaXplT3JpZW50VHlwZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7
CiAgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBsb29rdXBPckNyZWF0ZU9yaWVu
dFR5cGVXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKICAgICBTVkdNYXJrZXJP
cmllbnRUeXBlJiBvcmllbnRUeXBlKCkgY29uc3Q7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSYg
b3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50VHlwZS52YWx1ZTsg
fQotICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRU
eXBlJiB0eXBlKSB7IG1fb3JpZW50VHlwZS52YWx1ZSA9IHR5cGU7IH0KKyAgICBTVkdNYXJrZXJP
cmllbnRUeXBlJiBvcmllbnRUeXBlQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCptX29yaWVudFR5cGUudmFsdWUpOyB9CisgICAgdm9p
ZCBzZXRPcmllbnRUeXBlQmFzZVZhbHVlKGNvbnN0IFNWR01hcmtlck9yaWVudFR5cGUmIHR5cGUp
IHsgb3JpZW50VHlwZUJhc2VWYWx1ZSgpID0gdHlwZTsgfQogICAgIFJlZjxTVkdBbmltYXRlZEVu
dW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBvcmllbnRUeXBl
QW5pbWF0ZWQoKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJUeXBl
cy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJUeXBlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU1ZHUHJv
cGVydHlUcmFpdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNWR01hcmtlclVu
aXRzVHlwZSB7CisgICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwKKyAgICBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlLAorICAgIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgKK307CisK
K2VudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7CisgICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9
IDAsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0bywKKyAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwK
KyAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAorICAgIAorICAgIC8vIEFkZCBu
ZXcgZWxlbWVudHMgYmVmb3JlIGhlcmUuCisgICAgU1ZHTWFya2VyT3JpZW50TWF4Cit9OworICAg
IAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlw
ZT4geworICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZH
TWFya2VyVW5pdHNTdHJva2VXaWR0aDsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoU1ZH
TWFya2VyVW5pdHNUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246CisgICAgICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOgor
ICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2UiKTsKKyAgICAg
ICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgorICAgICAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAg
IH0KKyAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQor
ICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7CisgICAgICAg
IGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtl
clVuaXRzU3Ryb2tlV2lkdGg7CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25vd247
CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01h
cmtlck9yaWVudFR5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgp
IHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7IH0KKyAgICBzdGF0aWMg
U1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0Fu
Z2xlVmFsdWUmIGFuZ2xlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKKyAg
ICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOworICAgICAgICBpZiAodmFsdWUg
PT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QXV0b1N0YXJ0UmV2ZXJzZTsKKyAgICAgICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xl
LnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsK
KyAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOworICAgIH0KK307CisKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwg
dW5zaWduZWQ+PiB7CisgICAgc3RhdGljIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25l
ZD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0Fu
Z2xlVmFsdWUgYW5nbGU7CisgICAgICAgIFNWR01hcmtlck9yaWVudFR5cGUgb3JpZW50VHlwZSA9
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKHN0cmlu
ZywgYW5nbGUpOworICAgICAgICBpZiAob3JpZW50VHlwZSAhPSBTVkdNYXJrZXJPcmllbnRBbmds
ZSkKKyAgICAgICAgICAgIGFuZ2xlID0geyB9OworICAgICAgICByZXR1cm4gc3RkOjpwYWlyPFNW
R0FuZ2xlVmFsdWUsIHVuc2lnbmVkPihhbmdsZSwgb3JpZW50VHlwZSk7CisgICAgfQorfTsKKwor
dGVtcGxhdGU8PgoraW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3Jp
ZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QW5nbGU7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMCArNjAsMTAg
QEAgaW5saW5lIFNWR01hc2tFbGVtZW50OjpTVkdNYXNrRWxlbWVudChjbwogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fbWFza1VuaXRzKFNWR1VuaXRUeXBlczo6
U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1fbWFza0NvbnRlbnRVbml0
cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpCi0gICAgLCBtX3go
TGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIi0x
MCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikKLSAgICAsIG1faGVp
Z2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0
ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUi
IHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmli
dXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIw
JSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGNsYXNzIG9uY2UgU1ZHTWF0cml4IGJlY29tZXMgYW4gYWxpYXMgdG8gRE9NTWF0cml4Lgog
Y2xhc3MgU1ZHTWF0cml4IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1
ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01h
dHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR01hdHJpeChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAg
IH0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGEoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYSgpOworICAgICAgICByZXR1cm4gdmFs
dWVQcm9wZXJ0eSgpLmEoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBKGRv
dWJsZSB2YWx1ZSkKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBKHZhbHVlKTsK
KyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldEEodmFsdWUpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAK
ICAgICBkb3VibGUgYigpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS5iKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuYigpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEIoZG91YmxlIHZhbHVlKQpAQCAtODEsNyArODEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNldEIodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0Qih2
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBjKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmMoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJv
cGVydHkoKS5jKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Qyhkb3VibGUg
dmFsdWUpCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Qyh2YWx1ZSk7CisgICAg
ICAgIHZhbHVlUHJvcGVydHkoKS5zZXRDKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAKICAg
ICBkb3VibGUgZCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5k
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuZCgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEQoZG91YmxlIHZhbHVlKQpAQCAtMTEzLDcgKzExMyw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0RCh2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXREKHZh
bHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZSgpCiAgICAgewotICAgICAg
ICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5lKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVBy
b3BlcnR5KCkuZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEUoZG91Ymxl
IHZhbHVlKQpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0RSh2YWx1ZSk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRFKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAK
ICAgICBkb3VibGUgZigpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS5mKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkuZigpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEYoZG91YmxlIHZhbHVlKQpAQCAtMTQ1LDcgKzE0NSw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0Rih2YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRG
KHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3Ig
fTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubXVsdGlwbHko
c2Vjb25kTWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICBhdXRvIHJlc3VsdCA9
IHZhbHVlUHJvcGVydHkoKS5tdWx0aXBseShzZWNvbmRNYXRyaXgudmFsdWVQcm9wZXJ0eSgpKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3Jl
YXRlKHJlc3VsdCk7CkBAIC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLmludmVyc2UoKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuaW52
ZXJzZSgpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIApAQCAtMTgwLDcgKzE4
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS50cmFuc2xhdGUoeCwgeSk7ICAgICAg
ICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkudHJhbnNsYXRlKHgsIHkp
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUocmVzdWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJl
bmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0g
dmFsdWVQcm9wZXJ0eSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMDIs
NyArMjAyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShz
Y2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQg
PSB2YWx1ZVByb3BlcnR5KCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0
b3JZKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJp
eDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMTMsNyArMjEzLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVByb3BlcnR5KCkucm90YXRlKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMjQsNyArMjI0
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7
ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkucm90YXRlRnJv
bVZlY3Rvcih4LCB5KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTIz
Nyw3ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFgoKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5mbGlwWCgpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVz
dWx0KTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxp
cFkoKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5mbGlw
WSgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI1OSw3ICsyNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFs
dWVQcm9wZXJ0eSgpLnNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAg
ICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNzAsMTQgKzI3MCwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAgCisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNrZXdZKGFuZ2xlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhW
YWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+KCZhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hdHJpeFZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2NCArNDEsNTQgQEAg
cHVibGljOgogICAgIFNWR01hdHJpeFZhbHVlIHRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0
eSkKICAgICB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAg
ICAgY29weS50cmFuc2xhdGUodHgsIHR5KTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVl
IHsgY29weSB9OworICAgICAgICByZXR1cm4gY29weS50cmFuc2xhdGUodHgsIHR5KTsKICAgICB9
CiAKICAgICBTVkdNYXRyaXhWYWx1ZSBzY2FsZShkb3VibGUgcykKICAgICB7CiAgICAgICAgIEFm
ZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5zY2FsZShzLCBzKTsK
LSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OworICAgICAgICByZXR1cm4g
Y29weS5zY2FsZShzLCBzKTsKICAgICB9CiAKICAgICBTVkdNYXRyaXhWYWx1ZSBzY2FsZU5vblVu
aWZvcm0oZG91YmxlIHN4LCBkb3VibGUgc3kpCiAgICAgewogICAgICAgICBBZmZpbmVUcmFuc2Zv
cm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuc2NhbGUoc3gsIHN5KTsKLSAgICAgICAg
cmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OworICAgICAgICByZXR1cm4gY29weS5zY2Fs
ZShzeCwgc3kpOwogICAgIH0KIAogICAgIFNWR01hdHJpeFZhbHVlIHJvdGF0ZShkb3VibGUgZCkK
ICAgICB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAg
Y29weS5yb3RhdGUoZCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsK
KyAgICAgICAgcmV0dXJuIGNvcHkucm90YXRlKGQpOwogICAgIH0KIAogICAgIFNWR01hdHJpeFZh
bHVlIGZsaXBYKCkKICAgICB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBjb3B5IHsgKnRoaXMg
fTsKLSAgICAgICAgY29weS5mbGlwWCgpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUg
eyBjb3B5IH07CisgICAgICAgIHJldHVybiBjb3B5LmZsaXBYKCk7CiAgICAgfQogCiAgICAgU1ZH
TWF0cml4VmFsdWUgZmxpcFkoKQogICAgIHsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkg
eyAqdGhpcyB9OwotICAgICAgICBjb3B5LmZsaXBZKCk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRy
aXhWYWx1ZSB7IGNvcHkgfTsKKyAgICAgICAgcmV0dXJuIGNvcHkuZmxpcFkoKTsKICAgICB9CiAK
ICAgICBTVkdNYXRyaXhWYWx1ZSBza2V3WChkb3VibGUgYW5nbGUpCiAgICAgewogICAgICAgICBB
ZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuc2tld1goYW5nbGUp
OwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07CisgICAgICAgIHJldHVy
biBjb3B5LnNrZXdYKGFuZ2xlKTsKICAgICB9CiAKICAgICBTVkdNYXRyaXhWYWx1ZSBza2V3WShk
b3VibGUgYW5nbGUpCiAgICAgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlz
IH07Ci0gICAgICAgIGNvcHkuc2tld1koYW5nbGUpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4
VmFsdWUgeyBjb3B5IH07CisgICAgICAgIHJldHVybiBjb3B5LnNrZXdZKGFuZ2xlKTsKICAgICB9
CiAKICAgICBTVkdNYXRyaXhWYWx1ZSBtdWx0aXBseShjb25zdCBTVkdNYXRyaXhWYWx1ZSYgb3Ro
ZXIpCiAgICAgewotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0gICAg
ICAgIGNvcHkgKj0gc3RhdGljX2Nhc3Q8Y29uc3QgQWZmaW5lVHJhbnNmb3JtJj4ob3RoZXIpOwot
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07CisgICAgICAgIHJldHVybiAq
dGhpcyAqIG90aGVyOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFNWR01hdHJpeFZhbHVlPiBp
bnZlcnNlKCkgY29uc3QKQEAgLTExNSw4ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAKICAgICAgICAgQWZmaW5lVHJhbnNmb3Jt
IGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7Ci0g
ICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKKyAgICAgICAgcmV0dXJuIFNW
R01hdHJpeFZhbHVlIHsgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpIH07CiAgICAgfQogCiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1Byb3Bl
cnR5VGVhck9mZjxmbG9hdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRl
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR051bWJlcihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkp
OwogICAgIH0KQEAgLTQxLDExICs0MSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyPiBjcmVhdGUoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihpbml0aWFsVmFsdWUpKTsKLSAg
ICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNW
R051bWJlcj4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAg
ICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01NSw3ICs1MCw3IEBA
IHB1YmxpYzoKIAogICAgIGZsb2F0IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhm
bG9hdCB2YWx1ZSkKQEAgLTYzLDE0ICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpID0gdmFsdWU7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKSA9IHZhbHVlOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
IAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXIo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oJmFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC03OSwxMSArNzQsNiBAQCBw
cml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVl
KQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdOdW1iZXIoY29uc3QgZmxvYXQqIGlu
aXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRpYWxW
YWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYs
MTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPjsKICAgICB1
c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0
V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1iZXJMaXN0KEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJM
aXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAg
IHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBTVkdOdW1i
ZXJMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAg
ICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgbnVtYmVyKSkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgYXBwZW5kKG51bWJlcik7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6
Y3JlYXRlPGZsb2F0PihudW1iZXIpKTsKICAgICB9CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgU3Ry
aW5nIFNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDAp
CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGF0KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocHJvcGVydHlB
dChpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMjQgKzIwLDMxIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHTGlz
dFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJlcjsKIGNs
YXNzIFNWR051bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBw
dWJsaWMgVmVjdG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDog
cHVibGljIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNv
bnN0IFN0cmluZyYpOwogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CisgICAgCiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFs
dWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlz
dFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdOdW1iZXJMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdOdW1iZXJMaXN0VmFs
dWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIGxp
c3Q7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTnVtYmVyTGlz
dFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KLQogICAgIHVz
aW5nIExpc3RJdGVtVHlwZSA9IGZsb2F0OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNW
R051bWJlcjsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHTnVtYmVyTGlzdDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjE5LDYgKzIxOSwzMSBAQCBib29sIHBhcnNlTnVtYmVyT3B0aW9u
YWxOdW1iZXIoY29uc3QgU3RyCiAgICAgcmV0dXJuIGN1ciA9PSBlbmQ7CiB9CiAKK2Jvb2wgcGFy
c2VQb2ludChjb25zdCBTdHJpbmcmIHMsIEZsb2F0UG9pbnQmIHBvaW50KQoreworICAgIGlmIChz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gdXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzID0gU3RyaW5nVmlldyhzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKKyAgICBj
b25zdCBVQ2hhciogY3VyID0gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzOworICAgIGNvbnN0IFVDaGFy
KiBlbmQgPSBjdXIgKyBzLmxlbmd0aCgpOworCisgICAgaWYgKCFza2lwT3B0aW9uYWxTVkdTcGFj
ZXMoY3VyLCBlbmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB4ID0gMDsK
KyAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB4KSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZmxvYXQgeSA9IDA7CisgICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBvaW50ID0gRmxvYXRQb2ludCh4LCB5KTsK
KworICAgIC8vIGRpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVuZAorICAg
IHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKK30KKwogYm9vbCBwYXJz
ZVJlY3QoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBhdXRv
IHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcoc3RyaW5nKS51cGNvbnZlcnRlZENo
YXJhY3RlcnMoKTsKQEAgLTI2NCw3ICsyODksNyBAQCBib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0
YShTVkdQb2ludExpc3RWCiAgICAgICAgIH0KICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2Vz
KGN1ciwgZW5kKTsKIAotICAgICAgICBwb2ludHNMaXN0LmFwcGVuZChGbG9hdFBvaW50KHhQb3Ms
IHlQb3MpKTsKKyAgICAgICAgcG9pbnRzTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9h
dFBvaW50PihGbG9hdFBvaW50KHhQb3MsIHlQb3MpKSk7CiAgICAgfQogICAgIHJldHVybiBjdXIg
PT0gZW5kICYmICFkZWxpbVBhcnNlZDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFy
c2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXJzZXJVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBib29s
IHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3QgU3RyCiBib29sIHBhcnNlQXJjRmxhZyhj
b25zdCBMQ2hhciomIHB0ciwgY29uc3QgTENoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBib29sIHBh
cnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxh
Zyk7CiBib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmLCBGbG9hdFJlY3QmKTsKK2Jvb2wgcGFy
c2VQb2ludChjb25zdCBTdHJpbmcmLCBGbG9hdFBvaW50Jik7CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBwYXJzZUZsb2F0UG9pbnQoY29uc3QgQ2hhcmFjdGVyVHlw
ZSomIGN1cnJlbnQsIGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgRmxvYXRQb2ludCYpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOSw2ICsxOSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHUGF0aFV0
aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwzNCArNDgsNDIgQEAgcHVi
bGljOgogICAgIHR5cGVkZWYgRGF0YTo6Y29uc3RfaXRlcmF0b3IgRGF0YUl0ZXJhdG9yOwogCiAg
ICAgU1ZHUGF0aEJ5dGVTdHJlYW0oKSB7IH0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBE
YXRhJiBkYXRhKSA6IG1fZGF0YShkYXRhKSB7IH0KKyAgICBTVkdQYXRoQnl0ZVN0cmVhbShTVkdQ
YXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAgICAgICA6IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1f
ZGF0YSkpCisgICAgeworICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU1ZH
UGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0
IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKKyAgICAgICAgOiBtX2RhdGEob3RoZXIubV9kYXRh
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7CiAgICAgfQog
Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29u
c3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0b3I9KFNWR1BhdGhCeXRlU3RyZWFtJiYg
b3RoZXIpCisgICAgeworICAgICAgICBtX2RhdGEgPSBXVEZNb3ZlKG90aGVyLm1fZGF0YSk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJh
dG9yPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1
cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIG1fZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAg
ICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
VkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA9PSBvdGhlci5t
X2RhdGE7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgIT0gb3RoZXIubV9kYXRhOyB9CisKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNvcHkoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVTdHJlYW0+KG1fZGF0YSk7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigqdGhpcyk7
CiAgICAgfQogCiAgICAgRGF0YUl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
LmJlZ2luKCk7IH0KICAgICBEYXRhSXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
LmVuZCgpOyB9CiAKICAgICB2b2lkIGFwcGVuZCh1bnNpZ25lZCBjaGFyIGJ5dGUpIHsgbV9kYXRh
LmFwcGVuZChieXRlKTsgfQotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAoYXV0byBzdHJlYW0gOiBvdGhlcikKLSAgICAg
ICAgICAgIGFwcGVuZChzdHJlYW0pOwotICAgIH0KKyAgICB2b2lkIGFwcGVuZChjb25zdCBTVkdQ
YXRoQnl0ZVN0cmVhbSYgb3RoZXIpIHsgbV9kYXRhLmFwcGVuZFZlY3RvcihvdGhlci5tX2RhdGEp
OyB9CiAgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KLSAgICBib29sIGlzRW1w
dHkoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhLnNpemUoKTsgfQorICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc0VtcHR5KCk7IH0KICAgICB1bnNpZ25lZCBzaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQogCiAgICAgLy8gT25seSBkZWZpbmVkIHRv
IGxldCBTVkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2UgdGhlIHN0YW5kYXJkIGxpc3QgY29kZSBw
YXRocyAtIHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxlZC4KQEAgLTgyLDUgKzkyLDE2IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgRGF0YSBtX2RhdGE7CiB9OworICAgIAordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPiB7CisgICAgc3RhdGlj
IFNWR1BhdGhCeXRlU3RyZWFtIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1BhdGhCeXRlU3Ry
ZWFtKCk7IH0KKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1BhdGhCeXRlU3RyZWFtIGJ5dGVTdHJl
YW07CisgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgYnl0
ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgIHJldHVybiBieXRlU3RyZWFtOwor
ICAgIH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBF
TkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6
OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAg
ICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpCisgICAgLCBtX3BhdGhTZWdM
aXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdVbmFsdGVyZWRSb2xlKSkKICAgICAsIG1f
aXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnBhdGhUYWcpKTsKQEAgLTI1NSw3ICsyNTUsNyBAQCB2b2lkIFNWR1BhdGhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmIChtX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNo
cm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVt
ZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPih0aGlzLCBkUHJvcGVy
dHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAgICAgICBTVkdQYXRoU2VnTGlzdFZh
bHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKICAgICAgICAgICAgIGJ1aWxkU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3BhdGhCeXRlU3RyZWFtLCAqdGhpcywg
bmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAgICAgICBtX3BhdGhTZWdMaXN0LnZh
bHVlID0gbmV3TGlzdDsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFs
dWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMyNyw4ICszMjcsOCBAQCBSZWY8U1ZHQW5p
bWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAgICAgaWYgKGF1dG8gcHJvcGVydHkgPSBT
VkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmlt
YXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZv
KCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0gICAgaWYgKG93bmVyVHlwZS5tX3Bh
dGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZh
bHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUs
IG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICBp
ZiAoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNl
Z0xpc3QudmFsdWUpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVl
c0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIHN0
YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0
LnZhbHVlKSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVyVHlw
ZSwgZFByb3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBA
IC0zMzksNyArMzM5LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNWR0Vs
ZQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQYXRoRWxlbWVu
dD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnNo
b3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJUeXBlLm1fcGF0aFNl
Z0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVO
YW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAg
IG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0
eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMm
Pigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAK
IHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCkKQEAg
LTM5MiwxMCArMzkyLDEwIEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdl
ZCgKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5hbHRlcmVkUm9sZToKICAgICAg
ICAgaWYgKGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCkgewotICAg
ICAgICAgICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgICAg
ICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3Qu
dmFsdWUubGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2lu
Zyk7CisgICAgICAgICAgICBBU1NFUlQoIXN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVz
Jj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBhcHBlbmRT
VkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0
VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmxhc3RQcm9wZXJ0eSgpLmNvcHlSZWYoKSwg
bV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyht
X3BhdGhTZWdMaXN0LnZhbHVlLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsK
KyAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1
ZSksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2NhY2hl
ZFBhdGggPSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1Vu
ZGVmaW5lZFJvbGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHZvaWQgU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyQ29udGV4dEFuZFJvbGVzKCkKIHsKLSAgICBBU1NF
UlQobV92YWx1ZXMpOwotICAgIGZvciAoYXV0byYgaXRlbSA6ICptX3ZhbHVlcykKKyAgICBmb3Ig
KGF1dG8mIGl0ZW0gOiB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnRpZXMoKSkKICAgICAgICAgc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4oaXRlbS5nZXQoKSktPnNldENvbnRleHRB
bmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKCkKIHsKLSAgICBBU1NFUlQobV92YWx1ZXMpOwot
ICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGNsZWFyQ29udGV4dEFuZFJvbGVz
KCk7CkBAIC01MCw4ICs0OCw4IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZH
UGF0aFMKIAogRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6
cmVwbGFjZUl0ZW0oUmVmPFNWR1BhdGhTZWc+JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7
Ci0gICAgaWYgKGluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSkgewotICAgICAgICBMaXN0SXRlbVR5
cGUgcmVwbGFjZWRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkgeworICAgICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJ
dGVtID0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGluZGV4KTsKICAgICAgICAgQVNTRVJU
KHJlcGxhY2VkSXRlbSk7CiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4
dCo+KHJlcGxhY2VkSXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhT
ZWdVbmRlZmluZWRSb2xlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwxMiBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdFZhbHVlcz46Okxpc3RJdGVtVHlwZTsKIAot
ICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRo
U2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3Jl
YXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGlj
IFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUs
IHZhbHVlcywgd3JhcHBlcnMpKTsKQEAgLTQ1LDExICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIGlu
dCBmaW5kSXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+
c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzaXplID0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisgICAgICAgICAgICBpZiAoaXRlbSA9PSB2
YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7
CiAgICAgICAgIH0KIApAQCAtNTgsMTAgKzU2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1v
dmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdy
YXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUlu
ZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5yZW1v
dmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaXRlbUluZGV4
KTsKIAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwpAQCAtOTMsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhT
ZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBw
YXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RW
YWx1ZXM+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9w
ZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdS
b2xlKQpAQCAtMTE3LDE0ICsxMTQsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkgZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1f
dmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQo
KSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNv
bW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0TW9k
aWZpY2F0aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoTGlzdE1v
ZGlmaWNhdGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5hbAogICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFBy
b3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9kaWZpY2F0aW9uKTsKKyAgICAgICAgdmFs
dWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVs
ZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5j
b21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQq
IGluZGV4VG9Nb2RpZnkpIGZpbmFsOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaXN0QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0QnVpbGRlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3OCAr
NTgsNzggQEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpTVkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBT
VkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2lu
dCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJz
b2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0
aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
bV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVU
byhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9S
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5h
dGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0aFNlZ1Jv
bGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxk
ZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewog
ICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJz
KHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkp
OwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBv
aW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1v
ZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgp
LCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1f
cGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCks
IHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9w
YXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9D
dWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQu
eCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1Jv
bGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQ
dHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwg
cG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9p
bnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChT
VkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2
b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9hdFBv
aW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0
ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2lu
dDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwg
dGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkp
OwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRo
U2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0
YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwg
bV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZl
VG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29y
ZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMp
Ci0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQ
b2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdS
b2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEs
IGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFn
LCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcs
IHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVu
ZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwg
cjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIy
LCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNl
Zz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcs
IG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9z
ZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSk7CisgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJj
ZTo6aGFzTW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1Nl
Z21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21lbnQg
PSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1fcGF0
aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAgICBwYXRoU2VnVHlwZSA9IHN0
YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkpOwogICAg
ICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUxLDcgKzUxLDcgQEAgYm9v
bCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdTZWdtZQogCiBTVkdQYXRoU2VnVHlwZSBT
VkdQYXRoU2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQoU1ZHUGF0aFNlZ1R5cGUpCiB7Ci0gICAg
bV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21l
bnQgPSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9pdGVtQ3VycmVudCk7CiAgICAgU1ZHUGF0
aFNlZ1R5cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9zZWdt
ZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJuIHBh
dGhTZWdUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVz
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxMCArMTksOSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1
ZXMuaCIKICNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFp
dHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDcgKzMyLDcgQEAgY2xhc3MgU1ZH
UGF0aFNlZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVh
ck9mZjsKIAotY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0
cjxTVkdQYXRoU2VnPj4geworY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgU1ZH
TGlzdFZhbHVlczxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBT
VkdQYXRoU2VnTGlzdFZhbHVlcyhTVkdQYXRoU2VnUm9sZSByb2xlKQogICAgICAgICA6IG1fcm9s
ZShyb2xlKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgYm9vbCBhcHBlbmRTVkdQYXRoQnl0
ZVN0cmVhbUZyb21TVkdQYXRoUwogICAgIEFTU0VSVChwYXJzaW5nTW9kZSA9PSBVbmFsdGVyZWRQ
YXJzaW5nKTsKIAogICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzIGFwcGVuZGVkSXRlbUxpc3QoUGF0
aFNlZ1VuYWx0ZXJlZFJvbGUpOwotICAgIGFwcGVuZGVkSXRlbUxpc3QuYXBwZW5kKFdURk1vdmUo
cGF0aFNlZykpOworICAgIGFwcGVuZGVkSXRlbUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihXVEZNb3ZlKHBhdGhTZWcpKSk7CiAKICAgICBTVkdQYXRoQnl0
ZVN0cmVhbSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAgU1ZHUGF0aFNlZ0xpc3RTb3VyY2Ugc291
cmNlKGFwcGVuZGVkSXRlbUxpc3QpOwpAQCAtMjA2LDE1ICsyMDYsMTQgQEAgYm9vbCBidWlsZEFu
aW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oY29ucwogCiBib29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJl
YW0oU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0cmVhbVRvQXBwZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRl
U3RyZWFtJiBieVN0cmVhbSwgdW5zaWduZWQgcmVwZWF0Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJl
dHVybiB3aGVuIHN0cmVhbVRvQXBwZW5kVG8gaXMgZW1wdHk/IERvbid0IHdlIHN0aWxsIG5lZWQg
dG8gYXBwZW5kPworICAgIC8vIFRoZSBieVN0cmVhbSB3aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJl
YW1Ub0FwcGVuZFRvLiBTbyBzdHJlYW1Ub0FwcGVuZFRvIGhhcyB0byBoYXZlIGVsZW1lbnRzLgog
ICAgIGlmIChzdHJlYW1Ub0FwcGVuZFRvLmlzRW1wdHkoKSB8fCBieVN0cmVhbS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGZyb20gYSBzdHJlYW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQg
c3RyZWFtPworICAgIC8vIGJ1aWxkZXIgaXMgdGhlIGRlc3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZy
b21Tb3VyY2UgYW5kIGJ5U291cmNlLiBUaGUgc3RyZWFtIG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5l
LiBzdHJlYW1Ub0FwcGVuZFRvKSBoYXMgdG8gYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyBhZGRB
bmltYXRlZFBhdGguCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFt
VG9BcHBlbmRUbyk7Ci0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0
cmVhbVRvQXBwZW5kVG87Ci0gICAgc3RyZWFtVG9BcHBlbmRUby5jbGVhcigpOworICAgIFNWR1Bh
dGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gV1RGTW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsK
IAogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGZyb21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkp
OwogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGJ5U291cmNlKGJ5U3RyZWFtKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxG
bG9hdFBvaW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHUG9pbnQoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAg
ICB9CkBAIC00MywxMSArNDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1BvaW50KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZH
UG9pbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50KiBpbml0aWFsVmFsdWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludChpbml0aWFsVmFsdWUpKTsKLSAgICB9
Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1Bv
aW50Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAg
ICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU3LDcgKzUyLDcgQEAgcHVi
bGljOgogCiAgICAgZmxvYXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZl
cmVuY2UoKS54KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkueCgpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFgoZmxvYXQgeFZhbHVlKQpAQCAtNjUsNyArNjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldFgoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgp
LnNldFgoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTczLDcgKzY4LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgeSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS55KCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVByb3BlcnR5KCkueSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFko
ZmxvYXQgeFZhbHVlKQpAQCAtODEsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVl
KTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTkyLDE5ICs4NywxOSBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIG5ld1Bv
aW50ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnByb3BlcnR5
UmVmZXJlbmNlKCkpOworICAgICAgICBhdXRvIG5ld1BvaW50ID0gdmFsdWVQcm9wZXJ0eSgpLm1h
dHJpeFRyYW5zZm9ybShtYXRyaXgudmFsdWVQcm9wZXJ0eSgpKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR1BvaW50OjpjcmVhdGUobmV3UG9pbnQpOwogICAg
IH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAg
ICBTVkdQb2ludChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDog
U1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2
YWx1ZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8RmxvYXRQb2ludD4obnVsbHB0ciwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTEx
MywxMSArMTA4LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxG
bG9hdFBvaW50Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNW
R1BvaW50KGNvbnN0IEZsb2F0UG9pbnQqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9p
bnRMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR1BvaW50TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBS
ZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9p
bnRMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1BvaW50TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdy
YXBwZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMp
CisgICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nCiAgICAgICAgIGlm
IChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7IC8vIEZJWE1FOiBTaG91
bGRuJ3Qgd2UgdXNlIGNvbW1hcyB0byBzZXBlcmF0ZT8KIAotICAgICAgICBjb25zdCBhdXRvJiBw
b2ludCA9IGF0KGkpOworICAgICAgICBjb25zdCBhdXRvJiBwb2ludCA9IHByb3BlcnR5QXQoaSk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LngoKSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDIyICsyMSwyOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1By
b3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNWR1BvaW50OwogY2xhc3MgU1ZHUG9pbnRMaXN0OwogCi1jbGFzcyBT
VkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPEZsb2F0UG9pbnQ+IHsKK2Ns
YXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPEZsb2F0
UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OwogfTsK
IAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVz
PiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFs
dWVzPiB7CiAgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiB7IH07IH0KLQorICAgIHN0YXRpYyBTVkdQb2ludExpc3RWYWx1ZXMgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1BvaW50TGlzdFZhbHVlcyBs
aXN0OworICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEobGlzdCwgc3RyaW5nKTsKKyAgICAg
ICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IEZsb2F0UG9p
bnQ7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHUG9pbnQ7CiAgICAgdXNpbmcgTGlz
dFByb3BlcnR5VGVhck9mZiA9IFNWR1BvaW50TGlzdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvbHlFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCB2b2lk
IFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zCiAgICAgICAgIGlmIChhdXRvIHdy
YXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BvbHlFbGVtZW50
LCBTVkdBbmltYXRlZFBvaW50TGlzdD4odGhpcywgcG9pbnRzUHJvcGVydHlJbmZvKCkpKQogICAg
ICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdBbmltYXRlZFBvaW50TGlzdD4od3JhcHBl
ciktPmRldGFjaExpc3RXcmFwcGVycyhuZXdMaXN0LnNpemUoKSk7CiAKLSAgICAgICAgbV9wb2lu
dHMudmFsdWUgPSBuZXdMaXN0OworICAgICAgICBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqbV9wb2ludHMudmFsdWUpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN5bmNo
cm9uaXplUG9pbnRzKFMKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0gZG93bmNhc3Q8
U1ZHUG9seUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5cGUubV9w
b2ludHMuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBvd25lclR5cGUu
bV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJbmZvKCktPmF0
dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOwor
ICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2ludHNQcm9w
ZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVz
Jj4oKm93bmVyVHlwZS5tX3BvaW50cy52YWx1ZSkudmFsdWVBc1N0cmluZygpKTsKIH0KIAogUmVm
PFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1BvbHlFbGVtZW50Ojpsb29rdXBPckNyZWF0ZVBvaW50
c1dyYXBwZXIoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgcHVibGlj
OgogICAgIFJlZjxTVkdQb2ludExpc3Q+IHBvaW50cygpOwogICAgIFJlZjxTVkdQb2ludExpc3Q+
IGFuaW1hdGVkUG9pbnRzKCk7CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRzLnZhbHVlOyB9CisgICAgU1ZHUG9pbnRMaXN0VmFsdWVz
JiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqbV9wb2ludHMudmFsdWUpOyB9CiAKICAgICBzdGF0aWMgY29uc3QgU1ZHUHJvcGVydHlJ
bmZvKiBwb2ludHNQcm9wZXJ0eUluZm8oKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbyA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAgc3RhdGlj
IFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbyhhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0K
QEAgLTQyLDExICs0Miw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShjb25zdCBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQot
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQog
ICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU2LDcg
KzUxLDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgYWxpZ24oKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYWxpZ24oKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUHJvcGVydHkoKS5hbGlnbigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEFsaWduKGZsb2F0IHZhbHVlKQpAQCAtNjQsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0QWxpZ24odmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVl
UHJvcGVydHkoKS5zZXRBbGlnbih2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC03NCw3ICs2OSw3IEBAIHB1
YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1lZXRPclNsaWNlKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkubWVldE9yU2xpY2UoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRNZWV0T3JTbGljZShmbG9hdCB2YWx1ZSkKQEAgLTgyLDcgKzc3LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1lZXRPclNsaWNlKHZhbHVlKTsKKyAgICAgICAg
YXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0TWVldE9yU2xpY2UodmFsdWUpOwogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKIApAQCAtOTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFs
dWUpCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9
CkBAIC0xMDAsMTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAg
IH0KLQotICAgIGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsK
LSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDExIEBAIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmUKIHsKIH0KIAorU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7
CisgICAgcGFyc2Uoc3RyaW5nKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlOjpzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCBhbGlnbikKIHsKICAgICBp
ZiAoYWxpZ24gPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiB8fCBhbGlnbiA+IFNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24odW5zaWdu
ZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9h
bGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKICAgICBzdGF0
aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAgc3RhdGljIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsgfQogICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVy
biB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NSwxMiArNTUsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIAogaW5saW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fY3go
TGVuZ3RoTW9kZVdpZHRoLCAiNTAlIikKLSAgICAsIG1fY3koTGVuZ3RoTW9kZUhlaWdodCwgIjUw
JSIpCi0gICAgLCBtX3IoTGVuZ3RoTW9kZU90aGVyLCAiNTAlIikKLSAgICAsIG1fZngoTGVuZ3Ro
TW9kZVdpZHRoKQotICAgICwgbV9meShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9mcihMZW5n
dGhNb2RlT3RoZXIsICIwJSIpCisgICAgLCBtX2N4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCwgIjUwJSIpKQorICAgICwgbV9jeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
LCAiNTAlIikpCisgICAgLCBtX3IoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiNTAl
IikpCisgICAgLCBtX2Z4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBt
X2Z5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV9mcihTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIsICIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSBj
eC9jeS9yL2ZyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlm
IGEgdmFsdWUgb2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnJhZGlhbEdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDEzICsyMCwxMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdQ
cm9wZXJ0eVRlYXJPZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0VHJhaXRzLmgiCisjaW5jbHVkZSAi
U1ZHUHJvcGVydHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdS
ZWN0IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBz
dGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtMzYsMTEgKzM2LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRpYWxWYWx1ZSkpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCog
aW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVj
dChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1JlY3Q+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0
aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigp
KQpAQCAtNTAsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB4KCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
UHJvcGVydHkoKS54KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WChmbG9h
dCB4VmFsdWUpCkBAIC01OCw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WCh4VmFsdWUpOwor
ICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WCh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNjYsNyArNjEsNyBAQCBwdWJsaWM6CiAK
ICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS55KCk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4VmFsdWUpCkBAIC03NCw3ICs2OSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0WSh4
VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpA
QCAtODIsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB3aWR0aCgpCiAgICAgewotICAg
ICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS53aWR0aCgpOworICAgICAgICByZXR1cm4g
dmFsdWVQcm9wZXJ0eSgpLndpZHRoKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0V2lkdGgoZmxvYXQgd2lkdGhWYWx1ZSkKQEAgLTkwLDcgKzg1LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFdpZHRo
KHdpZHRoVmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtOTgsNyArOTMsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCBoZWlnaHQoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuaGVpZ2h0KCk7CisgICAgICAg
IHJldHVybiB2YWx1ZVByb3BlcnR5KCkuaGVpZ2h0KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0SGVpZ2h0KGZsb2F0IGhlaWdodFZhbHVlKQpAQCAtMTA2LDE0ICsxMDEsMTQg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRIZWlnaHQoaGVpZ2h0VmFsdWUpOworICAgICAgICB2YWx1ZVBy
b3BlcnR5KCkuc2V0SGVpZ2h0KGhlaWdodFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5p
bWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTEyMiwxMSArMTE3
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihp
bml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1JlY3QoY29uc3Qg
RmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZs
b2F0UmVjdD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1
ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1
ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxv
YXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlw
ZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMSAr
NzEsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1NW
R0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVp
Z2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIp
KQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikp
CisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkpCisgICAgLCBtX2hl
aWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUi
KSkpCiAgICAgLCBtX3RpbWVDb250YWluZXIoU01JTFRpbWVDb250YWluZXI6OmNyZWF0ZSgqdGhp
cykpCisgICAgLCBtX2N1cnJlbnRUcmFuc2xhdGUoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50
PigpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcpKTsKICAgICBy
ZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1NWR0VsZW1lbnQoKTsKQEAgLTE5Nyw5ICsx
OTgsOSBAQCBSZWY8U1ZHUG9pbnQ+IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuCiAKIHZvaWQg
U1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZShjb25zdCBGbG9hdFBvaW50JiB0cmFu
c2xhdGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRlID09IHRyYW5zbGF0aW9uKQor
ICAgIGlmIChzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPT0g
dHJhbnNsYXRpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRUcmFuc2xhdGUgPSB0
cmFuc2xhdGlvbjsKKyAgICBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5z
bGF0ZSkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAK
QEAgLTMzNSwxMiArMzM2LDEyIEBAIFJlZjxOb2RlTGlzdD4gU1ZHU1ZHRWxlbWVudDo6Y29sbGVj
dEludGUKIAogc3RhdGljIGJvb2wgY2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlv
dXQoU1ZHRWxlbWVudCYgZWxlbWVudCwgU1ZHUmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gUmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrSW50ZXJzZWN0aW9uKGVsZW1lbnQucmVuZGVyZXIoKSwg
cmVjdC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxPYmpl
Y3Q6OmNoZWNrSW50ZXJzZWN0aW9uKGVsZW1lbnQucmVuZGVyZXIoKSwgcmVjdC52YWx1ZVByb3Bl
cnR5KCkpOwogfQogICAgIAogc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRp
bmdMYXlvdXQoU1ZHRWxlbWVudCYgZWxlbWVudCwgU1ZHUmVjdCYgcmVjdCkKIHsKLSAgICByZXR1
cm4gUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrRW5jbG9zdXJlKGVsZW1lbnQucmVuZGVyZXIo
KSwgcmVjdC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNoZWNrRW5jbG9zdXJlKGVsZW1lbnQucmVuZGVyZXIoKSwgcmVjdC52YWx1ZVByb3Bl
cnR5KCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6OmdldEludGVyc2VjdGlv
bkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJlbmNlRWxlbWVudCkKQEAgLTQx
NCw3ICs0MTUsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50OjpjcmVhdGVTCiAK
IFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21N
YXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiB7Ci0gICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3Jl
YXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkgfSk7Cisg
ICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4
LnZhbHVlUHJvcGVydHkoKSB9KTsKIH0KIAogQWZmaW5lVHJhbnNmb3JtIFNWR1NWR0VsZW1lbnQ6
OmxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUgbW9k
ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTYzLDcgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUN1cnJlbnRWaWV3
IHsgZmFsc2UgfTsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29t
QW5kUGFuTWFnbmlmeSB9OwogICAgIFJlZjxTTUlMVGltZUNvbnRhaW5lcj4gbV90aW1lQ29udGFp
bmVyOwotICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50VHJhbnNsYXRlOworICAgIFJlZlB0cjxTVkdW
YWx1ZT4gbV9jdXJyZW50VHJhbnNsYXRlOwogICAgIFJlZlB0cjxTVkdWaWV3U3BlYz4gbV92aWV3
U3BlYzsKICAgICBTdHJpbmcgbV9jdXJyZW50Vmlld0ZyYWdtZW50SWRlbnRpZmllcjsKIH07CkBA
IC0xNzUsNyArMTc1LDcgQEAgaW5saW5lIGJvb2wgU1ZHU1ZHRWxlbWVudDo6dXNlQ3VycmVudFZp
ZQogCiBpbmxpbmUgRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFs
dWUoKQogewotICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGU7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKTsKIH0KIAogaW5saW5lIFNW
R1pvb21BbmRQYW5UeXBlIFNWR1NWR0VsZW1lbnQ6Onpvb21BbmRQYW4oKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYs
MTIgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdMaXN0VmFsdWVzPjsKICAgICB1
c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0
V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZH
RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAg
ICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdCgmY29udGV4dEVsZW1lbnQsIHZhbHVlcykp
OwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwgU1ZHU3RyaW5nTGlzdFZhbHVl
cyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJikKKyAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCiAgICAg
ewogICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byByZW1vdmUgdGhpcy4gSXQncyBvbmx5
IG5lZWRlZCB0byBrZWVwIFdpbmRvd3MgY29tcGlsaW5nLgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBTVkdTdHJpbmdMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0
VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR1N0YXRp
Y0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQs
IHZhbHVlcykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmlu
Z0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJp
bmdMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBA
IHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQoY29uc3QgU3QKIAogICAgIC8vIEFkZCBl
bXB0eSBzdHJpbmcsIGlmIGxpc3QgaXMgZW1wdHkuCiAgICAgaWYgKGlzRW1wdHkoKSkKLSAgICAg
ICAgYXBwZW5kKGVtcHR5U3RyaW5nKCkpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxTdHJpbmc+KGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVz
OjpwYXJzZShjb25zdCBTdHJpbmcmIGRhdGEsIFVDaGFyIGRlbGltaXRlcikKQEAgLTU2LDcgKzU2
LDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAg
ICAgcHRyKys7CiAgICAgICAgIGlmIChwdHIgPT0gc3RhcnQpCiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgYXBwZW5kKFN0cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKTsKKyAgICAgICAgYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U3RyaW5nPihTdHJpbmcoc3RhcnQsIHB0ciAtIHN0YXJ0KSkp
OwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCwgZGVs
aW1pdGVyKTsKICAgICB9CiB9CkBAIC03MCw3ICs3MCw3IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0
VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0
VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJp
bmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDggKzIxLDggQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1
ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFNW
R1N0cmluZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVh
ck9mZjsKIAotY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8
U3RyaW5nPiB7CitjbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xp
c3RWYWx1ZXM8U3RyaW5nPiB7CiBwdWJsaWM6CiAgICAgU1ZHU3RyaW5nTGlzdFZhbHVlcyhjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgICAgICA6IG1fYXR0cmlidXRlTmFt
ZShhdHRyaWJ1dGVOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcsOSArMTA3LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbgogfQogCiBTVkdUZXN0czo6U1ZHVGVzdHMoKQotICAgIDogbV9yZXF1aXJlZEZlYXR1cmVz
KHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAgICwgbV9yZXF1aXJlZEV4dGVuc2lvbnMocmVxdWly
ZWRFeHRlbnNpb25zQXR0cikKLSAgICAsIG1fc3lzdGVtTGFuZ3VhZ2Uoc3lzdGVtTGFuZ3VhZ2VB
dHRyKQorICAgIDogbV9yZXF1aXJlZEZlYXR1cmVzKFNWR1N0cmluZ0xpc3RWYWx1ZXMocmVxdWly
ZWRGZWF0dXJlc0F0dHIpKQorICAgICwgbV9yZXF1aXJlZEV4dGVuc2lvbnMoU1ZHU3RyaW5nTGlz
dFZhbHVlcyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKSkKKyAgICAsIG1fc3lzdGVtTGFuZ3VhZ2Uo
U1ZHU3RyaW5nTGlzdFZhbHVlcyhzeXN0ZW1MYW5ndWFnZUF0dHIpKQogewogfQogCkBAIC0xNTQs
MTUgKzE1NCwyMCBAQCBib29sIFNWR1Rlc3RzOjpoYXNFeHRlbnNpb24oY29uc3QgU3RyaW5nCiAK
IGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogewotICAgIGZvciAoYXV0byYgZmVhdHVy
ZSA6IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkgeworICAgIGF1dG8gZmVhdHVyZXMgPSBzdGF0
aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSku
cHJvcGVydGllcygpOworICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IGZlYXR1cmVzKSB7CiAgICAg
ICAgIGlmIChmZWF0dXJlLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZXMoKS5jb250
YWlucyhmZWF0dXJlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgZm9y
IChhdXRvJiBsYW5ndWFnZSA6IG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpIHsKKworICAgIGF1dG8g
bGFuZ3VhZ2VzID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3N5c3RlbUxh
bmd1YWdlLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IGxh
bmd1YWdlcykgewogICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gZGVmYXVsdExhbmd1YWdlKCkuc3Vi
c3RyaW5nKDAsIDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3Ig
KGF1dG8mIGV4dGVuc2lvbiA6IG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlKSB7CisKKyAgICBh
dXRvIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVx
dWlyZWRFeHRlbnNpb25zLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBleHRl
bnNpb24gOiBleHRlbnNpb25zKSB7CiAgICAgICAgIGlmICghaGFzRXh0ZW5zaW9uKGV4dGVuc2lv
bikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTcyLDExICsxNzcsMTEg
QEAgYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB2b2lkIFNWR1Rlc3RzOjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQogewogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHJlcXVpcmVkRmVhdHVy
ZXNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUucmVzZXQodmFsdWUpOwor
ICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRGZWF0
dXJlcy52YWx1ZSkucmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHJlcXVp
cmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLnJl
c2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCpt
X3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRyaWJ1
dGVOYW1lID09IHN5c3RlbUxhbmd1YWdlQXR0cikKLSAgICAgICAgbV9zeXN0ZW1MYW5ndWFnZS52
YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1
ZXMmPigqbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkucmVzZXQodmFsdWUpOwogfQogCiBib29sIFNW
R1Rlc3RzOjppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUpCkBAIC0yMDgsNyArMjEzLDcgQEAgdm9pZCBTVkdUZXN0czo6c3luY2hyb25pemVBdHRyaWJ1
dGUoU1ZHRQogewogICAgIGlmICghcHJvcGVydHkuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAg
IHJldHVybjsKLSAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAg
IG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqcHJvcGVydHkudmFsdWUp
LnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWly
ZWRGZWF0dXJlcyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjYsOCArNjYsOCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwog
CiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGlj
c0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3RleHRMZW5ndGgoTGVuZ3RoTW9k
ZU90aGVyKQotICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKKyAg
ICAsIG1fdGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQorICAgICwg
bV9zcGVjaWZpZWRUZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCiAg
ICAgLCBtX2xlbmd0aEFkanVzdChTVkdMZW5ndGhBZGp1c3RTcGFjaW5nKQogewogICAgIHJlZ2lz
dGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVGV4dENvbnRlbnRFbGVtZW50KCk7CkBAIC05NSw3
ICs5NSw3IEBAIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gU1ZHVGV4dENvbnRlbnRFbGUKIHsKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoVmFsdWU+IGRlZmF1bHRUZXh0TGVuZ3Ro
KExlbmd0aE1vZGVPdGhlcik7CiAgICAgaWYgKG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9PSBkZWZh
dWx0VGV4dExlbmd0aCkKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOworICAg
ICAgICBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpLm5l
d1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVu
Z3RoKCkpOwogCiAgICAgbV90ZXh0TGVuZ3RoLnNob3VsZFN5bmNocm9uaXplID0gdHJ1ZTsKICAg
ICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNWR0FuaW1hdGVkTGVuZ3RoPihsb29rdXBP
ckNyZWF0ZVRleHRMZW5ndGhXcmFwcGVyKHRoaXMpKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBFeGNl
cHRpb25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50CiBpbnQgU1ZHVGV4dENvbnRlbnRF
bGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbihTVkdQb2ludCYgcG9pbnQpCiB7CiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKLSAgICByZXR1
cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24ocG9p
bnQucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJl
cigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHBvaW50LnZhbHVlUHJvcGVydHkoKSk7CiB9
CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6c2VsZWN0U3ViU3Ry
aW5nKHVuc2lnbmVkIGNoYXJudW0sIHVuc2lnbmVkIG5jaGFycykKQEAgLTIyOSw3ICsyMjksNyBA
QCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1CiAgICAgICAgIGlmIChw
cm9wZXJ0eVZhbHVlID4gMCkKICAgICAgICAgICAgIHNldExlbmd0aEFkanVzdEJhc2VWYWx1ZShw
cm9wZXJ0eVZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRleHRMZW5n
dGhBdHRyKQotICAgICAgICBtX3RleHRMZW5ndGgudmFsdWUgPSBTVkdMZW5ndGhWYWx1ZTo6Y29u
c3RydWN0KExlbmd0aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZl
TGVuZ3Rocyk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKm1fdGV4dExl
bmd0aC52YWx1ZSkgPSBTVkdMZW5ndGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0aE1vZGVPdGhlciwg
dmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CiAKICAgICByZXBvcnRB
dHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCkBAIC0yNDUs
NyArMjQ1LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZQogICAg
IH0KIAogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAg
ICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC52YWx1ZTsKKyAgICAgICAg
bV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqbV90
ZXh0TGVuZ3RoLnZhbHVlKTsKIAogICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVy
ZXIoKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUwogCiBpbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpTVkdUZXh0UGF0aEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHVGV4dENvbnRlbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9zdGFydE9m
ZnNldChMZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3N0YXJ0T2Zmc2V0KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX21ldGhvZChTVkdUZXh0UGF0aE1ldGhvZEFsaWdu
KQogICAgICwgbV9zcGFjaW5nKFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0KQogewpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNmb3JtOjpt
YXRyaXgoKQogewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHBy
b3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRyaXhUZWFy
T2ZmOjpjcmVhdGUoKnRoaXMsIHZhbHVlUHJvcGVydHkoKS5zdmdNYXRyaXgoKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR1RyYW5zZm9ybSA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFs
dWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdUcmFuc2Zvcm1WYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm0oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKICAgICB9CkBAIC00MywxMSArNDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVl
KiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdU
cmFuc2Zvcm0oaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdUcmFuc2Zvcm0+PiBjcmVhdGUoRXhjZXB0aW9u
T3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhh
c0V4Y2VwdGlvbigpKQpAQCAtNTcsMTQgKzUyLDE0IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHNob3J0IHR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
dHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnR5cGUoKTsKICAgICB9CiAK
ICAgICBSZWY8U1ZHTWF0cml4PiBtYXRyaXgoKTsKIAogICAgIGZsb2F0IGFuZ2xlKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmFuZ2xlKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZVByb3BlcnR5KCkuYW5nbGUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRNYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCkBAIC03Miw3ICs2Nyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2V0TWF0cml4KG1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAg
dmFsdWVQcm9wZXJ0eSgpLnNldE1hdHJpeChtYXRyaXgudmFsdWVQcm9wZXJ0eSgpKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTgzLDcgKzc4LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRUcmFuc2xhdGUodHgsIHR5KTsKKyAgICAgICAgdmFsdWVQcm9w
ZXJ0eSgpLnNldFRyYW5zbGF0ZSh0eCwgdHkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAog
ICAgICAgICByZXR1cm4geyB9OwpAQCAtOTQsNyArODksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNj
YWxlKHN4LCBzeSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRTY2FsZShzeCwgc3kpOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTA1LDcg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Um90YXRlKGFuZ2xlLCBjeCwgY3kpOworICAgICAg
ICB2YWx1ZVByb3BlcnR5KCkuc2V0Um90YXRlKGFuZ2xlLCBjeCwgY3kpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTE2LDcgKzExMSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0U2tld1goYW5nbGUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0
U2tld1goYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMTI3LDE0ICsxMjIsMTQgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRTa2V3WShhbmdsZSk7
CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRTa2V3WShhbmdsZSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIFNWR1RyYW5z
Zm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0MywxMSArMTM4LDYgQEAgcHJpdmF0ZToKICAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KGluaXRpYWxWYWx1ZSkK
ICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHVHJhbnNmb3JtKGNvbnN0IFNWR1RyYW5z
Zm9ybVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R1RyYW5zZm9ybVZhbHVlPihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1M
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3Qu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZi5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzEsMjAgKzMyLDE4IEBA
IHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz47CiAgICAgdXNp
bmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdy
YXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5z
Zm9ybUxpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAg
IH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdUcmFuc2Zvcm0+PiBjcmVhdGVTVkdUcmFuc2Zv
cm1Gcm9tTWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzKTsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9t
TWF0cml4KG1hdHJpeCk7CisgICAgICAgIHJldHVybiB2YWx1ZXNQcm9wZXJ0eSgpLmNyZWF0ZVNW
R1RyYW5zZm9ybUZyb21NYXRyaXgobWF0cml4KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxS
ZWZQdHI8U1ZHVHJhbnNmb3JtPj4gY29uc29saWRhdGUoKQogICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogCiAgICAgICAgIGF1dG8g
cmVzdWx0ID0gY2FuQWx0ZXJMaXN0KCk7CkBAIC01MiwyMyArNTEsMjMgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VS
VChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8vIFNw
ZWM6IElmIHRoZSBsaXN0IHdhcyBlbXB0eSwgdGhlbiBhIHZhbHVlIG9mIG51bGwgaXMgcmV0dXJu
ZWQuCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAgICAgICBpZiAodmFsdWVz
UHJvcGVydHkoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
ICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7CiAgICAgICAgIAotICAgICAgICBSZWZQdHI8U1ZH
VHJhbnNmb3JtPiB3cmFwcGVyID0gbV92YWx1ZXMtPmNvbnNvbGlkYXRlKCk7CisgICAgICAgIFJl
ZlB0cjxTVkdUcmFuc2Zvcm0+IHdyYXBwZXIgPSB2YWx1ZXNQcm9wZXJ0eSgpLmNvbnNvbGlkYXRl
KCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZCh3cmFwcGVyLT5jcmVhdGVXZWFrUHRyKCkp
OwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZSh3cmFwcGVyKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1RyYW5z
Zm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywg
d3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEs
NyArNDEsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzCiAKICAg
ICBTVkdUcmFuc2Zvcm1WYWx1ZSB0cmFuc2Zvcm0obWF0cml4KTsKICAgICBjbGVhcigpOwotICAg
IGFwcGVuZCh0cmFuc2Zvcm0pOworICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5z
Zm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAgICByZXR1cm4gU1ZHVHJhbnNmb3JtOjpjcmVhdGUo
dHJhbnNmb3JtKTsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBib29sIFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM6OmNvbmNhdGVuYXRlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHJlc3VsdCAqPSBhdChpKS5tYXRy
aXgoKTsKKyAgICAgICAgcmVzdWx0ICo9IHByb3BlcnR5QXQoaSkubWF0cml4KCk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTY1LDcgKzY1LDcgQEAgU3RyaW5nIFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM6OnZhbHVlQXNTdAogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJp
bmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5QXQoaSkudmFsdWVBc1N0cmlu
ZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTIwLDE4ICsyMSwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNW
R1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdU
cmFuc2Zvcm1WYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIFQ+Ci1jbGFzcyBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOwotCitjbGFzcyBTVkdNYXRyaXg7
CitjbGFzcyBTVkdUcmFuc2Zvcm07CiBjbGFzcyBTVkdUcmFuc2Zvcm1MaXN0OwogCi1jbGFzcyBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTVkdUcmFuc2Zvcm1W
YWx1ZSwgMT4geworY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBT
VkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPiB7CiBwdWJsaWM6CiAgICAgUmVmPFNWR1Ry
YW5zZm9ybT4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmKSBjb25zdDsK
ICAgICBSZWY8U1ZHVHJhbnNmb3JtPiBjb25zb2xpZGF0ZSgpOwpAQCAtNDIsOCArNDEsMTYgQEAg
cHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7Cit0ZW1w
bGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4g
ewogICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIHsgfTsgfQorICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nKTsKKyAgICAgICAgQVNTRVJUKGxp
c3Quc2l6ZSgpIDw9IDEpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiBsaXN0KSB7IHJl
dHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQogCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0g
U1ZHVHJhbnNmb3JtVmFsdWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFs
dWUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDQgKzkxLDkgQEAgaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBTVkdUcmFuc2ZvcgogICAgIHJldHVybiAhKGEgPT0gYik7CiB9CiAKK3Rl
bXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPiB7Cisg
ICAgc3RhdGljIFNWR1RyYW5zZm9ybVZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIHRy
YW5zZm9ybSkgeyByZXR1cm4gdHJhbnNmb3JtLnZhbHVlQXNTdHJpbmcoKTsgfQorfTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bWFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1h
YmxlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybWFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdU
cmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dAogICAgICAgICBpZiAoIXBhcnNlVHJhbnNm
b3JtVmFsdWUodHlwZSwgY3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2Zvcm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGxpc3QuYXBwZW5kKHRyYW5zZm9ybSk7CisgICAg
ICAgIGxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5z
Zm9ybSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyclRyYW5zZm9ybSwgZW5k
KTsKICAgICAgICAgaWYgKGN1cnJUcmFuc2Zvcm0gPCBlbmQgJiYgKmN1cnJUcmFuc2Zvcm0gPT0g
JywnKSB7CiAgICAgICAgICAgICBkZWxpbVBhcnNlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDEwICs2MiwxMCBA
QCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHVXNlRWxlbWVu
dDo6U1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0g
ICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0g
ICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVI
ZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAs
IG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZh
bHVlKExlbmd0aE1vZGVIZWlnaHQpKQogICAgICwgbV9zdmdMb2FkRXZlbnRUaW1lcigqdGhpcywg
JlNWR0VsZW1lbnQ6OnN2Z0xvYWRFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhhc0N1
c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRl
ICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5n
bGVWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJT
VkdMZW5ndGhWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR01hdHJpeFZhbHVlLmgiCisjaW5jbHVkZSAi
U1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCisj
aW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3RW
YWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RWYWx1ZXMu
aCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJh
bnNmb3JtVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIFNWR1ZhbHVlVmFyaWFudCA9IFZhcmlhbnQ8CisgICAgU1ZHQW5nbGVW
YWx1ZSwgICAgICAgICAgICAgICAgICAvLyAgMDogYW5nbGUKKyAgICBib29sLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vICAxOiBib29sZWFuCisgICAgQ29sb3IsICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAgMjogY29sb3IKKyAgICB1bnNpZ25lZCwgICAgICAgICAgICAgICAgICAg
ICAgIC8vICAzOiBlbnVtZXJhdGlvbgorICAgIGludCwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gIDQ6IGludGVnZXIKKyAgICBTVkdMZW5ndGhWYWx1ZSwgICAgICAgICAgICAgICAgIC8v
ICA1OiBsZW5ndGgKKyAgICBTVkdMZW5ndGhMaXN0VmFsdWVzLCAgICAgICAgICAgIC8vICA2OiBs
ZW5ndGhMaXN0CisgICAgU1ZHTWF0cml4VmFsdWUsICAgICAgICAgICAgICAgICAvLyAgNzogbWF0
cml4CisgICAgZmxvYXQsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgODogbnVtYmVyCisg
ICAgU1ZHTnVtYmVyTGlzdFZhbHVlcywgICAgICAgICAgICAvLyAgOTogbnVtYmVyTGlzdAorICAg
IFNWR1BhdGhCeXRlU3RyZWFtLCAgICAgICAgICAgICAgLy8gMTA6IHBhdGgKKyAgICBSZWZQdHI8
U1ZHUGF0aFNlZz4sICAgICAgICAgICAgIC8vIDExOiBwYXRoU2VnCisgICAgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMsICAgICAgICAgICAvLyAxMjogcGF0aFNlZ0xpc3QKKyAgICBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUsICAgIC8vIDEzOiBwcmVzZXJ2ZUFzcGVjdFJhdGlvCisgICAgRmxvYXRQ
b2ludCwgICAgICAgICAgICAgICAgICAgICAvLyAxNDogcG9pbnQKKyAgICBTVkdQb2ludExpc3RW
YWx1ZXMsICAgICAgICAgICAgIC8vIDE1OiBwb2ludExpc3QKKyAgICBGbG9hdFJlY3QsICAgICAg
ICAgICAgICAgICAgICAgIC8vIDE2OiByZWN0CisgICAgU3RyaW5nLCAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAxNzogc3RyaW5nCisgICAgU1ZHU3RyaW5nTGlzdFZhbHVlcywgICAgICAgICAg
ICAvLyAxODogc3RyaW5nTGlzdAorICAgIFNWR1RyYW5zZm9ybVZhbHVlLCAgICAgICAgICAgICAg
Ly8gMTk6IHRyYW5zZm9ybQorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgICAgICAgICAgLy8g
MjA6IHRyYW5zZm9ybUxpc3QKKz47CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
CitjbGFzcyBTVkdUcmFpdEhhc1RvU3RyaW5nIHsKKyAgICB0eXBlZGVmIGNoYXIgb25lOworICAg
IHR5cGVkZWYgbG9uZyB0d287CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIG9u
ZSB0ZXN0KGRlY2x0eXBlKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6dG9TdHJpbmcpKTsKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3byB0ZXN0KC4uLik7CisKK3B1YmxpYzoKKyAg
ICBlbnVtIHsgdmFsdWUgPSBzaXplb2YodGVzdDxQcm9wZXJ0eVR5cGU+KG51bGxwdHIpKSA9PSBz
aXplb2YoY2hhcikgfTsKK307CisgICAgCitzdHJ1Y3QgdG9TdHJpbmdWaXNpdG9yIHsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8U1ZHVHJhaXRI
YXNUb1N0cmluZzxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBTdHJpbmcg
b3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKHZhbHVlKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lm
X3Q8IVNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+
CisgICAgU3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KK307
CisgICAgCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHVHJhaXRI
YXNQYXJzZSB7CisgICAgdHlwZWRlZiBjaGFyIG9uZTsKKyAgICB0eXBlZGVmIGxvbmcgdHdvOwor
CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBvbmUgdGVzdChkZWNsdHlwZSgmU1ZH
UHJvcGVydHlUcmFpdHM8VD46OnBhcnNlKSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0
YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9m
KHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNoYXIpIH07Cit9OworCitz
dHJ1Y3QgcGFyc2VWaXNpdG9yIHsKKyAgICBwYXJzZVZpc2l0b3IoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdWYWx1ZVZhcmlhbnQmIHZhcmlh
bnQpCisgICAgICAgIDogbV9hdHRyTmFtZShhdHRyTmFtZSkKKyAgICAgICAgLCBtX3N0cmluZyhz
dHJpbmcpCisgICAgICAgICwgbV92YXJpYW50KHZhcmlhbnQpCisgICAgeworICAgIH0KKyAgICAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8U1ZH
VHJhaXRIYXNQYXJzZTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBib29s
IG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8UHJvcGVydHlUeXBlPiByZXN1bHQgPSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5
cGU+OjpwYXJzZShtX2F0dHJOYW1lLCBtX3N0cmluZyk7CisgICAgICAgIGlmICghcmVzdWx0KQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX3ZhcmlhbnQuZW1wbGFjZTxQcm9w
ZXJ0eVR5cGU+KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0
ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzUGFyc2U8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9
IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAg
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIG1fYXR0ck5hbWU7CisgICAgY29uc3Qg
U3RyaW5nJiBtX3N0cmluZzsKKyAgICBTVkdWYWx1ZVZhcmlhbnQmIG1fdmFyaWFudDsKK307Cisg
ICAgCitjbGFzcyBTVkdWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1ZhbHVlPiwgcHVibGlj
IFNWR1ZhbHVlVmFyaWFudCB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gY3JlYXRlPFByb3BlcnR5VHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6aW5pdGlhbFZhbHVlKCkpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
UHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+
Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoY29u
c3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIC8vIEFsbCBlbnVtcyBh
cmUgc3RvcmVkIGFzIHVuc2lnbmVkIHZhbHVlcy4KKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHVmFsdWUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCY+KHByb3BlcnR5KSkp
OworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAg
ICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0
eSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHByb3BlcnR5
KSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBT
VkdWYWx1ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdW
YWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KKyAgICBib29sIGlzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPFByb3BlcnR5VHlwZT4oKnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVy
dHlUeXBlPjo6dmFsdWUgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAg
ICBvcGVyYXRvciBjb25zdCBQcm9wZXJ0eVR5cGUmKCkgY29uc3QKKyAgICB7CisgICAgICAgIC8v
IENhc3QgdGhlIHVuc2lnbmVkIHZhbHVlIHRvIHRoZSByZXF1aXJlZCBlbnVtLgorICAgICAgICBB
U1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUHJvcGVydHlUeXBlJj4oV1RGOjpnZXQ8dW5z
aWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlw
ZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiog
PSBudWxscHRyPgorICAgIG9wZXJhdG9yIGNvbnN0IFByb3BlcnR5VHlwZSYoKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAgICAgIHJldHVybiBX
VEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5
cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBQcm9wZXJ0eVR5cGUmKCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhp
cykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQcm9wZXJ0eVR5cGUmPihXVEY6
OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJv
cGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6
dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgUHJvcGVydHlUeXBlJigpCisgICAgewor
ICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6
Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIFN0cmluZyB0b1N0cmluZygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNpdCh0b1N0cmluZ1Zpc2l0b3Io
KSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKTsKKyAgICB9CisK
KyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KHBhcnNlVmlzaXRv
cihhdHRyTmFtZSwgc3RyaW5nLCBzdGF0aWNfY2FzdDxTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykp
LCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgZXhwbGlj
aXQgU1ZHVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdWYWx1
ZVZhcmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigp
KTsKKyAgICB9CisgICAgCisgICAgU1ZHVmFsdWUoY29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAg
ICAgICA6IFNWR1ZhbHVlVmFyaWFudChzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQm
Pih2YWx1ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXgoKSA9PSB2YWx1ZS5pbmRleCgp
KTsKKyAgICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0
MSw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiBpbmxpbmUgU1ZHVmlld0Vs
ZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAg
LCBtX3pvb21BbmRQYW4oU1ZHWm9vbUFuZFBhbk1hZ25pZnkpCi0gICAgLCBtX3ZpZXdUYXJnZXQo
U1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQorICAgICwgbV92aWV3VGFyZ2V0KFNWR1ZhbHVlOjpj
cmVhdGUoU1ZHU3RyaW5nTGlzdFZhbHVlcyhTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpKSkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dmlld1RhZykpOwogICAgIHJlZ2lzdGVy
QW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVmlld0VsZW1lbnQoKTsKQEAgLTYwLDcgKzYwLDcgQEAg
UmVmPFNWR1N0cmluZ0xpc3Q+IFNWR1ZpZXdFbGVtZW50Ojp2aWV3VAogdm9pZCBTVkdWaWV3RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dmlld1Rhcmdl
dEF0dHIpCi0gICAgICAgIG1fdmlld1RhcmdldC5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRp
Y19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV92aWV3VGFyZ2V0KS5yZXNldCh2YWx1ZSk7
CiAKICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZSh0aGlzLCBuYW1l
LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiAKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW47Ci0gICAg
U1ZHU3RyaW5nTGlzdFZhbHVlcyBtX3ZpZXdUYXJnZXQ7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X3ZpZXdUYXJnZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDkgQEAgY29u
c3QgU1ZHUHJvcGVydHlJbmZvKiBTVkdWaWV3U3BlYzo6dHJhbgogCiBTVkdWaWV3U3BlYzo6U1ZH
Vmlld1NwZWMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQpCiAgICAgOiBtX2NvbnRleHRFbGVt
ZW50KCZjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fdHJhbnNmb3JtKFNWR1ZhbHVlOjpjcmVhdGU8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSkKKyAgICAsIG1fdmlld0JveChTVkdWYWx1ZTo6Y3Jl
YXRlPEZsb2F0UmVjdD4oKSkKKyAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhTVkdWYWx1ZTo6
Y3JlYXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKSkKIHsKIH0KIApAQCAtMTA4LDE3
ICsxMTEsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVmlld1NwZWM6OnNldFpvb21BbgogCiBT
dHJpbmcgU1ZHVmlld1NwZWM6OnRyYW5zZm9ybVN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojp0b1N0cmluZyhtX3Ry
YW5zZm9ybSk7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLT50b1N0cmluZygpOwogfQogCiBTdHJp
bmcgU1ZHVmlld1NwZWM6OnZpZXdCb3hTdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyhtX3ZpZXdCb3gpOworICAgIHJldHVy
biBtX3ZpZXdCb3gtPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6cHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJh
aXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OnRvU3RyaW5nKG1fcHJlc2VydmVBc3Bl
Y3RSYXRpbyk7CisgICAgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+dG9TdHJpbmcoKTsK
IH0KIAogU1ZHRWxlbWVudCogU1ZHVmlld1NwZWM6OnZpZXdUYXJnZXQoKSBjb25zdApAQCAtMTc3
LDkgKzE4MCw5IEBAIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdWaWV3U3BlYzo6bG8KIHZv
aWQgU1ZHVmlld1NwZWM6OnJlc2V0KCkKIHsKICAgICBtX3pvb21BbmRQYW4gPSBTVkdab29tQW5k
UGFuTWFnbmlmeTsKLSAgICBtX3RyYW5zZm9ybS5jbGVhcigpOwotICAgIG1fdmlld0JveCA9IHsg
fTsKLSAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSB7IH07CisgICAgc3RhdGljX2Nhc3Q8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSkuY2xlYXIoKTsKKyAgICBzdGF0aWNf
Y2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94KSA9IHsgfTsKKyAgICBzdGF0aWNfY2FzdDxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKSA9IHsgfTsK
ICAgICBtX3ZpZXdUYXJnZXRTdHJpbmcgPSBlbXB0eVN0cmluZygpOwogfQogCkBAIC0yNjEsNyAr
MjY0LDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyhjb25zdCBTdAogICAgICAg
ICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7
Ci0gICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZSht
X3RyYW5zZm9ybSwgY3VyclZpZXdTcGVjLCBlbmQsIFNWR1RyYW5zZm9ybWFibGU6OkRvTm90Q2xl
YXJMaXN0KTsKKyAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0
cmlidXRlKHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqbV90cmFuc2Zvcm0p
LCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOwog
ICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAn
KScpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3VyclZpZXdT
cGVjKys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDdXN0b20gbm9uLWFuaW1hdGVkICd0cmFu
c2Zvcm0nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiB0cmFuc2Zvcm0o
KTsKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9CisgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFu
c2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzJj4oKm1fdHJhbnNmb3JtKTsgfQogCiAgICAgLy8gQ3VzdG9tIGFuaW1hdGVkICd2
aWV3Qm94JyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRSZWN0PiB2aWV3Qm94QW5p
bWF0ZWQoKTsKLSAgICBGbG9hdFJlY3QmIHZpZXdCb3goKSB7IHJldHVybiBtX3ZpZXdCb3g7IH0K
LSAgICB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94KSB7
IG1fdmlld0JveCA9IHZpZXdCb3g7IH0KKyAgICBGbG9hdFJlY3QmIHZpZXdCb3goKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94KTsgfQorICAgIHZvaWQgc2V0Vmll
d0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgc3RhdGljX2Nhc3Q8Rmxv
YXRSZWN0Jj4oKm1fdmlld0JveCkgPSB2aWV3Qm94OyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0
ZWQgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpOwotICAg
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0
dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RS
YXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZl
QXNwZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3BlY3RSYXRp
bzsgfQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRp
bygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCpt
X3ByZXNlcnZlQXNwZWN0UmF0aW8pOyB9CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3Bl
Y3RSYXRpbykgeyBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvKSA9IHByZXNlcnZlQXNwZWN0UmF0aW87IH0KIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBTVkdWaWV3U3BlYyhTVkdFbGVtZW50Jik7CkBAIC04NCw5ICs4NCw5IEBA
IHByaXZhdGU6CiAKICAgICBTVkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50OwogICAgIFNWR1pv
b21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21BbmRQYW5NYWduaWZ5IH07Ci0gICAg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBtX3RyYW5zZm9ybTsKLSAgICBGbG9hdFJlY3QgbV92aWV3
Qm94OwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBtX3ByZXNlcnZlQXNwZWN0UmF0
aW87CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3RyYW5zZm9ybTsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fdmlld0JveDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fcHJlc2VydmVBc3BlY3RSYXRp
bzsKICAgICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5nOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9m
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5
VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwyMiArNTUsMTUgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+Ojpz
ZXRCYXNlVmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBFbnVtVHlwZSYgcHJvcGVydHkp
CisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVu
dW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCByZWludGVycHJldF9j
YXN0PHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7Ci0gICAgfQotCi0gICAgRW51bVR5cGUmIGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkJiBhbmltYXRlZFZhbHVl
ID0gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+OjpjdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpOwotICAgICAgICBBU1NFUlQoYW5pbWF0ZWRWYWx1ZSA8PSBTVkdQcm9wZXJ0
eVRyYWl0czxFbnVtVHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PEVudW1UeXBlJj4oYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51
bVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCB1bnNpZ25lZCYgcHJvcGVydHkpCi0gICAgICAgIDogU1ZHQW5pbWF0ZWRT
dGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKKyAgICAg
ICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD4oY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUpCiAg
ICAgewogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlU
cmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdFByb3BlcnR5VGVhck9mZjsKICAgICB1c2luZyBDb250
ZW50VHlwZSA9IFByb3BlcnR5VHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChj
b250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1
dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC04NSw0NCArODUsNTAg
QEAgcHVibGljOgogICAgICAgICBMaXN0UHJvcGVydHk6OmRldGFjaExpc3RXcmFwcGVyc0FuZFJl
c2l6ZSgmbV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlw
ZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFu
aW1hdGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwogICAg
ICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKICAgICB9CiAKLSAgICBj
b25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXMoKTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJl
bnRCYXNlVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWVzOwogICAg
IH0KIAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWws
IGJvb2wgc2hvdWxkT3duVmFsdWVzID0gZmFsc2UpCisgICAgdm9pZCBhbmltYXRpb25TdGFydGVk
KFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNB
bmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0g
bV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFdyYXBwZXJzLmlz
RW1wdHkoKSk7CiAKICAgICAgICAgLy8gU3dpdGNoIHRvIG5ldyBwYXNzZWQgaW4gdmFsdWUgdHlw
ZSAmIG5ldyB3cmFwcGVycyBsaXN0LiBUaGUgbmV3IHdyYXBwZXJzIGxpc3QgbXVzdCBiZSBjcmVh
dGVkIGZvciB0aGUgbmV3IHZhbHVlLgotICAgICAgICBpZiAoIW5ld0FuaW1WYWwtPmlzRW1wdHko
KSkKLSAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIG5ld0FuaW1WYWwtPnNp
emUoKSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5VHlw
ZSY+KCpuZXdBbmltVmFsKS5zaXplKCkpCisgICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMu
ZmlsbCgwLCBzaXplKTsKIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7
Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5p
bVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxkT3duVmFsdWVzKTsKLSAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNl
dFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3JhcHBlcnMpOworICAg
ICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9
PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJU
KG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBw
ZXJzLnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewog
ICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5z
aXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8
UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMu
c2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5z
aXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMu
c2l6ZSgpKTsKIAotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBw
ZXJzKCZtX3ZhbHVlcywgJm1fd3JhcHBlcnMsIGZhbHNlKTsKLSAgICAgICAgQVNTRVJUKG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3Jh
cHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0Fu
ZFdyYXBwZXJzKG1fdmFsdWVzLCAmbV93cmFwcGVycyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1h
dGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0
eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKICAgICAgICAgbV9h
bmltYXRlZFdyYXBwZXJzLmNsZWFyKCk7CkBAIC0xNDIsMzQgKzE0OCwzNCBAQCBwdWJsaWM6CiAg
ICAgICAgIC8vIEFsc28gZXhpc3Rpbmcgd3JhcHBlcnMgd2hpY2ggcG9pbnQgZGlyZWN0bHkgYXQg
ZWxlbWVudHMgaW4gdGhlIGV4aXN0aW5nIFNWR0xlbmd0aExpc3RWYWx1ZXMgaGF2ZSB0byBiZSBk
ZXRhY2hlZCAoc28gYSBjb3B5CiAgICAgICAgIC8vIG9mIHRoZW0gaXMgY3JlYXRlZCwgc28gZXhp
c3RpbmcgYW5pbVZhbCB2YXJpYWJsZXMgaW4gSlMgYXJlIGtlcHQtYWxpdmUpLiBJZiB3ZSdkIGRl
dGFjaCB0aGVtIGxhdGVyIHRoZSB1bmRlcmx5aW5nCiAgICAgICAgIC8vIFNWR0xlbmd0aExpc3RW
YWx1ZXMgd2FzIGFscmVhZHkgbXV0YXRlZCwgYW5kIG91ciBsaXN0IGl0ZW0gd3JhcHBlciB0ZWFy
IG9mZnMgd291bGQgcG9pbnQgbm93aGVyZS4gQXNzZXJ0aW9ucyB3b3VsZCBmaXJlLgotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlcygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNo
TGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkp
OwogCi0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9
PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRl
ZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVk
UHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkp
OwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXpl
KCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBzeW5jaHJvbml6ZVdyYXBwZXJzSWZO
ZWVkZWQoKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxEaWRDaGFuZ2UoKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAg
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJhc2VWYWx1ZSgp
KS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBzeW5jaHJvbml6ZVdyYXBw
ZXJzSWZOZWVkZWQoKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUpCiAgICAgICAgICwgbV92YWx1ZXModmFsdWVzKQogICAgIHsKLSAgICAgICAgaWYgKCF2YWx1
ZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAsIHZhbHVlcy5zaXpl
KCkpOworICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUm
PigqdmFsdWVzKS5zaXplKCkpCisgICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgc2l6ZSk7
CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fdmFsdWVzOwogCiAgICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwogICAgIExp
c3RXcmFwcGVyQ2FjaGUgbV9hbmltYXRlZFdyYXBwZXJzOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw3ICszMiw3IEBAIGNsYXNzIFNWR0FuaW1hdGVk
UGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXIKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKIAotICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7
CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoY29udGV4dEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTc1
LDkgKzc2LDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoIW1fYW5pbWF0ZWRQYXRoQnl0ZVN0
cmVhbSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSA9IGJ5dGVTdHJlYW07CiAK
LSAgICAgICAgLy8gUGFzcyBzaG91bGRPd25WYWx1ZXM9dHJ1ZSwgYXMgdGhlIFNWR1BhdGhTZWdM
aXN0VmFsdWVzIGxpZmV0aW1lIGlzIHNvbGVseSBtYW5hZ2VkIGJ5IGl0cyB0ZWFyIG9mZiBjbGFz
cy4KLSAgICAgICAgYXV0byogY29weSA9IG5ldyBTVkdQYXRoU2VnTGlzdFZhbHVlcygqYmFzZVZh
bHVlKTsKLSAgICAgICAgQmFzZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LCB0cnVlKTsKKyAgICAg
ICAgYXV0byBjb3B5ID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYmFzZVZhbHVlKTsKKyAgICAgICAgQmFz
ZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LnB0cigpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1h
dGlvbkVuZGVkKCkKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgICAgICAvLyBJZiB0aGUg
YW5pbVZhbCBpcyBvYnNlcnZlZCBmcm9tIEpTLCB3ZSBoYXZlIHRvIHVwZGF0ZSBpdCBvbiBlYWNo
IGFuaW1hdGlvbiBzdGVwLgogICAgICAgICAvLyBUaGlzIGlzIGFuIGV4cGVuc2l2ZSBvcGVyYXRp
b24gYW5kIG9ubHkgZG9uZSwgaWYgc29tZW9uZSBhY3R1YWxseSBvYnNlcnZlcyB0aGUgYW5pbWF0
ZWRQYXRoU2VnTGlzdCgpIHdoaWxlIGFuIGFuaW1hdGlvbiBpcyBydW5uaW5nLgogICAgICAgICBp
ZiAocGF0aEVsZW1lbnQtPmlzQW5pbVZhbE9ic2VydmVkKCkpIHsKLSAgICAgICAgICAgIGF1dG8m
IGFuaW1hdGVkTGlzdCA9IGN1cnJlbnRBbmltYXRlZFZhbHVlKCk7CisgICAgICAgICAgICBhdXRv
JiBhbmltYXRlZExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpjdXJy
ZW50QW5pbWF0ZWRWYWx1ZSgpKTsKICAgICAgICAgICAgIGFuaW1hdGVkTGlzdC5jbGVhcigpOwog
ICAgICAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKCptX2Fu
aW1hdGVkUGF0aEJ5dGVTdHJlYW0sICpwYXRoRWxlbWVudCwgYW5pbWF0ZWRMaXN0LCBVbmFsdGVy
ZWRQYXJzaW5nKTsKICAgICAgICAgfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICBT
VkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJu
IG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbTsgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVk
UGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNW
R0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZXMpCiAgICAgICAgIDogQmFzZShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykKICAgICAgICAgLCBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJl
YW0obnVsbHB0cikKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBT
VkdWYWx1ZTsKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsKIApAQCAtNDks
NyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpOwog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFtZSBUZWFyT2ZmVHlwZSwg
dHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1
cE9yQ3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5m
byogaW5mbywgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFRlYXJPZmZU
eXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQ
cm9wZXJ0eUluZm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGluZm8pOwogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3Jp
cHRpb24ga2V5KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRlbnRpZmllcik7CkBAIC01OCw3ICs1
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlKTsKIAotICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9IFRlYXJP
ZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+YW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVy
dHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0
ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSk7CiAgICAgICAgIGlmIChp
bmZvLT5hbmltYXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJc1JlYWRPbmx5KQogICAgICAg
ICAgICAgd3JhcHBlci0+c2V0SXNSZWFkT25seSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5o
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTI1LDYgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5Lmgi
CiAjaW5jbHVkZSAiU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcC5oIgogI2luY2x1ZGUgIlNWR1By
b3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTM0LDI1
ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CiBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5IHsKICAgICBT
VkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoKQotICAgICAgICA6IHZhbHVlKFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKQotICAgICAgICAsIHNo
b3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCisgICAgICAg
IDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCkpCiAgICAgewogICAgIH0K
IAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMT4KLSAgICBTVkdT
eW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIx
JiB2YWx1ZTEpCi0gICAgICAgIDogdmFsdWUodmFsdWUxKQotICAgICAgICAsIHNob3VsZFN5bmNo
cm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCi0gICAgewotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMSwgdHlwZW5hbWUgQ29u
c3RydWN0b3JQYXJhbWV0ZXIyPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0
eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSwgY29uc3QgQ29uc3RydWN0b3JQ
YXJhbWV0ZXIyJiB2YWx1ZTIpCi0gICAgICAgIDogdmFsdWUodmFsdWUxLCB2YWx1ZTIpCi0gICAg
ICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkK
KyAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgUHJvcGVydHlUeXBl
JiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4o
dmFsdWUpKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDkgKzUwLDkgQEAgc3RydWN0IFNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eQogICAgICAgICBvd25lckVsZW1lbnQtPnNldFN5bmNo
cm9uaXplZExhenlBdHRyaWJ1dGUoYXR0ck5hbWUsIHZhbHVlKTsKICAgICB9CiAKLSAgICBQcm9w
ZXJ0eVR5cGUgdmFsdWU7Ci0gICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSA6IDE7Ci0gICAgYm9v
bCBpc1ZhbGlkIDogMTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlOworICAgIGJvb2wgc2hv
dWxkU3luY2hyb25pemUgeyBmYWxzZSB9OworICAgIGJvb2wgaXNWYWxpZCB7IGZhbHNlIH07CiB9
OwogCiAvLyBQcm9wZXJ0eSByZWdpc3RyYXRpb24gaGVscGVycwpAQCAtMTI0LDE5ICsxMTMsMTkg
QEAgcHVibGljOiBcCiAgICAgeyBcCiAgICAgICAgIGlmIChhdXRvIHdyYXBwZXIgPSBTVkdBbmlt
YXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFVzZU93bmVyVHlwZSwgVGVhck9mZlR5cGU+KHRo
aXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygpKSkgeyBcCiAgICAgICAgICAgICBpZiAo
d3JhcHBlci0+aXNBbmltYXRpbmcoKSkgXAotICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOyBcCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFByb3BlcnR5VHlwZSY+KCp3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsg
XAogICAgICAgICB9IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlOyBc
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJv
cGVydHkudmFsdWUpOyBcCiAgICAgfSBcCiBcCiAgICAgUHJvcGVydHlUeXBlJiBMb3dlclByb3Bl
cnR5IyNCYXNlVmFsdWUoKSBjb25zdCBPdmVycmlkZVNwZWNpZmllciBcCiAgICAgeyBcCi0gICAg
ICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKTsgXAogICAg
IH0gXAogXAotICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJv
cGVydHlUeXBlJiB0eXBlLCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVlKSBPdmVycmlkZVNw
ZWNpZmllciBcCisgICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShjb25zdCBQ
cm9wZXJ0eVR5cGUmIHZhbHVlLCBjb25zdCBib29sIHZhbGlkVmFsdWUgPSB0cnVlKSBPdmVycmlk
ZVNwZWNpZmllciBcCiAgICAgeyBcCi0gICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlID0g
dHlwZTsgXAorICAgICAgICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJv
cGVydHkudmFsdWUpID0gdmFsdWU7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuaXNWYWxp
ZCA9IHZhbGlkVmFsdWU7IFwKICAgICB9IFwKIFwKQEAgLTE1Niw3ICsxNDUsNyBAQCBwcml2YXRl
OiBcCiAgICAgeyBcCiAgICAgICAgIGlmICghbV8jI0xvd2VyUHJvcGVydHkuc2hvdWxkU3luY2hy
b25pemUpIFwKICAgICAgICAgICAgIHJldHVybjsgXAotICAgICAgICBBdG9taWNTdHJpbmcgdmFs
dWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcobV8jI0xvd2VyUHJv
cGVydHkudmFsdWUpKTsgXAorICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZHUHJvcGVydHlU
cmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4o
Km1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSkpOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5
LnN5bmNocm9uaXplKHRoaXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1
dGVOYW1lLCB2YWx1ZSk7IFwKICAgICB9IFwKIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBA
IHB1YmxpYzoKICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSB0eXBlbmFtZSBQcm9wZXJ0eVRlYXJP
ZmY6OlByb3BlcnR5VHlwZTsKICAgICB1c2luZyBDb250ZW50VHlwZSA9IFByb3BlcnR5VHlwZTsK
IAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFy
T2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVk
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IGJhc2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3Bl
cnR5VGVhck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmlt
YXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCiAg
ICAgUmVmPFByb3BlcnR5VGVhck9mZj4gYmFzZVZhbCgpCkBAIC00Myw3ICs0Myw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKG1fYmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nh
c3Q8UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAotICAgICAgICBhdXRvIHBy
b3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBtX3By
b3BlcnR5KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRl
KCp0aGlzLCBCYXNlVmFsUm9sZSwgbV9iYXNlVmFsdWUpOwogICAgICAgICBtX2Jhc2VWYWwgPSBw
cm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAg
fQpAQCAtNTMsMzYgKzUzLDQyIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAg
ICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2ZmKj4obV9hbmltVmFs
LmdldCgpKTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVh
dGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0
eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV9iYXNlVmFs
dWUpOwogICAgICAgICBtX2FuaW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwogICAg
ICAgICByZXR1cm4gcHJvcGVydHk7CiAgICAgfQogCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQogCi0gICAgUHJvcGVydHlU
eXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0g
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnByb3BlcnR5UmVmZXJlbmNlKCk7Cisg
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CiAgICAgfQogCi0gICAg
Y29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Cisg
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CisgICAgfQorCisgICAg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0
YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNT
RVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwogICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+c2V0VmFsdWUoKm5ld0FuaW1WYWwpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkt
PnNldFZhbHVlKG5ld0FuaW1WYWwpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQo
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1h
dGVkUHJvcGVydHktPnNldFZhbHVlKG1fcHJvcGVydHkpOworICAgICAgICBtX2FuaW1hdGVkUHJv
cGVydHktPnNldFZhbHVlKG1fYmFzZVZhbHVlKTsKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5
ID0gbnVsbHB0cjsKICAgICB9CiAKQEAgLTEwNCwxMyArMTEwLDEzIEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5KQorICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFz
ZVZhbHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHko
cHJvcGVydHkpCisgICAgICAgICwgbV9iYXNlVmFsdWUoYmFzZVZhbHVlKQogICAgIHsKICAgICB9
CiAKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X2Jhc2VWYWx1ZTsKICAgICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+
PiBtX2Jhc2VWYWw7CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pj4gbV9hbmltVmFsOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcg
QEAKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzIsNTMgKzMzLDU5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUHJvcGVydHlU
eXBlJiBiYXNlVmFsKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYmFzZVZhbHVlKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAgICAgewotICAg
ICAgICBpZiAobV9hbmltYXRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuICptX2FuaW1h
dGVkUHJvcGVydHk7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBpZiAobV9h
bmltYXRlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlw
ZSY+KCptX2FuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gYmFzZVZhbCgpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0
eVR5cGUmIHByb3BlcnR5KQorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZh
bChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWx1ZSkKICAgICB7Ci0gICAgICAgIG1fcHJvcGVy
dHkgPSBwcm9wZXJ0eTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYmFz
ZVZhbHVlKSA9IGJhc2VWYWx1ZTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgfQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2FuaW1hdGVkVmFsdWU7IH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRl
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVy
dHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1
ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5
VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1
dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCi0gICAg
UHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRp
bmcoKSk7Ci0gICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OworICAgICAgICByZXR1
cm4gbV9hbmltYXRlZFZhbHVlOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3Vy
cmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsK
KyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRl
ZFZhbHVlOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VW
YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9iYXNlVmFsdWU7CiAgICAgfQog
Ci0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCkKKyAg
ICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVmUHRyPFNWR1ZhbHVlPiBuZXdBbmltVmFsKQogICAg
IHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0Fu
aW1WYWwpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBuZXdBbmltVmFsOworICAgICAg
ICBtX2FuaW1hdGVkVmFsdWUgPSBuZXdBbmltVmFsOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0
aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOworICAgICAgICBtX2FuaW1hdGVkVmFsdWUg
PSBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoKQpAQCAtOTks
MTYgKzEwNiwxNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0
ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgICAg
ICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFu
aW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCi0gICAg
ICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCisgICAgICAgICwgbV9iYXNlVmFsdWUo
YmFzZVZhbHVlKQogICAgIHsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMobV9iYXNlVmFsdWUsIG1f
YmFzZVZhbHVlLT5pczxQcm9wZXJ0eVR5cGU+KCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBQ
cm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7Ci0gICAgUHJvcGVydHlUeXBlKiBtX2FuaW1hdGVkUHJv
cGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX2Jhc2VWYWx1ZTsKKyAgICBSZWZQdHI8U1ZH
VmFsdWU+IG1fYW5pbWF0ZWRWYWx1ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBmaW5h
bCA6IHB1YmxpYyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAg
c3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0
ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0
RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNvbnRl
eHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQog
ICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0
UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdMaXN0UHJvcGVydHkuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsy
NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBMaXN0TW9kaWZpY2F0aW9uIHsK
LSAgICBMaXN0TW9kaWZpY2F0aW9uVW5rbm93biA9IDAsCi0gICAgTGlzdE1vZGlmaWNhdGlvbklu
c2VydCA9IDEsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlcGxhY2UgPSAyLAotICAgIExpc3RNb2Rp
ZmljYXRpb25SZW1vdmUgPSAzLAotICAgIExpc3RNb2RpZmljYXRpb25BcHBlbmQgPSA0Ci19Owot
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBjbGFzcyBTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmY7CiAKQEAgLTc1LDE5ICs2NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIGRl
dGFjaExpc3RXcmFwcGVyc0FuZFJlc2l6ZShtX3dyYXBwZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhQcm9wZXJ0eVR5cGUqIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMsIGJvb2wgc2hvdWxkT3duVmFsdWVzKQorICAgIHZv
aWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIC8vIFRoaXMgaXMgb25s
eSB1c2VkIGZvciBhbmltVmFsIHN1cHBvcnQsIHRvIHN3aXRjaCB0aGUgdW5kZXJseWluZyB2YWx1
ZXMgJiB3cmFwcGVycwogICAgICAgICAvLyB0byB0aGUgY3VycmVudCBhbmltYXRlZCB2YWx1ZXMs
IG9uY2UgYW5pbWF0aW9uIGZvciBhIGxpc3Qgc3RhcnRzLgogICAgICAgICBBU1NFUlQobV92YWx1
ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAgICAgICAgIEFTU0VSVChtX3JvbGUg
PT0gQW5pbVZhbFJvbGUpOwotICAgICAgICBpZiAobV9vd25zVmFsdWVzKQotICAgICAgICAgICAg
ZGVsZXRlIG1fdmFsdWVzOwogICAgICAgICBtX3ZhbHVlcyA9IHZhbHVlczsKLSAgICAgICAgbV9v
d25zVmFsdWVzID0gc2hvdWxkT3duVmFsdWVzOwogICAgICAgICBtX3dyYXBwZXJzID0gd3JhcHBl
cnM7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKQEAgLTk4LDcgKzg3
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAg
ICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAg
LTExMSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAg
bV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtMTE5
LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdMaXN0OjpudW1iZXJPZkl0ZW1zKCkKICAg
ICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBt
X3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7
CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0xMzQsOCArMTIzLDgg
QEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0s
IDApOwogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVt
cyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBz
aW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAgICAgbV92YWx1ZXMt
PmNsZWFyKCk7Ci0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgIHZh
bHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAg
LTE1MCw3ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVt
KTsKIApAQCAtMTU5LDkgKzE0OCw5IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBDbGVh
cnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlh
bGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBw
YXJhbWV0ZXIuCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1
ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKIAotICAgICAg
ICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAg
ICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsKICAgICAgICAgbV93
cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CkBAIC0xNzEsNyArMTYwLDcgQEAgcHVibGljOgogICAgIC8vIFNWR0xpc3Q6
OmdldEl0ZW0oKQogICAgIEV4Y2VwdGlvbk9yPGJvb2w+IGNhbkdldEl0ZW0odW5zaWduZWQgaW5k
ZXgpCiAgICAgewotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAg
ICAgaWYgKGluZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0xODUsNyArMTc0LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZp
ZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNl
bGYgYW5kIG5vdCBhIGNvcHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBtX3ZhbHVl
cy0+YXQoaW5kZXgpIH07CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBzdGF0aWNfY2Fz
dDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpIH07CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8UmVmPExpc3RJdGVtVGVhck9mZj4+IGdldEl0ZW1WYWx1ZXNBbmRX
cmFwcGVycyhBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkTGlzdCwgdW5zaWdu
ZWQgaW5kZXgpCkBAIC0xOTksMTMgKzE4OCwxMyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3Bl
YzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVybmVk
IGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgogICAgICAgICAvLyBBbnkg
Y2hhbmdlcyBtYWRlIHRvIHRoZSBpdGVtIGFyZSBpbW1lZGlhdGVseSByZWZsZWN0ZWQgaW4gdGhl
IGxpc3QuCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBw
ZXJzLT5zaXplKCkpOwogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiB3cmFwcGVyID0g
c3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgp
KTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHdy
YXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBpdGVtIGluIHRo
ZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4gb3VyIG1hcC4KICAg
ICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9w
ZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNW
R0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQg
KGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0
ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShh
bmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAg
ICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5k
ZWZpbmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogICAgICAgICAgICAgbV93
cmFwcGVycy0+YXQoaW5kZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICB9
CiAKQEAgLTIyMSw4ICsyMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0g
aXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4g
bV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsK
KyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCisgICAgICAgICAg
ICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElm
IG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJl
dmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAg
IGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5kZXgpKSB7CkBA
IC0yMzIsNyArMjIxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBu
ZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRl
eCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAg
IC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlz
IGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBv
ZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuaW5zZXJ0KGluZGV4LCBTVkdWYWx1ZTo6Y3JlYXRlPExp
c3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAg
ICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMjQ4LDEwICsyMzcsMTAgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAog
ICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv
IG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQg
b2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0gICAg
ICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChpbmRleCA+IHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSB2YWx1ZXNQcm9wZXJ0
eSgpLnNpemUoKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBw
ZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJ
dGVtKGl0ZW0pOwogCkBAIC0yNjEsNyArMjUwLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNw
ZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9z
aXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlz
IHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4g
SWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVk
IGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRl
eCwgbmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5
KCkuaW5zZXJ0KGluZGV4LCBuZXdJdGVtLT52YWx1ZSgpKTsKIAogICAgICAgICAvLyBTdG9yZSBu
ZXcgd3JhcHBlciBhdCBwb3NpdGlvbiAnaW5kZXgnLCBjaGFuZ2UgaXRzIHVuZGVybHlpbmcgdmFs
dWUsIHNvIG11dGF0aW9ucyBvZiBuZXdJdGVtLCBkaXJlY3RseSBhZmZlY3QgdGhlIGl0ZW0gaW4g
dGhlIGxpc3QuCiAgICAgICAgIG1fd3JhcHBlcnMtPmluc2VydChpbmRleCwgbmV3SXRlbS0+Y3Jl
YXRlV2Vha1B0cigpKTsKQEAgLTI3OCw3ICsyNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5z
aXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMjk4LDEzICsyODcsMTMgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3Vy
IGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRo
ZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEluZGV4U2l6ZUVycm9yIH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBVcGRhdGUgdGhlIHZh
bHVlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+
YXQoaW5kZXgpID0gbmV3SXRlbTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4o
KnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSA9IG5ld0l0ZW07CiAKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0z
MTksNyArMzA4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkp
OwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7
CiAKQEAgLTMyOCw3ICszMTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcHJvY2Vzc0luY29t
aW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sICZpbmRleCkpCiAgICAgICAgICAgICByZXR1cm4g
V1RGTW92ZShuZXdJdGVtKTsKIAotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkgewor
ICAgICAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIEFT
U0VSVChtX3dyYXBwZXJzLT5pc0VtcHR5KCkpOwogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFs
cmVhZHkgbGl2ZWQgaW4gb3VyIGxpc3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1w
dHksIHdoaWNoIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CkBAIC0zNDAsNyArMzI5LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogCiAgICAgICAg
IC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHRoZSB3cmFwcGVyIGF0IHRoZSBkZXNpcmVkIHBvc2l0
aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+cHJv
cGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkgPSBu
ZXdJdGVtLT52YWx1ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSBuZXdJdGVt
LT5jcmVhdGVXZWFrUHRyKCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0zNTUsNyAr
MzQ0LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0g
ICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXgg
Pj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM2OCw4ICsz
NTcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAg
ICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgpOwotICAgICAg
ICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0g
PSBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkp
OworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpbmRleCk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG9sZEl0ZW0pOwpAQCAtMzg0LDE2
ICszNzMsMTYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwog
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOwogCiAgICAgICAgIC8vIERldGFjaCB0aGUgZXhpc3Rpbmcgd3JhcHBlci4KICAgICAg
ICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gb2xkSXRlbSA9IHN0YXRpY19jYXN0PExpc3RJdGVt
VGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAgICAgICAgIGlmICghb2xk
SXRlbSkKLSAgICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmlt
YXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAg
ICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZp
bmVkUm9sZSwgdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpOwogCiAgICAgICAgIG9sZEl0ZW0t
PmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGluZGV4KTsKLSAg
ICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
cmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
IG9sZEl0ZW0ucmVsZWFzZU5vbk51bGwoKTsKQEAgLTQxMSw3ICs0MDAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAg
ICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBt
X3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVu
ZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNv
bW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0dXJuIExpc3RJ
dGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTQyNiw3ICs0MTUsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3Bl
cnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJ
dGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5ICs0MjMsMjUgQEAgcHVibGlj
OgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAK
ICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0aGUgZW5kIG9mIHRo
ZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJl
bmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgp
KTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7
CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAg
ICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIHZh
bHVlcygpCisgICAgUmVmPFNWR1ZhbHVlPiB2YWx1ZXMoKSBjb25zdAogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgcmV0dXJuICptX3ZhbHVlczsKICAgICB9CiAKKyAg
ICBQcm9wZXJ0eVR5cGUmIHZhbHVlc1Byb3BlcnR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3ZhbHVlcyk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUm
PigqbV92YWx1ZXMpOworICAgIH0KKwogICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKQEAgLTQ1OSwyMCArNDU0
LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdMaXN0UHJvcGVydHko
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlKiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVydHkoU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBl
cnMpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCi0gICAgICAgICwgbV9vd25zVmFsdWVzKGZhbHNl
KQotICAgICAgICAsIG1fdmFsdWVzKCZ2YWx1ZXMpCisgICAgICAgICwgbV92YWx1ZXModmFsdWVz
KQogICAgICAgICAsIG1fd3JhcHBlcnMod3JhcHBlcnMpCiAgICAgewogICAgIH0KIAotICAgIHZp
cnR1YWwgflNWR0xpc3RQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICBpZiAobV9vd25zVmFsdWVz
KQotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWVzOwotICAgIH0KLQogICAgIHZvaWQgY29tbWl0
Q2hhbmdlKCkgb3ZlcnJpZGUgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoTGlz
dE1vZGlmaWNhdGlvbikKICAgICB7CkBAIC00ODMsOCArNDcxLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIoUmVmPExpc3RJdGVt
VGVhck9mZj4mIG5ld0l0ZW0sIHVuc2lnbmVkKiBpbmRleFRvTW9kaWZ5KSA9IDA7CiAKICAgICBT
VkdQcm9wZXJ0eVJvbGUgbV9yb2xlOwotICAgIGJvb2wgbV9vd25zVmFsdWVzOwotICAgIFByb3Bl
cnR5VHlwZSogbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlczsKICAgICBM
aXN0V3JhcHBlckNhY2hlKiBtX3dyYXBwZXJzOwogICAgIFdlYWtQdHJGYWN0b3J5PFNWR0xpc3RQ
cm9wZXJ0eT4gbV93ZWFrUHRyRmFjdG9yeTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIyICszNSwyMSBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9
IHR5cGVuYW1lIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpM
aXN0V3JhcHBlckNhY2hlOwogCisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUHJvcGVydHk7CiAgICAg
dXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwogICAgIHVzaW5n
IEJhc2U6Om1fd3JhcHBlcnM7CiAKLSAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNlbGYoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVz
LCB3cmFwcGVycykpOwogICAgIH0KIAogICAgIGludCBmaW5kSXRlbShMaXN0SXRlbVRlYXJPZmYq
IGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBB
U1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMt
PnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAg
ICAgIEFTU0VSVChzaXplID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlmIChpdGVtID09
IG1fd3JhcHBlcnMtPmF0KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwpAQCAtNjEsMTUg
KzYwLDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBp
dGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVycy0+YXQoaXRl
bUluZGV4KTsKICAgICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBw
ZXJzLT5yZW1vdmUoaXRlbUluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5k
ZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92ZShpdGVtSW5kZXgpOwogCiAgICAg
ICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CkBAIC0xMTIsNyArMTEwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgot
ICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8UHJvcGVydHlUeXBl
Pihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHko
YW5pbWF0ZWRQcm9wZXJ0eSkKICAgICB7CkBAIC0xMjksMTggKzEyNywxNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgLy8g
VXBkYXRlIGV4aXN0aW5nIHdyYXBwZXJzLCBhcyB0aGUgaW5kZXggaW4gdGhlIHZhbHVlcyBsaXN0
IGhhcyBjaGFuZ2VkLgogICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgp
OwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBtX3dy
YXBwZXJzLT5hdChpKTsKICAgICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHkobV9hbmltYXRl
ZFByb3BlcnR5LnB0cigpKTsKLSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5h
dChpKSk7CisgICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNQcm9wZXJ0eSgpLmF0KGkp
KTsKICAgICAgICAgfQogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdl
KCk7CkBAIC0xNjksNyArMTY2LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gU1ZHUmVj
dEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoICd3aWR0aCcgcHJvcGVydHkgYmFzZVZhbCBwb2lu
dHMgdG8gdGhlIHNhbWUgdGVhciBvZmYgb2JqZWN0CiAgICAgICAgICAgICAvLyB0aGF0J3MgaW5z
ZXJ0ZWQgaW50byBTVkdUZXh0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICd4Jy4gdGV4
dEVsZW1lbnQueC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgKz0gMTUwIHdvdWxkCiAgICAgICAg
ICAgICAvLyBtdXRhdGUgdGhlIHJlY3RFbGVtZW50IHdpZHRoIF9hbmRfIHRoZSB0ZXh0RWxlbWVu
dCB4IGxpc3QuIFRoYXQncyBvYnZpb3VzbHkgd3JvbmcsIHRha2UgY2FyZSBvZiB0aGF0LgotICAg
ICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0tPnByb3Bl
cnR5UmVmZXJlbmNlKCkpOworICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6
Y3JlYXRlKG5ld0l0ZW0tPnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
YXRyaXhUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTWF0cml4VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDE5ICsyOCwxOSBAQCBjbGFzcyBTVkdNYXRyaXhUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWCiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNm
b3JtJiBwYXJlbnQsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VS
VF9VTlVTRUQodmFsdWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9
PSAmdmFsdWUpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnZhbHVlUHJv
cGVydHkoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwogICAgICAgICBSZWY8U1ZHTWF0cml4VGVh
ck9mZj4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXhUZWFyT2ZmKHBhcmVudCkpOwog
ICAgICAgICBwYXJlbnQuYWRkQ2hpbGQocmVzdWx0LT5tX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIocmVzdWx0KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgU1ZHTWF0
cml4VmFsdWUmIHByb3BlcnR5UmVmZXJlbmNlKCkgZmluYWwgeyByZXR1cm4gbV9wYXJlbnQtPnBy
b3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCk7IH0KKyAgICBTVkdNYXRyaXhWYWx1ZSYgdmFs
dWVQcm9wZXJ0eSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT52YWx1ZVByb3BlcnR5KCkuc3Zn
TWF0cml4KCk7IH0KIAotICAgIHZvaWQgc2V0VmFsdWUoU1ZHTWF0cml4VmFsdWUmIHZhbHVlKSBm
aW5hbCB7IG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0K
KyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKSBmaW5hbCB7
IG1fcGFyZW50LT52YWx1ZVByb3BlcnR5KCkuc2V0TWF0cml4KHN0YXRpY19jYXN0PFNWR01hdHJp
eFZhbHVlJj4oKnZhbHVlKSk7IH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAg
ICB7Ci0gICAgICAgIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnVwZGF0ZVNWR01hdHJp
eCgpOworICAgICAgICBtX3BhcmVudC0+dmFsdWVQcm9wZXJ0eSgpLnVwZGF0ZVNWR01hdHJpeCgp
OwogICAgICAgICBtX3BhcmVudC0+Y29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNs
dWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcgKzY2LDE2IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgdmFs
dWVQcm9wZXJ0eSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVl
KTsgfQogICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7
IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChtX3ZhbHVl
SXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0YWNo
Q2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAgICAg
ICAgIG1fdmFsdWVJc0NvcHkgPSBmYWxzZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2YWx1ZTsKKyAg
ICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIHZvaWQgc2V0QW5pbWF0ZWRQcm9w
ZXJ0eShTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KQpAQCAtMTA5LDcgKzEw
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gaXRlbS52YWx1ZSBzdGlsbCBoYXMgdG8gcmVwb3J0
ICc1MCcgYW5kIGl0IGhhcyB0byBiZSBwb3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0nCiAgICAgICAg
IC8vIHcvbyBjaGFuZ2luZyB0aGUgIm5ldyBpdGVtIiAod2l0aCB4PTEwMCkgaW4gdGhlIHRleHQg
ZWxlbWVudC4KICAgICAgICAgLy8gV2hlbmV2ZXIgdGhlIFhNTCBET00gbW9kaWZpZXMgdGhlICJ4
IiBhdHRyaWJ1dGUsIGFsbCBleGlzdGluZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQsIHVzaW5nIHRo
aXMgZnVuY3Rpb24uCi0gICAgICAgIG1fdmFsdWUgPSBuZXcgUHJvcGVydHlUeXBlKCptX3ZhbHVl
KTsKKyAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKm1fdmFsdWUpKTsKICAgICAgICAgbV92YWx1ZUlzQ29weSA9IHRydWU7CiAgICAg
ICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTM2LDEwICsxMzYs
MTAgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1Byb3BlcnR5VGVhck9m
ZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0
eShhbmltYXRlZFByb3BlcnR5KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAgICAgICAsIG1f
dmFsdWUoJnZhbHVlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAgICwgbV92YWx1
ZUlzQ29weShmYWxzZSkKICAgICB7CiAgICAgfQpAQCAtMTUyLDE3ICsxNTIsMTYgQEAgcHJvdGVj
dGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUqIGluaXRpYWxW
YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAgICAgICAgLCBt
X3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxWYWx1ZSA/IG5l
dyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAgICAsIG1fdmFs
dWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUpCisgICAgICAg
ICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsKICAgICB9CiAK
ICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAgICAgaWYgKG1f
dmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAgICBk
ZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAgIH0K
ICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3NiwxMCArMTc1LDEwIEBA
IHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBtX2FuaW1hdGVk
UHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9wZXJ0eVR5cGUq
IG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZlY3RvcjxXZWFr
UHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAgICAgV2Vha1B0
ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIGJvb2wg
bV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9OwogfTsKIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwyMCArMjAsNDgg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
KyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gTGlzdE1vZGlm
aWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAgIExpc3RNb2Rp
ZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKKyAg
ICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5k
ID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7
IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhi
b29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9OwogCiB0ZW1w
bGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+IHsKKyAgICBzdGF0aWMgQ29s
b3IgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gQ29sb3IoKTsgfQorICAgIHN0YXRpYyBDb2xvciBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBDU1NQYXJzZXI6OnBhcnNl
Q29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPENvbG9yPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcihz
dHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICByZXR1cm4gY29sb3IuaXNWYWxpZCgp
ID8gY29sb3IgOiBzdGQ6Om9wdGlvbmFsPENvbG9yPigpOworICAgIH0KKyAgICBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nKGNvbnN0IENvbG9yJiB0eXBlKSB7IHJldHVybiB0eXBlLnNlcmlhbGl6ZWQo
KTsgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVk
PiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KICAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6
bnVtYmVyKHR5cGUpOyB9CkBAIC00MiwxOSArNzAsMTA5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czx1bnNpZ25lZD4gewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGlu
dD4gewogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0
YXRpYyBpbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVybiBzdHJpbmcu
dG9JbnRTdHJpY3QoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5cGUpIHsg
cmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OworICAgIAordGVtcGxhdGU8Pgorc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIGludD4+IHsKKyAgICBzdGF0aWMg
c3RkOjpwYWlyPGludCwgaW50PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBz
dGF0aWMgc3RkOjpwYWlyPGludCwgaW50PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1iZXIgPSAw
OworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJzdE51
bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmly
c3ROdW1iZXIpKSwgc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vjb25kTnVtYmVyKSkpOworICAg
IH0KK307CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD4gewog
ICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGlj
IGZsb2F0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBm
bG9hdCB0eXBlID0gMDsKKyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJp
bmcsIHR5cGUpID8gdHlwZSA6IDA7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisg
ICAgeworICAgICAgICBmbG9hdCBudW1iZXI7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZy
b21TdHJpbmcoc3RyaW5nLCBudW1iZXIpID8gbnVtYmVyIDogc3RkOjpvcHRpb25hbDxmbG9hdD4o
KTsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhmbG9hdCB0eXBlKSB7IHJldHVy
biBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiB7CisgICAgc3RhdGljIHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0
YXRpYyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1iZXIg
PSAwOworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJz
dE51bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpOworICAg
IH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50
PiB7CisgICAgc3RhdGljIEZsb2F0UG9pbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxvYXRQ
b2ludCgpOyB9CisgICAgc3RhdGljIEZsb2F0UG9pbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgICAgIHJldHVy
biBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8gcG9pbnQgOiBGbG9hdFBvaW50KCk7CisgICAg
fQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBhcnNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UG9p
bnQgcG9pbnQ7CisgICAgICAgIHJldHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8gcG9p
bnQgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+KCk7CisgICAgfQorICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoY29uc3QgRmxvYXRQb2ludCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLnkoKSk7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
fQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD4g
eworICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KKyAgICBzdGF0aWMgRmxvYXRSZWN0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNl
UmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IEZsb2F0UmVjdCgpOworICAgICAgICAKKyAgICB9
CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBwYXJzZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3Qg
cmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IHN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBl
LnkoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOworICAgICAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KIHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+IHsKICAgICBzdGF0aWMgU3RyaW5nIGluaXRpYWxWYWx1
ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25z
dCBTdHJpbmcmIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0KKyAgICBzdGF0aWMgU3RyaW5nIGZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQorICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3Rh
dGljTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IHB1YmxpYzoKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0
eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVRlYXJPZmY7CiAKICAgICB1c2luZyBCYXNl
OjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CisgICAgdXNpbmcgQmFzZTo6dmFs
dWVzUHJvcGVydHk7CiAKICAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVtZW50JiBj
b250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCiAgICAgewpAQCAtNzYsNyArNzYs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHU3RhdGljTGlzdFByb3Bl
cnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1
ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2Uo
VW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAgICAsIG1fY29udGV4dEVsZW1l
bnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzg5LDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVt
ZW50KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxl
bWVudCk7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNv
bnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9m
Zi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQg
YXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwgbm9y
IHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxl
bWVudDo6Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQ29u
dGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVN
ZXRob2QgdXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50
JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1l
dGhvZCB1cGRhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNv
bnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2NvbnRleHRFbGVtZW50
LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZh
bHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZihD
b250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5VGVhck9mZihVbmRl
ZmluZWRSb2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUpCiAgICAgICAgICwg
bV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333814</attachid>
            <date>2018-02-14 10:37:23 -0800</date>
            <delta_ts>2018-02-16 12:41:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180214103723.patch</filename>
            <type>text/plain</type>
            <size>368546</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODQyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxMSBAQAorMjAxOC0wMi0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIGFuIFNWRyBhdHRyaWJ1dGUgZG9lcyBub3QKKyAgICAgICAgbG9vayB0aGUg
Y2xlYW5lc3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgdW5p
b24KKyAgICAgICAgU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFsbCB0aGUg
ZGF0YSB0eXBlcy4gU28gaGVyZSBpcyB0aGUKKyAgICAgICAgcGxhbiBvZiB0aGlzIHBhdGNoOgor
CisgICAgICAgIC0tIENyZWF0ZSB0aGUgY2xhc3MgU1ZHVmFsdWUgd2hpY2ggaXMgYSB2YXJpYW50
IG9mIGFsbCB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBiYXNpYyBkYXRhIHR5cGVzIGluY2x1
ZGluZyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIFNWRyBhdHRyaWJ1dGUKKyAgICAg
ICAgbGlzdHMuCisKKyAgICAgICAgLS0gQ2hhbmdlIFNWR0FuaW1hdGVkVHlwZSB0byBob2xkIHR3
byBTVkdWYWx1ZXMuIFRoZSBzZWNvbmQgb25lIGlzIG9wdGlvbmFsCisgICAgICAgIGFuZCBvbmx5
IHVzZWQgZm9yIGFuaW1hdGVkIHR5cGVzIHdoaWNoIHJlcXVpcmVzIHR3byBkYXRhIHR5cGVzLgor
CisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGF0dHJpYnV0ZXMgb2YgYWxsIHRoZSBTVkdFbGVt
ZW50IHRvIGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKworICAgICAgICAtLSBDaGFuZ2Ug
YWxsIHRoZSBsaXN0IGF0dHJpYnV0ZXMgdG8gYmUgb2YgdHlwZSBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4uCisKKyAgICAgICAgLS0gQ2hhbmdlIGFsbCB0aGUgdGVhci1vZmYgb2JqZWN0cyB0byBo
b2xkIFJlZlB0cjxTVkdWYWx1ZT4gaW5zdGVhZCBvZgorICAgICAgICBob2xkaW5nIGEgcmF3IHJl
ZmVyZW5jZS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcyBmb3IgU1ZHVmFs
dWUgYW5kIFNWR0xpc3RWbGF1ZXMuIE1vdmUgZGVmaW5pdGlvbnMgZnJvbQorICAgICAgICBTVkdN
YXJrZXJFbGVtZW50LmggdG8gU1ZHTWFya2VyVHlwZXMuaC4gTW92ZSBkZWZpbml0aW9ucyBvZiBT
VkdSZWN0VHJhaXRzLmgKKyAgICAgICAgdG8gU1ZHUHJvcGVydHlUcmFpdHMuaC4KKworICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0
aEZyb21Qb2x5Z29uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlsaW5l
RWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRl
c0J1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlQ2hhcmFjdGVyRGF0YSk6Cisg
ICAgICAgICogc3ZnL1NWR0FuZ2xlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6Y3Jl
YXRlKTogUmVwbGFjZSB0aGUgcGFyYW1ldGVyIFNWR0FuZ2xlVmFsdWUmIGJ5CisgICAgICAgIFJl
ZlB0cjxTVkdWYWx1ZT4uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6dW5pdFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5nbGU6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmdsZTo6dmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuZ2xlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2
YWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpuZXdWYWx1ZVNwZWNp
ZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjb252ZXJ0VG9TcGVjaWZp
ZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6U1ZHQW5nbGUpOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGVkVHlwZSk6IEZ1bmN0aW9ucyB3ZXJlIHJl
bmFtZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFwcGx5UmVz
dWx0c1RvVGFyZ2V0KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VQb2ludCk6IERlbGV0ZWQuIE1vdmVkIHRvIFNWR1Bh
cnNlclV0aWxpdGllcy5jcHAuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgVXNlIHRoZSBTVkdQcm9wZXJ0eVRyYWl0czo6ZnJvbVN0cmluZyB0
byBjcmVhdGUgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUKKyAgICAgICAgU1ZHQW5pbWF0ZWRUeXBl
LgorCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKCkgbm93IHJl
dHVybnMgYSB1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4uCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAg
IERvbid0IHBhc3MgU1ZHQW5pbWF0ZWRUeXBlIGdldHRlciB0byByZXNldEZyb21CYXNlVmFsdWVz
KCkuIFRoZSBQcm9wZXJ0eVRZcGUKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBkYXRh
IGVsZW1lbnQgZnJvbSB0aGUgU1ZHQW5pbWF0ZWRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgQ2FzdCB0
aGUgU1ZHVmFsdWUgZWxlbWVudHMgdG8gdGhlIHJlcXVpcmVkIGRhdGEgbWVtYmVycy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZSk6IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9v
bGVhbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZENvbG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbkFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6
OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZElu
dGVnZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExlbmd0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6
YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OnBhcnNlTnVtYmVyRnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6YWRkQW5p
bWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVmFs
VG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjph
ZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRM
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9Bbmlt
YXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAg
ICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFu
aW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgIERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkVHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpTVkdB
bmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0eXBlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OnZhbHVlQW5pbWF0ZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25h
bEludGVnZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjpsZW5ndGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpsZW5ndGhMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6bnVtYmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZl
QXNwZWN0UmF0aW8gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpyZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6c3RyaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OmFuZ2xlQW5kRW51bWVyYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y29sb3IpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjplbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoTGlzdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlckxpc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJPcHRpb25hbE51bWJlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBhdGgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnN0cmluZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnRyYW5zZm9ybUxpc3Qp
OiBEZWxldGVkLgorICAgICAgICBTaW1wbGlmeSBTVkdBbmltYXRlZFR5cGUuIEl0IGlzIG5vdyBh
IHN0cnVjdCB3aGljaCBoYXMgdHdvIFJlZlB0cjxTVkdWYWx1ZT4uCisgICAgICAgIFRoZSBzZWNv
bmQgcG9pbnRlciBjYW4gYmUgbnVsbCBleHBlY3Qgd2l0aCB0aGUgdHlwZXMgd2l0aCB0d28gdmFs
dWVzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1
ZSk6IENvbnN0cnVjdCB0aGUgCisgICAgICAgIGFuaW1hdGVkIFNWR1ZhbHVlIGZyb20gdGhlIFNW
R1ZhbHVlIG9mIHRoZSBiYXNlIHZhbHVlIGJlZm9yZSBzdGFydGluZyB0aGUKKyAgICAgICAgYW5p
bWF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0
RnJvbUJhc2VWYWx1ZSk6IFJlc2V0IHRoZSBhbmltYXRlZAorICAgICAgICBTVkdWQWx1ZSB0byB0
aGUgU1ZHVmFsdWUgb2YgdGhlIGJhc2UgdmFsdWUgYmVmb3JlIGVuZGluZyB0aGUgYW5pbWF0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21CYXNlVmFsdWVzKTogU2FtZSBhcyAKKyAgICAgICAgY29uc3RydWN0RnJvbUJhc2VWYWx1ZSgp
IGJ1dCBmb3IgdHdvLVNWR0F2bHVlcyBhbmltYXRlZCB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpyZXNldEZyb21CYXNlVmFsdWVzKTogU2FtZSBhcwor
ICAgICAgICByZXNldEZyb21CYXNlVmFsdWUoKSBidXQgZm9yIHR3by1TVkdBdmx1ZXMgYW5pbWF0
ZWQgdHlwZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6ZXhl
Y3V0ZUFjdGlvbik6CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6dHJhbnNm
ZXJGdW5jdGlvbiBjb25zdCk6CisKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KToK
KyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsbGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudCk6ICBFeHBsaWNpdGx5IGNyZWF0
ZSBhbgorICAgICAgICBTVkdMZW5ndGhWYWx1ZSB3aGljaCB3aWxsIGltcGxpY2l0bHkgZm9yY2Ug
Y2FsbGluZyB0aGUgY29uc3RydWN0b3Igb2YKKyAgICAgICAgU1ZHU3luY2hyb25pemFibGVBbmlt
YXRlZFByb3BlcnR5LgorCisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRGaWx0ZXJF
ZmZlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQ6OmJ1aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKToK
KworICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQpOgorICAg
ICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5p
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6
OmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6
U1ZHTGVuZ3RoKToKKyAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKSB3YXMgcmVuYW1lZCB0byB2
YWx1ZVByb3BlcnR5KCkKKworICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojppbml0aWFsVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojp0b1N0cmluZyk6CisgICAgICAgIFNWR0xl
bmd0aExpc3RWYWx1ZXMgaXMgbm93IGEgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uIEhvd2V2
ZXIgdGhlCisgICAgICAgIG9ubHkgZXhwZWN0ZWQgdmFsdWUgaW4gdGhlIGVsZW1lbnRzIG9mIHRo
aXMgdmVjdG9yIGlzIFNWR0xlbmd0aFZhbHVlLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1
ZT46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0
aFZhbHVlPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OnJl
c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OmRl
ZXBDb3B5IGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0eUF0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFZhbHVlczo6Zmlyc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0VmFsdWVzOjpmaXJzdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1
ZXM6Omxhc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpsYXN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6cHJvcGVy
dGllcyBjb25zdCk6CisgICAgICAgIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIHRoZSBT
VkcgbGlzdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHRvIGhhdmUKKyAgICAgICAgdGhlIGltcGxlbWVu
dGF0aW9uIG9mIHNvbWUgZnVuY3Rpb24gYmUgaW4gYSBzb3VyY2UgZmlsZSB0byB3b3JrIGFyb3Vu
ZAorICAgICAgICBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGlzc3Vlcy4gVGhlIFNWRyBsaXN0IGF0
dHJpYnV0ZXMgY2FuIGJlIG9uZSBvZgorICAgICAgICBTVkdWYWx1ZSBkYXRhIG1lbWJlcnMgYnV0
IGF0IHRoZSBzYW1lIHRpbWUgaXQgaXMgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uCisKKyAg
ICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
cmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFy
a2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXJr
ZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJVbml0c1R5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OnRvU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlclVuaXRz
VHlwZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHSURMRW51
bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3Jp
ZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcpOiBEZWxl
dGVkLgorICAgICAgICBUaGlzIGNvZGUgaXMgbW92ZWQgdG8gdGhlIG5ldyBmaWxlIFNWR01hcmtl
clR5cGVzLmguCisKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyVHlwZXMuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+OjpoaWdo
ZXN0RW51bVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01h
cmtlclVuaXRzVHlwZT46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR01hcmtlclVuaXRzVHlwZT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFbnVtVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50
VHlwZT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSURMRW51bUxpbWl0czxT
VkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFsdWUpOgorICAgICAgICAq
IHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVu
dDo6U1ZHTWFza0VsZW1lbnQpOgorCisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjphKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRC
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNldEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0
ZUZyb21WZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgIHByb3BlcnR5UmVm
ZXJlbmNlKCkgd2FzIHJlbmFtZWQgdG8gdmFsdWVQcm9wZXJ0eSgpLgorCisgICAgICAgICogc3Zn
L1NWR01hdHJpeFZhbHVlLmg6CisgICAgICAgIFVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBB
ZmZpbmVUcmFuc2Zvcm0gb3BlcmF0aW9uIGFuZCBsZXQgdGhlIGNvbnN0cnVjdG9yCisgICAgICAg
IG9mIFNWR01hdHJpeFZhbHVlIGJlIGNhbGxlZCBpbXBsaWNpdGx5LgorCisgICAgICAgICogc3Zn
L1NWR051bWJlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR051bWJlcjo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdOdW1iZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVt
YmVyTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVz
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVy
TGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VQb2ludCk6IFRoaXMgZnVuY3Rpb24gd2Fz
IG1vdmVkIGZyb20gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6cG9pbnRzTGlzdEZyb21TVkdEYXRhKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGls
aXRpZXMuaDoKKworICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0
cmVhbTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdQYXRoQnl0ZVN0cmVhbT46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgorICAgICAg
ICBBZGQgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvci4KKworICAgICAg
ICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxl
bWVudDo6U1ZHUGF0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6
Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OnN5bmNocm9uaXplRCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6cGF0
aFNlZ0xpc3RDaGFuZ2VkKToKKworICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhT
ZWdMaXN0Lmg6CisgICAgICAgIEFjY2VzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyB0aHJvdWdoIHZh
bHVlc1Byb3BlcnR5KCkgaW5zdGVhZCBvZiBtX3ZhbHVlcworICAgICAgICB3aGljaCBpcyBub3cg
YSBSZWZQdHI8U1ZHVmFsdWU+LgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Nt
b290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9R
dWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2
ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpj
bG9zZVBhdGgpOgorICAgICAgICBTdG9yZSBhIG5ldyBSZWZQdHI8U1ZHVmFsdWU+IGZvciBldmVy
eSBTVkdQYXRoU2VnLgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFu
ZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTVkdQYXRo
Qnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFRvU1ZHUGF0
aEJ5dGVTdHJlYW0pOgorICAgICAgICBBbnN3ZXIgU2ltb24ncyBxdWVzdGlvbnMgd2hpY2ggd2Vy
ZSBhZGRlZCBpbiByMTkwODQ0LgorCisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50
Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRZKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50
TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1ZXM6OnZh
bHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbHVlcz46
OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAgICAgICAgKiBzdmcv
U1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50Ojpwb2lu
dExpc3QgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyk6Cisg
ICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlPjo6ZnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1JlY3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0
Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFgpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRZKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6
OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmhlaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVj
dDo6U1ZHUmVjdCk6CisKKyAgICAgICAgKiBzdmcvU1ZHUmVjdFRyYWl0cy5oOiBSZW1vdmVkLiBU
aGlzIHN0cnVjdCB3YXMgbW92ZWQgdG8gU1ZHUHJvcGVydHlUcmFpdHMuaAorCisgICAgICAgICog
c3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6
U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJy
ZW50VHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrSW50ZXJzZWN0aW9uV2l0aG91
dFVwZGF0aW5nTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrRW5jbG9zdXJlV2l0aG91
dFVwZGF0aW5nTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUp
OgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1N0cmlu
Z0xpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6
cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25z
dCk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcv
U1ZHVGVzdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OlNWR1Rlc3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0
czo6c3luY2hyb25pemVBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVt
ZW50Ojp0ZXh0TGVuZ3RoQW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRl
bnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVs
ZW1lbnQ6OlNWR1RleHRQYXRoRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06Om1hdHJpeCk6CisgICAgICAgICog
c3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjp0eXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1RyYW5zZm9ybTo6YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtOjpzZXRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRUcmFu
c2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm06OnNldFNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9y
bTo6c2V0U2tld1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zv
cm0pOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlczo6Y29uc29saWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlczo6Y29uY2F0ZW5hdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKiBzdmcv
U1ZHVHJhbnNmb3JtVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFNWR1RyYW5zZm9ybVZhbHVlPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPjo6dG9TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9y
bWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50
KToKKworICAgICAgICAqIHN2Zy9TVkdWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OnRvU3RyaW5nVmlzaXRvcjo6b3BlcmF0b3IoKSk6IFRoaXMgdmlzaXRvciByZXR1cm5zIHRoZSBz
dHJpbmcKKyAgICAgICAgb2YgdGhlIGFsdGVybmF0aXZlIG9mIFNWR1ZhbHVlVmFyaWFudC4KKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlVmlzaXRvcjo6cGFyc2VWaXNpdG9yKTogVGhpcyByZXBsYWNl
cyB0aGUgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAgU1ZHVmFsdWVWYXJpYW50IHdpdGggdGhlIHZh
bHVlIHdlIGdldCBmcm9tIHBhcnNpbmcgdGhlIHN0cmluZyBvZiBhbgorICAgICAgICBhdHRyaWJ1
dGUuCisgICAgICAgIChXZWJDb3JlOjpwYXJzZVZpc2l0b3I6Om9wZXJhdG9yKCkpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1
ZTo6aXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIGNvbnN0
IFByb3BlcnR5VHlwZSYgY29uc3QpOiBDYXN0aW5nIG9wZXJhdG9yLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmFsdWU6Om9wZXJhdG9yIFByb3BlcnR5VHlwZSYpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpw
YXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6U1ZHVmFsdWUpOgorCisgICAgICAg
ICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVt
ZW50OjpTVkdWaWV3RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5oOgorCisgICAg
ICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVj
OjpTVkdWaWV3U3BlYyk6IEluaXRpYWxpemUgcG9pbnRlcnMgd2l0aCB0aGUgZGVmYXVsdAorICAg
ICAgICB2YWx1ZXMuCisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp2aWV3Qm94U3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyk6CisgICAgICAg
ICogc3ZnL1NWR1ZpZXdTcGVjLmg6CisKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmg6IE5vIG5lZWQgZm9yIHRoZQorICAgICAg
ICBjYXN0aW5nIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgbWV0aG9kLiBTaW5jZSB0aGUgYmFzZSBj
bGFzcyBtZXRob2QgcmV0dXJucyAKKyAgICAgICAgYSBSZWZQdHI8U1ZHVmFsdWU+LiBUaGUgY2Fz
dGluZyB3aWxsIGhhcHBlbiB3aGVuIGdldHRpbmcgdGhlIGVudW0gdmFsdWUgCisgICAgICAgIGZy
b20gdGhlIFNWR1ZhbHVlLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVX
cmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhT
ZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
bG9va3VwT3JDcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5TWFjcm9zLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJs
ZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJh
c2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmY6OmFuaW1WYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY6OnNldEJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRl
ZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25F
bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oOgorCisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZh
bHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1Byb3Bl
cnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6U1ZHTGlzdFBy
b3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6flNWR0xpc3RQcm9wZXJ0
eSk6IERlbGV0ZWQuCisgICAgICAgIE5vIG5lZWQgZm9yIG1fb3duc1ZhbHVlcyBhbnltb3JlLiBt
X3ZhbHVlcyBpcyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LiBJdAorICAgICAgICB3aWxsIGJlIGRl
bGV0ZWQgb25jZSB0aGUgcmVmLWNvdW50IGJlY29tZXMgemVyby4KKworICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjpmaW5kSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUZWFyT2ZmOjp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRlYXJPZmY6OnZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
ZWFyT2ZmOjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6
OlNWR1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6On5TVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
ZWFyT2ZmOjpwcm9wZXJ0eVJlZmVyZW5jZSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8Q29sb3I+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPENvbG9yPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8Q29sb3I+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxmbG9hdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPEZsb2F0UG9pbnQ+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojppbml0aWFsVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+OjpwYXJzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+Ojpmcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OnBhcnNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OnRvU3RyaW5nKToK
KyAgICAgICAgVW5pZnkgdGhlIHRyYWl0cyBmb3IgYWxsIHRoZSBkYXRhIHR5cGVzIGNhbiBhbiBT
VkdWYWx1ZSBjYW4gaG9sZC4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTEzICBO
YW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFJlbW92ZSBBY2Nlc3Np
YmxlTm9kZSBjbGFzcwpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMDcxLDcgKzIwNzEs
NiBAQCBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogc3ZnL1NWR0FuaW1h
dGVkUmVjdC5jcHAKIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKIHN2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuY3BwCi1zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAogc3ZnL1NWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmNwcAogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCiBzdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAKQEAgLTIxMzUsNiArMjEzNCw3IEBAIHN2Zy9TVkdMZW5ndGhMaXN0VmFs
dWVzLmNwcAogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAog
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKK3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAog
c3ZnL1NWR0xvY2F0YWJsZS5jcHAKIHN2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCiBzdmcvU1ZHTWFy
a2VyRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTYz
Miw3ICsxNjMyLDE1IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTUwQ0I0
MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3Q0NDQ0IwMEE2OUUzOCAvKiBE
ZWNvZGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTVCODdFRDFD
QUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFn
ZURlY29kZXJDRy5oICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlz
dFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTc2QTU2NTFEODhBNzA4MDBD
Q0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5ODIw
MjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2
OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFERDNCM0I5MDBFOTJEQTMgLyog
U1ZHQW5nbGVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBTVkdOdW1iZXJMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2
OTFEREI4NkQzMDBGRUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlDMjAyNTQ2MDUwMDRE
NzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAwRkVGQjI5IC8qIFNWR1BhdGhT
ZWdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkIx
RERCODcxQzAwRkVGQjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlFMjAyNTQ2MkIwMDRENzVG
NCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0QxQzUwMEU5MkRBMyAvKiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0MzOUMzNkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEz
MzZGNzFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBO
YXRpdmVJbWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VC
YWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVB
QUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lz
dHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTE5MzAsNyArMTkzOCw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0FuaW1h
dGlvbkVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzE1NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpTQW5pbWF0aW9uRWZmZWN0VGlt
aW5nLmggKi87IH07CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0tleWZyYW1lRWZm
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTU1
NkNCNzFGOUYwOUZDMDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVjdC5oICovOyB9OwogCQk3MUEx
QjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1z
dHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2Fs
aXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVDMDAwOUQxMjAgLyogU1ZH
UGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLzsg
fTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUy
NUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBh
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFEQ0I3
MDAxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oICovOyB9OwogCQk3MUUyMTgz
QTE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4MzgxNzM1OUZCODAwNkU2RTREIC8q
IFBsdWdJbnNSZXNvdXJjZXMuaCAqLzsgfTsKQEAgLTIwMzIsNyArMjA0MCw3IEBACiAJCTdDMzBE
OTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyog
SlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250
ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEw
NjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMz
NjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIy
OSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZF
RkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFE
REI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdF
MyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZG
MTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjE2
NCwxMCArMjE3Miw5IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVx
dWVzdE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRTE5MTZDMUYyQUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCAqLzsgfTsK
IAkJN0NFMTkxN0IxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYy
QUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4
RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1Bv
aW50LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0
RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovOyB9OwogCQk3Q0U1OEQ1MDFE
RDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVy
LmggKi87IH07Ci0JCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThE
NTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IH07Ci0JCTdDRTU4
RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8q
IFNWR01hdHJpeFZhbHVlLmggKi87IH07CisJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBT
VkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0NFNThE
NUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyog
U1ZHTWF0cml4VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3Jp
cHRvci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMjMwOSw3ICsyMzE2LDcgQEAKIAkJODNGRTdDQTcxREE5RjFBNzAwMzcyMzdDIC8qIFVJ
RXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZFN0NBODFEQTlGMUI2MDAz
NzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlm
aWVySW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU5MDI2MUUzMDdD
MUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsgfTsKLQkJODQxOUQyQTcxMjBE
OTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJB
OTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CiAJCTg0MTlEMkFEMTIw
RDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQUIxMjBEOTJGQzAwMTQxRjhG
IC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJCTg0MTlEMkJBMTIwRTBDNzYw
MDE0MUY4RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1Bh
dGhTdHJpbmdCdWlsZGVyLmggKi87IH07CkBAIC0yMzM2LDcgKzIzNDMsNyBAQAogCQk4NDczMEQ5
MzEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIzMDBEM0E5QzkgLyog
U3BvdExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBT
VkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2
QzlFODExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsgfTsKLQkJODQ3NkM5
RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8q
IFNWR1BhdGhDb25zdW1lci5oICovOyB9OworCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyog
U1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQ3NkM5RjAx
MURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQ
YXRoUGFyc2VyLmggKi87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNz
aWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CiAJCTg0
ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2
OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyODEsOSArMzI4OCw5IEBACiAJCUIy
MjI3QTRCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI1MEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNEUwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01QYXRoRWxl
bWVudC5oICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4
QkIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0
aWVzLmggKi87IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEMxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1OTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoRWxl
bWVudC5oICovOyB9OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsKKwkJQjIyMjdBNUIwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdB
NUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQwMEJGMjAwMDcxQjc4MiAvKiBT
VkdQYXRoU2VnQXJjLmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
YXRoU2VnQ2xvc2VQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5o
ICovOyB9OwogCQlCMjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIy
Mjc4Q0YwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaCAqLzsgfTsK
QEAgLTcyODMsNyArNzI5MCw2IEBACiAJCTQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdB
bmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzlEMzM0MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFjdG9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcgLyogU1ZHQW5pbWF0
ZWROdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWROdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0M0EwRjBCNTEz
QUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8q
IFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
QTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTc0LDEwICs4MTgwLDEzIEBACiAJCTU1MEEwQkM4
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1NDY3NTc3
MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZE
MUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTUwNEU5NDIwMkNERkQyMDA1MDdD
NzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMaXN0VmFsdWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MENCNDExRTk1NUUzQzAwMTEx
QUEwIC8qIEltYWdlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTUxMzAwMDFFN0NDQ0NB
MDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERlY29kaW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNv
ZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdE
IC8qIFNWR0xpc3RWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZH
TWFya2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFya2Vy
VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjIxRDg4QTcwODAw
Q0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZB
NTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04MTg1LDYgKzgxOTQsNyBAQAogCQk1NUFGMTRFMzFFQUFDNTlCMDAyNkVFQUEgLyog
VVRJUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJUmVnaXN0cnkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFDNTlCMDAyNkVFQUEgLyogVVRJ
UmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUwIC8qIFNWR0ltYWdlQ2xpZW50
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNsaWVudHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8q
IFNWR1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3MUU1Mzg1MTYwMDM1NjYwMSAv
KiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2MDEgLyogSlNBZXNDYmNDZmJQ
YXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBZXNDYmNDZmJQYXJh
bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNUIxRTUzOTM3OTAwMzU2
NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTk0NjYsNyArOTQ3Niw2IEBACiAJCTdDRTE5MTZFMUYyQUI3MEQwMDI3MkY3QiAvKiBK
U0NhY2hlUXVlcnlPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FjaGVRdWVyeU9w
dGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0UxOTE2RjFGMkFCNzBG
MDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1iZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMZW5ndGguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0
aFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0xlbmd0
aFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNDMxLDcgKzIyNDQw
LDYgQEAKIAkJCQk3MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmNwcCAqLywKIAkJCQkwODI1MDkzODEyOEJENEQ4MDBFMkVEOEUgLyogU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmggKi8sCiAJCQkJQjIyMjc3RjgwRDAwQkYxRjAwNzFCNzgyIC8qIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJNDNBMEYwQjUxM0FDQ0NGRjAwQTVG
MEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8sCiAJCQkJNDM5RDMzNDAxM0E2OTExQzAwQzIw
RjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZCQ0U5MTc4QzExMzIwMEIyMUEx
NSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJCQkJNDM5RDMzNDExM0E2OTEx
QzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCkBAIC0yMjYzMiwxMSAr
MjI2NDAsMTQgQEAKIAkJCQlCMjIyNzhBNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1l
bnQuY3BwICovLAogCQkJCUIyMjI3OEE2MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVu
dC5oICovLAogCQkJCUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5p
ZGwgKi8sCisJCQkJNTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8qIFNWR0xpc3RWYWx1ZXMuY3Bw
ICovLAorCQkJCTU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi8s
CiAJCQkJQjIyMjc4QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5jcHAgKi8sCiAJ
CQkJQjIyMjc4QUIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oICovLAogCQkJCUIy
MjI3OEFEMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmNwcCAqLywKIAkJCQlC
MjIyNzhBRTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5oICovLAogCQkJCUIy
MjI3OEFGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLywKKwkJCQk1
NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLywKIAkJCQlCMjIy
NzhCMDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3
OEIxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEIy
MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5pZGwgKi8sCkBAIC0yMjc3MCw3ICsy
Mjc4MSw2IEBACiAJCQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50
LmNwcCAqLywKIAkJCQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQu
aCAqLywKIAkJCQlCMjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuaWRs
ICovLAotCQkJCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8s
CiAJCQkJQjIyMjc5MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlbmRlcmluZ0ludGVudC5oICov
LAogCQkJCUIyMjI3OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaWRs
ICovLAogCQkJCUIyMjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdTY3JpcHRFbGVtZW50LmNw
cCAqLywKQEAgLTIyODQ3LDYgKzIyODU3LDcgQEAKIAkJCQlCMjIyNzk1NjBEMDBCRjIxMDA3MUI3
ODIgLyogU1ZHVXNlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NTcwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1VzZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1ODBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHVXNlRWxlbWVudC5pZGwgKi8sCisJCQkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNW
R1ZhbHVlLmggKi8sCiAJCQkJQjIyMjc5NTkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVt
ZW50LmNwcCAqLywKIAkJCQlCMjIyNzk1QTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1l
bnQuaCAqLywKIAkJCQlCMjIyNzk1QjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQu
aWRsICovLApAQCAtMjk2OTMsNiArMjk3MDQsNyBAQAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENB
OTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI0RDkxMkI4
MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3
IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTc5NzA5MTI3ODM5
NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovLApAQCAtMjk4
MDQsNiArMjk4MTYsNyBAQAogCQkJCUIyMjI3QTNDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5l
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxMDc2NDQxMjgyODU1NjAwN0M2M0JBIC8q
IFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMDkxMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1
NjI3Qjc4MjAyOTJCRjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01hcmtlckVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4MTYsNiArMjk4MjksNyBAQAogCQkJCUIyMjI3
QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZh
bHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAw
RTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQx
MjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI5
ODU0LDYgKzI5ODY4LDcgQEAKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0
aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAv
KiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIw
RjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTU4QjY5OUMyMDI1NDYwNTAwNEQ3NUY0IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01v
dmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8q
IFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYy
MTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjk4NjUsMTAgKzI5ODgwLDEyIEBACiAJCQkJQjIyMjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAx
Mjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlEMjAy
NTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlnb25FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxp
bmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUUy
MDI1NDYyQjAwNEQ3NUY0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZH
UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODc2LDcgKzI5ODkzLDYgQEAK
IAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Jl
Y3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIg
LyogU1ZHUmVjdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTk3QjE4MEMxNTA2MzUzMjAw
RTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QUEwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMjI3NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5kZXJTdHlsZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzNyw3IEBACiAJCQkJQjIyMjdBREEwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1RyYW5zZm9ybWFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QURE
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBREYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybUxpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVGNCAvKiBTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIg
LyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUUyMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
RTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTkyOCw2ICsyOTk0NSw3IEBACiAJCQkJMzdDNzM4RUQxRURCRDVCQzAwM0YyQjBCIC8qIFNW
R1Vua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFQTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHVVJJUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFRDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4
QjY5OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FGMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3U3BlYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQ4NTIyOEIxMTkwMTczQzAwNkVEQzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Bh
dGhEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1BhdGhEYXRhLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxNiArMTAwLDE2
IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZHRWxlbWUKIAogc3RhdGljIFBh
dGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1
dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50PihlbGVtZW50KS5hbmltYXRl
ZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5
Z29uRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsK
ICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBh
dGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3Zl
VG8ocG9pbnRzLmZpcnN0UHJvcGVydHkoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRz
LnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhw
b2ludHMucHJvcGVydHlBdChpKSk7CiAKICAgICBwYXRoLmNsb3NlU3VicGF0aCgpOwogICAgIHJl
dHVybiBwYXRoOwpAQCAtMTE3LDE2ICsxMTcsMTYgQEAgc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5
Z29uRWxlbWVudChTVkdFbAogCiBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlsaW5lRWxlbWVudChT
VkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1Bv
bHlsaW5lRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAg
YXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVtZW50PihlbGVtZW50KS5hbmlt
YXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRv
KHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RQcm9wZXJ0eSgp
KTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5h
dChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5wcm9wZXJ0eUF0KGkpKTsKICAg
ICByZXR1cm4gcGF0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0
TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsMTUgKzE2
MywxNSBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6YnVpCiBzdGF0aWMg
aW5saW5lIHZvaWQgdXBkYXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBpLCBmbG9hdCYgbGFzdFJv
dGF0aW9uLCBTVkdDaGFyYWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBTVkdMZW5ndGhDb250ZXh0JiBs
ZW5ndGhDb250ZXh0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiB4TGlzdCwgY29uc3QgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR4TGlz
dCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHlMaXN0LCBjb25zdCBTVkdOdW1iZXJMaXN0
VmFsdWVzKiByb3RhdGVMaXN0KQogewogICAgIGlmICh4TGlzdCkKLSAgICAgICAgZGF0YS54ID0g
eExpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLnggPSB4TGlz
dC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0g
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAg
ICAgZGF0YS55ID0geUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAg
ICAgaWYgKGR4TGlzdCkKLSAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+YXQoaSkudmFsdWUobGVu
Z3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHggPSBkeExpc3QtPnByb3BlcnR5QXQoaSkudmFs
dWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAgICAgICAgZGF0YS5keSA9IGR5
TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHkgPSBkeUxp
c3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0ZUxp
c3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAgICAg
ZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBsYXN0Um90
YXRpb24gPSBkYXRhLnJvdGF0ZTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5nbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdBbmdsZSA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1ZSYg
dmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R0FuZ2xlKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEg
KzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShp
bml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUo
Y29uc3QgU1ZHQW5nbGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdBbmdsZT4+IGNyZWF0
ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0
aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01Niw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAg
IFNWR0FuZ2xlVmFsdWU6OlR5cGUgdW5pdFR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBy
b3BlcnR5UmVmZXJlbmNlKCkudW5pdFR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVy
dHkoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVl
Rm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC02NCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0VmFsdWUodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWUodmFsdWUp
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzIs
NyArNjcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5ncygpCiAg
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZSgpOworICAgICAg
ICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRV
bml0cykKQEAgLTgwLDcgKzc1LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRWYWx1ZUluU3BlY2lmaWVk
VW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNl
dFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OCw3ICs4
Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmll
ZFVuaXRzKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVJblNwZWNpZmll
ZFVuaXRzKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc1N0cmlu
Zyhjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtOTYsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgCkBAIC0xMDYsNyArMTAxLDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHZhbHVlQXNTdHJp
bmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVBc1N0
cmluZygpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnZhbHVlQXNTdHJpbmcoKTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0x
MTQsNyArMTA5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUs
IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEyNyw3ICsxMjIs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuY29udmVydFRvU3BlY2lmaWVkVW5pdHMo
dW5pdFR5cGUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5jb252ZXJ0
VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEzNiw3ICsx
MzEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuZ2xlKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdB
bmdsZVZhbHVlJiB2YWx1ZSkKKyAgICBTVkdBbmdsZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KCZh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTQ1LDExICsx
NDAsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZh
bHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR0FuZ2xl
KGNvbnN0IFNWR0FuZ2xlVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNCw3
ICsyMjQsNyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlCiAgICAg
aWYgKCFtX2FuaW1hdGVkVHlwZSkKICAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBhbmltYXRvci0+
Y29uc3RydWN0RnJvbVN0cmluZyhiYXNlVmFsdWUpOwogICAgIGVsc2UKLSAgICAgICAgbV9hbmlt
YXRlZFR5cGUtPnNldFZhbHVlQXNTdHJpbmcoYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKTsKKyAg
ICAgICAgbV9hbmltYXRlZFR5cGUtPnBhcnNlKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQoU1ZHRWxlbWVu
dCYgdGFyZ2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
QEAgLTM0NCwxNCArMzQ0LDE0IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJl
c3VsdHMKICAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IC8vIENTUyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBhdGguCiAgICAgICAgIC8vIENvbnZl
cnQgdGhlIHJlc3VsdCBvZiB0aGUgYW5pbWF0aW9uIHRvIGEgU3RyaW5nIGFuZCBhcHBseSBpdCBh
cyBDU1MgcHJvcGVydHkgb24gdGhlIHRhcmdldCAmIGFsbCBpbnN0YW5jZXMuCi0gICAgICAgIGFw
cGx5Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmli
dXRlTmFtZSwgbV9hbmltYXRlZFR5cGUtPnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIGFwcGx5
Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcygqdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgbV9hbmltYXRlZFR5cGUtPnRvU3RyaW5nKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgLy8gV2UgZG8gdXBkYXRlIHRoZSBzdHlsZSBhbmQgdGhlIGFuaW1hdGlvbiBwcm9w
ZXJ0eSBpbmRlcGVuZGVudCBvZiBlYWNoIG90aGVyLgogICAgIFNob3VsZEFwcGx5QW5pbWF0aW9u
IHNob3VsZEFwcGx5ID0gc2hvdWxkQXBwbHlBbmltYXRpb24odGFyZ2V0RWxlbWVudC5nZXQoKSwg
YXR0cmlidXRlTmFtZSk7CiAgICAgaWYgKHNob3VsZEFwcGx5ID09IEFwcGx5WE1MYW5kQ1NTQW5p
bWF0aW9uKQotICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRh
cmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5n
KCkpOworICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXMoKnRhcmdl
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT50b1N0cmluZygpKTsKIAog
ICAgIC8vIFNWRyBET00gYW5pbVZhbCBhbmltYXRpb24gY29kZS1wYXRoLgogICAgIC8vIEF0IHRo
aXMgcG9pbnQgdGhlIFNWRyBET00gdmFsdWVzIGFyZSBhbHJlYWR5IGNoYW5nZWQsIHVubGlrZSBm
b3IgQ1NTLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMzEgKzEzNiw2IEBA
IHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW0KICAgICB1cGRhdGVBbmlt
YXRpb25Nb2RlKCk7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBz
LCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXco
cykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNoYXIqIGN1ciA9IHVwY29u
dmVydGVkQ2hhcmFjdGVyczsKLSAgICBjb25zdCBVQ2hhciogZW5kID0gY3VyICsgcy5sZW5ndGgo
KTsKLSAgICAKLSAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsKLSAgICBpZiAoIXBhcnNl
TnVtYmVyKGN1ciwgZW5kLCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZs
b2F0IHkgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHkpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOwotICAgIAot
ICAgIC8vIGRpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVuZAotICAgIHJl
dHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0KLSAgICAKIHZvaWQgU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKIHsKICAgICBpZiAoIWhh
c1ZhbGlkQXR0cmlidXRlVHlwZSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkQW5nbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkQW5nbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMiArMzIsMTIgQEAgU1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmltYXRlZEFuZwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTxz
dGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAgICBhdXRvJiBhbmltYXRl
ZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLQotICAgIFNWR0Fu
Z2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBh
bmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUgPiAwKQotICAgICAgICBhbmltYXRlZFBhaXIuc2Vj
b25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBTVkdNYXJrZXJPcmllbnRB
bmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7Ci0KLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9w
ZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pjo6ZnJvbVN0cmlu
ZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29uc3RydWN0RnJvbUJhc2VW
YWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFu
Z2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU3LDcgKzQ3LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVgogCiB2b2lkIFNWR0Fu
aW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6
YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRl
ZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc1LDEz
ICs2NSwxMyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0CiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEFuZ2xlKTsKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51
bWVyYXRpb24gPSBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgdG9Bbmds
ZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0FuZ2xlID0gc3RhdGljX2Nh
c3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0VudW1lcmF0
aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1sxXSk7CiAgICAgLy8gT25s
eSByZXNwZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmll
ZCBpbiBhbmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCi0gICAgaWYgKGZyb21BbmdsZUFuZEVu
dW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21B
bmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICBp
ZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24gfHwgZnJvbUVudW1lcmF0aW9uICE9
IFNWR01hcmtlck9yaWVudEFuZ2xlKQogICAgICAgICByZXR1cm47Ci0gICAgY29uc3QgYXV0byYg
ZnJvbUFuZ2xlID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7Ci0gICAgYXV0byYgdG9B
bmdsZSA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKICAgICB0b0FuZ2xlLnNldFZhbHVl
KHRvQW5nbGUudmFsdWUoKSArIGZyb21BbmdsZS52YWx1ZSgpKTsKIH0KIApAQCAtOTAsNDggKzgw
LDQ5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBBU1NF
UlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAK
LSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmFuZ2xlQW5k
RW51bWVyYXRpb24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0
b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1
dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvQXRFbmRPZkR1cmF0
aW9uLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVu
dW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tQW5nbGUgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSkgOiBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmlt
YXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmlt
YXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1sx
XSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG8t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGUg
PSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MF0pOworICAgIGF1dG8mIGFuaW1hdGVkQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVl
Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkRW51bWVyYXRpb24g
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKTsKIAotICAgIGlm
IChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9u
LnNlY29uZCkgeworICAgIGlmIChmcm9tRW51bWVyYXRpb24gIT0gdG9FbnVtZXJhdGlvbikgewog
ICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gLSBubyBsaW5lYXIgaW50ZXJwb2xhdGlvbiBw
b3NzaWJsZSBiZXR3ZWVuIHZhbHVlcyAoZS5nLiBhdXRvIHRvIGFuZ2xlKS4KICAgICAgICAgaWYg
KHBlcmNlbnRhZ2UgPCAwLjVmKSB7Ci0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVy
YXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOwotICAgICAgICAg
ICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRB
bmdsZSkKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Qg
PSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKKyAgICAgICAgICAgIGFuaW1hdGVkRW51
bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CisgICAgICAgICAgICBpZiAoZnJvbUVudW1lcmF0
aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5n
bGUgPSBmcm9tQW5nbGU7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYW5pbWF0
ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgICAgICAgICAgICAg
IGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IHRvQW5nbGVB
bmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgIGlmICh0b0FuZ2xlQW5kRW51bWVyYXRpb24u
c2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLmZpcnN0ID0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OworICAg
ICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gdG9FbnVtZXJhdGlvbjsKKyAgICAgICAgaWYgKHRv
RW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlID0gdG9BbmdsZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYW5pbWF0ZWRBbmds
ZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgICAgICAgICAgYW5pbWF0ZWRB
bmdsZS5zZXRWYWx1ZSgwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChmcm9t
QW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpIHsKKyAg
ICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKSB7CiAgICAgICAg
IC8vIFJlZ3VsYXIgZnJvbSBhbmdsZSB0byBhbmdsZSBhbmltYXRpb24sIHdpdGggc3VwcG9ydCBm
b3Igc21vb3RoIGludGVycG9sYXRpb24sIGFuZCBhZGRpdGl2ZSBhbmQgYWNjdW11bGF0ZWQgYW5p
bWF0aW9uLgotICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gU1ZH
TWFya2VyT3JpZW50QW5nbGU7CisgICAgICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBTVkdNYXJr
ZXJPcmllbnRBbmdsZTsKIAotICAgICAgICBhdXRvJiBhbmltYXRlZFNWR0FuZ2xlID0gYW5pbWF0
ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvblNWR0FuZ2xlID0gdG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9u
LmZpcnN0OwotICAgICAgICBmbG9hdCBhbmltYXRlZEFuZ2xlID0gYW5pbWF0ZWRTVkdBbmdsZS52
YWx1ZSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJl
cihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Qu
dmFsdWUoKSwgdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnZhbHVlKCksIHRvQXRFbmRPZkR1
cmF0aW9uU1ZHQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIGFuaW1hdGVk
U1ZHQW5nbGUuc2V0VmFsdWUoYW5pbWF0ZWRBbmdsZSk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVk
QW5nbGVWYWx1ZSA9IGFuaW1hdGVkQW5nbGUudmFsdWUoKTsKKyAgICAgICAgbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZy
b21BbmdsZS52YWx1ZSgpLCB0b0FuZ2xlLnZhbHVlKCksIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGUu
dmFsdWUoKSwgYW5pbWF0ZWRBbmdsZVZhbHVlKTsKKyAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRW
YWx1ZShhbmltYXRlZEFuZ2xlVmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
Ly8gYXV0bywgYXV0by1zdGFydC1yZXZlcnNlLCBvciB1bmtub3duLgotICAgIGFuaW1hdGVkQW5n
bGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICBhbmltYXRlZEFuZ2xlLnNl
dFZhbHVlKDApOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBT
VkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBT
VkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQotICAgICAgICBhbmltYXRlZEFuZ2xlQW5k
RW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOworICAg
IGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCBmcm9tRW51bWVy
YXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICAgICAgYW5pbWF0
ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVtZXJhdGlvbjsKICAgICBlbHNlCi0gICAgICAgIGFuaW1h
dGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJPcmllbnRVbmtub3duOwor
ICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKIH0K
IAogZmxvYXQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6U1ZHQW5p
bWF0ZWRCCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9v
bGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFu
KHN0ZDo6bWFrZV91bmlxdWU8Ym9vbD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5ib29sZWFuKCkg
PSAoc3RyaW5nID09ICJ0cnVlIik7IC8vIHdhdD8KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxib29s
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0g
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFu
aQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVh
bik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRv
cjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVCht
X2NvbnRleHRFbGVtZW50KTsKIAotICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5ib29sZWFu
KCkgOiBmcm9tLT5ib29sZWFuKCk7Ci0gICAgYm9vbCB0b0Jvb2xlYW4gPSB0by0+Ym9vbGVhbigp
OwotICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5ib29sZWFuKCk7CisgICAg
Ym9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6
IHN0YXRpY19jYXN0PGJvb2wmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBib29sIHRvQm9vbGVh
biA9IHN0YXRpY19jYXN0PGJvb2wmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYm9vbCYgYW5pbWF0
ZWRCb29sZWFuID0gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAog
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxib29sPihwZXJjZW50
YWdlLCBmcm9tQm9vbGVhbiwgdG9Cb29sZWFuLCBhbmltYXRlZEJvb2xlYW4pOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw3ICszMyw3IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6U1ZHQW5pbWF0ZWRD
b2wKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRDb2xvckFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6bWFrZV91bmlxdWU8Q29s
b3I+KENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpKSk7Cisg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPENvbG9y
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0
b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5
cGUqIHRvKQpAQCAtNDQsOCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6
YWRkQW5pbWF0CiAgICAgQVNTRVJUKHRvLT50eXBlKCkgPT0gQW5pbWF0ZWRDb2xvcik7CiAKICAg
ICAvLyBJZ25vcmVzIGFueSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBvbiByZXN1bHQgdG8gMTAwJSBv
cGFxdWUuCi0gICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+Y29sb3IoKTsKLSAgICBhdXRvJiB0
b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgYXV0byYgZnJvbUNvbG9yID0gc3RhdGljX2Nhc3Q8
Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0NvbG9yID0gc3RhdGljX2Nh
c3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7CiAgICAgdG9Db2xvciA9IHsgcm91bmRBbmRDbGFt
cENvbG9yQ2hhbm5lbCh0b0NvbG9yLnJlZCgpICsgZnJvbUNvbG9yLnJlZCgpKSwKICAgICAgICAg
cm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmdyZWVuKCkgKyBmcm9tQ29sb3IuZ3Jl
ZW4oKSksCiAgICAgICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ibHVlKCkg
KyBmcm9tQ29sb3IuYmx1ZSgpKSB9OwpAQCAtNjksOCArNjksOCBAQCB2b2lkIFNWR0FuaW1hdGVk
Q29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7
CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29sb3IgZnJvbUNvbG9yID0g
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmlt
YXRlZC0+Y29sb3IoKSA6IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3IgdG9Db2xvciA9IHRvLT5j
b2xvcigpOworICAgIENvbG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Q29sb3ImPigqYW5pbWF0ZWQt
PnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IENvbG9yIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+dmFsdWVzWzBdKTsKIAog
ICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFkanVzdEZvckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9yRnJvbVN0cmluZywgbV9h
bmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUNvbG9yLCBtX2Nv
bnRleHRFbGVtZW50KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5p
bWF0b3I6OmNhbGN1bGF0ZQogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPnRvUHJvcGVydHlW
YWx1ZVR5cGUoKSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAgdG9Db2xvciA9IGN1cnJl
bnRDb2xvcigqbV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
bkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRD
b2xvciA9IGFuaW1hdGVkLT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQ29s
b3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsK
KyAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqYW5pbWF0ZWQt
PnZhbHVlc1swXSk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xvciAtIHRoaXMgd2lsbCBu
ZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBkaWZmZXJlbnQgY29sb3Ig
c3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBbMC0yNTVdIENvbG9ycy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDE0ICsxMDksMTIgQEAgU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpTVkdBbmltYQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1l
bnQpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVt
ZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAgICBhbmltYXRlZFR5cGUt
PmVudW1lcmF0aW9uKCkgPSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5p
bWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJp
YnV0ZU5hbWUoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmli
dXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1l
bnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlw
ZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1l
cmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9u
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjQsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RvCiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVk
VHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTsKKyAgICByZXNldEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjphbmltVmFsV2lsbENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC0xNDksOSArMTQ3LDkgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6
OmNhbAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmVudW1l
cmF0aW9uKCkgOiBmcm9tLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkIHRvRW51bWVyYXRp
b24gPSB0by0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlv
biA9IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlv
biA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHVuc2lnbmVkIHRvRW51bWVyYXRp
b24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25l
ZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVk
LT52YWx1ZXNbMF0pOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVU
eXBlPHVuc2lnbmVkPihwZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24sIHRvRW51bWVyYXRpb24s
IGFuaW1hdGVkRW51bWVyYXRpb24pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIg
QEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVkSQogCiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3Ry
dWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPGlu
dD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyKCkgPSBzdHJpbmcudG9JbnRTdHJpY3Qo
KTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVJbnRlZ2VyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVn
ZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pCiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0
eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsNyArNjYsNyBAQCB2
b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmltCiAgICAgQVNTRVJUKGZyb20t
PnR5cGUoKSA9PSBBbmltYXRlZEludGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0g
dG8tPnR5cGUoKSk7CiAKLSAgICB0by0+aW50ZWdlcigpICs9IGZyb20tPmludGVnZXIoKTsKKyAg
ICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8aW50Jj4o
KmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6
OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25F
bGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgaW50IGZyb21J
bnRlZ2VyLCBpbnQgdG9JbnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBpbnQm
IGFuaW1hdGVkSW50ZWdlcikKQEAgLTgzLDEwICs4MSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlckFuaW1hdG9yOjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgaW50IGZyb21JbnRlZ2VyID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRl
ZC0+aW50ZWdlcigpIDogZnJvbS0+aW50ZWdlcigpOwotICAgIGludCB0b0ludGVnZXIgPSB0by0+
aW50ZWdlcigpOwotICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+aW50ZWdlcigpOwotICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWQt
PmludGVnZXIoKTsKKyAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRl
ZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAg
IGludCB0b0ludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSk7CisgICAg
aW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5k
T2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IHN0YXRp
Y19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIGNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBm
cm9tSW50ZWdlciwgdG9JbnRlZ2VyLCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGFuaW1hdGVk
SW50ZWdlcik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDIzICszMywxMiBAQCBTVkdBbmltYXRlZEludGVnZXJPcHRp
b25hbEludGVnZXJBbmltYXRvCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6bWFrZV91bmlx
dWU8c3RkOjpwYWlyPGludCwgaW50Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5p
bWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0g
ICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwOwotICAgIGZsb2F0IHNlY29uZE51bWJlciA9IDA7Ci0g
ICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNl
Y29uZE51bWJlcikpIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gMDsKLSAgICAg
ICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYW5p
bWF0ZWRJbnRlZ2VyLmZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmlyc3ROdW1iZXIp
KTsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IHN0YXRpY19jYXN0PGludD4ocm91
bmRmKHNlY29uZE51bWJlcikpOwotICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBh
aXI8aW50LCBpbnQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0
b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmlt
YXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJl
dHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1h
dGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzQ4LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbgogCiB2b2lkIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmlt
YXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc3LDExICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGZyb21JbnRl
Z2VyUGFpciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBzdGQ6OnBhaXI8
aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsK
LQotICAgIHRvSW50ZWdlclBhaXIuZmlyc3QgKz0gZnJvbUludGVnZXJQYWlyLmZpcnN0OwotICAg
IHRvSW50ZWdlclBhaXIuc2Vjb25kICs9IGZyb21JbnRlZ2VyUGFpci5zZWNvbmQ7CisgICAgc3Rh
dGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGludCY+KCpmcm9t
LT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzFdKSArPSBz
dGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShm
bG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBm
cm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0
aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODksMTMgKzc1LDE3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQobV9hbmltYXRp
b25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBz
dGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyKCkgOiBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qg
c3RkOjpwYWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9BdEVuZE9mRHVyYXRp
b25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyUGFpciA9IGFuaW1h
dGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7CisgICAgY29uc3QgaW50JiBmb3JtRmlyc3Qg
PSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0
YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGludCY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgZm9ybVNlY29uZCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8
aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZh
bHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0ZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRv
LT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9TZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQm
PigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0
ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigq
dG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7CisgICAgaW50JiBhbmltYXRlZEZpcnN0ID0g
c3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGludCYgYW5pbWF0
ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAg
ICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1f
YW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFp
ci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFp
ci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFpci5maXJzdCk7Ci0gICAgU1ZHQW5pbWF0ZWRJbnRl
Z2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQs
IHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIuc2Vjb25kLCB0b0ludGVn
ZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5zZWNvbmQsIGFuaW1h
dGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKKyAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGZvcm1GaXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwg
YW5pbWF0ZWRGaXJzdCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENv
dW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1h
dGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBAQCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9y
OjpTVkdBbmltYXRlZExlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKHN0ZDo6
bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZhbHVlKG1fbGVuZ3RoTW9k
ZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDgsNyBA
QCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5p
bWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0
ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTsKKyAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDggKzY3
LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VS
VChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7Ci0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0
aCA9IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOwor
ICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZH
TGVuZ3RoVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB0b0xlbmd0aC5zZXRWYWx1ZSh0
b0xlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGgudmFsdWUobGVuZ3RoQ29u
dGV4dCksIGxlbmd0aENvbnRleHQpOwogfQpAQCAtODUsMTAgKzg1LDEwIEBAIHZvaWQgU1ZHQW5p
bWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVt
ZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21TVkdM
ZW5ndGggPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IGFuaW1hdGVkLT5sZW5ndGgoKSA6IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8gdG9TVkdM
ZW5ndGggPSB0by0+bGVuZ3RoKCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25T
VkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgYW5pbWF0
ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCk7CisgICAgYXV0byBmcm9tU1ZHTGVuZ3Ro
ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRp
Y19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byB0b1NW
R0xlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoVmFsdWUmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4K
ICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFNWR0xlbmd0aFZh
bHVlPihwYXJzZUxlbmd0aEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3Bl
cnR5VmFsdWVUeXBlKCksIGZyb21TVkdMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OlNWR0FuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aExpc3RWYWx1ZXM+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNlKHN0cmluZywgbV9sZW5n
dGhNb2RlKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6ZnJv
bVN0cmluZyhzdHJpbmcsIG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVz
KSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0
eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsOCAr
NjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBCiAgICAgQVNT
RVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoTGlz
dCA9IGZyb20tPmxlbmd0aExpc3QoKTsKLSAgICBhdXRvJiB0b0xlbmd0aExpc3QgPSB0by0+bGVu
Z3RoTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvTGVu
Z3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1sw
XSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTGVuZ3RoTGlzdFNpemUgPSBmcm9tTGVuZ3RoTGlzdC5z
aXplKCk7CiAgICAgaWYgKCFmcm9tTGVuZ3RoTGlzdFNpemUgfHwgZnJvbUxlbmd0aExpc3RTaXpl
ICE9IHRvTGVuZ3RoTGlzdC5zaXplKCkpCkBAIC03Nyw3ICs3NSw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3Ro
Q29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbUxlbmd0aExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTGVuZ3RoTGlzdFtpXS5zZXRWYWx1
ZSh0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoTGlzdFtp
XS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CisgICAgICAgIHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZh
bHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShs
ZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CiB9CiAKIHN0YXRpYyBTVkdMZW5ndGhMaXN0
VmFsdWVzIHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5p
bWF0aW9uRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC05MiwxMCArOTAsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1
dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBmcm9tLT5sZW5ndGhMaXN0
KCk7Ci0gICAgYXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOwotICAgIGNvbnN0
IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5s
ZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0ZWQtPmxl
bmd0aExpc3QoKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhM
aXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBj
b25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdM
ZW5ndGhMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1
dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMm
PigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2Ug
cnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdM
ZW5ndGhMaXN0VmFsdWVzPihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3RoTGlzdCwgbV9jb250ZXh0
RWxlbWVudCk7CkBAIC0xMTAsMTggKzEwOCwxOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpjYWxjCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9j
b250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTGVuZ3RoTGlz
dFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkTGVu
Z3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKLSAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1
bml0VHlwZSA9IHRvTGVuZ3RoTGlzdFtpXS51bml0VHlwZSgpOworICAgICAgICBmbG9hdCBhbmlt
YXRlZE51bWJlciA9IGFuaW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0
LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsKICAgICAgICAgZmxvYXQgZWZmZWN0aXZlRnJvbSA9
IDA7CiAgICAgICAgIGlmIChmcm9tTGVuZ3RoTGlzdFNpemUpIHsKICAgICAgICAgICAgIGlmIChw
ZXJjZW50YWdlIDwgMC41KQotICAgICAgICAgICAgICAgIHVuaXRUeXBlID0gZnJvbUxlbmd0aExp
c3RbaV0udW5pdFR5cGUoKTsKLSAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tTGVuZ3Ro
TGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgICAgICAgICB1bml0VHlwZSA9
IGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsKKyAgICAgICAgICAgIGVm
ZmVjdGl2ZUZyb20gPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENv
bnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwg
dG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdFtp
XS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRF
bmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVu
Z3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpIDogMDsKIAotICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENv
bnRleHQpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7Ci0gICAgICAgIGFuaW1h
dGVkTGVuZ3RoTGlzdFtpXS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJlciwg
bV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9t
LCB0b0xlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgZWZmZWN0
aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOworICAgICAgICBhbmltYXRlZExlbmd0aExpc3Qu
cHJvcGVydHlBdChpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJlciwgbV9s
ZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE2ICsz
MiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpTVkdBbmltYXRlZE51CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihzdGQ6Om1ha2VfdW5pcXVl
PGZsb2F0PigpKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZFR5cGUtPm51
bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgYW5pbWF0ZWRO
dW1iZXIpKQotICAgICAgICBhbmltYXRlZE51bWJlciA9IDA7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFp
dHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0
dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTUxLDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9w
QW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJl
cik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphbmltVmFs
V2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9y
OjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXIpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+bnVtYmVy
KCkgKz0gZnJvbS0+bnVtYmVyKCk7CisgICAgc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVl
c1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKIH0KIAogc3Rh
dGljIGZsb2F0IHBhcnNlTnVtYmVyRnJvbVN0cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgZmxvYXQgbnVtYmVyID0gMDsKLSAgICBwYXJzZU51
bWJlckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpOwotICAgIHJldHVybiBudW1iZXI7CisgICAg
cmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpOwogfQog
CiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUo
ZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSog
ZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJh
dGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEwICs3OCwxMCBAQCB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgZmxvYXQg
ZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5p
bWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlcigpIDogZnJvbS0+bnVtYmVyKCk7Ci0gICAgZmxvYXQg
dG9OdW1iZXIgPSB0by0+bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRpb25OdW1i
ZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyKCk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVt
YmVyID0gYW5pbWF0ZWQtPm51bWJlcigpOworICAgIGZsb2F0IGZyb21OdW1iZXIgPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJv
bS0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgZmxv
YXQmIGFuaW1hdGVkTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmlt
YXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJGcm9t
U3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9t
TnVtYmVyLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZE51bWJlckxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZE51bWJlckxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
MTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAog
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3Rk
OjptYWtlX3VuaXF1ZTxTVkdOdW1iZXJMaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUt
Pm51bWJlckxpc3QoKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Cisg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR051
bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJM
aXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRl
ZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxp
c3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDksNyArNDcsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsK
LSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5
cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KTsKKyAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NjcsMjUgKzY1LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEEK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyTGlzdCk7CiAgICAgQVNT
RVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21O
dW1iZXJMaXN0ID0gZnJvbS0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIHRvTnVtYmVyTGlzdCA9
IHRvLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBzdGF0
aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0
byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0by0+
dmFsdWVzWzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21OdW1iZXJMaXN0U2l6ZSA9IGZyb21OdW1i
ZXJMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21OdW1iZXJMaXN0U2l6ZSB8fCBmcm9tTnVtYmVy
TGlzdFNpemUgIT0gdG9OdW1iZXJMaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyb21OdW1iZXJMaXN0U2l6ZTsgKytpKQotICAgICAg
ICB0b051bWJlckxpc3RbaV0gKz0gZnJvbU51bWJlckxpc3RbaV07CisgICAgICAgIHN0YXRpY19j
YXN0PGZsb2F0Jj4oKnRvTnVtYmVyTGlzdFtpXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJv
bU51bWJlckxpc3RbaV0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVh
dENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0Fu
aW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQp
CiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBm
cm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlckxpc3QoKSA6IGZyb20tPm51bWJlckxpc3QoKTsK
LSAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+bnVtYmVyTGlzdCgpOwotICAgIGNv
bnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9u
LT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gYW5pbWF0ZWQt
Pm51bWJlckxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8
U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0
PFNWR051bWJlckxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRv
JiB0b051bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9
IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZh
bHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZH
TnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKICAgICBpZiAoIW1fYW5p
bWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdOdW1iZXJMaXN0VmFsdWVz
Pihmcm9tTnVtYmVyTGlzdCwgdG9OdW1iZXJMaXN0LCBhbmltYXRlZE51bWJlckxpc3QsIHBlcmNl
bnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk0LDkgKzkyLDkgQEAgdm9pZCBTVkdBbmlt
YXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsYwogICAgIHVuc2lnbmVkIHRvQXRFbmRPZkR1cmF0
aW9uU2l6ZSA9IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5zaXplKCk7CiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9OdW1iZXJMaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZs
b2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdFtp
XSA6IDA7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVy
YXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0W2ldIDogMDsKLSAgICAgICAg
bV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVw
ZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdFtpXSwgZWZmZWN0aXZlVG9BdEVu
ZCwgYW5pbWF0ZWROdW1iZXJMaXN0W2ldKTsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlRnJvbSA9
IGZyb21OdW1iZXJMaXN0U2l6ZSA/IGZyb21OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkgOiAwOwor
ICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6
ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDogMDsKKyAgICAg
ICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpLCBl
ZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlckxpc3QucHJvcGVydHlBdChpKSk7CiAgICAg
fQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDE4ICszMywxMiBAQCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5p
bWF0b3I6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGFuaW1hdGVkTnVt
YmVyID0gYW5pbWF0ZWRUeXBlLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIGlmICghcGFy
c2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGFuaW1hdGVkTnVtYmVyLmZpcnN0LCBhbmlt
YXRlZE51bWJlci5zZWNvbmQpKSB7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLmZpcnN0ID0gMDsK
LSAgICAgICAgYW5pbWF0ZWROdW1iZXIuc2Vjb25kID0gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3RydWN0RnJvbUJh
c2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5
cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVt
YmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01
NCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KIAog
dm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlw
ZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIpOworICAgIHJlc2V0RnJv
bUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRl
ZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcyLDExICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0g
dG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51
bWJlclBhaXIgPSBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxm
bG9hdCwgZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsK
LQotICAgIHRvTnVtYmVyUGFpci5maXJzdCArPSBmcm9tTnVtYmVyUGFpci5maXJzdDsKLSAgICB0
b051bWJlclBhaXIuc2Vjb25kICs9IGZyb21OdW1iZXJQYWlyLnNlY29uZDsKKyAgICBzdGF0aWNf
Y2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9t
LT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pICs9
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUq
IGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVy
YXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMyArNzUsMTcgQEAgdm9p
ZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVChtX2FuaW1h
dGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0
IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlck9w
dGlvbmFsTnVtYmVyKCkgOiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBjb25z
dCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlv
bmFsTnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvQXRFbmRP
ZkR1cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJPcHRpb25hbE51
bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlclBhaXIg
PSBhbmltYXRlZC0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBjb25zdCBhdXRvJiBmb3Jt
Rmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiBmb3JtU2Vjb25k
ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBz
dGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PGZs
b2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYgdG9GaXJzdCA9IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvU2Vjb25k
ID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYg
dG9BdEVuZE9mRHVyYXRpb25GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1
cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU2Vj
b25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7
CisgICAgYXV0byYgYW5pbWF0ZWRGaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVk
LT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkU2Vjb25kID0gc3RhdGljX2Nhc3Q8Zmxv
YXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbU51bWJlclBh
aXIuZmlyc3QsIHRvTnVtYmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWly
LmZpcnN0LCBhbmltYXRlZE51bWJlclBhaXIuZmlyc3QpOwotICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVt
YmVyUGFpci5zZWNvbmQsIHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uTnVt
YmVyUGFpci5zZWNvbmQsIGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQpOworICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QsIGFuaW1hdGVkRmly
c3QpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRp
b25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBACiAKICNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudEJhc2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTMzLDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OlNW
R0FuaW1hdGVkUGF0aAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRl
U3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywg
KmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJv
bVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00Myw5ICs0MCw5
IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KICAgICBBU1NFUlQo
YW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAKICAgICAvLyBCdWlsZCBpbml0aWFsIHBhdGgg
Ynl0ZSBzdHJlYW0uCi0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQ
YXRoQnl0ZVN0cmVhbT4oKTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBl
cywgYnl0ZVN0cmVhbS5nZXQoKSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
UGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlPFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIHJlc2V0QW5pbVZh
bFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCkBAIC01OCw3ICs1NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJl
c2V0QW5pbVYKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zj4gcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MF0uZ2V0KCkpOwogICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50
QmFzZVZhbHVlKCk7CiAKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdM
aXN0VmFsdWVzKGJhc2VWYWx1ZSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAg
IGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqYmFzZVZhbHVlKSwgKmJ5dGVTdHJlYW0sIFVuYWx0
ZXJlZFBhcnNpbmcpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmPj4gcmVzdWx0OwogCkBAIC03Miw3ICs2OSw3IEBAIHZvaWQgU1ZHQW5p
bWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBpZiAoIXJlc3VsdC5pc0VtcHR5KCkp
IHsKICAgICAgICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2NrZXIoKnBy
b3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBzZWdtZW50IDog
cmVzdWx0KQotICAgICAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFt
LCAmYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0
ZVN0cmVhbSwgJnN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmJhc2VWYWx1ZSkp
OwogICAgIH0KIH0KIApAQCAtODAsNyArNzcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1h
dG9yOjpyZXNldEFuaW1WCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEp
OwogICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIHJlc2V0QW5pbVZhbFRv
QmFzZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAgcmVzZXRBbmltVmFsVG9C
YXNlVmFsKGFuaW1hdGVkVHlwZXMsICZzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0
eXBlLnZhbHVlc1swXSkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphbmlt
VmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC05OCwxMiArOTUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRv
cjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQYXRoKTsK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgU1ZHUGF0aEJ5
dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFt
KiB0b1BhdGggPSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21QYXRoU2l6ZSA9IGZyb21Q
YXRoLT5zaXplKCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRv
UGF0aC0+c2l6ZSgpKQorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0gc3RhdGljX2Nhc3Q8U1ZH
UGF0aEJ5dGVTdHJlYW0mPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1BhdGggPSBz
dGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICB1bnNp
Z25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAgaWYgKCFmcm9tUGF0aFNp
emUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0aCk7CisgICAgYWRkVG9T
VkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1
bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5
cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5
cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhB
bmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9t
UGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8t
PnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9mRHVyYXRpb25QYXRoID0g
dG9BdEVuZE9mRHVyYXRpb24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0
ZWRQYXRoID0gYW5pbWF0ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19j
YXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9Q
YXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVT
dHJlYW0mPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0
ZWRQYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqYW5pbWF0ZWQtPnZhbHVl
c1swXSk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHVuZGVybHlp
bmdQYXRoOwogICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1RvQW5pbWF0aW9uKSB7Ci0g
ICAgICAgIHVuZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7Ci0gICAgICAgIGZy
b21QYXRoID0gdW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAgIGlmIChpc1RvQW5pbWF0
aW9uKQorICAgICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIENhY2hlIHRo
ZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1BhdGhC
eXRlU3RyZWFtKCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
UGF0aEJ5dGVTdHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+c2l6
ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlv
bikpCi0gICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBhdGgu
c2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1h
dGlvbikpCisgICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAv
LyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhl
IHBhdGggYW5pbWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0
IGEgU1ZHUGF0aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJl
YW0+KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFsc2Up
KQorICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNW
R1BhdGhCeXRlU3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRh
Z2UsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1BhdGhC
eXRlU3RyZWFtKCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7
CisgICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFu
aW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1bScu
Ci0gICAgaWYgKGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJl
YW0oKmFuaW1hdGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFuaW1h
dGVkUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0
ZWRQYXRoLCBsYXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRlPSdz
dW0nLgogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBl
YXRDb3VudCkKLSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRoLCAq
dG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZHUGF0
aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVhdENv
dW50KTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3Rh
bmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRl
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0
QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChz
dGQ6Om1ha2VfdW5pcXVlPFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZy
b21TVkdEYXRhKGFuaW1hdGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmluZyk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0K
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVQb2ludExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50
TGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MSw3ICs0OSw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEKIAogdm9pZCBTVkdBbmlt
YXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUm
IHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0Pihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOworICAgIHJl
c2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlw
ZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxD
aGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNjksMjUgKzY3LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6
YWRkQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUG9pbnRzKTsKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJv
bVBvaW50TGlzdCA9IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0g
dG8tPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBzdGF0aWNf
Y2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0
b1BvaW50TGlzdCA9ICBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG8tPnZhbHVl
c1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tUG9pbnRMaXN0U2l6ZSA9IGZyb21Qb2ludExpc3Qu
c2l6ZSgpOwogICAgIGlmICghZnJvbVBvaW50TGlzdFNpemUgfHwgZnJvbVBvaW50TGlzdFNpemUg
IT0gdG9Qb2ludExpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9Qb2ludExp
c3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAgdG9Qb2ludExpc3QucHJvcGVydHlB
dChpKSArPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0
ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50
YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmlt
YXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmlt
YXRlZFR5cGUqIGFuaW1hdGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwog
Ci0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBvaW50TGlzdCgpIDogZnJv
bS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cG9pbnRM
aXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0
RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3Qg
PSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3Rh
dGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3Rh
dGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgdG9Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigq
dG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExp
c3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBzdGF0aWNfY2FzdDxT
VkdQb2ludExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUG9pbnRMaXN0VmFsdWVz
Pihmcm9tUG9pbnRMaXN0LCB0b1BvaW50TGlzdCwgYW5pbWF0ZWRQb2ludExpc3QsIHBlcmNlbnRh
Z2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk4LDE0ICs5NiwxNCBAQCB2b2lkIFNWR0FuaW1h
dGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHRvUG9pbnRMaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlRnJv
bTsKICAgICAgICAgaWYgKGZyb21Qb2ludExpc3RTaXplKQotICAgICAgICAgICAgZWZmZWN0aXZl
RnJvbSA9IGZyb21Qb2ludExpc3RbaV07Ci0gICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlVG9B
dEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvblBvaW50
TGlzdFtpXSA6IEZsb2F0UG9pbnQoKTsKKyAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9t
UG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CisgICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlVG9B
dEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvblBvaW50
TGlzdC5wcm9wZXJ0eUF0KGkpIDogRmxvYXRQb2ludCgpOwogCi0gICAgICAgIGZsb2F0IGFuaW1h
dGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRZ
ID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1h
dGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVy
KHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3Rb
aV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsKLSAgICAgICAgYW5pbWF0
ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0ZWRZKTsKKyAgICAg
ICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExpc3QucHJvcGVydHlBdChpKS54KCk7
CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQo
aSkueSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJl
cihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0
LnByb3BlcnR5QXQoaSkueCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0
KGkpLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7CisgICAgICAgIGFuaW1h
dGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkgPSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0
ZWRZKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjoKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjptYWtlX3VuaXF1ZTxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+cHJlc2VydmVBc3Bl
Y3RSYXRpbygpLnBhcnNlKHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0
ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0
b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7
Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4o
YW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRp
byk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1
dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJlc2VydmVBc3BlY3RSYXRpbygp
IDogZnJvbS0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGNvbnN0IGF1dG8mIHRvUHJlc2Vy
dmVBc3BlY3RSYXRpbyA9IHRvLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0aW8o
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gc3RhdGljX2Nhc3Q8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KHBlcmNl
bnRhZ2UsIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZlQXNwZWN0UmF0aW8sIGFu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiwxMiBAQCBT
VkdBbmltYXRlZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0CiAKIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRSZWN0Pigp
KTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJlY3QoKSk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZH
UHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVj
dChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcykp
OworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0b3BBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
c3RvcEFuaW1WYQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cmVj
dCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBl
cywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTY3LDcgKzY1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YWRkQW5p
bWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRSZWN0KTsKICAgICBBU1NF
UlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPnJlY3QoKSArPSBmcm9t
LT5yZWN0KCk7CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRvLT52YWx1ZXNbMF0pICs9
IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0Fu
aW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0Fu
aW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC03NSwxMCArNzMsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IEZsb2F0UmVjdCYg
ZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1h
dGlvbiA/IGFuaW1hdGVkLT5yZWN0KCkgOiBmcm9tLT5yZWN0KCk7Ci0gICAgY29uc3QgRmxvYXRS
ZWN0JiB0b1JlY3QgPSB0by0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9BdEVuZE9m
RHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnJlY3QoKTsKLSAgICBGbG9hdFJlY3Qm
IGFuaW1hdGVkUmVjdCA9IGFuaW1hdGVkLT5yZWN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVJl
Y3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19j
YXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvUmVj
dCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBh
dXRvJiB0b0F0RW5kT2ZEdXJhdGlvblJlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRSZWN0ID0gc3Rh
dGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgZmxvYXQg
YW5pbWF0ZWRYID0gYW5pbWF0ZWRSZWN0LngoKTsKICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmlt
YXRlZFJlY3QueSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRT
dHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSwxNCArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRTdHJp
bmdBbmltYXRvcjo6U1ZHQW5pbWF0ZWRTdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVTdHJpbmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCkpOwotICAgIGFuaW1h
dGVkVHlwZS0+c3RyaW5nKCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5n
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29uc3RydWN0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25z
dHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00
OCw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW0KIAog
dm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmlt
YXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3Ry
aW5nPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcpOworICAg
IHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlw
ZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNzYsOSArNzUsOSBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNhbGN1bGF0
CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVs
ZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyb21TdHJpbmcgPSBmcm9tLT5zdHJpbmcoKTsKLSAgICBT
dHJpbmcgdG9TdHJpbmcgPSB0by0+c3RyaW5nKCk7Ci0gICAgU3RyaW5nJiBhbmltYXRlZFN0cmlu
ZyA9IGFuaW1hdGVkLT5zdHJpbmcoKTsKKyAgICBTdHJpbmcgZnJvbVN0cmluZyA9IHN0YXRpY19j
YXN0PFN0cmluZyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIFN0cmluZyB0b1N0cmluZyA9IHN0
YXRpY19jYXN0PFN0cmluZyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBTdHJpbmcmIGFuaW1hdGVk
U3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAg
ICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U3RyaW5nPihwYXJzZVN0cmluZ0Zyb21TdHJpbmcsIG1f
YW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21TdHJpbmcsIG1f
Y29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwx
NSArNDEsMTIgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OlNWR0FuaQogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RB
bmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlz
dChzdGQ6Om1ha2VfdW5pcXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1h
dGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3JtVHlwZVN0cmluZyArIHN0
cmluZyArICcpJyk7Ci0gICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnNp
emUoKSA8PSAxKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
Pjo6ZnJvbVN0cmluZyhtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScpKTsKIH0K
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTU5LDcgKzU2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
cjo6cwogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1h
dGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc3LDE1ICs3NCwx
NSBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphCiAgICAgQVNTRVJU
KGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3Jt
TGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3Qg
PSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0p
OworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAgICAgYXV0byBmcm9tVHJhbnNmb3JtTGlzdFNp
emUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tVHJhbnNmb3JtTGlz
dFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtTGlzdFNpemUgPT0g
MSk7Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1MaXN0WzBd
OwotICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOworICAgIGNvbnN0
IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApOwor
ICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CiAK
ICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybS50eXBlKCkgPT0gdG9UcmFuc2Zvcm0udHlwZSgpKTsK
ICAgICB0b1RyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1z
KGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKQEAgLTk4LDEwICs5NSwxMCBAQCB2b2lkIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjCiAgICAgLy8gU3BlYzogVG8gYW5pbWF0
aW9ucyBwcm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5n
ZSBmcm9tIHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8vIOKAmHRv4oCZIGF0dHJp
YnV0ZSB2YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5IHdpdGggdGhlIHJlcXVp
cmVtZW50IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwogICAgIC8vIHRvIGJlIHBv
c3QtbXVsdGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Ig
b2YgdG8gYW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKAmSBpcyB1bmRlZmluZWQu
Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3Qo
KTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0
RW5kT2ZEdXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNm
b3JtTGlzdCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJv
bVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZy
b20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGlj
X2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25z
dCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAg
IGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRv
ICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHNwZWNpYWwgcG9zdC1t
dWx0aXBsaWNhdGlvbiBiZWhhdmlvciBvZiA8YW5pbWF0ZVRyYW5zZm9ybT4gbmVlZHMgdG8gYmUg
cmVzcGVjdGVkIGJlbG93LgogICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9t
VG9MaXN0VmFsdWVzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGZyb21UcmFuc2Zvcm1MaXN0LCB0
b1RyYW5zZm9ybUxpc3QsIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCwgcGVyY2VudGFnZSwgZmFsc2Up
KQpAQCAtMTEyLDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1
dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAg
IGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0
IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zv
cm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFu
c2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9U
cmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsKKyAgICBjb25zdCBhdXRv
IGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlz
dC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBT
VkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBjdXJy
ZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9UcmFu
c2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVmZmVj
dGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAm
JiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQgPSB0
b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRpb25U
cmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBT
VkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5z
Zm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKTsK
KyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRpb25U
cmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5wcm9w
ZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFu
c2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJh
bnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oU1ZH
VHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZm
ZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1
ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTMxLDIwICsxMjgsMjAgQEAgZmxvYXQgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgIGF1dG8gZnJvbSA9IGNvbnN0cnVjdEZy
b21TdHJpbmcoZnJvbVN0cmluZyk7CiAgICAgYXV0byB0byA9IGNvbnN0cnVjdEZyb21TdHJpbmco
dG9TdHJpbmcpOwogCi0gICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zv
cm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3Qo
KTsKKyAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxp
c3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0p
OwogICAgIHVuc2lnbmVkIGl0ZW1zQ291bnQgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAg
ICAgaWYgKCFpdGVtc0NvdW50IHx8IGl0ZW1zQ291bnQgIT0gdG9UcmFuc2Zvcm1MaXN0LnNpemUo
KSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgQVNTRVJUKGl0ZW1zQ291bnQgPT0gMSk7Ci0g
ICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0WzBdLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3RbMF0u
dHlwZSgpKQorICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLnR5cGUoKSAh
PSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBlKCkpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIC8vIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0bWwj
Y29tcGxleERpc3RhbmNlcwogICAgIC8vIFBhY2VkIGFuaW1hdGlvbnMgYXNzdW1lIGEgbm90aW9u
IG9mIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZhcmlvdXMgYW5pbWF0aW9uIHZhbHVlcyBkZWZpbmVk
IGJ5IHRoZSDigJh0b+KAmSwg4oCYZnJvbeKAmSwg4oCYYnnigJkgYW5kIOKAmHZhbHVlc+KAmSBh
dHRyaWJ1dGVzLgogICAgIC8vIERpc3RhbmNlIGlzIGRlZmluZWQgb25seSBmb3Igc2NhbGFyIHR5
cGVzIChzdWNoIGFzIDxsZW5ndGg+KSwgY29sb3JzIGFuZCB0aGUgc3Vic2V0IG9mIHRyYW5zZm9y
bWF0aW9uIHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSDigJhhbmltYXRlVHJhbnNmb3Jt4oCZ
LgotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdFswXSwg
dG9UcmFuc2Zvcm1MaXN0WzBdKS5kaXN0YW5jZSgpOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm1E
aXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLCB0b1RyYW5zZm9ybUxpc3Qu
cHJvcGVydHlBdCgwKSkuZGlzdGFuY2UoKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShub25leGlzdGVudCkKQEAgLTEsMzI3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZFR5cGUuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIlNWR1BhcnNl
clV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgdHlwZSkKLSAgICA6IG1fdHlwZSh0eXBlKQotewotfQotCi1TVkdBbmltYXRl
ZFR5cGU6On5TVkdBbmltYXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAg
Y2FzZSBBbmltYXRlZEFuZ2xlOgotICAgICAgICBkZWxldGUgbV9kYXRhLmFuZ2xlQW5kRW51bWVy
YXRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAgICAg
ICBkZWxldGUgbV9kYXRhLmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0
ZWRDb2xvcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxldGUgbV9kYXRhLmVudW1l
cmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICAg
ICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoTGlzdDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5udW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJM
aXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1f
ZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmlt
YXRlZFBhdGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wb2ludExpc3Q7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgot
ICAgICAgICBkZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnJlY3Q7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIGRlbGV0ZSBt
X2RhdGEuc3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3Jt
TGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6
dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PiBhbmdsZUFuZEVu
dW1lcmF0aW9uKQotewotICAgIEFTU0VSVChhbmdsZUFuZEVudW1lcmF0aW9uKTsKLSAgICBhdXRv
IGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRl
ZEFuZ2xlKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uID0g
YW5nbGVBbmRFbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
LX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVlX3B0cjxib29sPiBib29sZWFuKQotewotICAgIEFTU0VS
VChib29sZWFuKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihBbmltYXRlZEJvb2xlYW4pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRh
LmJvb2xlYW4gPSBib29sZWFuLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4gY29sb3IpCi17Ci0gICAgQVNTRVJUKGNv
bG9yKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZENvbG9yKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5jb2xvciA9
IGNvbG9yLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0
aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4gZW51bWVyYXRpb24pCi17Ci0gICAgQVNTRVJU
KGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAgICBhbmltYXRlZFR5cGUt
Pm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRyPGludD4gaW50ZWdlcikK
LXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICBhbmltYXRl
ZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxz
dGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKQotewotICAgIEFTU0VS
VChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXIgPSBp
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFsdWU+IGxlbmd0aCkKLXsK
LSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91
bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0gICAgYW5pbWF0ZWRUeXBl
LT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+
IGxlbmd0aExpc3QpCi17Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3Ro
TGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlzdCA9IGxlbmd0aExpc3Qu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6dW5p
cXVlX3B0cjxmbG9hdD4gbnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXIpOwotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVk
TnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIgPSBudW1iZXIucmVsZWFz
ZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVuaXF1
ZV9wdHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gbnVtYmVyTGlzdCkKLXsKLSAgICBBU1NFUlQobnVt
YmVyTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0
YS5udW1iZXJMaXN0ID0gbnVtYmVyTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVk
VHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewotICAgIEFTU0VSVChudW1i
ZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIgPSBudW1iZXJPcHRpb25h
bE51bWJlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRoKHN0
ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gcGF0aCkKLXsKLSAgICBBU1NFUlQocGF0
aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oQW5pbWF0ZWRQYXRoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wYXRoID0gcGF0
aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3Qoc3Rk
Ojp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0KQotewotICAgIEFTU0VS
VChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxT
VkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0
YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5
cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotICAgIEFTU0VSVChwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgIGFu
aW1hdGVkVHlwZS0+bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJh
dGlvLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3RkOjp1
bmlxdWVfcHRyPEZsb2F0UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQocmVjdCk7Ci0gICAgYXV0
byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0
ZWRSZWN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdC5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0
cmluZz4gc3RyaW5nKQotewotICAgIEFTU0VSVChzdHJpbmcpOwotICAgIGF1dG8gYW5pbWF0ZWRU
eXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkU3RyaW5nKTsK
LSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5zdHJpbmcgPSBzdHJpbmcucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9wdHI8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsKLSAgICBBU1NFUlQodHJh
bnNmb3JtTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICBhbmltYXRlZFR5cGUt
Pm1fZGF0YS50cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0
dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotU3RyaW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0
cmluZygpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6
Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmNv
bG9yLT5zZXJpYWxpemVkKCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aDoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aC0+dmFsdWVB
c1N0cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQo
bV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aExpc3QtPnZh
bHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQo
bV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRhLm51
bWJlcik7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVj
dCk7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eCgpKSArICcg
JyArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAnCi0gICAgICAgICAgICAg
KyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAnICcgKyBTdHJpbmc6Om51
bWJlcihtX2RhdGEucmVjdC0+aGVpZ2h0KCkpOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0g
ICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3Ry
aW5nOwotCi0gICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBT
VkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgdmFs
dWVBc1N0cmluZygpIHN1cHBvcnQuCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2Ug
QW5pbWF0ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNl
IEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
cjoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRl
ZFBvaW50czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNl
IEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAg
ICAgLy8gT25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0g
dGhhdCBtZWFucyB2YWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIFNWR0Fu
aW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNh
c2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7Ci0gICAgICAg
ICptX2RhdGEuY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFsdWUuc3RyaXBXaGl0ZVNw
YWNlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgot
ICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiAhbV9kYXRhLmxl
bmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVG
b3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOwotICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExp
c3QpOwotICAgICAgICBtX2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFsdWUsIFNWR0xlbmd0aFZh
bHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgQVNT
RVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICBwYXJzZU51bWJlckZyb21TdHJpbmcodmFsdWUs
ICptX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRl
ZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHBhcnNlUmVjdCh2
YWx1ZSwgKm1fZGF0YS5yZWN0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmlt
YXRlZFN0cmluZzoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICAqbV9k
YXRhLnN0cmluZyA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIFRoZXNl
IHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVy
dHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVkIHNldFZhbHVlQXNTdHJpbmcoKSBzdXBw
b3J0LiAKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBBbmltYXRlZEJvb2xlYW46
Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2Vy
OgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgotICAgIGNhc2UgQW5p
bWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoK
LSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgotICAgIGNh
c2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICAvLyBPbmx5IFNWRyBE
T00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0aGF0IG1lYW5zIHNldFZh
bHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbChBbmltYXRlZFByb3BlcnR5
VHlwZSB0eXBlKQotewotICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBDU1Mg
cHJvcGVydHkgYW5pbWF0aW9ucy4KLSAgICByZXR1cm4gdHlwZSAhPSBBbmltYXRlZFVua25vd24g
JiYgdHlwZSAhPSBBbmltYXRlZENvbG9yOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNw
cApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMjg0ICsyMCwxMjkgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgot
I2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVz
LmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdOdW1iZXJMaXN0
VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlJbmZvLmgi
Ci0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0aEJ5dGVTdHJlYW07Ci0K
LWNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1w
dWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLSAgICB2
aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0
cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVfcHRy
PGJvb2w+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1
bnNpZ25lZD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6
OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xl
bmd0aFZhbHVlPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+KTsK
LSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVy
KHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdOdW1iZXJM
aXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQb2ludExpc3Qoc3Rk
Ojp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5p
cXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9wdHI8Rmxv
YXRSZWN0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVf
cHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Fu
aW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8gTm9uLW11dGFibGUgYWNj
ZXNzb3JzLgotICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4mIGFu
Z2xlQW5kRW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVtZXJh
dGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBib29sJiBib29sZWFuKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEuYm9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAgICAg
ICAgcmV0dXJuICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWduZWQmIGVu
dW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwotICAg
IH0KLQotICAgIGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmlu
dGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgaW50ZWdlck9w
dGlvbmFsSW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmlu
dGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUm
IGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVk
TGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGNv
bnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5sZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZsb2F0JiBudW1iZXIoKSBj
b25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdOdW1i
ZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkgY29uc3QKK3N0cnVjdCBTVkdBbmltYXRlZFR5cGUg
eworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTVkdBbmltYXRlZFR5
cGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6
OmNyZWF0ZShXVEZNb3ZlKHByb3BlcnR5KSkgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJM
aXN0OwogICAgIH0KIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJP
cHRpb25hbE51bWJlcigpIGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZhbHVlKSB9CiAgICAgewot
ICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKICAgICB9CiAKLSAg
ICBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBTVkdBbmlt
YXRlZFR5cGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVy
dGllcykKKyAgICAgICAgOiB2YWx1ZXMgeyBTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuZmly
c3QpLCBTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSB9CiAgICAgewotICAgICAg
ICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEu
cGF0aDsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgp
IGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTEsIFJl
ZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92ZSh2YWx1
ZTEpLCBXVEZNb3ZlKHZhbHVlMikgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBB
bmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKICAgICB9
CiAKLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0
UmF0aW8oKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9w
ZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAgY29uc3QgRmxvYXRSZWN0
JiByZWN0KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShQcm9wZXJ0eVR5
cGUmJiBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRS
ZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucmVjdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7CiAgICAgfQog
Ci0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdAorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0cmluZyk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlKSk7CiAgICAgfQogCi0gICAgY29uc3QgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8UHJvcGVydHlU
eXBlMSwgUHJvcGVydHlUeXBlMj4+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAgLy8g
TXV0YWJsZSBhY2Nlc3NvcnMuCi0gICAgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
PiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0
eVR5cGUyPiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9u
OworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1v
dmUocHJvcGVydGllcykpOwogICAgIH0KIAotICAgIGJvb2wmIGJvb2xlYW4oKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVl
PiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKICAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
Ym9vbGVhbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihXVEZNb3ZlKHZhbHVlMSksIFdURk1vdmUodmFsdWUyKSk7CiAgICAgfQogCi0gICAgQ29sb3Im
IGNvbG9yKCkKKyAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIHVuc2lnbmVkJiBlbnVtZXJhdGlvbigpCi0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgICAg
ICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBpbnQmIGludGVnZXIo
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIHN0ZDo6cGFpcjxpbnQs
IGludD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIFNWR0xlbmd0aFZh
bHVlJiBsZW5ndGgoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExl
bmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBTVkdM
ZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3Ro
TGlzdDsKLSAgICB9CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0pOworICAgICAgICBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1sw
XSk7CisgICAgICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkVHlwZTIgPSB2YWx1ZXNb
MV0gPyB2YWx1ZUFuaW1hdGVkVHlwZSgqdmFsdWVzWzFdKSA6IEFuaW1hdGVkVW5rbm93bjsKIAot
ICAgIGZsb2F0JiBudW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9CisgICAg
ICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsKKyAgICAgICAgICAgIEFT
U0VSVChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgICAgICAgICAg
cmV0dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KIAotICAgIFNWR051bWJlckxpc3RWYWx1
ZXMmIG51bWJlckxpc3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJMaXN0OwotICAgIH0K
KyAgICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRJbnRlZ2VyICYmIGFuaW1hdGVk
VHlwZTIgPT0gQW5pbWF0ZWRJbnRlZ2VyKQorICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlcjsKIAotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1i
ZXJPcHRpb25hbE51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJP
cHRpb25hbE51bWJlcjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1h
dGVkTnVtYmVyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAg
ICByZXR1cm4gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjsKIAotICAgIFNWR1BhdGhCeXRl
U3RyZWFtKiBwYXRoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQ
YXRoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5wYXRoOworICAgICAgICBBU1NFUlQoYW5pbWF0
ZWRUeXBlMiA9PSBBbmltYXRlZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
MTsKICAgICB9CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpCisgICAgU3Ry
aW5nIHRvU3RyaW5nKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRQb2ludHMpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5wb2ludExpc3Q7CisgICAgICAg
IEFTU0VSVCh2YWx1ZXNbMF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNb
MF0tPnRvU3RyaW5nKCk7CiAgICAgfQogCi0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
JiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkKKyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1swXSAm
JiAhdmFsdWVzWzFdKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1swXS0+cGFyc2UoYXR0ck5hbWUs
IHN0cmluZyk7CiAgICAgfQogCi0gICAgRmxvYXRSZWN0JiByZWN0KCkKKyAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2Rh
dGEucmVjdDsKKyAgICAgICAgLy8gQW5pbWF0ZWRDb2xvciBpcyBvbmx5IHVzZWQgZm9yIENTUyBw
cm9wZXJ0eSBhbmltYXRpb25zLgorICAgICAgICByZXR1cm4gdHlwZSAhPSBBbmltYXRlZFVua25v
d24gJiYgdHlwZSAhPSBBbmltYXRlZENvbG9yOwogICAgIH0KIAotICAgIFN0cmluZyYgc3RyaW5n
KCkKKyAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdmFsdWVBbmltYXRlZFR5cGUoY29u
c3QgU1ZHVmFsdWUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKKyAgICAgICAgcmV0
dXJuIFdURjo6dmlzaXQoV1RGOjptYWtlVmlzaXRvcigKKyAgICAgICAgICAgIFtdKGNvbnN0IFNW
R0FuZ2xlVmFsdWUmKSAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEFuZ2xlOyB9LAor
ICAgICAgICAgICAgW10oY29uc3QgYm9vbCYpICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0
dXJuIEFuaW1hdGVkQm9vbGVhbjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IENvbG9yJikgICAg
ICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZENvbG9yOyB9LAorICAgICAgICAg
ICAgW10oY29uc3QgdW5zaWduZWQmKSAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1h
dGVkRW51bWVyYXRpb247IH0sCisgICAgICAgICAgICBbXShjb25zdCBpbnQmKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyOyB9LAorICAgICAgICAgICAg
W10oY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKSAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVk
TGVuZ3RoOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYpICAg
ICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNv
bnN0IGZsb2F0KSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZE51bWJl
cjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmKSAgICAgICAg
ICB7IHJldHVybiBBbmltYXRlZE51bWJlckxpc3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBT
VkdQYXRoQnl0ZVN0cmVhbSYpICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQYXRoOyB9LAor
ICAgICAgICAgICAgW10oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJikgIHsgcmV0
dXJuIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0
IFNWR1BvaW50TGlzdFZhbHVlcyYpICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFBvaW50czsg
fSwKKyAgICAgICAgICAgIFtdKGNvbnN0IEZsb2F0UmVjdCYpICAgICAgICAgICAgICAgICAgICB7
IHJldHVybiBBbmltYXRlZFJlY3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmKSAg
ICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7IH0sCisgICAgICAg
ICAgICBbXShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJikgICAgICAgeyByZXR1cm4gQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgYXV0byYpICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsgfQorICAgICAgICAp
LCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1ZSkpOwogICAgIH0KIAot
ICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHRyYW5zZm9ybUxpc3QoKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgIH0KLQotICAgIFN0cmluZyB2YWx1ZUFzU3Ry
aW5nKCk7Ci0gICAgYm9vbCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBtX3R5
cGU7Ci0KLSAgICB1bmlvbiBEYXRhVW5pb24gewotICAgICAgICBEYXRhVW5pb24oKQotICAgICAg
ICAgICAgOiBsZW5ndGgobnVsbHB0cikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAg
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiogYW5nbGVBbmRFbnVtZXJhdGlvbjsK
LSAgICAgICAgYm9vbCogYm9vbGVhbjsKLSAgICAgICAgQ29sb3IqIGNvbG9yOwotICAgICAgICB1
bnNpZ25lZCogZW51bWVyYXRpb247Ci0gICAgICAgIGludCogaW50ZWdlcjsKLSAgICAgICAgc3Rk
OjpwYWlyPGludCwgaW50PiogaW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKLSAgICAgICAgU1ZHTGVu
Z3RoVmFsdWUqIGxlbmd0aDsKLSAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogbGVuZ3RoTGlz
dDsKLSAgICAgICAgZmxvYXQqIG51bWJlcjsKLSAgICAgICAgU1ZHTnVtYmVyTGlzdFZhbHVlcyog
bnVtYmVyTGlzdDsKLSAgICAgICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4qIG51bWJlck9wdGlv
bmFsTnVtYmVyOwotICAgICAgICBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aDsKLSAgICAgICAgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgICAgICBT
VkdQb2ludExpc3RWYWx1ZXMqIHBvaW50TGlzdDsKLSAgICAgICAgRmxvYXRSZWN0KiByZWN0Owot
ICAgICAgICBTdHJpbmcqIHN0cmluZzsKLSAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyog
dHJhbnNmb3JtTGlzdDsKLSAgICB9IG1fZGF0YTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVl
c1syXTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMTEtMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTYzLDI4ICs2NCwyOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBIZWxw
ZXJzIGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHNpbmdsZSB0eXBlcywgZWcuIGp1c3Qg
b25lIFNWR0FuaW1hdGVkSW50ZWdlci4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlw
ZT4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwotICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGUmIGFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5
VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0u
Z2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlKiBh
bmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlw
ZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKIAotICAgICAgICBhdXRv
IGNvcHkgPSBzdGQ6Om1ha2VfdW5pcXVlPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlw
ZT4oYW5pbWF0ZWRUeXBlKTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGNvcHkuZ2V0KCkpOwotICAgICAg
ICByZXR1cm4gY29weTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0g
U1ZHVmFsdWU6OmNyZWF0ZSgqYW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCkpOworICAg
ICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5p
bWF0ZWRUeXBlcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0Fu
aW1hdGVkVHlwZSYgdHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiAoU1ZH
QW5pbWF0ZWRUeXBlOjoqZ2V0dGVyKSgpKQorICAgIHZvaWQgcmVzZXRGcm9tQmFzZVZhbHVlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllcy5zaXplKCkgPT0gMSk7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBt
X3R5cGUpOwotICAgICAgICBhdXRvKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9B
Y3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0
KCkpOwotICAgICAgICBwcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Cisg
ICAgICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRv
QWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdl
dCgpKTsKKyAgICAgICAgYW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQo
KTsKIAotICAgICAgICB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUmIGFuaW1hdGVk
VHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUg
PSBwcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5p
bWF0ZWRUeXBlVmFsdWUpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGJhc2VWYWx1ZSA9IGFu
aW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+
IGFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlw
ZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJj4oKmFuaW1hdGVkVmFsdWUpID0gc3RhdGlj
X2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJj4oKmJhc2VWYWx1ZSk7Cisg
ICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBh
bmltYXRlZFR5cGVzLCAwLCBhbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBBbmltVmFsVHlwZT4KQEAgLTExMCwzNCArMTExLDM4IEBAIHByb3RlY3RlZDoKIAog
ICAgIC8vIEhlbHBlcnMgZm9yIGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gcGFpciB0eXBlcywg
ZWcuIGEgcGFpciBvZiBTVkdBbmltYXRlZEludGVnZXJzLgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFuaW1WYWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgotICAgIHN0ZDo6dW5pcXVlX3B0
cjxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUg
QW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewog
ICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsK
LSAgICAgICAgY29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSYgZmlyc3RU
eXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0g
ICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmIHNlY29uZFR5
cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1h
dGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAg
ICAgICAgY29uc3QgQW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRl
ZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9w
ZXJ0aWVzWzBdLmdldCgpKTsKKyAgICAgICAgY29uc3QgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmlt
YXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+
KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBj
b3B5ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KGZpcnN0VHlw
ZSwgc2Vjb25kVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmNvcHktPmZpcnN0KTsKLSAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAxLCAmY29weS0+c2Vjb25kKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAg
ICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0
ZSgqZmlyc3RBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIFJlZlB0
cjxTVkdWYWx1ZT4gc2Vjb25kQW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKnNlY29u
ZEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlv
bjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBm
aXJzdEFuaW1hdGVkVmFsdWUpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4o
U3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsIHNlY29uZEFuaW1hdGVkVmFs
dWUpOworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShmaXJz
dEFuaW1hdGVkVmFsdWUpLCBXVEZNb3ZlKHNlY29uZEFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBl
Mj4KLSAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHN0ZDo6
cGFpcjx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFs
VHlwZTI6OkNvbnRlbnRUeXBlPiYgKFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2
b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiAgICAgewogICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKICAgICAg
ICAgQVNTRVJUKHR5cGUudHlwZSgpID09IG1fdHlwZSk7Ci0gICAgICAgIGF1dG8qIGZpcnN0UHJv
cGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0gICAgICAgIGF1dG8qIHNlY29u
ZFByb3BlcnR5ID0gIGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBl
Mj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKLSAgICAgICAgZmlyc3RQ
cm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0gICAgICAgIHNlY29uZFBy
b3BlcnR5LT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLQotICAgICAgICBzdGQ6OnBh
aXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5
cGUyOjpDb250ZW50VHlwZT4mIGFuaW1hdGVkVHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsK
LSAgICAgICAgYW5pbWF0ZWRUeXBlVmFsdWUuZmlyc3QgPSBmaXJzdFByb3BlcnR5LT5jdXJyZW50
QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlLnNlY29uZCA9IHNlY29uZFBy
b3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0KLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0
ZWRUeXBlVmFsdWUuZmlyc3QpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4o
U3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDEsICZhbmltYXRlZFR5cGVWYWx1
ZS5zZWNvbmQpOworICAgICAgICBBbmltVmFsVHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2Fz
dEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOworICAgICAgICBBbmltVmFsVHlwZTIqIHNlY29uZEFu
aW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBl
Mj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKKyAgICAgICAgZmlyc3RB
bmltYXRlZFR5cGUtPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworICAgICAgICBzZWNv
bmRBbmltYXRlZFR5cGUtPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworCisgICAgICAg
IFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3RCYXNlVmFsdWUgPSBmaXJzdEFuaW1hdGVkVHlwZS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRW
YWx1ZSA9IHR5cGUudmFsdWVzWzBdOworICAgICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmlt
VmFsVHlwZTE6OkNvbnRlbnRUeXBlJj4oKmZpcnN0QW5pbWF0ZWRWYWx1ZSkgPSBzdGF0aWNfY2Fz
dDx0eXBlbmFtZSBBbmltVmFsVHlwZTE6OkNvbnRlbnRUeXBlJj4oKmZpcnN0QmFzZVZhbHVlKTsK
KyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9u
LCBhbmltYXRlZFR5cGVzLCAwLCBmaXJzdEFuaW1hdGVkVmFsdWUpOworCisgICAgICAgIFJlZlB0
cjxTVkdWYWx1ZT4gc2Vjb25kQmFzZVZhbHVlID0gc2Vjb25kQW5pbWF0ZWRUeXBlLT5jdXJyZW50
QmFzZVZhbHVlKCk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gc2Vjb25kQW5pbWF0ZWRWYWx1
ZSA9IHR5cGUudmFsdWVzWzFdOworICAgICAgICBzdGF0aWNfY2FzdDx0eXBlbmFtZSBBbmltVmFs
VHlwZTI6OkNvbnRlbnRUeXBlJj4oKnNlY29uZEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8
dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSY+KCpzZWNvbmRCYXNlVmFsdWUpOwor
ICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkVHlwZXMsIDEsIHNlY29uZEFuaW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlMSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyPgpAQCAt
MTkwLDMzICsxOTUsMzMgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQW5pbVZhbFR5cGU+Ci0gICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBh
Y3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRU
eXBlKiB0eXBlID0gMCkKKyAgICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFj
dGlvbiwgY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
LCB1bnNpZ25lZCB3aGljaFByb3BlcnR5LCBSZWZQdHI8U1ZHVmFsdWU+IGFuaW1hdGVkVmFsdWUg
PSBudWxscHRyKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IENhbid0IHVzZSBTVkdFbGVtZW50
OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmVjYXVzZSBvZiBjaXJjdWxhciBoZWFkZXIgZGVwZW5k
ZW5jeS4gV291bGQgYmUgbmljZSB0byB1bnRhbmdsZSB0aGlzLgogICAgICAgICBzZXRJbnN0YW5j
ZVVwZGF0ZXNCbG9ja2VkKCphbmltYXRlZFR5cGVzWzBdLmVsZW1lbnQsIHRydWUpOwogCiAgICAg
ICAgIGZvciAoYXV0byYgYW5pbWF0ZWRUeXBlIDogYW5pbWF0ZWRUeXBlcykgewogICAgICAgICAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04od2hpY2hQcm9wZXJ0eSA8IGFuaW1h
dGVkVHlwZS5wcm9wZXJ0aWVzLnNpemUoKSk7Ci0gICAgICAgICAgICBBbmltVmFsVHlwZSogcHJv
cGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5p
bWF0ZWRUeXBlLnByb3BlcnRpZXNbd2hpY2hQcm9wZXJ0eV0uZ2V0KCkpOworICAgICAgICAgICAg
QW5pbVZhbFR5cGUqIGFuaW1hdGVkUHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0
dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlLnByb3BlcnRpZXNbd2hpY2hQcm9wZXJ0
eV0uZ2V0KCkpOwogCiAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgICAgICAgICAg
Y2FzZSBTdGFydEFuaW1hdGlvbkFjdGlvbjoKLSAgICAgICAgICAgICAgICBBU1NFUlQodHlwZSk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKLSAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHktPmFuaW1hdGlvblN0YXJ0ZWQodHlwZSk7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKGFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGlmICghYW5pbWF0
ZWRQcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWRQ
cm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZChhbmltYXRlZFZhbHVlKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3RvcEFuaW1hdGlvbkFjdGlvbjoKLSAgICAgICAg
ICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS0+aXNB
bmltYXRpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1hdGlvbkVuZGVk
KCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBpZiAoYW5pbWF0ZWRQcm9wZXJ0eS0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgICAg
ICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbWF0aW9uRW5kZWQoKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQW5pbVZhbFdpbGxDaGFuZ2VBY3Rpb246Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5p
bVZhbFdpbGxDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUp
OworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFuaW1WYWxEaWRDaGFu
Z2VBY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS0+YW5pbVZhbERpZENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCgh
YW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZh
bERpZENoYW5nZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ29uZGl0aW9uRXZlbnRMaXN0ZW5lcjsKLWNsYXNzIFNWR0FuaW1hdGVkVHlwZTsK
K3N0cnVjdCBTVkdBbmltYXRlZFR5cGU7CiBjbGFzcyBUaW1lQ29udGFpbmVyOwogCiBlbnVtIEFu
aW1hdGlvbk1vZGUgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNyArMTM3LDcgQEAgQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbiBTVkdDb21wb25lbnRUcgogICAgIGZ1bmMuYW1wbGl0dWRlID0gYW1wbGl0dWRl
KCk7CiAgICAgZnVuYy5leHBvbmVudCA9IGV4cG9uZW50KCk7CiAgICAgZnVuYy5vZmZzZXQgPSBv
ZmZzZXQoKTsKLSAgICBmdW5jLnRhYmxlVmFsdWVzID0gdGFibGVWYWx1ZXMoKTsKKyAgICBmdW5j
LnRhYmxlVmFsdWVzID0gdGFibGVWYWx1ZXMoKS5wcm9wZXJ0aWVzKCk7CiAgICAgcmV0dXJuIGZ1
bmM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsOCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZHQ3Vyc29yRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBT
VkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkK
LSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdo
dCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmN1cnNvclRhZykpOwogICAg
IHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHQ3Vyc29yRWxlbWVudCgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00OCwxMCArNDgsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMK
IAogaW5saW5lIFNWR0VsbGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGlj
c0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0aCkK
LSAgICAsIG1fY3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fcngoTGVuZ3RoTW9kZVdpZHRo
KQotICAgICwgbV9yeShMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1
ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9jeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0KSkKKyAgICAsIG1fcngoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAg
ICAsIG1fcnkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmVsbGlwc2VUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVk
UHJvcGVydGllc0ZvclNWR0VsbGlwc2VFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTgzLDcgKzgzLDcgQEAgYm9vbCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c2V0
RmlsdGVyRQogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0dHIpCiAgICAgICAg
IHJldHVybiBjb2xvck1hdHJpeC0+c2V0VHlwZSh0eXBlKCkpOwogICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6dmFsdWVzQXR0cikKLSAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRW
YWx1ZXModmFsdWVzKCkpOworICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFZhbHVlcyh2
YWx1ZXMoKS5wcm9wZXJ0aWVzKCkpOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNW
R0ZFQ29sb3JNYXRyaXhFbGUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgZmlsdGVyVmFsdWVzID0gdmFsdWVzKCk7CisgICAgICAgIGZpbHRlclZh
bHVlcyA9IHZhbHVlcygpLnByb3BlcnRpZXMoKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IGZp
bHRlclZhbHVlcy5zaXplKCk7CiAKICAgICAgICAgaWYgKChmaWx0ZXJUeXBlID09IEZFQ09MT1JN
QVRSSVhfVFlQRV9NQVRSSVggJiYgc2l6ZSAhPSAyMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgyLDEyICsyODIsMTIgQEAgUmVmUHRyPEZpbHRlckVmZmVjdD4g
U1ZHRkVDb252b2x2ZU1hdHJpeAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWhh
c0F0dHJpYnV0ZShTVkdOYW1lczo6ZGl2aXNvckF0dHIpKSB7CiAgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwga2VybmVsTWF0cml4U2l6ZTsgKytpKQotICAgICAgICAgICAgZGl2aXNvclZhbHVl
ICs9IGtlcm5lbE1hdHJpeC5hdChpKTsKKyAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJu
ZWxNYXRyaXgucHJvcGVydHlBdChpKTsKICAgICAgICAgaWYgKCFkaXZpc29yVmFsdWUpCiAgICAg
ICAgICAgICBkaXZpc29yVmFsdWUgPSAxOwogICAgIH0KIAotICAgIGF1dG8gZWZmZWN0ID0gRkVD
b252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZ
VmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJn
ZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUs
IGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeCk7
CisgICAgYXV0byBlZmZlY3QgPSBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoZmlsdGVyLCBJbnRT
aXplKG9yZGVyWFZhbHVlLCBvcmRlcllWYWx1ZSksIGRpdmlzb3JWYWx1ZSwgYmlhcygpLCBJbnRQ
b2ludCh0YXJnZXRYVmFsdWUsIHRhcmdldFlWYWx1ZSksIGVkZ2VNb2RlKCksIEZsb2F0UG9pbnQo
a2VybmVsVW5pdExlbmd0aFhWYWx1ZSwga2VybmVsVW5pdExlbmd0aFlWYWx1ZSksIHByZXNlcnZl
QWxwaGEoKSwga2VybmVsTWF0cml4LnByb3BlcnRpZXMoKSk7CiAgICAgZWZmZWN0LT5pbnB1dEVm
ZmVjdHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gV1RGTW92ZShlZmZlY3QpOwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NCwxMCArNjQsMTAgQEAgaW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0Zp
bHRlckVsZW1lbgogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1f
ZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9Y
KQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNF
UlNQQUNFT05VU0UpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAgLCBt
X3koTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lk
dGgsICIxMjAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikKKyAg
ICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAgLCBt
X3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1fd2lk
dGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9oZWln
aHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAvLyBT
cGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlz
IGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElm
IHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3Qg
aXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDEwICs1MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKQot
ICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVpZ2h0KExl
bmd0aE1vZGVIZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgsICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQsICIwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgs
ICIxMDAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
LCAiMTAwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBz
cGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lm
aWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBz
cGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVj
aWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDEwICs1MywxMCBAQCBF
TkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQ6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVu
Z3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9o
ZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQor
ICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJUKGhh
c1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3RlckFuaW1h
dGVkUHJvcGVydGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEw
ICs1NSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZH
SW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhN
b2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAg
LCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdo
dChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1faW1hZ2VMb2FkZXIo
KnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdJbWFnZUVsZW1l
bnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBFX1BDID0gTGVuZ3RoVHlwZVBDCiAg
ICAgfTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aFZh
bHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0xlbmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAg
LTU3LDExICs1Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TGVuZ3RoKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3Ro
PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChpbml0aWFsVmFsdWUpKTsKLSAgICB9
Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR0xl
bmd0aD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAg
ICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC03MSwxMiArNjYsMTIgQEAg
cHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudW5pdFR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUHJvcGVydHkoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPGZsb2F0
PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50
KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkudmFsdWVGb3JCaW5kaW5ncyhT
VkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAtODQsNyAr
NzksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFsdWUsIFNWR0xl
bmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAgICBhdXRvIHJlc3VsdCA9
IHZhbHVlUHJvcGVydHkoKS5zZXRWYWx1ZSh2YWx1ZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRl
eHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTk0LDcgKzg5LDcgQEAgcHVibGlj
OgogICAgIAogICAgIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cygpCiAgICAgewotICAgICAg
ICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxv
YXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtMTAyLDcgKzk3LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHModmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICAg
ICAgdmFsdWVQcm9wZXJ0eSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lm
aWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xMTAsNyArMTA1LDcgQEAgcHVibGljOgogICAgIAogICAgIFN0cmluZyB2
YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS52YWx1ZUFz
U3RyaW5nKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc1N0cmlu
Zyhjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMTE4LDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB2YWx1ZVByb3BlcnR5KCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICAKQEAgLTEzMSw3ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubmV3
VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkubmV3VmFsdWVTcGVjaWZpZWRVbml0
cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAt
MTQ0LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVj
aWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkg
fSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKHVuaXRUeXBlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgIApAQCAtMTUzLDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAg
U1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xl
LCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTYyLDExICsxNTcsNiBAQCBwcml2YXRlOgogICAg
ICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1ZT4oaW5pdGlhbFZhbHVlKQog
ICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdMZW5ndGgoY29uc3QgU1ZHTGVuZ3RoVmFs
dWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
VmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0
VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGhM
aXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHTGVuZ3RoTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7
CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVu
Z3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBT
VkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMs
IHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aExpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcg
QEAKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJz
ZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDcsNyBA
QCB2b2lkIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmIChsZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZVN0cmluZyku
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChsZW5n
dGgpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdMZW5ndGhWYWx1ZT4obGVu
Z3RoKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5k
KTsKICAgICB9CiB9CkBAIC02MCw3ICs2MSw3IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVz
Ojp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5n
KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmco
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMSwyNiArMjIsMzkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZH
TGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlz
dFZhbHVlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0xlbmd0aDsKIGNs
YXNzIFNWR0xlbmd0aExpc3Q7CiAKLWNsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBw
dWJsaWMgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiB7CitjbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+IHsKIHB1YmxpYzoK
ICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0xlbmd0aE1vZGUpOwogICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4geworICAgIHN0YXRpYyBT
VkdMZW5ndGhMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuICB7IH07IH0KKyAgICBz
dGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
LCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0
VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBsZW5ndGhNb2RlKTsKKyAg
ICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xl
bmd0aExpc3RWYWx1ZXM+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlz
dDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2Rl
Rm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGxp
c3Q7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KKyAgICAKICAg
ICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdMZW5ndGhWYWx1ZTsKICAgICB1c2luZyBMaXN0SXRl
bVRlYXJPZmYgPSBTVkdMZW5ndGg7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNW
R0xlbmd0aExpc3Q7Ci0KLSAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFsVmFs
dWUoKSB7IHJldHVybiAgeyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBT
VkdMZW5ndGhMaXN0VmFsdWVzJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aFZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyArMTQ3LDEzIEBAIHByaXZhdGU6
CiAKIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPiB7
CiAgICAgc3RhdGljIFNWR0xlbmd0aFZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsg
fQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHR5cGUp
IHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U1ZHTGVuZ3RoVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aFZhbHVlIGxlbmd0
aDsKKyAgICAgICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3RyaW5nLCBTVkdMZW5ndGhWYWx1
ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhj
ZXB0aW9uKCk7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCkgeyByZXR1cm4gbGVuZ3Ro
LnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDEwICs1MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURf
UFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAg
ICwgbV94MShMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kxKExlbmd0aE1vZGVIZWlnaHQpCi0g
ICAgLCBtX3gyKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAgICwgbV95MihMZW5ndGhNb2Rl
SGVpZ2h0KQorICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAg
ICwgbV95MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1feDIoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV95MihTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeDIgYXR0
cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAi
MTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6Omxp
bmVhckdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3Bw
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTVkdM
aXN0VmFsdWVzLmgiCisKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cit2b2lkIFNWR0xpc3RWYWx1
ZXM8UHJvcGVydHlUeXBlPjo6cmVzaXplKHNpemVfdCBuZXdTaXplKQoreworICAgIHNpemVfdCBp
bmRleCA9IHNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj46OnJlc2l6ZShuZXdT
aXplKTsKKyAgICBmb3IgKDsgaW5kZXggPCBuZXdTaXplOyArK2luZGV4KQorICAgICAgICBhdChp
bmRleCkgPSBTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKTsKK30KKwordGVtcGxhdGUg
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK1ZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0
VmFsdWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5KCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVm
UHRyPFNWR1ZhbHVlPj4gdmFsdWVzOworICAgIGZvciAoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWUgOiAqdGhpcykKKyAgICAgICAgdmFsdWVzLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlKCp2
YWx1ZSkpOworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIGV4
cGxpY2l0IGluc3RhbnRpYXRpb24uCit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+
OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50
Pjo6cmVzaXplKHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3Ro
VmFsdWU+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxTVkdU
cmFuc2Zvcm1WYWx1ZT46OnJlc2l6ZShzaXplX3QpOworCit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRy
PFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxmbG9hdD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1w
bGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTdHJpbmc+OjpkZWVw
Q29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RW
YWx1ZXM8RmxvYXRQb2ludD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVm
UHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OmRlZXBDb3B5KCkg
Y29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxS
ZWZQdHI8U1ZHUGF0aFNlZz4+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJl
ZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpkZWVwQ29w
eSgpIGNvbnN0OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdWYWx1ZTsKKyAgICAKK3RlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVj
dG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBk
ZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikK
KyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAg
ICB7CisgICAgfQorCisgICAgdm9pZCByZXNpemUoc2l6ZV90KTsKKyAgICBWZWN0b3I8UmVmUHRy
PFNWR1ZhbHVlPj4gZGVlcENvcHkoKSBjb25zdDsKKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYg
cHJvcGVydHlBdChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3Bl
cnR5VHlwZSY+KCphdChpbmRleCkpOyB9CisgICAgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eUF0KHNp
emVfdCBpbmRleCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4
KSk7IH0KKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIGNvbnN0IHsg
cmV0dXJuIHByb3BlcnR5QXQoMCk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHko
KSB7IHJldHVybiBwcm9wZXJ0eUF0KDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxh
c3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKyAg
ICBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgp
IC0gMSk7IH0KKworICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXMoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllczsKKyAgICAgICAg
Zm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgcHJvcGVydGllcy5h
cHBlbmQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlKSk7CisgICAgICAgIHJldHVy
biBwcm9wZXJ0aWVzOworICAgIH0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsMTAgKzcxLDEwIEBA
IEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdNYXJrZXJFbGVt
ZW50OjpTVkdNYXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAg
LCBtX3JlZlgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9yZWZZKExlbmd0aE1vZGVIZWlnaHQp
Ci0gICAgLCBtX21hcmtlcldpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjMiKQotICAgICwgbV9tYXJr
ZXJIZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjMiKSAKKyAgICAsIG1fcmVmWChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9yZWZZKFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVIZWlnaHQpKQorICAgICwgbV9tYXJrZXJXaWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlV2lkdGgsICIzIikpCisgICAgLCBtX21hcmtlckhlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlSGVpZ2h0LCAiMyIpKQogICAgICwgbV9tYXJrZXJVbml0cyhTVkdNYXJrZXJVbml0c1N0
cm9rZVdpZHRoKQogICAgICwgbV9vcmllbnRUeXBlKFNWR01hcmtlck9yaWVudEFuZ2xlKQogewpA
QCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BdXRv
KCkKIAogdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKFNWR0FuZ2xlJiBh
bmdsZSkKIHsKLSAgICBzZXRPcmllbnQoU1ZHTWFya2VyT3JpZW50QW5nbGUsIGFuZ2xlLnByb3Bl
cnR5UmVmZXJlbmNlKCkpOworICAgIHNldE9yaWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5n
bGUudmFsdWVQcm9wZXJ0eSgpKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01h
cmtlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpAQCAtMjM4LDEyICsyMzgsMTIgQEAgdm9pZCBTVkdN
YXJrZXJFbGVtZW50OjpzeW5jaHJvbml6ZU9yaWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJldmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJz
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3Jp
ZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3RhcnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwg
dG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBhbHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0
aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0g
U1ZHTWFya2VyT3JpZW50QXV0bykgeworICAgIGlmIChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmll
bnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUpID09IFNWR01hcmtlck9yaWVu
dEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3du
ZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJp
bmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVu
dFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAo
c3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBl
LnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQogICAgICAgICBvd25l
clR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25lclR5cGUsIG9yaWVudFR5cGVQcm9w
ZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAK
QEAgLTI1OSwxMSArMjU5LDExIEBAIFNWR01hcmtlck9yaWVudFR5cGUmIFNWR01hcmtlckVsZW1l
bnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9v
a3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KHRoaXMsIG9y
aWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0
aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1
ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAgICAgICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1
ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBl
Jj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpIDwgU1ZHTWFya2VyT3JpZW50TWF4
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4o
KndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwogICAgICAgICB9CiAgICAgfQotICAg
IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01h
cmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVlKTsKIH0KIAogUmVmPFNWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+IFNWR01h
cmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmltYXRlZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc1ICsyOSwxMCBAQAog
I2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCisjaW5jbHVkZSAiU1ZHTWFy
a2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFNWR01hcmtlclVuaXRz
VHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJVbml0
c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgKLX07Ci0KLWVu
dW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9IDAs
Ci0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwKLSAg
ICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAotCi0gICAgLy8gQWRkIG5ldyBlbGVt
ZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmllbnRNYXgKLX07Ci0KLXRlbXBsYXRl
PD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKLSAgICBz
dGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRz
U3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoU1ZHTWFya2VyVW5p
dHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOgotICAgICAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2UiKTsKLSAgICAgICAgY2FzZSBT
VkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMg
U1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQotICAgICAgICAgICAgcmV0
dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAi
c3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25vd247Ci0gICAgfQotfTsKLQot
dGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3Jp
ZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkg
eyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQotCi0gICAgLy8gdG9T
dHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmllbnRUeXBlKCkgaGFuZGxlcyB0aGlz
IG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFuZ2xlKQotICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmll
bnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCi0gICAg
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsKLSAgICAgICAg
YXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAg
ICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1
cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVu
dEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtlckVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKQEAgLTE2NCw4ICs5OSw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVh
dGVPcmllbnRUeXBlV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZH
TWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVu
dFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUu
dmFsdWU7IH0KLSAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2Vy
T3JpZW50VHlwZSYgdHlwZSkgeyBtX29yaWVudFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZH
TWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVlKTsgfQor
ICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBl
JiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gb3Jp
ZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
VHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTVkdN
YXJrZXJVbml0c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAsCisgICAgU1ZH
TWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRo
Cit9OworCitlbnVtIFNWR01hcmtlck9yaWVudFR5cGUgeworICAgIFNWR01hcmtlck9yaWVudFVu
a25vd24gPSAwLAorICAgIFNWR01hcmtlck9yaWVudEF1dG8sCisgICAgU1ZHTWFya2VyT3JpZW50
QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAKKyAgICAv
LyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAgIFNWR01hcmtlck9yaWVudE1heAor
fTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJV
bml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0
dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgorICAgICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VP
blVzZToKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7
CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKKyAgICAgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKKyAgICB9CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9u
VXNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOwor
ICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKKyAgICAgICAgICAgIHJldHVybiBT
VkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOworICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNV
bmtub3duOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVt
VmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9CisgICAg
c3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVl
LCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0
byIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKKyAgICAgICAgaWYg
KHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01h
cmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7CisgICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQg
PSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgaWYgKHNldFZhbHVlUmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVu
a25vd247CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKKyAgICB9Cit9Owor
Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xl
VmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwg
dW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAg
ICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVu
dFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmlu
ZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCisgICAgICAgICAgICBhbmdsZSA9IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOworICAgIH0K
K307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01h
cmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01h
cmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsMTAg
KzYwLDEwIEBAIGlubGluZSBTVkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQoY28KICAgICA6
IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0
VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250
ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAg
ICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWln
aHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAg
LCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBh
dHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9m
ICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUg
b2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
dHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERPTU1h
dHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0
cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0
ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUp
KTsKICAgICB9CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBhKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmEoKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlUHJvcGVydHkoKS5hKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QShkb3VibGUgdmFsdWUpCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0QSh2
YWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRBKHZhbHVlKTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTczLDcgKzczLDcgQEAgcHVi
bGljOgogCiAgICAgZG91YmxlIGIoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkuYigpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmIoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCKGRvdWJsZSB2YWx1ZSkKQEAgLTgxLDcgKzgx
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgp
LnNldEIodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYygpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVByb3BlcnR5KCkuYygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEMo
ZG91YmxlIHZhbHVlKQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEModmFsdWUp
OworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0Qyh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGlj
OgogCiAgICAgZG91YmxlIGQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkuZCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmQoKTsKICAgICB9CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXREKGRvdWJsZSB2YWx1ZSkKQEAgLTExMyw3ICsxMTMs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldEQodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCku
c2V0RCh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGUoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZSgpOworICAgICAgICByZXR1cm4g
dmFsdWVQcm9wZXJ0eSgpLmUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRF
KGRvdWJsZSB2YWx1ZSkKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUodmFs
dWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0RSh2YWx1ZSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVi
bGljOgogCiAgICAgZG91YmxlIGYoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkuZigpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmYoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGKGRvdWJsZSB2YWx1ZSkKQEAgLTE0NSw3ICsx
NDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEYodmFsdWUpOworICAgICAgICB2YWx1ZVByb3BlcnR5
KCkuc2V0Rih2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biB7IH07CkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11
bHRpcGx5KHNlY29uZE1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LnZhbHVlUHJvcGVy
dHkoKSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRy
aXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5pbnZlcnNlKCk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0
eSgpLmludmVyc2UoKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTE4
MCw3ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkp
OyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnRyYW5zbGF0
ZSh4LCB5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01h
dHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9k
aWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsgICAgICAgIAorICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUHJvcGVydHkoKS5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpA
QCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVu
aWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNj
YWxlRmFjdG9yWSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBT
VkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5yb3RhdGUoYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVz
dWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnJvdGF0ZShhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjI0
LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVjdG9y
KHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnJv
dGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
CkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7
ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5KCkuZmxpcFgoKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3Jl
YXRlKHJlc3VsdCk7CkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLmZsaXBZKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVByb3BlcnR5
KCkuZmxpcFkoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNW
R01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3Vs
dCA9IHZhbHVlUHJvcGVydHkoKS5za2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjcwLDE0
ICsyNzAsMTQgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsgICAg
ICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUHJvcGVydHkoKS5za2V3WShhbmdsZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShyZXN1bHQpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR01hdHJpeChTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
TWF0cml4VmFsdWUmIHZhbHVlKQorICAgIFNWR01hdHJpeChTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVl
PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXRyaXhWYWx1ZS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWF0cml4VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNjQgKzQx
LDU0IEBAIHB1YmxpYzoKICAgICBTVkdNYXRyaXhWYWx1ZSB0cmFuc2xhdGUoZG91YmxlIHR4LCBk
b3VibGUgdHkpCiAgICAgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07
Ci0gICAgICAgIGNvcHkudHJhbnNsYXRlKHR4LCB0eSk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRy
aXhWYWx1ZSB7IGNvcHkgfTsKKyAgICAgICAgcmV0dXJuIGNvcHkudHJhbnNsYXRlKHR4LCB0eSk7
CiAgICAgfQogCiAgICAgU1ZHTWF0cml4VmFsdWUgc2NhbGUoZG91YmxlIHMpCiAgICAgewogICAg
ICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuc2NhbGUo
cywgcyk7Ci0gICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKKyAgICAgICAg
cmV0dXJuIGNvcHkuc2NhbGUocywgcyk7CiAgICAgfQogCiAgICAgU1ZHTWF0cml4VmFsdWUgc2Nh
bGVOb25Vbmlmb3JtKGRvdWJsZSBzeCwgZG91YmxlIHN5KQogICAgIHsKICAgICAgICAgQWZmaW5l
VHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LnNjYWxlKHN4LCBzeSk7Ci0g
ICAgICAgIHJldHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkgfTsKKyAgICAgICAgcmV0dXJuIGNv
cHkuc2NhbGUoc3gsIHN5KTsKICAgICB9CiAKICAgICBTVkdNYXRyaXhWYWx1ZSByb3RhdGUoZG91
YmxlIGQpCiAgICAgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7ICp0aGlzIH07Ci0g
ICAgICAgIGNvcHkucm90YXRlKGQpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBj
b3B5IH07CisgICAgICAgIHJldHVybiBjb3B5LnJvdGF0ZShkKTsKICAgICB9CiAKICAgICBTVkdN
YXRyaXhWYWx1ZSBmbGlwWCgpCiAgICAgewogICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY29weSB7
ICp0aGlzIH07Ci0gICAgICAgIGNvcHkuZmxpcFgoKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJp
eFZhbHVlIHsgY29weSB9OworICAgICAgICByZXR1cm4gY29weS5mbGlwWCgpOwogICAgIH0KIAog
ICAgIFNWR01hdHJpeFZhbHVlIGZsaXBZKCkKICAgICB7CiAgICAgICAgIEFmZmluZVRyYW5zZm9y
bSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5mbGlwWSgpOwotICAgICAgICByZXR1cm4g
U1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07CisgICAgICAgIHJldHVybiBjb3B5LmZsaXBZKCk7CiAg
ICAgfQogCiAgICAgU1ZHTWF0cml4VmFsdWUgc2tld1goZG91YmxlIGFuZ2xlKQogICAgIHsKICAg
ICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9OwotICAgICAgICBjb3B5LnNrZXdY
KGFuZ2xlKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OworICAgICAg
ICByZXR1cm4gY29weS5za2V3WChhbmdsZSk7CiAgICAgfQogCiAgICAgU1ZHTWF0cml4VmFsdWUg
c2tld1koZG91YmxlIGFuZ2xlKQogICAgIHsKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkg
eyAqdGhpcyB9OwotICAgICAgICBjb3B5LnNrZXdZKGFuZ2xlKTsKLSAgICAgICAgcmV0dXJuIFNW
R01hdHJpeFZhbHVlIHsgY29weSB9OworICAgICAgICByZXR1cm4gY29weS5za2V3WShhbmdsZSk7
CiAgICAgfQogCiAgICAgU1ZHTWF0cml4VmFsdWUgbXVsdGlwbHkoY29uc3QgU1ZHTWF0cml4VmFs
dWUmIG90aGVyKQogICAgIHsKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGNvcHkgeyAqdGhpcyB9
OwotICAgICAgICBjb3B5ICo9IHN0YXRpY19jYXN0PGNvbnN0IEFmZmluZVRyYW5zZm9ybSY+KG90
aGVyKTsKLSAgICAgICAgcmV0dXJuIFNWR01hdHJpeFZhbHVlIHsgY29weSB9OworICAgICAgICBy
ZXR1cm4gKnRoaXMgKiBvdGhlcjsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxTVkdNYXRyaXhW
YWx1ZT4gaW52ZXJzZSgpIGNvbnN0CkBAIC0xMTUsOCArMTA1LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogCiAgICAgICAgIEFmZmluZVRy
YW5zZm9ybSBjb3B5IHsgKnRoaXMgfTsKLSAgICAgICAgY29weS5yb3RhdGVGcm9tVmVjdG9yKHgs
IHkpOwotICAgICAgICByZXR1cm4gU1ZHTWF0cml4VmFsdWUgeyBjb3B5IH07CisgICAgICAgIHJl
dHVybiBTVkdNYXRyaXhWYWx1ZSB7IGNvcHkucm90YXRlRnJvbVZlY3Rvcih4LCB5KSB9OwogICAg
IH0KIAogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJlciA6IHB1YmxpYyBT
VkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR051
bWJlcj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+
IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKICAgICB9CkBAIC00MSwxMSArNDEsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR051bWJlcihpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKGNvbnN0IGZsb2F0KiBpbml0aWFsVmFsdWUpCi0g
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoaW5pdGlhbFZhbHVl
KSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9y
PFJlZjxTVkdOdW1iZXI+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAg
ICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtNTUsNyAr
NTAsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gdmFsdWVQ
cm9wZXJ0eSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmlu
ZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC02MywxNCArNTgsMTQgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKSA9IHZh
bHVlOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkgPSB2YWx1ZTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZH
TnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KCZh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtNzksMTEgKzc0
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRp
YWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHTnVtYmVyKGNvbnN0IGZs
b2F0KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0Pihp
bml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTMgKzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTnVtYmVyTGlzdFZhbHVlcz47
CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3Jl
YXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR051bWJlckxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJl
ckxpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR051bWJlckxpc3RW
YWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTnVtYmVy
TGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZH
TnVtYmVyTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RW
YWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0
VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlckxpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQg
U1ZHTnVtYmVyTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICB3aGlsZSAocHRyIDwgZW5k
KSB7CiAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQsIG51bWJlcikpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChudW1iZXIpOworICAgICAgICBhcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxmbG9hdD4obnVtYmVyKSk7CiAgICAgfQogfQogCkBAIC01Miw3ICs1Miw3
IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYg
KGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBy
b3BlcnR5QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIwLDI0ICsyMCwzMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1i
ZXI7CiBjbGFzcyBTVkdOdW1iZXJMaXN0OwogCi1jbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZp
bmFsIDogcHVibGljIFZlY3RvcjxmbG9hdD4geworY2xhc3MgU1ZHTnVtYmVyTGlzdFZhbHVlcyBm
aW5hbCA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPGZsb2F0PiB7CiBwdWJsaWM6CiAgICAgdm9pZCBw
YXJzZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0Owor
ICAgIAogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVy
TGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051
bWJlckxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHTnVtYmVyTGlzdFZhbHVlcyBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHTnVtYmVy
TGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIHJl
dHVybiBsaXN0OworICAgIH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR051
bWJlckxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9Ci0K
ICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBmbG9hdDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJP
ZmYgPSBTVkdOdW1iZXI7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR051bWJl
ckxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGll
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw2ICsyMTksMzEgQEAgYm9vbCBwYXJzZU51bWJl
ck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgogICAgIHJldHVybiBjdXIgPT0gZW5kOwogfQogCiti
b29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBwb2ludCkKK3sKKyAg
ICBpZiAocy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHVwY29u
dmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7
CisgICAgY29uc3QgVUNoYXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVyczsKKyAgICBjb25z
dCBVQ2hhciogZW5kID0gY3VyICsgcy5sZW5ndGgoKTsKKworICAgIGlmICghc2tpcE9wdGlvbmFs
U1ZHU3BhY2VzKGN1ciwgZW5kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQg
eCA9IDA7CisgICAgaWYgKCFwYXJzZU51bWJlcihjdXIsIGVuZCwgeCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGZsb2F0IHkgPSAwOworICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBl
bmQsIHkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBwb2ludCA9IEZsb2F0UG9pbnQo
eCwgeSk7CisKKyAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyBleGNlcHQgc3BhY2VzIGF0IHRoZSBl
bmQKKyAgICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7Cit9CisKIGJv
b2wgcGFyc2VSZWN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAg
ICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3KHN0cmluZykudXBjb252
ZXJ0ZWRDaGFyYWN0ZXJzKCk7CkBAIC0yNjQsNyArMjg5LDcgQEAgYm9vbCBwb2ludHNMaXN0RnJv
bVNWR0RhdGEoU1ZHUG9pbnRMaXN0VgogICAgICAgICB9CiAgICAgICAgIHNraXBPcHRpb25hbFNW
R1NwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAgcG9pbnRzTGlzdC5hcHBlbmQoRmxvYXRQb2lu
dCh4UG9zLCB5UG9zKSk7CisgICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVh
dGU8RmxvYXRQb2ludD4oRmxvYXRQb2ludCh4UG9zLCB5UG9zKSkpOwogICAgIH0KICAgICByZXR1
cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcg
QEAgYm9vbCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0cgogYm9vbCBwYXJzZUFy
Y0ZsYWcoY29uc3QgTENoYXIqJiBwdHIsIGNvbnN0IExDaGFyKiBlbmQsIGJvb2wmIGZsYWcpOwog
Ym9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBlbmQsIGJv
b2wmIGZsYWcpOwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5nJiwgRmxvYXRSZWN0Jik7Citi
b29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiwgRmxvYXRQb2ludCYpOwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGJvb2wgcGFyc2VGbG9hdFBvaW50KGNvbnN0IENoYXJh
Y3RlclR5cGUqJiBjdXJyZW50LCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQsIEZsb2F0UG9pbnQm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTksNiArMTksOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNW
R1BhdGhVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMzQgKzQ4LDQy
IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIERhdGE6OmNvbnN0X2l0ZXJhdG9yIERhdGFJdGVyYXRv
cjsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtKCkgeyB9Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0o
Y29uc3QgRGF0YSYgZGF0YSkgOiBtX2RhdGEoZGF0YSkgeyB9CisgICAgU1ZHUGF0aEJ5dGVTdHJl
YW0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICAgICAgOiBtX2RhdGEoV1RGTW92ZShv
dGhlci5tX2RhdGEpKQorICAgIHsKKyAgICB9CiAgICAgCi0gICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVh
bShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCisgICAgICAgIDogbV9kYXRhKG90aGVy
Lm1fZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOwog
ICAgIH0KIAotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3Ro
ZXIpIGNvbnN0CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShTVkdQYXRoQnl0ZVN0
cmVhbSYmIG90aGVyKQorICAgIHsKKyAgICAgICAgbV9kYXRhID0gV1RGTW92ZShvdGhlci5tX2Rh
dGEpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIFNWR1BhdGhCeXRlU3RyZWFt
JiBvcGVyYXRvcj0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICBtX2RhdGEgPSBvdGhlci5tX2Rh
dGE7CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgPT0g
b3RoZXIubV9kYXRhOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1BhdGhCeXRlU3Ry
ZWFtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQorCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBjb3B5KCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPihtX2Rh
dGEpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4o
KnRoaXMpOwogICAgIH0KIAogICAgIERhdGFJdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS5iZWdpbigpOyB9CiAgICAgRGF0YUl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS5lbmQoKTsgfQogCiAgICAgdm9pZCBhcHBlbmQodW5zaWduZWQgY2hhciBieXRlKSB7
IG1fZGF0YS5hcHBlbmQoYnl0ZSk7IH0KLSAgICB2b2lkIGFwcGVuZChjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpCi0gICAgewotICAgICAgICBmb3IgKGF1dG8gc3RyZWFtIDogb3RoZXIp
Ci0gICAgICAgICAgICBhcHBlbmQoc3RyZWFtKTsKLSAgICB9CisgICAgdm9pZCBhcHBlbmQoY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSB7IG1fZGF0YS5hcHBlbmRWZWN0b3Iob3RoZXIu
bV9kYXRhKTsgfQogICAgIHZvaWQgY2xlYXIoKSB7IG1fZGF0YS5jbGVhcigpOyB9Ci0gICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fZGF0YS5zaXplKCk7IH0KKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuaXNFbXB0eSgpOyB9CiAgICAgdW5zaWduZWQg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KIAogICAgIC8vIE9ubHkgZGVm
aW5lZCB0byBsZXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3IgdXNlIHRoZSBzdGFuZGFyZCBsaXN0
IGNvZGUgcGF0aHMgLSB0aGlzIG1ldGhvZCBpcyBuZXZlciBjYWxsZWQuCkBAIC04Miw1ICs5Miwx
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERhdGEgbV9kYXRhOwogfTsKKyAgICAKK3RlbXBs
YXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT4geworICAg
IHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVhbSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTVkdQYXRo
Qnl0ZVN0cmVhbSgpOyB9CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdQYXRoQnl0ZVN0cmVhbSBi
eXRlU3RyZWFtOworICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJp
bmcsIGJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICByZXR1cm4gYnl0ZVN0
cmVhbTsKKyAgICB9Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgw
LDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1BhdGhF
bGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCi0gICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQorICAgICwgbV9w
YXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdFZhbHVlcyhQYXRoU2VnVW5hbHRlcmVkUm9sZSkpCiAg
ICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpwYXRoVGFnKSk7CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBTVkdQYXRoRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZAogICAgICAgICBpZiAobV9wYXRoU2VnTGlzdC5zaG91
bGRTeW5jaHJvbml6ZSAmJiAhU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQ
YXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4odGhpcywg
ZFByb3BlcnR5SW5mbygpKS0+aXNBbmltYXRpbmcoKSkgewogICAgICAgICAgICAgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMgbmV3TGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7CiAgICAgICAgICAgICBi
dWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0obV9wYXRoQnl0ZVN0cmVhbSwg
KnRoaXMsIG5ld0xpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgICAgICAgICAgbV9wYXRoU2Vn
TGlzdC52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
TGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKSA9IFdURk1vdmUobmV3TGlzdCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpCkBAIC0zMjcsOCArMzI3LDggQEAgUmVm
PFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1BhdGhFbGVtZW50OgogICAgIGlmIChhdXRvIHByb3Bl
cnR5ID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQYXRoRWxlbWVudCwg
U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oJm93bmVyVHlwZSwgZFByb3Bl
cnR5SW5mbygpKSkKICAgICAgICAgcmV0dXJuICpwcm9wZXJ0eTsKIAotICAgIGlmIChvd25lclR5
cGUubV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIGJ1aWxkU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3du
ZXJUeXBlLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSwgVW5hbHRlcmVkUGFyc2luZyk7
CisgICAgaWYgKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93bmVyVHlwZS5t
X3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpCisgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJU
eXBlLCBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlzdFZhbHVlcyY+KCpvd25lclR5cGUubV9wYXRo
U2VnTGlzdC52YWx1ZSksIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgcmV0dXJuIFNWR0FuaW1h
dGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZiwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCZv
d25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUp
OwogfQpAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN5bmNocm9uaXpl
RChTVkdFbGUKICAgICBTVkdQYXRoRWxlbWVudCYgb3duZXJUeXBlID0gZG93bmNhc3Q8U1ZHUGF0
aEVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5cGUubV9wYXRoU2Vn
TGlzdC5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5t
X3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0
cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUudmFsdWVBc1N0cmluZygp
KTsKKyAgICBvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBk
UHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0
VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkp
OwogfQogCiB2b2lkIFNWR1BhdGhFbGVtZW50OjphbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRl
ZCgpCkBAIC0zOTIsMTAgKzM5MiwxMCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlz
dENoYW5nZWQoCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuYWx0ZXJlZFJvbGU6
CiAgICAgICAgIGlmIChsaXN0TW9kaWZpY2F0aW9uID09IExpc3RNb2RpZmljYXRpb25BcHBlbmQp
IHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpOwot
ICAgICAgICAgICAgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhtX3BhdGhT
ZWdMaXN0LnZhbHVlLmxhc3QoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJl
ZFBhcnNpbmcpOworICAgICAgICAgICAgQVNTRVJUKCFzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGlz
dFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKS5pc0VtcHR5KCkpOworICAgICAgICAgICAg
YXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhzdGF0aWNfY2FzdDxTVkdQYXRo
U2VnTGlzdFZhbHVlcyY+KCptX3BhdGhTZWdMaXN0LnZhbHVlKS5sYXN0UHJvcGVydHkoKS5jb3B5
UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFy
c2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdM
aXN0VmFsdWVzKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xp
c3QudmFsdWUpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAg
bV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBh
dGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3Qu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIFNWR1BhdGhTZWdMaXN0OjpjbGVhckNvbnRleHRBbmRSb2xlcygpCiB7Ci0g
ICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiAqbV92YWx1ZXMpCisg
ICAgZm9yIChhdXRvJiBpdGVtIDogdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0aWVzKCkpCiAgICAg
ICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KGl0ZW0uZ2V0KCkpLT5zZXRD
b250ZXh0QW5kUm9sZShudWxscHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0OjpjbGVhcigpCiB7Ci0gICAgQVNTRVJUKG1fdmFs
dWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICBpZiAodmFsdWVzUHJvcGVy
dHkoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBjbGVhckNvbnRleHRB
bmRSb2xlcygpOwpAQCAtNTAsOCArNDgsOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNl
Zz4+IFNWR1BhdGhTCiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFNl
Z0xpc3Q6OnJlcGxhY2VJdGVtKFJlZjxTVkdQYXRoU2VnPiYmIG5ld0l0ZW0sIHVuc2lnbmVkIGlu
ZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpIHsKLSAgICAgICAgTGlz
dEl0ZW1UeXBlIHJlcGxhY2VkSXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7CisgICAgaWYgKGlu
ZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpIHsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIHJl
cGxhY2VkSXRlbSA9IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydHlBdChpbmRleCk7CiAgICAgICAg
IEFTU0VSVChyZXBsYWNlZEl0ZW0pOwogICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnV2l0
aENvbnRleHQqPihyZXBsYWNlZEl0ZW0uZ2V0KCkpLT5zZXRDb250ZXh0QW5kUm9sZShudWxscHRy
LCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsMTIgQEAgcHVibGljOgog
ICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdEl0ZW1U
eXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OjpMaXN0SXRlbVR5
cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1Bh
dGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAg
IHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBhdGhTZWdVbmRlZmlu
ZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00NSwxMSArNDUsOSBAQCBwdWJsaWM6CiAK
ICAgICBpbnQgZmluZEl0ZW0oY29uc3QgTGlzdEl0ZW1UeXBlJiBpdGVtKSBjb25zdAogICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLQotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV92
YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAg
ICAgICAgICAgaWYgKGl0ZW0gPT0gbV92YWx1ZXMtPmF0KGkpKQorICAgICAgICAgICAgaWYgKGl0
ZW0gPT0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGkpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBpOwogICAgICAgICB9CiAKQEAgLTU4LDEwICs1Niw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hy
b25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fdmFsdWVzLT5z
aXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KGl0ZW1JbmRleCA8IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBtX3ZhbHVl
cy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0
ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAg
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTkzLDcgKzkwLDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9s
ZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNl
Z1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1h
dGVkUHJvcGVydHkoJmFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwgbV9wYXRoU2VnUm9sZShw
YXRoU2VnUm9sZSkKQEAgLTExNywxNCArMTE0LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNv
bW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAg
ICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRF
bGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKKyAgICAgICAgdmFsdWVzUHJvcGVy
dHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwg
TGlzdE1vZGlmaWNhdGlvblVua25vd24pOwogICAgIH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdl
KExpc3RNb2RpZmljYXRpb24gbGlzdE1vZGlmaWNhdGlvbikgZmluYWwKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CisgICAg
ICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNv
bnRleHRFbGVtZW50KCksIGxpc3RNb2RpZmljYXRpb24pOwogICAgIH0KIAogICAgIGJvb2wgcHJv
Y2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVu
c2lnbmVkKiBpbmRleFRvTW9kaWZ5KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTgsNzggKzU4LDc4IEBAIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6U1ZHUGF0aFNlZ0xpc3RCdWkK
IHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjptb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgdGFy
Z2V0UG9pbnQsIGJvb2wsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2Rl
ID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
OjpsaW5lVG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9k
ZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0
b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOwor
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQ
YXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
TGluZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZv
aWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9Ib3Jpem9udGFsKGZsb2F0IHgsIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4o
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3Bh
dGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCh4LCBtX3BhdGhT
ZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbChmbG9hdCB5LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9k
ZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0
aWNhbEFicyh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh5LCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVs
c2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWwoeSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwoeSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyhj
b25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MiwgY29uc3Qg
RmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAg
IGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3Qu
YXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9p
bnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIu
eSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2lu
dDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55
KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpj
dXJ2ZVRvQ3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBv
aW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1v
ZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3Bh
dGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVh
dGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50
Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54
KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRh
cmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsK
IH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMoY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENv
b3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwodGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50
MS55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
OjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQ
YXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3Jk
aW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdldFBvaW50LngoKSwg
dGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRo
U2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRl
PFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9w
YXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmFyY1RvKGZs
b2F0IHIxLCBmbG9hdCByMiwgZmxvYXQgYW5nbGUsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3
ZWVwRmxhZywgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9k
ZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY0Fi
cyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VB
cmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUp
KSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSk7
CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNW
R1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwodGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dl
ZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRl
cjo6Y2xvc2VQYXRoKCkKIHsKLSAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9sZSkpOworICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xp
c3RTb3VyY2U6Omhhc01vcmVEYXRhKCkKIAogYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFy
c2VTVkdTZWdtZW50VHlwZShTVkdQYXRoU2VnVHlwZSYgcGF0aFNlZ1R5cGUpCiB7Ci0gICAgbV9z
ZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21lbnQg
PSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9pdGVtQ3VycmVudCk7CiAgICAgcGF0aFNlZ1R5
cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9zZWdtZW50LT5wYXRoU2VnVHlwZSgp
KTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJuIHRydWU7CkBAIC01MSw3ICs1MSw3
IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWUKIAogU1ZHUGF0aFNl
Z1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5kKFNWR1BhdGhTZWdUeXBlKQog
ewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9pdGVtQ3VycmVudCk7CisgICAg
bV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5wcm9wZXJ0eUF0KG1faXRlbUN1cnJlbnQpOwogICAg
IFNWR1BhdGhTZWdUeXBlIHBhdGhTZWdUeXBlID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1R5cGU+
KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAgICAgKyttX2l0ZW1DdXJyZW50OwogICAgIHJl
dHVybiBwYXRoU2VnVHlwZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTksMTAgKzE5LDkgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdM
aXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2luY2x1ZGUgIlNWR1Byb3Bl
cnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMyw3ICszMiw3IEBAIGNs
YXNzIFNWR1BhdGhTZWdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBjbGFzcyBTVkdQcm9w
ZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDogcHVibGljIFZlY3Rv
cjxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKK2NsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDogcHVi
bGljIFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoU1ZHUGF0aFNlZ1JvbGUgcm9sZSkKICAgICAgICAg
OiBtX3JvbGUocm9sZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0
aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgYXBwZW5kU1ZH
UGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFMKICAgICBBU1NFUlQocGFyc2luZ01vZGUgPT0gVW5h
bHRlcmVkUGFyc2luZyk7CiAKICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBhcHBlbmRlZEl0ZW1M
aXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKLSAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChX
VEZNb3ZlKHBhdGhTZWcpKTsKKyAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChTVkdWYWx1ZTo6
Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4oV1RGTW92ZShwYXRoU2VnKSkpOwogCiAgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0gYXBwZW5kZWRCeXRlU3RyZWFtOwogICAgIFNWR1BhdGhTZWdMaXN0U291
cmNlIHNvdXJjZShhcHBlbmRlZEl0ZW1MaXN0KTsKQEAgLTIwNiwxNSArMjA2LDE0IEBAIGJvb2wg
YnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGNvbnMKIAogYm9vbCBhZGRUb1NWR1BhdGhC
eXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW1Ub0FwcGVuZFRvLCBjb25zdCBTVkdQ
YXRoQnl0ZVN0cmVhbSYgYnlTdHJlYW0sIHVuc2lnbmVkIHJlcGVhdENvdW50KQogewotICAgIC8v
IFdoeSByZXR1cm4gd2hlbiBzdHJlYW1Ub0FwcGVuZFRvIGlzIGVtcHR5PyBEb24ndCB3ZSBzdGls
bCBuZWVkIHRvIGFwcGVuZD8KKyAgICAvLyBUaGUgYnlTdHJlYW0gd2lsbCBiZSBibGVuZGVkIHdp
dGggc3RyZWFtVG9BcHBlbmRUby4gU28gc3RyZWFtVG9BcHBlbmRUbyBoYXMgdG8gaGF2ZSBlbGVt
ZW50cy4KICAgICBpZiAoc3RyZWFtVG9BcHBlbmRUby5pc0VtcHR5KCkgfHwgYnlTdHJlYW0uaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8vIElzIGl0IE9LIHRvIG1ha2Ug
dGhlIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlciBmcm9tIGEgc3RyZWFtLCBhbmQgdGhlbiBjbGVh
ciB0aGF0IHN0cmVhbT8KKyAgICAvLyBidWlsZGVyIGlzIHRoZSBkZXN0aW5hdGlvbiBvZiBibGVu
ZGluZyBmcm9tU291cmNlIGFuZCBieVNvdXJjZS4gVGhlIHN0cmVhbSBvZiBidWlsZGVyCisgICAg
Ly8gKGkuZS4gc3RyZWFtVG9BcHBlbmRUbykgaGFzIHRvIGJlIGNsZWFyZWQgYmVmb3JlIGNhbGxp
bmcgYWRkQW5pbWF0ZWRQYXRoLgogICAgIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlciBidWlsZGVy
KHN0cmVhbVRvQXBwZW5kVG8pOwotCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmVhbUNv
cHkgPSBzdHJlYW1Ub0FwcGVuZFRvOwotICAgIHN0cmVhbVRvQXBwZW5kVG8uY2xlYXIoKTsKKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IFdURk1vdmUoc3RyZWFtVG9BcHBl
bmRUbyk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBmcm9tU291cmNlKGZyb21TdHJl
YW1Db3B5KTsKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBieVNvdXJjZShieVN0cmVhbSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRl
YXJPZmY8RmxvYXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3Jl
YXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KSk7CiAgICAgfQpAQCAtNDMsMTEgKzQzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdQb2ludChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UmVmPFNWR1BvaW50PiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5pdGlhbFZhbHVlKSk7
Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxTVkdQb2ludD4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC01Nyw3ICs1Miw3
IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHgoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkueCgpOworICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLngoKTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTY1
LDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJv
cGVydHkoKS5zZXRYKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAg
IHJldHVybiB7IH07CkBAIC03Myw3ICs2OCw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLnkoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRZKGZsb2F0IHhWYWx1ZSkKQEAgLTgxLDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRZ
KHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05MiwxOSArODcsMTkg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0
byBuZXdQb2ludCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubWF0cml4VHJhbnNmb3JtKG1hdHJpeC5w
cm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byBuZXdQb2ludCA9IHZhbHVlUHJvcGVy
dHkoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnZhbHVlUHJvcGVydHkoKSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdQb2ludDo6Y3JlYXRlKG5ld1BvaW50
KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQb2ludChTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFs
dWUpCisgICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAg
ICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PigmYW5pbWF0ZWRQcm9wZXJ0eSwg
cm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFNWR1BvaW50KFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVy
dHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KG51bGxwdHIsIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9
CkBAIC0xMTMsMTEgKzEwOCw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8RmxvYXRQb2ludD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBs
aWNpdCBTVkdQb2ludChjb25zdCBGbG9hdFBvaW50KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDog
U1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTMgQEAgcHVibGljOgogICAgIHVz
aW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUg
PSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBz
dGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlzdFZh
bHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVm
PFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQb2ludExpc3QoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZwogICAg
ICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBGSVhN
RTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAKLSAgICAgICAgY29uc3Qg
YXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBwcm9wZXJ0
eUF0KGkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2ludC54KCkpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb2lu
dC55KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSwyMiArMjEsMjggQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRl
ICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludDsKIGNsYXNzIFNWR1BvaW50TGlzdDsKIAot
Y2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxGbG9hdFBvaW50
PiB7CitjbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVl
czxGbG9hdFBvaW50PiB7CiBwdWJsaWM6CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25z
dDsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlz
dFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50
TGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdQb2ludExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVl
KCkgeyByZXR1cm4geyB9OyB9Ci0KKyAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdQb2ludExpc3RW
YWx1ZXMgbGlzdDsKKyAgICAgICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGxpc3QsIHN0cmluZyk7
CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBG
bG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNWR1BvaW50OwogICAgIHVz
aW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdQb2ludExpc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcg
QEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29ucwogICAgICAgICBpZiAo
YXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQb2x5
RWxlbWVudCwgU1ZHQW5pbWF0ZWRQb2ludExpc3Q+KHRoaXMsIHBvaW50c1Byb3BlcnR5SW5mbygp
KSkKICAgICAgICAgICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHQW5pbWF0ZWRQb2ludExpc3Q+
KHdyYXBwZXIpLT5kZXRhY2hMaXN0V3JhcHBlcnMobmV3TGlzdC5zaXplKCkpOwogCi0gICAgICAg
IG1fcG9pbnRzLnZhbHVlID0gbmV3TGlzdDsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKm1fcG9pbnRzLnZhbHVlKSA9IFdURk1vdmUobmV3TGlzdCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50
OjpzeW5jaHJvbml6ZVBvaW50cyhTCiAgICAgU1ZHUG9seUVsZW1lbnQmIG93bmVyVHlwZSA9IGRv
d25jYXN0PFNWR1BvbHlFbGVtZW50PigqY29udGV4dEVsZW1lbnQpOwogICAgIGlmICghb3duZXJU
eXBlLm1fcG9pbnRzLnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3du
ZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5m
bygpLT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wb2ludHMudmFsdWUudmFsdWVBc1N0cmlu
ZygpKTsKKyAgICBvd25lclR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9p
bnRzUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1BvaW50TGlz
dFZhbHVlcyY+KCpvd25lclR5cGUubV9wb2ludHMudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9
CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5RWxlbWVudDo6bG9va3VwT3JDcmVh
dGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMoKTsKICAgICBSZWY8U1ZHUG9p
bnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2lu
dExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsgfQorICAgIFNWR1BvaW50TGlz
dFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRM
aXN0VmFsdWVzJj4oKm1fcG9pbnRzLnZhbHVlKTsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNWR1By
b3BlcnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQorICAg
IHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsK
ICAgICB9CkBAIC00MiwxMSArNDIsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoY29uc3QgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxWYWx1ZSkpOwot
ICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxW
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBA
IC01Niw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmFsaWduKCk7CisgICAgICAg
IHJldHVybiB2YWx1ZVByb3BlcnR5KCkuYWxpZ24oKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRBbGlnbihmbG9hdCB2YWx1ZSkKQEAgLTY0LDcgKzU5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldEFsaWduKHZhbHVlKTsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB2YWx1ZVByb3BlcnR5KCkuc2V0QWxpZ24odmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApAQCAtNzQsNyArNjks
NyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5tZWV0T3JTbGljZSgpOworICAgICAg
ICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLm1lZXRPclNsaWNlKCk7CiAgICAgfQogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxvYXQgdmFsdWUpCkBAIC04Miw3ICs3Nyw3
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1
dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVQcm9wZXJ0eSgpLnNldE1lZXRPclNsaWNlKHZhbHVl
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAKQEAgLTkxLDcgKzg2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUmIHZhbHVlKQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7
CiAgICAgfQpAQCAtMTAwLDExICs5NSw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVy
dHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAg
IHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGNvbnN0IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1By
b3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KGluaXRpYWxWYWx1ZSkK
LSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMSBAQCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlCiB7CiB9CiAKK1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQoreworICAgIHBhcnNlKHN0cmluZyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6c2V0QWxpZ24odW5zaWduZWQgc2hvcnQgYWxpZ24pCiB7
CiAgICAgaWYgKGFsaWduID09IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV04gfHwgYWxp
Z24gPiBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUFYWU1BWCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOworICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsaWdu
KHVuc2lnbmVkIHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCBhbGlnbigpIGNvbnN0IHsgcmV0
dXJuIG1fYWxpZ247IH0KQEAgLTc3LDYgKzc4LDcgQEAgcHJpdmF0ZToKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7CiAg
ICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKTsgfQorICAgIHN0YXRpYyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyBy
ZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKHN0cmluZyk7IH0KICAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkg
eyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTUsMTIgKzU1LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9Q
Uk9QRVJUSUVTCiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAg
LCBtX2N4KExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWln
aHQsICI1MCUiKQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUwJSIpCi0gICAgLCBtX2Z4
KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1f
ZnIoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZUhlaWdodCwgIjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhl
ciwgIjUwJSIpKQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQor
ICAgICwgbV9meShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fZnIo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJ
ZiB0aGUgY3gvY3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNU
YWdOYW1lKFNWR05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMCwxMyArMjAsMTMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiU1ZHUHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUmVjdFRyYWl0cy5oIgorI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHUmVjdCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUp
CisgICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChh
bmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTM2LDExICszNiw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChpbml0aWFsVmFs
dWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShjb25zdCBGbG9h
dFJlY3QqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1JlY3QoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdSZWN0Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+
JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNl
cHRpb24oKSkKQEAgLTUwLDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgeCgpCiAgICAg
ewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS54KCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVByb3BlcnR5KCkueCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFgoZmxvYXQgeFZhbHVlKQpAQCAtNTgsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFgoeFZh
bHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFgoeFZhbHVlKTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY2LDcgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgZmxvYXQgeSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZl
cmVuY2UoKS55KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVByb3BlcnR5KCkueSgpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxvYXQgeFZhbHVlKQpAQCAtNzQsNyArNjks
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0eSgp
LnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTgyLDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgd2lkdGgoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkud2lkdGgoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUHJvcGVydHkoKS53aWR0aCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFdpZHRoKGZsb2F0IHdpZHRoVmFsdWUpCkBAIC05MCw3ICs4NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2V0V2lkdGgod2lkdGhWYWx1ZSk7CisgICAgICAgIHZhbHVlUHJvcGVydHkoKS5z
ZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTk4LDcgKzkzLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgaGVpZ2h0
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmhlaWdodCgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmhlaWdodCgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEhlaWdodChmbG9hdCBoZWlnaHRWYWx1ZSkKQEAgLTEwNiwxNCAr
MTAxLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhlaWdodFZhbHVlKTsKKyAgICAgICAg
dmFsdWVQcm9wZXJ0eSgpLnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNW
R1JlY3QoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVj
dD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMjIs
MTEgKzExNyw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0
UmVjdD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdSZWN0
KGNvbnN0IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVh
ck9mZjxGbG9hdFJlY3Q+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
LSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3Qg
U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0PiB7Ci0gICAgc3RhdGljIEZsb2F0UmVjdCBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IEZsb2F0UmVjdCYgdHlwZSkKLSAgICB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLnkoKSk7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHR5cGUud2lkdGgoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm4gYnVp
bGRlci50b1N0cmluZygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzEsMTEgKzcxLDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGlu
ZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3Ro
TW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwo
IjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgi
MTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAg
LCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpKQorICAg
ICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgQVNDSUlMaXRlcmFs
KCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVyKFNNSUxUaW1lQ29udGFpbmVyOjpjcmVh
dGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNsYXRlKFNWR1ZhbHVlOjpjcmVhdGU8Rmxv
YXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6c3ZnVGFnKSk7
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTVkdFbGVtZW50KCk7CkBAIC0x
OTcsOSArMTk4LDkgQEAgUmVmPFNWR1BvaW50PiBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbgog
CiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUoY29uc3QgRmxvYXRQb2lu
dCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1fY3VycmVudFRyYW5zbGF0ZSA9PSB0cmFuc2xh
dGlvbikKKyAgICBpZiAoc3RhdGljX2Nhc3Q8RmxvYXRQb2ludCY+KCptX2N1cnJlbnRUcmFuc2xh
dGUpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50VHJhbnNs
YXRlID0gdHJhbnNsYXRpb247CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRQb2ludCY+KCptX2N1cnJl
bnRUcmFuc2xhdGUpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVudFRyYW5zbGF0ZSgp
OwogfQogCkBAIC0zMzUsMTIgKzMzNiwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6
OmNvbGxlY3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0
aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0
dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRl
cmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRlclNWR01v
ZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QudmFs
dWVQcm9wZXJ0eSgpKTsKIH0KICAgICAKIHN0YXRpYyBib29sIGNoZWNrRW5jbG9zdXJlV2l0aG91
dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0g
ICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3VyZShlbGVtZW50LnJl
bmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRlclNW
R01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3VyZShlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QudmFs
dWVQcm9wZXJ0eSgpKTsKIH0KIAogUmVmPE5vZGVMaXN0PiBTVkdTVkdFbGVtZW50OjpnZXRJbnRl
cnNlY3Rpb25MaXN0KFNWR1JlY3QmIHJlY3QsIFNWR0VsZW1lbnQqIHJlZmVyZW5jZUVsZW1lbnQp
CkBAIC00MTQsNyArNDE1LDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHU1ZHRWxlbWVudDo6Y3Jl
YXRlUwogCiBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50OjpjcmVhdGVTVkdUcmFuc2Zv
cm1Gcm9tTWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQogewotICAgIHJldHVybiBTVkdUcmFuc2Zv
cm06OmNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZSB7IG1hdHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgp
IH0pOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm06OmNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZSB7
IG1hdHJpeC52YWx1ZVByb3BlcnR5KCkgfSk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBTVkdTVkdF
bGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFibGU6OkNUTVNj
b3BlIG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VDdXJy
ZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFuIHsg
U1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250YWluZXI+IG1fdGlt
ZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0ZTsKKyAgICBSZWZQ
dHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+
IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVudElkZW50aWZpZXI7
CiB9OwpAQCAtMTc1LDcgKzE3NSw3IEBAIGlubGluZSBib29sIFNWR1NWR0VsZW1lbnQ6OnVzZUN1
cnJlbnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5z
bGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRlOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSk7CiB9CiAKIGlu
bGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5kUGFuKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTIgKzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz47
CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3Jl
YXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50LCB2
YWx1ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmluZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxTVkdT
dHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVy
dHlSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMuIEl0
J3Mgb25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBT
VkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRleHRF
bGVtZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyAr
MzksNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnJlc2V0KGNvbnN0IFN0CiAKICAgICAv
LyBBZGQgZW1wdHkgc3RyaW5nLCBpZiBsaXN0IGlzIGVtcHR5LgogICAgIGlmIChpc0VtcHR5KCkp
Ci0gICAgICAgIGFwcGVuZChlbXB0eVN0cmluZygpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8U3RyaW5nPihlbXB0eVN0cmluZygpKSk7CiB9CiAKIHZvaWQgU1ZHU3RyaW5nTGlz
dFZhbHVlczo6cGFyc2UoY29uc3QgU3RyaW5nJiBkYXRhLCBVQ2hhciBkZWxpbWl0ZXIpCkBAIC01
Niw3ICs1Niw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAg
ICAgICAgICAgIHB0cisrOwogICAgICAgICBpZiAocHRyID09IHN0YXJ0KQogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGFwcGVuZChTdHJpbmcoc3RhcnQsIHB0ciAtIHN0YXJ0KSk7CisgICAg
ICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0cmluZz4oU3RyaW5nKHN0YXJ0LCBwdHIgLSBz
dGFydCkpKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBl
bmQsIGRlbGltaXRlcik7CiAgICAgfQogfQpAQCAtNzAsNyArNzAsNyBAQCBTdHJpbmcgU1ZHU3Ry
aW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
cmluZ0xpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw4ICsyMSw4IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJTVkdM
aXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIsNyArMzIsNyBAQCBj
bGFzcyBTVkdTdHJpbmdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBjbGFzcyBTVkdQcm9w
ZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMg
VmVjdG9yPFN0cmluZz4geworY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBmaW5hbCA6IHB1Ymxp
YyBTVkdMaXN0VmFsdWVzPFN0cmluZz4gewogcHVibGljOgogICAgIFNWR1N0cmluZ0xpc3RWYWx1
ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICAgICAgOiBtX2F0dHJp
YnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW4KIH0KIAogU1ZHVGVzdHM6OlNWR1Rlc3RzKCkKLSAgICA6IG1fcmVxdWlyZWRG
ZWF0dXJlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAsIG1fcmVxdWlyZWRFeHRlbnNpb25z
KHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgLCBtX3N5c3RlbUxhbmd1YWdlKHN5c3RlbUxh
bmd1YWdlQXR0cikKKyAgICA6IG1fcmVxdWlyZWRGZWF0dXJlcyhTVkdTdHJpbmdMaXN0VmFsdWVz
KHJlcXVpcmVkRmVhdHVyZXNBdHRyKSkKKyAgICAsIG1fcmVxdWlyZWRFeHRlbnNpb25zKFNWR1N0
cmluZ0xpc3RWYWx1ZXMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikpCisgICAgLCBtX3N5c3RlbUxh
bmd1YWdlKFNWR1N0cmluZ0xpc3RWYWx1ZXMoc3lzdGVtTGFuZ3VhZ2VBdHRyKSkKIHsKIH0KIApA
QCAtMTU0LDE1ICsxNTQsMjAgQEAgYm9vbCBTVkdUZXN0czo6aGFzRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZwogCiBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8m
IGZlYXR1cmUgOiBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpIHsKKyAgICBhdXRvIGZlYXR1cmVz
ID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRmVhdHVyZXMu
dmFsdWUpLnByb3BlcnRpZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmZWF0dXJlcykg
ewogICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNWR0ZlYXR1cmVz
KCkuY29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQot
ICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlKSB7CisKKyAg
ICBhdXRvIGxhbmd1YWdlcyA9IHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9z
eXN0ZW1MYW5ndWFnZS52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAoYXV0byYgbGFuZ3Vh
Z2UgOiBsYW5ndWFnZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRlZmF1bHRMYW5ndWFn
ZSgpLnN1YnN0cmluZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkgewor
CisgICAgYXV0byBleHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+
KCptX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAoYXV0
byYgZXh0ZW5zaW9uIDogZXh0ZW5zaW9ucykgewogICAgICAgICBpZiAoIWhhc0V4dGVuc2lvbihl
eHRlbnNpb24pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE3MiwxMSAr
MTc3LDExIEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdUZXN0czo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJl
ZEZlYXR1cmVzQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJlc2V0KHZh
bHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3JlcXVp
cmVkRmVhdHVyZXMudmFsdWUpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9
PSByZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52
YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1
ZXMmPigqbV9yZXF1aXJlZEV4dGVuc2lvbnMudmFsdWUpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAo
YXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5ndWFnZUF0dHIpCi0gICAgICAgIG1fc3lzdGVtTGFu
Z3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdM
aXN0VmFsdWVzJj4oKm1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpLnJlc2V0KHZhbHVlKTsKIH0KIAog
Ym9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQgU1ZHVGVzdHM6OnN5bmNocm9uaXpl
QXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3BlcnR5LnNob3VsZFN5bmNocm9uaXplKQog
ICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZlYXR1cmVzLnN5bmNocm9uaXplKCZjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHkudmFsdWUudmFsdWVBc1N0cmluZygp
KTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKnByb3BlcnR5
LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rlc3RzOjpzeW5jaHJvbml6
ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY2LDggKzY2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
R3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV90ZXh0TGVuZ3RoKExl
bmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChMZW5ndGhNb2RlT3Ro
ZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkK
KyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3Ro
ZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0U3BhY2luZykKIHsKICAg
ICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250ZW50RWxlbWVudCgpOwpA
QCAtOTUsNyArOTUsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1RleHRDb250ZW50RWxl
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZhbHVlPiBkZWZhdWx0VGV4
dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmllZFRleHRMZW5ndGgg
PT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZS5uZXdWYWx1
ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExlbmd0aCgp
KTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZh
bHVlKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVk
VGV4dExlbmd0aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5jaHJvbml6ZSA9IHRy
dWU7CiAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmltYXRlZExlbmd0aD4o
bG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0xNTgsNyArMTU4LDcg
QEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAogaW50IFNWR1RleHRD
b250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50KQogewog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0g
ICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0
aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBTVkdUZXh0UXVlcnko
cmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52YWx1ZVByb3BlcnR5
KCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnNlbGVj
dFN1YlN0cmluZyh1bnNpZ25lZCBjaGFybnVtLCB1bnNpZ25lZCBuY2hhcnMpCkBAIC0yMjksNyAr
MjI5LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidQogICAgICAg
ICBpZiAocHJvcGVydHlWYWx1ZSA+IDApCiAgICAgICAgICAgICBzZXRMZW5ndGhBZGp1c3RCYXNl
VmFsdWUocHJvcGVydHlWYWx1ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjp0
ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlID0gU1ZHTGVuZ3RoVmFs
dWU6OmNvbnN0cnVjdChMZW5ndGhNb2RlT3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWRO
ZWdhdGl2ZUxlbmd0aHMpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpt
X3RleHRMZW5ndGgudmFsdWUpID0gU1ZHTGVuZ3RoVmFsdWU6OmNvbnN0cnVjdChMZW5ndGhNb2Rl
T3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpOwogCiAgICAg
cmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIApA
QCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1
dGUKICAgICB9CiAKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRy
KQotICAgICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWU7Cisg
ICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVl
Jj4oKm1fdGV4dExlbmd0aC52YWx1ZSk7CiAKICAgICBpZiAoYXV0byByZW5kZXJlciA9IHRoaXMt
PnJlbmRlcmVyKCkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgq
dGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICA6IFNWR1RleHRDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1f
c3RhcnRPZmZzZXQoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV9zdGFydE9mZnNldChTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9tZXRob2QoU1ZHVGV4dFBhdGhNZXRo
b2RBbGlnbikKICAgICAsIG1fc3BhY2luZyhTVkdUZXh0UGF0aFNwYWNpbmdFeGFjdCkKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxTVkdNYXRyaXg+IFNWR1RyYW5z
Zm9ybTo6bWF0cml4KCkKIHsKLSAgICByZXR1cm4gU1ZHTWF0cml4VGVhck9mZjo6Y3JlYXRlKCp0
aGlzLCBwcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpKTsKKyAgICByZXR1cm4gU1ZHTWF0
cml4VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCB2YWx1ZVByb3BlcnR5KCkuc3ZnTWF0cml4KCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0
ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNm
b3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDMsMTEgKzQzLDYgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm0oaW5pdGlhbFZhbHVlKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zv
cm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlKEV4
Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxW
YWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTU3LDE0ICs1MiwxNCBAQCBwdWJsaWM6CiAKICAgICB1
bnNpZ25lZCBzaG9ydCB0eXBlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUHJvcGVydHkoKS50eXBlKCk7CiAg
ICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmdsZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOworICAg
ICAgICByZXR1cm4gdmFsdWVQcm9wZXJ0eSgpLmFuZ2xlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0TWF0cml4KFNWR01hdHJpeCYgbWF0cml4KQpAQCAtNzIsNyArNjcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgucHJvcGVydHlSZWZlcmVuY2UoKSk7Cisg
ICAgICAgIHZhbHVlUHJvcGVydHkoKS5zZXRNYXRyaXgobWF0cml4LnZhbHVlUHJvcGVydHkoKSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3
ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CisgICAgICAgIHZh
bHVlUHJvcGVydHkoKS5zZXRUcmFuc2xhdGUodHgsIHR5KTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzg5LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRTY2FsZShzeCwgc3kpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0U2NhbGUoc3gs
IHN5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTEwNSw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsK
KyAgICAgICAgdmFsdWVQcm9wZXJ0eSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExNiw3ICsxMTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVQcm9wZXJ0
eSgpLnNldFNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTEyNywxNCArMTIyLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0U2tld1ko
YW5nbGUpOworICAgICAgICB2YWx1ZVByb3BlcnR5KCkuc2V0U2tld1koYW5nbGUpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBT
VkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6
IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xNDMsMTEgKzEzOCw2IEBAIHByaXZhdGU6
CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPihpbml0aWFs
VmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1RyYW5zZm9ybShjb25zdCBT
VkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1MaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMxLDIwICsz
MiwxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0g
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Owog
ICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6
Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3Jl
YXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMp
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHkoKS5j
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiAgICAgfQogCiAgICAgRXhjZXB0
aW9uT3I8UmVmUHRyPFNWR1RyYW5zZm9ybT4+IGNvbnNvbGlkYXRlKCkKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAg
ICBhdXRvIHJlc3VsdCA9IGNhbkFsdGVyTGlzdCgpOwpAQCAtNTIsMjMgKzUxLDIzIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQo
bV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQo
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAg
ICAvLyBTcGVjOiBJZiB0aGUgbGlzdCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1ZSBvZiBudWxsIGlz
IHJldHVybmVkLgotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgaWYg
KHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAgICAgICAgUmVm
UHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0ZSgpOworICAg
ICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUHJvcGVydHkoKS5jb25z
b2xpZGF0ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBlci0+Y3JlYXRlV2Vh
a1B0cigpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93
cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUod3JhcHBlcik7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBT
VkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2
YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAgY2xlYXIo
KTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxT
VkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6
Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQgKj0gYXQo
aSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkpLm1hdHJpeCgpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmluZyBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3QKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1
ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVl
QXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgotI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPgotY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKLQorY2xhc3MgU1ZH
TWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAot
Y2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHVHJh
bnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBw
dWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgogICAgIFJl
ZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4Jikg
Y29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAgLTQyLDggKzQx
LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogfTsKIAotdGVt
cGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4g
ewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUo
KSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIEFT
U0VSVChsaXN0LnNpemUoKSA8PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlz
dCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVt
VHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybVZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw0ICs5MSw5IEBAIGlubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHVHJhbnNmb3IKICAgICByZXR1cm4gIShhID09IGIpOwog
fQogCit0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1
ZT4geworICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVy
biB7IH07IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybVZh
bHVlJiB0cmFuc2Zvcm0pIHsgcmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5nKCk7IH0KK307
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1hYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtYWJsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm1hYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBAIGJv
b2wgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAgICAgaWYgKCFwYXJz
ZVRyYW5zZm9ybVZhbHVlKHR5cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNmb3JtKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0cmFuc2Zvcm0p
OworICAgICAgICBsaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVl
Pih0cmFuc2Zvcm0pKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1cnJUcmFuc2Zv
cm0sIGVuZCk7CiAgICAgICAgIGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpjdXJyVHJhbnNm
b3JtID09ICcsJykgewogICAgICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxMCAr
NjIsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1Vz
ZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVp
Z2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5n
dGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkp
CisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dp
ZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIo
KnRoaXMsICZTVkdFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVkKQogewogICAgIEFTU0VS
VChoYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFs
dWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisj
aW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUg
IlNWR0FuZ2xlVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCisjaW5j
bHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhWYWx1ZS5oIgorI2lu
Y2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVh
bS5oIgorI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUG9p
bnRMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgi
CisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdTdHJpbmdMaXN0
VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUg
IlNWR1RyYW5zZm9ybVZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PAorICAgIFNW
R0FuZ2xlVmFsdWUsICAgICAgICAgICAgICAgICAgLy8gIDA6IGFuZ2xlCisgICAgYm9vbCwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAgMTogYm9vbGVhbgorICAgIENvbG9yLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gIDI6IGNvbG9yCisgICAgdW5zaWduZWQsICAgICAgICAgICAg
ICAgICAgICAgICAvLyAgMzogZW51bWVyYXRpb24KKyAgICBpbnQsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vICA0OiBpbnRlZ2VyCisgICAgU1ZHTGVuZ3RoVmFsdWUsICAgICAgICAgICAg
ICAgICAvLyAgNTogbGVuZ3RoCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywgICAgICAgICAgICAv
LyAgNjogbGVuZ3RoTGlzdAorICAgIFNWR01hdHJpeFZhbHVlLCAgICAgICAgICAgICAgICAgLy8g
IDc6IG1hdHJpeAorICAgIGZsb2F0LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDg6IG51
bWJlcgorICAgIFNWR051bWJlckxpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gIDk6IG51bWJlckxp
c3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSwgICAgICAgICAgICAgIC8vIDEwOiBwYXRoCisgICAg
UmVmUHRyPFNWR1BhdGhTZWc+LCAgICAgICAgICAgICAvLyAxMTogcGF0aFNlZworICAgIFNWR1Bh
dGhTZWdMaXN0VmFsdWVzLCAgICAgICAgICAgLy8gMTI6IHBhdGhTZWdMaXN0CisgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlLCAgICAvLyAxMzogcHJlc2VydmVBc3BlY3RSYXRpbworICAg
IEZsb2F0UG9pbnQsICAgICAgICAgICAgICAgICAgICAgLy8gMTQ6IHBvaW50CisgICAgU1ZHUG9p
bnRMaXN0VmFsdWVzLCAgICAgICAgICAgICAvLyAxNTogcG9pbnRMaXN0CisgICAgRmxvYXRSZWN0
LCAgICAgICAgICAgICAgICAgICAgICAvLyAxNjogcmVjdAorICAgIFN0cmluZywgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gMTc6IHN0cmluZworICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMsICAg
ICAgICAgICAgLy8gMTg6IHN0cmluZ0xpc3QKKyAgICBTVkdUcmFuc2Zvcm1WYWx1ZSwgICAgICAg
ICAgICAgIC8vIDE5OiB0cmFuc2Zvcm0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzICAgICAg
ICAgIC8vIDIwOiB0cmFuc2Zvcm1MaXN0Cis+OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlPgorY2xhc3MgU1ZHVHJhaXRIYXNUb1N0cmluZyB7CisgICAgdHlwZWRlZiBjaGFyIG9u
ZTsKKyAgICB0eXBlZGVmIGxvbmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0
YXRpYyBvbmUgdGVzdChkZWNsdHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnRvU3RyaW5nKSk7
CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJs
aWM6CisgICAgZW51bSB7IHZhbHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRy
KSkgPT0gc2l6ZW9mKGNoYXIpIH07Cit9OworICAgIAorc3RydWN0IHRvU3RyaW5nVmlzaXRvciB7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNW
R1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAg
U3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyh2YWx1
ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVu
YWJsZV9pZl90PCFTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBu
dWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAg
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICB9Cit9OworICAgIAordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNW
R1RyYWl0SGFzUGFyc2UgeworICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25n
IHR3bzsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3QoZGVjbHR5
cGUoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+OjpwYXJzZSkpOworICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBzdGF0aWMgdHdvIHRlc3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0geyB2YWx1ZSA9
IHNpemVvZih0ZXN0PFByb3BlcnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9Owor
fTsKKworc3RydWN0IHBhcnNlVmlzaXRvciB7CisgICAgcGFyc2VWaXNpdG9yKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHVmFsdWVWYXJpYW50
JiB2YXJpYW50KQorICAgICAgICA6IG1fYXR0ck5hbWUoYXR0ck5hbWUpCisgICAgICAgICwgbV9z
dHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fdmFyaWFudCh2YXJpYW50KQorICAgIHsKKyAgICB9
CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9p
Zl90PFNWR1RyYWl0SGFzUGFyc2U8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+Cisg
ICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFByb3BlcnR5VHlwZT4gcmVzdWx0ID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJv
cGVydHlUeXBlPjo6cGFyc2UobV9hdHRyTmFtZSwgbV9zdHJpbmcpOworICAgICAgICBpZiAoIXJl
c3VsdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV92YXJpYW50LmVtcGxh
Y2U8UHJvcGVydHlUeXBlPihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46OnZh
bHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUm
KQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBtX2F0dHJOYW1lOworICAg
IGNvbnN0IFN0cmluZyYgbV9zdHJpbmc7CisgICAgU1ZHVmFsdWVWYXJpYW50JiBtX3ZhcmlhbnQ7
Cit9OworICAgIAorY2xhc3MgU1ZHVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdWYWx1ZT4s
IHB1YmxpYyBTVkdWYWx1ZVZhcmlhbnQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZTxQcm9wZXJ0eVR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUg
PGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVy
dHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3Jl
YXRlKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICAvLyBBbGwg
ZW51bXMgYXJlIHN0b3JlZCBhcyB1bnNpZ25lZCB2YWx1ZXMuCisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQmPihwcm9w
ZXJ0eSkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6
OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxw
dHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5VHlwZSYg
cHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZShw
cm9wZXJ0eSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUo
Y29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHVmFsdWUodmFsdWUpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CisgICAgYm9vbCBpcygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCp0aGlzKSB8fCAoc3RkOjppc19lbnVt
PFByb3BlcnR5VHlwZT46OnZhbHVlICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+
KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxw
dHI+CisgICAgb3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNvbnN0CisgICAgeworICAg
ICAgICAvLyBDYXN0IHRoZSB1bnNpZ25lZCB2YWx1ZSB0byB0aGUgcmVxdWlyZWQgZW51bS4KKyAg
ICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7Cisg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IFByb3BlcnR5VHlwZSY+KFdURjo6
Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9w
ZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2
YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRvciBjb25zdCBQcm9wZXJ0eVR5cGUmKCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxh
dGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJv
cGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgUHJvcGVydHlUeXBl
JigpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25l
ZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHJvcGVydHlUeXBl
Jj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNs
YXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3BlcnR5
VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAgICAgIHJldHVy
biBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQodG9TdHJpbmdW
aXNpdG9yKCksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7Cisg
ICAgfQorCisgICAgYm9vbCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNpdChwYXJz
ZVZpc2l0b3IoYXR0ck5hbWUsIHN0cmluZywgc3RhdGljX2Nhc3Q8U1ZHVmFsdWVWYXJpYW50Jj4o
KnRoaXMpKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAg
IGV4cGxpY2l0IFNWR1ZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDog
U1ZHVmFsdWVWYXJpYW50KHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5
VHlwZT4oKSk7CisgICAgfQorICAgIAorICAgIFNWR1ZhbHVlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1
ZSkKKyAgICAgICAgOiBTVkdWYWx1ZVZhcmlhbnQoc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVW
YXJpYW50Jj4odmFsdWUpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4KCkgPT0gdmFsdWUu
aW5kZXgoKSk7CisgICAgfQorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogaW5saW5lIFNW
R1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQogICAgICwgbV96b29tQW5kUGFuKFNWR1pvb21BbmRQYW5NYWduaWZ5KQotICAgICwgbV92aWV3
VGFyZ2V0KFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKKyAgICAsIG1fdmlld1RhcmdldChTVkdW
YWx1ZTo6Y3JlYXRlKFNWR1N0cmluZ0xpc3RWYWx1ZXMoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRy
KSkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnZpZXdUYWcpKTsKICAgICBy
ZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1ZpZXdFbGVtZW50KCk7CkBAIC02MCw3ICs2
MCw3IEBAIFJlZjxTVkdTdHJpbmdMaXN0PiBTVkdWaWV3RWxlbWVudDo6dmlld1QKIHZvaWQgU1ZH
Vmlld0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnZp
ZXdUYXJnZXRBdHRyKQotICAgICAgICBtX3ZpZXdUYXJnZXQucmVzZXQodmFsdWUpOworICAgICAg
ICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fdmlld1RhcmdldCkucmVzZXQo
dmFsdWUpOwogCiAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VBdHRyaWJ1dGUodGhp
cywgbmFtZSwgdmFsdWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVElFUwogCiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFu
OwotICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMgbV92aWV3VGFyZ2V0OworICAgIFJlZlB0cjxTVkdW
YWx1ZT4gbV92aWV3VGFyZ2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw5
IEBAIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogU1ZHVmlld1NwZWM6OnRyYW4KIAogU1ZHVmlld1Nw
ZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQogICAgIDogbV9jb250
ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCisgICAgLCBtX3RyYW5zZm9ybShTVkdWYWx1ZTo6
Y3JlYXRlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpCisgICAgLCBtX3ZpZXdCb3goU1ZHVmFs
dWU6OmNyZWF0ZTxGbG9hdFJlY3Q+KCkpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZH
VmFsdWU6OmNyZWF0ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkpCiB7CiB9CiAKQEAg
LTEwOCwxNyArMTExLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1ZpZXdTcGVjOjpzZXRab29t
QW4KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcoKSBjb25zdAogewotICAg
IHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjo6dG9TdHJp
bmcobV90cmFuc2Zvcm0pOworICAgIHJldHVybiBtX3RyYW5zZm9ybS0+dG9TdHJpbmcoKTsKIH0K
IAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp2aWV3Qm94U3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcobV92aWV3Qm94KTsKKyAg
ICByZXR1cm4gbV92aWV3Qm94LT50b1N0cmluZygpOwogfQogCiBTdHJpbmcgU1ZHVmlld1NwZWM6
OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojp0b1N0cmluZyhtX3ByZXNl
cnZlQXNwZWN0UmF0aW8pOworICAgIHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnRvU3Ry
aW5nKCk7CiB9CiAKIFNWR0VsZW1lbnQqIFNWR1ZpZXdTcGVjOjp2aWV3VGFyZ2V0KCkgY29uc3QK
QEAgLTE3Nyw5ICsxODAsOSBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHVmlld1NwZWM6
OmxvCiB2b2lkIFNWR1ZpZXdTcGVjOjpyZXNldCgpCiB7CiAgICAgbV96b29tQW5kUGFuID0gU1ZH
Wm9vbUFuZFBhbk1hZ25pZnk7Ci0gICAgbV90cmFuc2Zvcm0uY2xlYXIoKTsKLSAgICBtX3ZpZXdC
b3ggPSB7IH07Ci0gICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0geyB9OworICAgIHN0YXRpY19j
YXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqbV90cmFuc2Zvcm0pLmNsZWFyKCk7CisgICAg
c3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCkgPSB7IH07CisgICAgc3RhdGljX2Nh
c3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVBc3BlY3RSYXRpbykg
PSB7IH07CiAgICAgbV92aWV3VGFyZ2V0U3RyaW5nID0gZW1wdHlTdHJpbmcoKTsKIH0KIApAQCAt
MjYxLDcgKzI2NCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3QK
ICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0g
JygnKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3
U3BlYysrOwotICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRy
aWJ1dGUobV90cmFuc2Zvcm0sIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpE
b05vdENsZWFyTGlzdCk7CisgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5z
Zm9ybUF0dHJpYnV0ZShzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJh
bnNmb3JtKSwgY3VyclZpZXdTcGVjLCBlbmQsIFNWR1RyYW5zZm9ybWFibGU6OkRvTm90Q2xlYXJM
aXN0KTsKICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1Nw
ZWMgIT0gJyknKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1
cnJWaWV3U3BlYysrOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NSwxNyArNTUsMTcgQEAgcHVibGljOgogCiAgICAgLy8gQ3VzdG9tIG5vbi1hbmltYXRl
ZCAndHJhbnNmb3JtJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gdHJh
bnNmb3JtKCk7Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zZm9ybTsgfQorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSk7IH0KIAogICAgIC8vIEN1c3RvbSBhbmlt
YXRlZCAndmlld0JveCcgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdD4gdmll
d0JveEFuaW1hdGVkKCk7Ci0gICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gbV92aWV3
Qm94OyB9Ci0gICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmll
d0JveCkgeyBtX3ZpZXdCb3ggPSB2aWV3Qm94OyB9CisgICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCk7IH0KKyAgICB2b2lk
IHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94KSB7IHN0YXRpY19j
YXN0PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpID0gdmlld0JveDsgfQogCiAgICAgLy8gQ3VzdG9t
IGFuaW1hdGVkICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0ZWQo
KTsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8o
KSB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KLSAgICB2b2lkIHNldFByZXNlcnZl
QXNwZWN0UmF0aW9CYXNlVmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHByZXNlcnZlQXNw
ZWN0UmF0aW87IH0KKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNw
ZWN0UmF0aW8oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsgfQorICAgIHZvaWQgc2V0UHJlc2VydmVBc3Bl
Y3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNl
cnZlQXNwZWN0UmF0aW8pIHsgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Jj4oKm1fcHJlc2VydmVBc3BlY3RSYXRpbykgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpAQCAtODQsOSAr
ODQsOSBAQCBwcml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAg
ICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9
OwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0
IG1fdmlld0JveDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07CisgICAgUmVmUHRy
PFNWR1ZhbHVlPiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW87CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0
eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Q
cm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMjIgKzU1LDE1IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2ln
bmVkPjo6c2V0QmFzZVZhbChwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgRW51bVR5cGUmIHBy
b3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVh
ck9mZjxFbnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcmVpbnRl
cnByZXRfY2FzdDx1bnNpZ25lZCY+KHByb3BlcnR5KSkpOwotICAgIH0KLQotICAgIEVudW1UeXBl
JiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICB1bnNpZ25lZCYgYW5pbWF0
ZWRWYWx1ZSA9IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPjo6Y3Vy
cmVudEFuaW1hdGVkVmFsdWUoKTsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkVmFsdWUgPD0gU1ZH
UHJvcGVydHlUcmFpdHM8RW51bVR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKCkpOwotICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFbnVtVHlwZSY+KGFuaW1hdGVkVmFsdWUpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFy
T2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFByb3BlcnR5VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQotICAgICAgICA6IFNWR0Fu
aW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAgIFNWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUp
CisgICAgICAgIDogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZh
bHVlKQogICAgIHsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IHR5cGVuYW1lIFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46Okxpc3RQcm9wZXJ0eVRlYXJPZmY7CiAgICAgdXNp
bmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVl
cykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBB
U1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtODUsNDQg
Kzg1LDUwIEBAIHB1YmxpYzoKICAgICAgICAgTGlzdFByb3BlcnR5OjpkZXRhY2hMaXN0V3JhcHBl
cnNBbmRSZXNpemUoJm1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQcm9w
ZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1
cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygp
KTsKICAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CiAgICAgfQog
Ci0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CisgICAgfQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVl
czsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdB
bmltVmFsLCBib29sIHNob3VsZE93blZhbHVlcyA9IGZhbHNlKQorICAgIHZvaWQgYW5pbWF0aW9u
U3RhcnRlZChSZWZQdHI8U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NF
UlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6
ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFw
cGVycy5pc0VtcHR5KCkpOwogCiAgICAgICAgIC8vIFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZh
bHVlIHR5cGUgJiBuZXcgd3JhcHBlcnMgbGlzdC4gVGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3Qg
YmUgY3JlYXRlZCBmb3IgdGhlIG5ldyB2YWx1ZS4KLSAgICAgICAgaWYgKCFuZXdBbmltVmFsLT5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBuZXdBbmlt
VmFsLT5zaXplKCkpOworICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbmV3QW5pbVZhbCkuc2l6ZSgpKQorICAgICAgICAgICAgbV9hbmltYXRlZFdy
YXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gYW5p
bVZhbCgpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJz
KG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3JhcHBlcnMsIHNob3VsZE93blZhbHVlcyk7Ci0gICAg
ICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1h
dGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJz
KTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5z
aXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0
ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBBU1NFUlQobV92
YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUo
KSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdy
YXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNB
bmRXcmFwcGVycygmbV92YWx1ZXMsICZtX3dyYXBwZXJzLCBmYWxzZSk7Ci0gICAgICAgIEFTU0VS
VChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVy
dHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRW
YWx1ZXNBbmRXcmFwcGVycyhtX3ZhbHVlcywgJm1fd3JhcHBlcnMpOworICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVk
UHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogCiAgICAg
ICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5jbGVhcigpOwpAQCAtMTQyLDM0ICsxNDgsMzQgQEAgcHVi
bGljOgogICAgICAgICAvLyBBbHNvIGV4aXN0aW5nIHdyYXBwZXJzIHdoaWNoIHBvaW50IGRpcmVj
dGx5IGF0IGVsZW1lbnRzIGluIHRoZSBleGlzdGluZyBTVkdMZW5ndGhMaXN0VmFsdWVzIGhhdmUg
dG8gYmUgZGV0YWNoZWQgKHNvIGEgY29weQogICAgICAgICAvLyBvZiB0aGVtIGlzIGNyZWF0ZWQs
IHNvIGV4aXN0aW5nIGFuaW1WYWwgdmFyaWFibGVzIGluIEpTIGFyZSBrZXB0LWFsaXZlKS4gSWYg
d2UnZCBkZXRhY2ggdGhlbSBsYXRlciB0aGUgdW5kZXJseWluZwogICAgICAgICAvLyBTVkdMZW5n
dGhMaXN0VmFsdWVzIHdhcyBhbHJlYWR5IG11dGF0ZWQsIGFuZCBvdXIgbGlzdCBpdGVtIHdyYXBw
ZXIgdGVhciBvZmZzIHdvdWxkIHBvaW50IG5vd2hlcmUuIEFzc2VydGlvbnMgd291bGQgZmlyZS4K
LSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkt
PmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5z
aXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMu
c2l6ZSgpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAg
ICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUo
KSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFw
cGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKCkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkp
OworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNl
VmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25p
emVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0Fu
aW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlKQogICAgICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICB7Ci0gICAgICAgIGlm
ICghdmFsdWVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1
ZXMuc2l6ZSgpKTsKKyAgICAgICAgaWYgKHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKnZhbHVlcykuc2l6ZSgpKQorICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAs
IHNpemUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgbV92YWx1ZXM7CisgICAgUmVmUHRy
PFNWR1ZhbHVlPiBtX3ZhbHVlczsKIAogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV93cmFwcGVyczsK
ICAgICBMaXN0V3JhcHBlckNhY2hlIG1fYW5pbWF0ZWRXcmFwcGVyczsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAsIDIwMTIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsNyArMzIsNyBAQCBjbGFzcyBTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9
IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAK
LSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNy
ZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNW
R1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlU
eXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMp
CiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRl
eHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7
CkBAIC03NSw5ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKCFtX2FuaW1hdGVkUGF0
aEJ5dGVTdHJlYW0pOwogICAgICAgICBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0gPSBieXRlU3Ry
ZWFtOwogCi0gICAgICAgIC8vIFBhc3Mgc2hvdWxkT3duVmFsdWVzPXRydWUsIGFzIHRoZSBTVkdQ
YXRoU2VnTGlzdFZhbHVlcyBsaWZldGltZSBpcyBzb2xlbHkgbWFuYWdlZCBieSBpdHMgdGVhciBv
ZmYgY2xhc3MuCi0gICAgICAgIGF1dG8qIGNvcHkgPSBuZXcgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMo
KmJhc2VWYWx1ZSk7Ci0gICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weSwgdHJ1ZSk7
CisgICAgICAgIGF1dG8gY29weSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmJhc2VWYWx1ZSk7CisgICAg
ICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weS5wdHIoKSk7CiAgICAgfQogCiAgICAgdm9p
ZCBhbmltYXRpb25FbmRlZCgpCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8g
SWYgdGhlIGFuaW1WYWwgaXMgb2JzZXJ2ZWQgZnJvbSBKUywgd2UgaGF2ZSB0byB1cGRhdGUgaXQg
b24gZWFjaCBhbmltYXRpb24gc3RlcC4KICAgICAgICAgLy8gVGhpcyBpcyBhbiBleHBlbnNpdmUg
b3BlcmF0aW9uIGFuZCBvbmx5IGRvbmUsIGlmIHNvbWVvbmUgYWN0dWFsbHkgb2JzZXJ2ZXMgdGhl
IGFuaW1hdGVkUGF0aFNlZ0xpc3QoKSB3aGlsZSBhbiBhbmltYXRpb24gaXMgcnVubmluZy4KICAg
ICAgICAgaWYgKHBhdGhFbGVtZW50LT5pc0FuaW1WYWxPYnNlcnZlZCgpKSB7Ci0gICAgICAgICAg
ICBhdXRvJiBhbmltYXRlZExpc3QgPSBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAg
ICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMm
PigqY3VycmVudEFuaW1hdGVkVmFsdWUoKSk7CiAgICAgICAgICAgICBhbmltYXRlZExpc3QuY2xl
YXIoKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVh
bSgqbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtLCAqcGF0aEVsZW1lbnQsIGFuaW1hdGVkTGlzdCwg
VW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6
CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFuaW1hdGVkUGF0aEJ5dGVTdHJlYW0oKSBjb25zdCB7
IHJldHVybiBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW07IH0KIAogcHJpdmF0ZToKLSAgICBTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5
VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcykK
KyAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUs
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgICAgICwgbV9hbmltYXRlZFBhdGhC
eXRlU3RyZWFtKG51bGxwdHIpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgU1ZHVmFsdWU7CiBjbGFzcyBTVkdFbGVtZW50OwogY2xhc3MgU1ZHUHJvcGVydHk7CiAK
QEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkUHJvcGVy
dHkoKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwgdHlwZW5hbWUgVGVhck9m
ZlR5cGUsIHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBl
PiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9w
ZXJ0eUluZm8qIGluZm8sIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxU
ZWFyT2ZmVHlwZT4gbG9va3VwT3JDcmVhdGVXcmFwcGVyKE93bmVyVHlwZSogZWxlbWVudCwgY29u
c3QgU1ZHUHJvcGVydHlJbmZvKiBpbmZvLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChpbmZvKTsKICAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0
eURlc2NyaXB0aW9uIGtleShlbGVtZW50LCBpbmZvLT5wcm9wZXJ0eUlkZW50aWZpZXIpOwpAQCAt
NTgsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVhck9mZlR5cGUmPigqcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSk7CiAKLSAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIg
PSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8t
PmFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSk7CisgICAgICAgIFJlZjxTVkdBbmltYXRl
ZFByb3BlcnR5PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0ZShlbGVtZW50LCBpbmZvLT5h
dHRyaWJ1dGVOYW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWUpOwogICAgICAg
ICBpZiAoaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVN0YXRlID09IFByb3BlcnR5SXNSZWFkT25seSkK
ICAgICAgICAgICAgIHdyYXBwZXItPnNldElzUmVhZE9ubHkoKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlN
YWNyb3MuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTAtMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yNSw2ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5oIgogI2luY2x1ZGUgIlNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuaCIKICNpbmNsdWRl
ICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBA
IC0zNCwyNSArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgogc3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSB7
CiAgICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KCkKLSAgICAgICAgOiB2YWx1
ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSkKLSAgICAg
ICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQor
ICAgICAgICA6IHZhbHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPigpKQogICAgIHsK
ICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjE+Ci0g
ICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFy
YW1ldGVyMSYgdmFsdWUxKQotICAgICAgICA6IHZhbHVlKHZhbHVlMSkKLSAgICAgICAgLCBzaG91
bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjEsIHR5cGVu
YW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMj4KLSAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIxJiB2YWx1ZTEsIGNvbnN0IENvbnN0
cnVjdG9yUGFyYW1ldGVyMiYgdmFsdWUyKQotICAgICAgICA6IHZhbHVlKHZhbHVlMSwgdmFsdWUy
KQotICAgICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQo
ZmFsc2UpCisgICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IFByb3Bl
cnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0
eVR5cGU+KHZhbHVlKSkKICAgICB7CiAgICAgfQogCkBAIC02MSw5ICs1MCw5IEBAIHN0cnVjdCBT
VkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkKICAgICAgICAgb3duZXJFbGVtZW50LT5z
ZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJOYW1lLCB2YWx1ZSk7CiAgICAgfQogCi0g
ICAgUHJvcGVydHlUeXBlIHZhbHVlOwotICAgIGJvb2wgc2hvdWxkU3luY2hyb25pemUgOiAxOwot
ICAgIGJvb2wgaXNWYWxpZCA6IDE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZTsKKyAgICBi
b29sIHNob3VsZFN5bmNocm9uaXplIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmFsaWQgeyBmYWxz
ZSB9OwogfTsKIAogLy8gUHJvcGVydHkgcmVnaXN0cmF0aW9uIGhlbHBlcnMKQEAgLTEyNCwxOSAr
MTEzLDE5IEBAIHB1YmxpYzogXAogICAgIHsgXAogICAgICAgICBpZiAoYXV0byB3cmFwcGVyID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFRlYXJPZmZU
eXBlPih0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKSkpIHsgXAogICAgICAgICAg
ICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIFwKLSAgICAgICAgICAgICAgICByZXR1cm4g
d3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsgXAorICAgICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFs
dWUoKSk7IFwKICAgICAgICAgfSBcCi0gICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52
YWx1ZTsgXAorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNM
b3dlclByb3BlcnR5LnZhbHVlKTsgXAogICAgIH0gXAogXAogICAgIFByb3BlcnR5VHlwZSYgTG93
ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3QgT3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsg
XAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSk7
IFwKICAgICB9IFwKIFwKLSAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNv
bnN0IFByb3BlcnR5VHlwZSYgdHlwZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkgT3Zl
cnJpZGVTcGVjaWZpZXIgXAorICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUo
Y29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkg
T3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS52
YWx1ZSA9IHR5cGU7IFwKKyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNM
b3dlclByb3BlcnR5LnZhbHVlKSA9IHZhbHVlOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5
LmlzVmFsaWQgPSB2YWxpZFZhbHVlOyBcCiAgICAgfSBcCiBcCkBAIC0xNTYsNyArMTQ1LDcgQEAg
cHJpdmF0ZTogXAogICAgIHsgXAogICAgICAgICBpZiAoIW1fIyNMb3dlclByb3BlcnR5LnNob3Vs
ZFN5bmNocm9uaXplKSBcCiAgICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgQXRvbWljU3Ry
aW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fIyNM
b3dlclByb3BlcnR5LnZhbHVlKSk7IFwKKyAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKHN0YXRpY19jYXN0PFByb3BlcnR5
VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkpKTsgXAogICAgICAgICBtXyMjTG93ZXJQ
cm9wZXJ0eS5zeW5jaHJvbml6ZSh0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKS0+
YXR0cmlidXRlTmFtZSwgdmFsdWUpOyBcCiAgICAgfSBcCiBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICsz
MiwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0gdHlwZW5hbWUgUHJvcGVy
dHlUZWFyT2ZmOjpQcm9wZXJ0eVR5cGU7CiAgICAgdXNpbmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0
eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3Bl
cnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQp
OwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9m
ZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPihjb250ZXh0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAg
IH0KIAogICAgIFJlZjxQcm9wZXJ0eVRlYXJPZmY+IGJhc2VWYWwoKQpAQCAtNDMsNyArNDMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2Jhc2VWYWwpCiAgICAgICAgICAgICByZXR1cm4gKnN0
YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYmFzZVZhbC5nZXQoKSk7CiAKLSAgICAgICAg
YXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9s
ZSwgbV9wcm9wZXJ0eSk7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6
OmNyZWF0ZSgqdGhpcywgQmFzZVZhbFJvbGUsIG1fYmFzZVZhbHVlKTsKICAgICAgICAgbV9iYXNl
VmFsID0gcHJvcGVydHktPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5
OwogICAgIH0KQEAgLTUzLDM2ICs1Myw0MiBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2FuaW1W
YWwpCiAgICAgICAgICAgICByZXR1cm4gKnN0YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1f
YW5pbVZhbC5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9m
Zjo6Y3JlYXRlKCp0aGlzLCBBbmltVmFsUm9sZSwgbV9wcm9wZXJ0eSk7CisgICAgICAgIGF1dG8g
cHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUsIG1f
YmFzZVZhbHVlKTsKICAgICAgICAgbV9hbmltVmFsID0gcHJvcGVydHktPmNyZWF0ZVdlYWtQdHIo
KTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIAogICAgIGJvb2wgaXNBbmltYXRp
bmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIFBy
b3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4g
Y3VycmVudEFuaW1hdGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5n
KCkpOwotICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT5wcm9wZXJ0eVJlZmVyZW5j
ZSgpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZSgpOwogICAgIH0K
IAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5n
KCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZSgpOworICAgIH0K
KworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9iYXNlVmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBhbmlt
YXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsK
ICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gYW5pbVZhbCgpOwotICAgICAgICBtX2FuaW1h
dGVkUHJvcGVydHktPnNldFZhbHVlKCpuZXdBbmltVmFsKTsKKyAgICAgICAgbV9hbmltYXRlZFBy
b3BlcnR5LT5zZXRWYWx1ZShuZXdBbmltVmFsKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlv
bkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAg
bV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZShtX3Byb3BlcnR5KTsKKyAgICAgICAgbV9hbmlt
YXRlZFByb3BlcnR5LT5zZXRWYWx1ZShtX2Jhc2VWYWx1ZSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQogCkBAIC0xMDQsMTMgKzExMCwxMyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBl
JiBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIGJhc2VWYWx1ZSkKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3By
b3BlcnR5KHByb3BlcnR5KQorICAgICAgICAsIG1fYmFzZVZhbHVlKGJhc2VWYWx1ZSkKICAgICB7
CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBtX3Byb3BlcnR5OworICAgIFJlZlB0cjxTVkdW
YWx1ZT4gbV9iYXNlVmFsdWU7CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVy
dHlUeXBlPj4gbV9iYXNlVmFsOwogICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3Bl
cnR5VHlwZT4+IG1fYW5pbVZhbDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2
ICsyMiw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTMyLDUzICszMyw1OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFBy
b3BlcnR5VHlwZSYgYmFzZVZhbCgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX2Jhc2VWYWx1ZSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwoKQogICAg
IHsKLSAgICAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybiAq
bV9hbmltYXRlZFByb3BlcnR5OwotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAg
aWYgKG1fYW5pbWF0ZWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbV9hbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGJhc2VWYWwoKTsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJhc2VWYWwoY29uc3Qg
UHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dEJhc2VWYWwoY29uc3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsdWUpCiAgICAgewotICAgICAgICBt
X3Byb3BlcnR5ID0gcHJvcGVydHk7CisgICAgICAgIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCptX2Jhc2VWYWx1ZSkgPSBiYXNlVmFsdWU7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KKyAgICBib29sIGlzQW5pbWF0
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hbmltYXRlZFZhbHVlOyB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFN0YXRp
Y1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJv
cGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBi
YXNlVmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQ
cm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkpOwogICAgIH0K
IAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxT
VkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlz
QW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICAg
ICAgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5
cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4g
Y3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJv
cGVydHk7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1f
YW5pbWF0ZWRWYWx1ZTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJl
bnRCYXNlVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYmFzZVZhbHVlOwog
ICAgIH0KIAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1W
YWwpCisgICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZh
bCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VS
VChuZXdBbmltVmFsKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbmV3QW5pbVZhbDsK
KyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbmV3QW5pbVZhbDsKICAgICB9CiAKICAgICB2b2lk
IGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsK
LSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbnVsbHB0cjsKKyAgICAgICAgbV9hbmltYXRl
ZFZhbHVlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkK
QEAgLTk5LDE2ICsxMDYsMTYgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkK
ICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5
KQotICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShudWxscHRyKQorICAgICAgICAsIG1fYmFz
ZVZhbHVlKGJhc2VWYWx1ZSkKICAgICB7CisgICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fYmFzZVZh
bHVlLCBtX2Jhc2VWYWx1ZS0+aXM8UHJvcGVydHlUeXBlPigpKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgUHJvcGVydHlUeXBlJiBtX3Byb3BlcnR5OwotICAgIFByb3BlcnR5VHlwZSogbV9hbmlt
YXRlZFByb3BlcnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9iYXNlVmFsdWU7CisgICAgUmVm
UHRyPFNWR1ZhbHVlPiBtX2FuaW1hdGVkVmFsdWU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5
VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVz
KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2Zm
PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQo
Y29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTUzLDcgKzUzLDcgQEAgcHVi
bGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAg
ICA6IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
Pihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZh
bHVlcykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHTGlzdFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSwxNCArMjUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gTGlzdE1vZGlmaWNh
dGlvbiB7Ci0gICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAotICAgIExpc3RNb2RpZmlj
YXRpb25JbnNlcnQgPSAxLAotICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKLSAgICBM
aXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKLSAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0g
NAotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOwogCkBAIC03NSwxOSArNjcsMTYgQEAgcHVibGljOgogICAg
ICAgICBkZXRhY2hMaXN0V3JhcHBlcnNBbmRSZXNpemUobV93cmFwcGVycywgbmV3TGlzdFNpemUp
OwogICAgIH0KIAotICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoUHJvcGVydHlUeXBlKiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzLCBib29sIHNob3VsZE93blZhbHVlcykK
KyAgICB2b2lkIHNldFZhbHVlc0FuZFdyYXBwZXJzKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMpCiAgICAgewogICAgICAgICAvLyBUaGlz
IGlzIG9ubHkgdXNlZCBmb3IgYW5pbVZhbCBzdXBwb3J0LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlp
bmcgdmFsdWVzICYgd3JhcHBlcnMKICAgICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQg
dmFsdWVzLCBvbmNlIGFuaW1hdGlvbiBmb3IgYSBsaXN0IHN0YXJ0cy4KICAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogICAgICAgICBBU1NFUlQo
bV9yb2xlID09IEFuaW1WYWxSb2xlKTsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAgICAg
ICAgICAgIGRlbGV0ZSBtX3ZhbHVlczsKICAgICAgICAgbV92YWx1ZXMgPSB2YWx1ZXM7Ci0gICAg
ICAgIG1fb3duc1ZhbHVlcyA9IHNob3VsZE93blZhbHVlczsKICAgICAgICAgbV93cmFwcGVycyA9
IHdyYXBwZXJzOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93
cmFwcGVycy0+c2l6ZSgpKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjpjbGVhcigpCkBAIC05
OCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5j
bGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CkBAIC0xMTEsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0g
ICAgICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFy
KCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
QEAgLTExOSw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6bnVtYmVyT2ZJdGVt
cygpCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmluaXRpYWxpemUoKQpAQCAtMTM0LDgg
KzEyMyw4IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShu
ZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJl
bnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9s
ZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCi0gICAgICAgIG1f
dmFsdWVzLT5jbGVhcigpOwotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAg
ICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVt
IH07CkBAIC0xNTAsNyArMTM5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBt
X3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0
ZW0oaXRlbSk7CiAKQEAgLTE1OSw5ICsxNDgsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3Bl
YzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJl
LWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBi
eSB0aGUgcGFyYW1ldGVyLgogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAg
IG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAK
LSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsK
KyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAg
ICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtMTcxLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICAvLyBT
VkdMaXN0OjpnZXRJdGVtKCkKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5HZXRJdGVtKHVuc2ln
bmVkIGluZGV4KQogICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkp
CisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTg1LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUg
c3BlY2lmaWVkIGl0ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0
ZW0gaXRzZWxmIGFuZCBub3QgYSBjb3B5LgotICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsg
bV92YWx1ZXMtPmF0KGluZGV4KSB9OworICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgc3Rh
dGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSB9Owog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxMaXN0SXRlbVRlYXJPZmY+PiBnZXRJdGVtVmFs
dWVzQW5kV3JhcHBlcnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZExpc3Qs
IHVuc2lnbmVkIGluZGV4KQpAQCAtMTk5LDEzICsxODgsMTMgQEAgcHVibGljOgogCiAgICAgICAg
IC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSBy
ZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KICAgICAgICAg
Ly8gQW55IGNoYW5nZXMgbWFkZSB0byB0aGUgaXRlbSBhcmUgaW1tZWRpYXRlbHkgcmVmbGVjdGVk
IGluIHRoZSBsaXN0LgotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBw
ZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3Jh
cHBlciA9IHN0YXRpY19jYXN0PExpc3RJdGVtVGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4
KS5nZXQoKSk7CiAgICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgICAgLy8gQ3JlYXRl
IG5ldyB3cmFwcGVyLCB3aGljaCBpcyBhbGxvd2VkIHRvIGRpcmVjdGx5IG1vZGlmeSB0aGUgaXRl
bSBpbiB0aGUgbGlzdCwgdy9vIGNvcHlpbmcgYW5kIGNhY2hlIHRoZSB3cmFwcGVyIGluIG91ciBt
YXAuCiAgICAgICAgICAgICAvLyBJdCBpcyBhbHNvIGFzc29jaWF0ZWQgd2l0aCBvdXIgYW5pbWF0
ZWQgcHJvcGVydHksIHNvIGl0IGNhbiBub3RpZnkgdGhlIFNWRyBFbGVtZW50IHdoaWNoIGhvbGRz
IHRoZSBTVkdBbmltYXRlZCpMaXN0CiAgICAgICAgICAgICAvLyB0aGF0IGl0IGhhcyBiZWVuIG1v
ZGlmaWVkIChhbmQgdGh1cyBjYW4gY2FsbCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGFzc29jaWF0ZWRB
dHRyaWJ1dGVOYW1lKSkuCi0gICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpj
cmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsK
KyAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExp
c3QsIFVuZGVmaW5lZFJvbGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKICAgICAgICAg
ICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKICAg
ICAgICAgfQogCkBAIC0yMjEsOCArMjEwLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5k
ZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5l
dyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChp
bmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5z
aXplKCk7CisgICAgICAgIGlmIChpbmRleCA+IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAg
ICAgICAgICAgaW5kZXggPSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAogICAgICAgICAvLyBT
cGVjOiBJZiBuZXdJdGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20g
aXRzIHByZXZpb3VzIGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0Lgog
ICAgICAgICBpZiAoIXByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgJmluZGV4
KSkgewpAQCAtMjMyLDcgKzIyMSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJbnNl
cnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBU
aGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQog
ICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBp
bmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUg
ZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0
ZW0pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmluc2VydChpbmRleCwgU1ZHVmFsdWU6OmNy
ZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTI0OCwxMCArMjM3
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0
aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgp
KQotICAgICAgICAgICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5k
ZXggPiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVz
UHJvcGVydHkoKS5zaXplKCk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6
ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9m
Zj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMjYxLDcgKzI1MCw3IEBAIHB1YmxpYzoKIAogICAgICAg
ICAvLyBTcGVjOiBJbnNlcnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lm
aWVkIHBvc2l0aW9uLiBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcg
aXRlbSBpcyB0byBiZQogICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVt
YmVyIDAuIElmIHRoZSBpbmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBp
bnNlcnRlZCBhdCB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNl
cnQoaW5kZXgsIG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLmluc2VydChpbmRleCwgbmV3SXRlbS0+dmFsdWUoKSk7CiAKICAgICAgICAgLy8g
U3RvcmUgbmV3IHdyYXBwZXIgYXQgcG9zaXRpb24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5
aW5nIHZhbHVlLCBzbyBtdXRhdGlvbnMgb2YgbmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBp
dGVtIGluIHRoZSBsaXN0LgogICAgICAgICBtX3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG5ld0l0
ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CkBAIC0yNzgsNyArMjY3LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3Zh
bHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5zaXpl
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI5OCwxMyArMjg3LDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUHJvcGVy
dHkoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVk
IGluIG91ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBt
ZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbmRleFNpemVFcnJvciB9OwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRl
IHRoZSB2YWx1ZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92
YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIHN0YXRpY19jYXN0PExpc3RJdGVt
VHlwZSY+KCp2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSkgPSBuZXdJdGVtOwogCiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9
OwpAQCAtMzE5LDcgKzMwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93
cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVt
KGl0ZW0pOwogCkBAIC0zMjgsNyArMzE3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIXByb2Nl
c3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAmaW5kZXgpKQogICAgICAgICAgICAg
cmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5
KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBBU1NFUlQobV93cmFwcGVycy0+aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vICduZXdJ
dGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdl
J3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwpAQCAtMzQwLDcgKzMy
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKIAog
ICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCB0aGUgd3JhcHBlciBhdCB0aGUgZGVzaXJl
ZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0
ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5k
ZXgpID0gbmV3SXRlbS0+dmFsdWUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0g
bmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAt
MzU1LDcgKzM0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYg
KGluZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0z
NjgsOCArMzU3LDggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkp
OwogCi0gICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsK
LSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIExpc3RJdGVtVHlwZSBv
bGRJdGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQo
aW5kZXgpKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShvbGRJdGVtKTsKQEAg
LTM4NCwxNiArMzczLDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBEZXRhY2ggdGhlIGV4aXN0aW5nIHdyYXBwZXIu
CiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxM
aXN0SXRlbVRlYXJPZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBp
ZiAoIW9sZEl0ZW0pCi0gICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVh
dGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAg
ICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3Qs
IFVuZGVmaW5lZFJvbGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKIAogICAgICAgICBv
bGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpbmRl
eCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOworICAgICAgICB2YWx1ZXNQcm9w
ZXJ0eSgpLnJlbW92ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybiBvbGRJdGVtLnJlbGVhc2VOb25OdWxsKCk7CkBAIC00MTEsNyArNDAwLDcgQEAgcHVi
bGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwog
CiAgICAgICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAg
ICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHko
KS5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAg
ICAgICBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVy
biBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC00MjYsNyArNDE1LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFT
U0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJl
ZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTQzNCwxOSArNDIzLDI1IEBA
IHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0s
IDApOwogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYW5kIHdyYXBwZXIgYXQgdGhlIGVu
ZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0
eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+
dmFsdWUoKSk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFr
UHRyKCkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsK
ICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlU
eXBlJiB2YWx1ZXMoKQorICAgIFJlZjxTVkdWYWx1ZT4gdmFsdWVzKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIHJldHVybiAqbV92YWx1ZXM7CiAgICAg
fQogCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNQcm9wZXJ0eSgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQobV92YWx1ZXMpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKm1fdmFsdWVzKTsKKyAgICB9CisKICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CkBAIC00NTks
MjAgKzQ1NCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFBy
b3BlcnR5KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSogd3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUq
IHdyYXBwZXJzKQogICAgICAgICA6IG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fb3duc1ZhbHVl
cyhmYWxzZSkKLSAgICAgICAgLCBtX3ZhbHVlcygmdmFsdWVzKQorICAgICAgICAsIG1fdmFsdWVz
KHZhbHVlcykKICAgICAgICAgLCBtX3dyYXBwZXJzKHdyYXBwZXJzKQogICAgIHsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIH5TVkdMaXN0UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgaWYgKG1fb3du
c1ZhbHVlcykKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlczsKLSAgICB9Ci0KICAgICB2b2lk
IGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hh
bmdlKExpc3RNb2RpZmljYXRpb24pCiAgICAgewpAQCAtNDgzLDggKzQ3MSw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKFJlZjxM
aXN0SXRlbVRlYXJPZmY+JiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlmeSkgPSAwOwog
CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBib29sIG1fb3duc1ZhbHVlczsKLSAg
ICBQcm9wZXJ0eVR5cGUqIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7
CiAgICAgTGlzdFdyYXBwZXJDYWNoZSogbV93cmFwcGVyczsKICAgICBXZWFrUHRyRmFjdG9yeTxT
VkdMaXN0UHJvcGVydHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlz
dFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwyMiArMzUsMjEgQEAgcHVi
bGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OwogICAgIHVzaW5nIExpc3RXcmFwcGVy
Q2FjaGUgPSB0eXBlbmFtZSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
eXBlPjo6TGlzdFdyYXBwZXJDYWNoZTsKIAorICAgIHVzaW5nIEJhc2U6OnZhbHVlc1Byb3BlcnR5
OwogICAgIHVzaW5nIEJhc2U6Om1fcm9sZTsKLSAgICB1c2luZyBCYXNlOjptX3ZhbHVlczsKICAg
ICB1c2luZyBCYXNlOjptX3dyYXBwZXJzOwogCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBpbnQgZmluZEl0ZW0oTGlzdEl0ZW1U
ZWFyT2ZmKiBpdGVtKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAg
ICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dy
YXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBpZiAo
aXRlbSA9PSBtX3dyYXBwZXJzLT5hdChpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKQEAg
LTYxLDE1ICs2MCwxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUl0ZW1Gcm9tTGlzdChz
aXplX3QgaXRlbUluZGV4LCBib29sIHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7Cisg
ICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXpl
KCkpOwogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXgg
PCBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMt
PmF0KGl0ZW1JbmRleCk7CiAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAg
bV93cmFwcGVycy0+cmVtb3ZlKGl0ZW1JbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUo
aXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaXRlbUluZGV4KTsK
IAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwpAQCAtMTEyLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3Rl
Y3RlZDoKLSAgICBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlw
ZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFByb3Bl
cnR5VHlwZT4ocm9sZSwgdmFsdWVzLCAmd3JhcHBlcnMpCiAgICAgICAgICwgbV9hbmltYXRlZFBy
b3BlcnR5KGFuaW1hdGVkUHJvcGVydHkpCiAgICAgewpAQCAtMTI5LDE4ICsxMjcsMTcgQEAgcHJv
dGVjdGVkOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogCiAgICAg
ICAgIC8vIFVwZGF0ZSBleGlzdGluZyB3cmFwcGVycywgYXMgdGhlIGluZGV4IGluIHRoZSB2YWx1
ZXMgbGlzdCBoYXMgY2hhbmdlZC4KICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMt
PnNpemUoKTsKLSAgICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAg
ICAgIEFTU0VSVChzaXplID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgYXV0byBpdGVt
ID0gbV93cmFwcGVycy0+YXQoaSk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0pCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpdGVtLT5zZXRBbmltYXRlZFByb3BlcnR5KG1f
YW5pbWF0ZWRQcm9wZXJ0eS5wdHIoKSk7Ci0gICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZShtX3Zh
bHVlcy0+YXQoaSkpOworICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUodmFsdWVzUHJvcGVydHko
KS5hdChpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmNvbW1p
dENoYW5nZSgpOwpAQCAtMTY5LDcgKzE2Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIC8v
IFNWR1JlY3RFbGVtZW50cyBTVkdBbmltYXRlZExlbmd0aCAnd2lkdGgnIHByb3BlcnR5IGJhc2VW
YWwgcG9pbnRzIHRvIHRoZSBzYW1lIHRlYXIgb2ZmIG9iamVjdAogICAgICAgICAgICAgLy8gdGhh
dCdzIGluc2VydGVkIGludG8gU1ZHVGV4dEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCAn
eCcuIHRleHRFbGVtZW50LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlICs9IDE1MCB3b3VsZAog
ICAgICAgICAgICAgLy8gbXV0YXRlIHRoZSByZWN0RWxlbWVudCB3aWR0aCBfYW5kXyB0aGUgdGV4
dEVsZW1lbnQgeCBsaXN0LiBUaGF0J3Mgb2J2aW91c2x5IHdyb25nLCB0YWtlIGNhcmUgb2YgdGhh
dC4KLSAgICAgICAgICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShuZXdJdGVt
LT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRl
YXJPZmY6OmNyZWF0ZShuZXdJdGVtLT52YWx1ZVByb3BlcnR5KCkpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTWF0cml4VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxOSArMjgsMTkgQEAgY2xhc3MgU1ZHTWF0cml4VGVhck9mZiBmaW5hbCA6IHB1Ymxp
YyBTVgogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4VGVhck9mZj4gY3JlYXRlKFNW
R1RyYW5zZm9ybSYgcGFyZW50LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCiAgICAgewotICAgICAg
ICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0
cml4KCkgPT0gJnZhbHVlKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgJnBhcmVudC52
YWx1ZVByb3BlcnR5KCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsKICAgICAgICAgUmVmPFNWR01h
dHJpeFRlYXJPZmY+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4VGVhck9mZihwYXJl
bnQpKTsKICAgICAgICAgcGFyZW50LmFkZENoaWxkKHJlc3VsdC0+bV93ZWFrRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKHJlc3VsdCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAg
IFNWR01hdHJpeFZhbHVlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFy
ZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CisgICAgU1ZHTWF0cml4VmFs
dWUmIHZhbHVlUHJvcGVydHkoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+dmFsdWVQcm9wZXJ0
eSgpLnN2Z01hdHJpeCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVlJiB2
YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFs
dWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkg
ZmluYWwgeyBtX3BhcmVudC0+dmFsdWVQcm9wZXJ0eSgpLnNldE1hdHJpeChzdGF0aWNfY2FzdDxT
VkdNYXRyaXhWYWx1ZSY+KCp2YWx1ZSkpOyB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZp
bmFsCiAgICAgewotICAgICAgICBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS51cGRhdGVT
VkdNYXRyaXgoKTsKKyAgICAgICAgbV9wYXJlbnQtPnZhbHVlUHJvcGVydHkoKS51cGRhdGVTVkdN
YXRyaXgoKTsKICAgICAgICAgbV9wYXJlbnQtPmNvbW1pdENoYW5nZSgpOwogICAgIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5Lmgi
CiAjaW5jbHVkZSAiU1ZHUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY1LDE3ICs2Niwx
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjcmVhdGUoaW5pdGlhbFZhbHVlLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgcHJvcGVy
dHlSZWZlcmVuY2UoKSB7IHJldHVybiAqbV92YWx1ZTsgfQorICAgIFJlZlB0cjxTVkdWYWx1ZT4g
dmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdmlydHVhbCBQcm9wZXJ0eVR5
cGUmIHZhbHVlUHJvcGVydHkoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigq
bV92YWx1ZSk7IH0KICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkg
Y29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAo
bV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAg
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAg
fQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gZmFsc2U7Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFs
dWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAgICB9CiAKICAgICB2b2lkIHNldEFuaW1h
dGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEw
OSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRv
IHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8gYmUgcG9zc2libGUgdG8gbW9kaWZ5ICdpdGVtJwog
ICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhlICJuZXcgaXRlbSIgKHdpdGggeD0xMDApIGluIHRo
ZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8vIFdoZW5ldmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVz
IHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhpc3Rpbmcgd3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1
c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAgICBtX3ZhbHVlID0gbmV3IFByb3BlcnR5VHlwZSgq
bV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0
PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlKSk7CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVl
OwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KQEAgLTEzNiwx
MCArMTM2LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0
eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgU1ZHUHJvcGVydHlUZWFyT2Zm
KFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVk
UHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3JvbGUocm9sZSkKLSAgICAg
ICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAs
IG1fdmFsdWVJc0NvcHkoZmFsc2UpCiAgICAgewogICAgIH0KQEAgLTE1MiwxNyArMTUyLDE2IEBA
IHByb3RlY3RlZDoKICAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoY29uc3QgUHJvcGVydHlUeXBlKiBp
bml0aWFsVmFsdWUpCiAgICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCiAgICAg
ICAgICwgbV9yb2xlKFVuZGVmaW5lZFJvbGUpCi0gICAgICAgICwgbV92YWx1ZShpbml0aWFsVmFs
dWUgPyBuZXcgUHJvcGVydHlUeXBlKCppbml0aWFsVmFsdWUpIDogbnVsbHB0cikKICAgICAgICAg
LCBtX3ZhbHVlSXNDb3B5KHRydWUpCiAgICAgeworICAgICAgICBpZiAoaW5pdGlhbFZhbHVlKQor
ICAgICAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmluaXRpYWxWYWx1ZSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHlUZWFyT2ZmKCkKICAgICB7Ci0gICAgICAg
IGlmIChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAg
ICAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAg
ICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2hDaGlsZHJlbigpCkBAIC0xNzYsMTAgKzE3
NSwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbV9h
bmltYXRlZFByb3BlcnR5OwogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgUHJvcGVy
dHlUeXBlKiBtX3ZhbHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZTsKICAgICBWZWN0
b3I8V2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlPj4gbV9jaGlsZFRlYXJPZmZzOwogICAg
IFdlYWtQdHJGYWN0b3J5PFNWR1Byb3BlcnR5VGVhck9mZj4gbV93ZWFrUHRyRmFjdG9yeTsKLSAg
ICBib29sIG1fdmFsdWVJc0NvcHk7CisgICAgYm9vbCBtX3ZhbHVlSXNDb3B5IHsgZmFsc2UgfTsK
IH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjAg
KzIwLDQ4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5j
bHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR1BhcnNlclV0
aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIExp
c3RNb2RpZmljYXRpb24geworICAgIExpc3RNb2RpZmljYXRpb25Vbmtub3duID0gMCwKKyAgICBM
aXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9
IDIsCisgICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCisgICAgTGlzdE1vZGlmaWNhdGlv
bkFwcGVuZCA9IDQKK307CisgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHMgeyB9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiIDogImZhbHNlIjsgfQogfTsK
IAogdGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPiB7CisgICAgc3Rh
dGljIENvbG9yIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIENvbG9yKCk7IH0KKyAgICBzdGF0aWMg
Q29sb3IgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gQ1NTUGFyc2Vy
OjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSk7IH0KKyAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxDb2xvcj4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNl
Q29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yLmlz
VmFsaWQoKSA/IGNvbG9yIDogc3RkOjpvcHRpb25hbDxDb2xvcj4oKTsKKyAgICB9CisgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBDb2xvciYgdHlwZSkgeyByZXR1cm4gdHlwZS5zZXJp
YWxpemVkKCk7IH0KK307CisKK3RlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czx1
bnNpZ25lZD4gewogICAgIHN0YXRpYyB1bnNpZ25lZCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAw
OyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyh1bnNpZ25lZCB0eXBlKSB7IHJldHVybiBT
dHJpbmc6Om51bWJlcih0eXBlKTsgfQpAQCAtNDIsMTkgKzcwLDEwOSBAQCBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czxpbnQ+IHsKICAgICBzdGF0aWMgaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0K
KyAgICBzdGF0aWMgaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJnN0cmluZykgeyByZXR1cm4g
c3RyaW5nLnRvSW50U3RyaWN0KCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0
eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKKyAgICAKK3RlbXBsYXRl
PD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB7CisgICAg
c3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9
CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVt
YmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywg
Zmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PGludD4ocm91
bmRmKGZpcnN0TnVtYmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikp
KTsKKyAgICB9Cit9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Zmxv
YXQ+IHsKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAg
IHN0YXRpYyBmbG9hdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAg
ICAgICAgZmxvYXQgdHlwZSA9IDA7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJp
bmcoc3RyaW5nLCB0eXBlKSA/IHR5cGUgOiAwOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxmbG9hdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgbnVtYmVyOworICAgICAgICByZXR1cm4gcGFyc2VO
dW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKSA/IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+KCk7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkg
eyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRp
YyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25k
TnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmlu
ZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9Owor
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVy
KTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Rmxv
YXRQb2ludD4geworICAgIHN0YXRpYyBGbG9hdFBvaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IEZsb2F0UG9pbnQoKTsgfQorICAgIHN0YXRpYyBGbG9hdFBvaW50IGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBvaW50OworICAgICAg
ICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDogRmxvYXRQb2ludCgp
OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBG
bG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50
KSA/IHBvaW50IDogc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PigpOworICAgIH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHR5cGUpCisgICAgeworICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5
cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFJlY3Q+IHsKKyAgICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZs
b2F0UmVjdCgpOyB9CisgICAgc3RhdGljIEZsb2F0UmVjdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVy
biBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3QgOiBGbG9hdFJlY3QoKTsKKyAgICAgICAg
CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxv
YXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJl
Y3QgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIodHlwZS55KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgn
ICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsKKyAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPiB7CiAgICAgc3RhdGljIFN0cmluZyBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU3RyaW5nJiB0eXBlKSB7IHJldHVybiB0eXBlOyB9CisgICAgc3RhdGljIFN0cmlu
ZyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIFN0
cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlwZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyAr
MzMsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZH
UHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNp
bmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5nIEJh
c2U6OnZhbHVlc1Byb3BlcnR5OwogCiAgICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxl
bWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQogICAgIHsKQEAgLTc2
LDcgKzc2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlw
ZSYgdmFsdWVzKQorICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAg
OiBCYXNlKFVuZGVmaW5lZFJvbGUsIHZhbHVlcywgbnVsbHB0cikKICAgICAgICAgLCBtX2NvbnRl
eHRFbGVtZW50KCpjb250ZXh0RWxlbWVudCkKICAgICB7CkBAIC04OSw4ICs4OSw3IEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UobV9jb250
ZXh0RWxlbWVudCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKG1fY29u
dGV4dEVsZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1W
YWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcg
KzM2LDcgQEAgcHVibGljOgogCiAgICAgLy8gVXNlZCBmb3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBl
cyB0aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvYmpl
Y3QsIG5vciB3aXRoIGEgWE1MIERPTSBhdHRyaWJ1dGUKICAgICAvLyAoZm9yIGV4YW1wbGU6IFNW
R1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgotICAgIHN0YXRpYyBSZWY8U2VsZj4gY3Jl
YXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwg
VXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShDb250ZXh0
RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBV
cGRhdGVNZXRob2QgdXBkYXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0ZSkpOwogICAgIH0KQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwgeyAobV9jb250ZXh0
RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHU3RhdGlj
UHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlU
eXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBTVkdTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICAgICAgOiBQcm9wZXJ0eVRlYXJP
ZmYoVW5kZWZpbmVkUm9sZSwgdmFsdWUpCiAgICAgICAgICwgbV91cGRhdGUodXBkYXRlKQogICAg
ICAgICAsIG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333931</attachid>
            <date>2018-02-15 12:37:56 -0800</date>
            <delta_ts>2018-02-15 13:38:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180215123755.patch</filename>
            <type>text/plain</type>
            <size>342257</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODUyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzMCBAQAorMjAxOC0wMi0xNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIG9mIHRoZSBTVkcgYXR0cmlidXRlcyBkb2VzCisgICAgICAgIG5vdCBsb29r
IHRoZSBjbGVhbmVzdCBzb2x1dGlvbi4gQmVzaWRlcywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRo
ZSB1bmlvbgorICAgICAgICBTVkdBbmltYXRlZFR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgYWxs
IHRoZSBkYXRhIHR5cGVzLiBTbyBoZXJlIGlzIHRoZQorICAgICAgICBvdXRsaW5lIG9mIHRoaXMg
cGF0Y2g6CisKKyAgICAgICAgLS0gQ3JlYXRlIHRoZSBjbGFzcyBTVkdWYWx1ZSB3aGljaCBpcyBh
IHZhcmlhbnQgb2YgYWxsIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAgIGJhc2ljIGRhdGEgdHlw
ZXMgaW5jbHVkaW5nIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgU1ZHIGF0dHJpYnV0
ZQorICAgICAgICBsaXN0cy4KKworICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRv
IGhvbGQgdHdvIFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAg
YW5kIG9ubHkgdXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEg
dHlwZXMuCisKKyAgICAgICAgLS0gQ2hhbmdlIGFsbCB0aGUgYXR0cmlidXRlcyBvZiBhbGwgdGhl
IFNWR0VsZW1lbnQgdG8gYmUgb2YgdHlwZSBSZWZQdHI8U1ZHVmFsdWU+LgorCisgICAgICAgIC0t
IENoYW5nZSBhbGwgdGhlIGxpc3QgYXR0cmlidXRlcyB0byBiZSBvZiB0eXBlIFZlY3RvcjxSZWZQ
dHI8U1ZHVmFsdWU+Pi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmpl
Y3RzIHRvIGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcg
YSByYXcgcmVmZXJlbmNlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzIGZv
ciBTVkdWYWx1ZSBhbmQgU1ZHTGlzdFZsYXVlcy4gTW92ZSBkZWZpbml0aW9ucyBmcm9tCisgICAg
ICAgIFNWR01hcmtlckVsZW1lbnQuaCB0byBTVkdNYXJrZXJUeXBlcy5oLiBNb3ZlIGRlZmluaXRp
b25zIG9mIFNWR1JlY3RUcmFpdHMuaAorICAgICAgICB0byBTVkdQcm9wZXJ0eVRyYWl0cy5oLgor
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9t
UG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJE
YXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
Z2xlOjpjcmVhdGUpOiBSZXBsYWNlIHRoZSBwYXJhbWV0ZXIgU1ZHQW5nbGVWYWx1ZSYgYnkKKyAg
ICAgICAgUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpTVkdB
bmdsZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLiBNb3ZlZCB0byBTVkdQYXJzZXJVdGls
aXRpZXMuY3BwLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgVXNlIHRoZSBTVkdQcm9wZXJ0eVRyYWl0czo6ZnJvbVN0cmluZyB0byBjcmVh
dGUgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUKKyAgICAgICAgU1ZHQW5pbWF0ZWRUeXBlLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcygpIG5vdyByZXR1cm5zIGEg
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRBbmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICBEb24ndCBw
YXNzIFNWR0FuaW1hdGVkVHlwZSBnZXR0ZXIgdG8gcmVzZXRGcm9tQmFzZVZhbHVlcygpLiBUaGUg
UHJvcGVydHlUWXBlCisgICAgICAgIGNhbiBiZSB1c2VkIHRvIGdldCB0aGUgZGF0YSBlbGVtZW50
IGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
QW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIENhc3QgdGhlIFNWR1Zh
bHVlIGVsZW1lbnRzIHRvIHRoZSByZXF1aXJlZCBkYXRhIG1lbWJlcnMuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOiBE
aXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5Bbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkRW51bWVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25B
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0
b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5n
dGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAg
ICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpw
YXJzZU51bWJlckZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0
ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdl
ck9wdGlvbmFsSW50ZWdlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRM
aXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
cHJlc2VydmVBc3BlY3RSYXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFs
TnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZl
QXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpyZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNm
b3JtTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIFNpbXBsaWZ5IFNWR0FuaW1hdGVkVHlwZS4gSXQg
aXMgbm93IGEgc3RydWN0IHdoaWNoIGhhcyB0d28gUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAg
VGhlIHNlY29uZCBwb2ludGVyIGNhbiBiZSBudWxsIGV4cGVjdCB3aXRoIHRoZSB0eXBlcyB3aXRo
IHR3byB2YWx1ZXMuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlKTogQ29uc3RydWN0IHRoZSAKKyAgICAgICAgYW5pbWF0ZWQgU1ZHVmFsdWUgZnJv
bSB0aGUgU1ZHVmFsdWUgb2YgdGhlIGJhc2UgdmFsdWUgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICAg
ICAgICBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRv
cjo6cmVzZXRGcm9tQmFzZVZhbHVlKTogUmVzZXQgdGhlIGFuaW1hdGVkCisgICAgICAgIFNWR1ZB
bHVlIHRvIHRoZSBTVkdWYWx1ZSBvZiB0aGUgYmFzZSB2YWx1ZSBiZWZvcmUgZW5kaW5nIHRoZSBh
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29u
c3RydWN0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFzIAorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlKCkgYnV0IGZvciB0d28tU1ZHQXZsdWVzIGFuaW1hdGVkIHR5cGVzLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOiBT
YW1lIGFzCisgICAgICAgIHJlc2V0RnJvbUJhc2VWYWx1ZSgpIGJ1dCBmb3IgdHdvLVNWR0F2bHVl
cyBhbmltYXRlZCB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yOjpleGVjdXRlQWN0aW9uKToKKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVt
ZW50KTogRXhwbGljaXRseSBjcmVhdGUgYW4KKyAgICAgICAgU1ZHTGVuZ3RoVmFsdWUgd2hpY2gg
d2lsbCBpbXBsaWNpdGx5IGZvcmNlIGNhbGxpbmcgdGhlIGNvbnN0cnVjdG9yIG9mCisgICAgICAg
IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eS4KKworICAgICAgICAqIHN2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6
U1ZHRWxsaXBzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpidWls
ZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdG
b3JlaWduT2JqZWN0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpT
VkdMZW5ndGgpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
TGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6
CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojppbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46
OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojp0b1N0cmluZyk6CisgICAgICAgIFNWR0xlbmd0aExp
c3RWYWx1ZXMgaXMgbm93IGEgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uIEhvd2V2ZXIgdGhl
CisgICAgICAgIG9ubHkgZXhwZWN0ZWQgdmFsdWUgaW4gdGhlIGVsZW1lbnRzIG9mIHRoaXMgdmVj
dG9yIGlzIFNWR0xlbmd0aFZhbHVlLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46OnBh
cnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVl
Pjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5
IGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0eUF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZh
bHVlczo6Zmlyc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzOjpmaXJzdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxh
c3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpsYXN0
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6cHJvcGVydGllcyBj
b25zdCk6CisgICAgICAgIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIHRoZSBTVkcgbGlz
dCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHRvIGhhdmUKKyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9u
IG9mIHNvbWUgZnVuY3Rpb24gYmUgaW4gYSBzb3VyY2UgZmlsZSB0byB3b3JrIGFyb3VuZAorICAg
ICAgICBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGlzc3Vlcy4gVGhlIFNWRyBsaXN0IGF0dHJpYnV0
ZXMgY2FuIGJlIG9uZSBvZgorICAgICAgICBTVkdWYWx1ZSBkYXRhIG1lbWJlcnMgYnV0IGF0IHRo
ZSBzYW1lIHRpbWUgaXQgaXMgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uCisKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJF
bGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVs
ZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJr
ZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5p
dHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+
Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1p
dHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5
cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgVGhpcyBjb2RlIGlzIG1vdmVkIHRvIHRoZSBuZXcgZmlsZSBTVkdNYXJrZXJUeXBl
cy5oLgorCisgICAgICAgICogc3ZnL1NWR01hcmtlclR5cGVzLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVu
dW1WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJV
bml0c1R5cGU+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKToKKyAgICAgICAgKiBzdmcv
U1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OlNW
R01hc2tFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnRy
YW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGVOb25Vbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6cm90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRl
RnJvbVZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4Ojpza2V3WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNrZXdZKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6U1ZHTWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHTnVt
YmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdOdW1iZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxp
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0
VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVl
cz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VQb2ludCk6IFRoaXMgZnVuY3Rp
b24gd2FzIG1vdmVkIGZyb20gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRzTGlzdEZyb21TVkdEYXRhKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuaDoKKworICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgor
ICAgICAgICBBZGQgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvci4KKwor
ICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVs
ZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEVsZW1lbnQ6OnN5bmNocm9uaXplRCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVu
dDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKToKKworICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9s
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdMaXN0Lmg6CisgICAgICAgIEFjY2VzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyB0aHJv
dWdoIHZhbHVlc1Byb3BlcnR5KCkgaW5zdGVhZCBvZiBtX3ZhbHVlcworICAgICAgICB3aGljaCBp
cyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1v
dmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0
aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9D
dWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9D
dWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1
cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
OjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdM
aXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICBTdG9yZSBhIG5ldyBSZWZQdHI8U1ZHVmFsdWU+IGZv
ciBldmVyeSBTVkdQYXRoU2VnLgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1Nl
Z21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0
Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRT
VkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICBBbnN3ZXIgU2ltb24ncyBxdWVzdGlvbnMgd2hp
Y2ggd2VyZSBhZGRlZCBpbiByMTkwODQ0LgorCisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50OjpTVkdQb2ludCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+Ojpmcm9tU3Ry
aW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50cyk6CisgICAgICAgICogc3ZnL1NWR1BvbHlF
bGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cG9pbnRMaXN0IGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8pOgorICAg
ICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZT46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6
U1ZHUmVjdCk6CisKKyAgICAgICAgKiBzdmcvU1ZHUmVjdFRyYWl0cy5oOiBSZW1vdmVkLiBUaGlz
IHN0cnVjdCB3YXMgbW92ZWQgdG8gU1ZHUHJvcGVydHlUcmFpdHMuaAorCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZH
U1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50
VHJhbnNsYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZVZhbHVlKToKKyAgICAgICAgKiBz
dmcvU1ZHU3RyaW5nTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmg6CisgICAgICAgICogc3ZnL1NWR1Rlc3RzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpTVkdUZXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6
cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnN5bmNocm9uaXpl
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0
aEFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVt
ZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNW
R1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0b1N0cmluZyk6Cisg
ICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9T
VkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1Vz
ZUVsZW1lbnQpOgorCisgICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6dG9TdHJpbmdWaXNpdG9yOjpvcGVyYXRvcigpKTogVGhpcyB2aXNpdG9yIHJldHVy
bnMgdGhlIHN0cmluZworICAgICAgICBvZiB0aGUgYWx0ZXJuYXRpdmUgb2YgU1ZHVmFsdWVWYXJp
YW50LgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpwYXJzZVZpc2l0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpvcGVyYXRvcigpKTogVGhpcyByZXBsYWNlcyB0
aGUgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAgU1ZHVmFsdWVWYXJpYW50IHdpdGggdGhlIHZhbHVl
IHdlIGdldCBmcm9tIHBhcnNpbmcgdGhlIHN0cmluZyBvZiBhbgorICAgICAgICBhdHRyaWJ1dGUu
CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6b3BlcmF0
b3IgY29uc3QgUHJvcGVydHlUeXBlJiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1
ZTo6b3BlcmF0b3IgUHJvcGVydHlUeXBlJik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnBhcnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpTVkdWYWx1ZSk6CisKKyAgICAgICAgKiBzdmcvU1ZH
Vmlld0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld0VsZW1lbnQ6OlNWR1Zp
ZXdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6CisKKyAgICAgICAgKiBzdmcv
U1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdT
cGVjKTogSW5pdGlhbGl6ZSBwb2ludGVycyB3aXRoIHRoZSBkZWZhdWx0CisgICAgICAgIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZH
Vmlld1NwZWMuaDoKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgTm8gbmVlZCBmb3IgdGhlIGNhc3Rpbmcg
Y3VycmVudEFuaW1hdGVkVmFsdWUoKSBtZXRob2Qgc2luY2UgdGhlIGJhc2UgY2xhc3MKKyAgICAg
ICAgbWV0aG9kIG5vdyByZXR1cm5zIGEgUmVmUHRyPFNWR1ZhbHVlPi4gVGhlIGNhc3Rpbmcgd2ls
bCBoYXBwZW4gd2hlbiBnZXR0aW5nCisgICAgICAgIHRoZSBlbnVtIHZhbHVlIGZyb20gdGhlIFNW
R1ZhbHVlLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50
QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JD
cmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5TWFjcm9zLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHk6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1W
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6
OnNldEJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
OjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oOgorCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1Byb3BlcnR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6U1ZHTGlzdFByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6flNWR0xpc3RQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgIE5vIG5lZWQgZm9yIG1fb3duc1ZhbHVlcyBhbnltb3JlLiBtX3ZhbHVlcyBp
cyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LiBJdAorICAgICAgICB3aWxsIGJlIGRlbGV0ZWQgb25j
ZSB0aGUgcmVmLWNvdW50IGJlY29tZXMgemVyby4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpmaW5kSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmOjp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6
OnByb3BlcnR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9m
Zjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQ
cm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+
U1ZHUHJvcGVydHlUZWFyT2ZmKToKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6
ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xv
cj46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29s
b3I+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpm
cm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6
cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFBvaW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxGbG9hdFBvaW50Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8RmxvYXRQb2ludD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICBIYXZlIGFs
bCB0aGUgU1ZHUHJvcGVydHlUcmFpdHMgd2l0aCBubyBzcGVjaWZpYyBTVkcgdHlwZSBiZSBpbiBv
bmUgZmlsZS4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJP
ZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTE1ICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBIYXJmQnV6ekZhY2U6IHJld29y
ayBjYWNoZSBlbnRyeSByZWZlcmVuY2UgaG9sZGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDcxLDcgKzIwNzEsNiBAQCBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmNwcAogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAK
IHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCi1zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNw
cAogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcAogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwCiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTIxMzUsNiArMjEzNCw3IEBAIHN2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAogc3ZnL1NW
R0xpbmVFbGVtZW50LmNwcAogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKK3N2Zy9T
VkdMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xvY2F0YWJsZS5jcHAKIHN2Zy9TVkdNUGF0aEVsZW1l
bnQuY3BwCiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTYzMiw3ICsxNjMyLDE1IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDEx
MUFBMCAvKiBJbWFnZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3
Q0NDQ0IwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNv
ZGluZ09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYw
QUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0
MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1NThCNjk5ODIwMjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDky
NDU3QiAvKiBTVkdWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFE
RDNCM0I5MDBFOTJEQTMgLyogU1ZHQW5nbGVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBT
VkdOdW1iZXJMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzM5QzM2OTFEREI4NkQzMDBGRUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAw
RkVGQjI5IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNW
R1BvaW50TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MzOUMzNkIxRERCODcxQzAwRkVGQjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2
OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0Qx
QzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0
RDc1RjQgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4
MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTND
MDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJh
Y2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAw
MjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE5MzAsNyArMTkzOCw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkw
MEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpT
QW5pbWF0aW9uRWZmZWN0VGltaW5nLmggKi87IH07CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQw
OCAvKiBKU0tleWZyYW1lRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MTU1NkNCNzFGOUYwOUZDMDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVj
dC5oICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNv
bnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJF
MjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1Bh
dGhVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1Bh
dGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0
ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFD
QTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcx
IC8qIEpTU1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzFEQ0I3MDAxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5o
ICovOyB9OwogCQk3MUUyMTgzQTE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4Mzgx
NzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCAqLzsgfTsKQEAgLTIwMzIsNyAr
MjA0MCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFG
ODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhG
QUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5
NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8q
IEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMu
aCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlD
MzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdD
MzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBG
RUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdT
dHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5
MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQx
QTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNl
ck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIu
Y3BwICovOyB9OwpAQCAtMjE2NCwxMCArMjE3Miw5IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3
MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZDMUYyQUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVx
dWVzdE1vZGUuaCAqLzsgfTsKIAkJN0NFMTkxN0IxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hS
ZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0
LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1
QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1
MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICov
OyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAx
Mjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07Ci0JCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAv
KiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVl
LmggKi87IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIx
REQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87IH07CisJCTdDRTU4RDU4MURE
N0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNW
R1RyYW5zZm9ybVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFE
RDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0
RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVz
c2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjMwOSw3ICsyMzE2LDcgQEAKIAkJODNGRTdDQTcxREE5
RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudElu
aXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3
MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3Jt
YW5jZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsg
fTsKLQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBE
OTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1C
dWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87
IH07CiAJCTg0MTlEMkFEMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQy
QUIxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJ
CTg0MTlEMkJBMTIwRTBDNzYwMDE0MUY4RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3
NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggKi87IH07CkBAIC0yMzM2LDcgKzIz
NDMsNyBAQAogCQk4NDczMEQ5MzEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEy
NDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFE
RjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAv
KiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1
QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDc2QzlFODExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIu
aCAqLzsgfTsKLQkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkx
MURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oICovOyB9OworCQk4NDc2QzlFQzEx
REY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZH
UGF0aENvbnN1bWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZB
NTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggKi87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMw
MENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5C
bHVyLmggKi87IH07CiAJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJC
QkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyODEs
OSArMzI4OCw5IEBACiAJCUIyMjI3QTRCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEI1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJ
QjIyMjdBNEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR01QYXRoRWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4QkIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCMjIyN0E1OTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oICovOyB9OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsK
KwkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdQYXRoU2VnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjIyMjdBNUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZH
UGF0aFNlZ0Nsb3NlUGF0aC5oICovOyB9OwogCQlCMjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjIyMjc4Q0YwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaCAqLzsgfTsKQEAgLTcyODMsNyArNzI5MCw2IEBACiAJCTQzOUQzMzQxMTNBNjkx
MUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MzlEMzM0MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFj
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBB
NUYwQTcgLyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAv
KiBTVkdBbmltYXRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1Rjcx
M0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0
cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTc0LDEwICs4MTgw
LDEzIEBACiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmll
ZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTUw
NEU5NDIwMkNERkQyMDA1MDdDNzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdMaXN0VmFsdWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1
MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW1hZ2VUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY29kaW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVy
Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVy
Q0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAz
NDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VEZWNvZGVyQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdC
NzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
TGlzdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNC
MzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHTWFya2VyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTg1LDYgKzgxOTQsNyBAQAogCQk1NUFGMTRFMzFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJ
UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFD
NTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUw
IC8qIFNWR0ltYWdlQ2xpZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdJbWFnZUNsaWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAx
RTRCRkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3
MUU1Mzg1MTYwMDM1NjYwMSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2
MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNBZXNDYmNDZmJQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcw
NDQwNUIxRTUzOTM3OTAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk0NjYsNyArOTQ3Niw2IEBACiAJCTdDRTE5MTZFMUYy
QUI3MEQwMDI3MkY3QiAvKiBKU0NhY2hlUXVlcnlPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQ2FjaGVRdWVyeU9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Q0UxOTE2RjFGMkFCNzBGMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUy
IC8qIFNWR051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1i
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4
NTUyIC8qIFNWR0xlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdM
ZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAw
MTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0xlbmd0aFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNDMxLDcgKzIyNDQwLDYgQEAKIAkJCQk3MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQgLyog
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAqLywKIAkJCQkwODI1MDkzODEyOEJENEQ4MDBF
MkVEOEUgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8sCiAJCQkJQjIyMjc3RjgwRDAw
QkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJNDNB
MEYwQjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8sCiAJCQkJNDM5
RDMzNDAxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZC
Q0U5MTc4QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJ
CQkJNDM5RDMzNDExM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgg
Ki8sCkBAIC0yMjYzMiwxMSArMjI2NDAsMTQgQEAKIAkJCQlCMjIyNzhBNTBEMDBCRjIwMDA3MUI3
ODIgLyogU1ZHTGluZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEE2MEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdMaW5lRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAv
KiBTVkdMaW5lRWxlbWVudC5pZGwgKi8sCisJCQkJNTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8q
IFNWR0xpc3RWYWx1ZXMuY3BwICovLAorCQkJCTU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBT
VkdMaXN0VmFsdWVzLmggKi8sCiAJCQkJQjIyMjc4QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xv
Y2F0YWJsZS5jcHAgKi8sCiAJCQkJQjIyMjc4QUIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0
YWJsZS5oICovLAogCQkJCUIyMjI3OEFEMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVt
ZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBRTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxl
bWVudC5oICovLAogCQkJCUIyMjI3OEFGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVt
ZW50LmlkbCAqLywKKwkJCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlw
ZXMuaCAqLywKIAkJCQlCMjIyNzhCMDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQu
Y3BwICovLAogCQkJCUIyMjI3OEIxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5o
ICovLAogCQkJCUIyMjI3OEIyMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5pZGwg
Ki8sCkBAIC0yMjc3MCw3ICsyMjc4MSw2IEBACiAJCQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIg
LyogU1ZHUmVjdEVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHUmVjdEVsZW1lbnQuaWRsICovLAotCQkJCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBT
VkdSZWN0VHJhaXRzLmggKi8sCiAJCQkJQjIyMjc5MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1Jl
bmRlcmluZ0ludGVudC5oICovLAogCQkJCUIyMjI3OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdS
ZW5kZXJpbmdJbnRlbnQuaWRsICovLAogCQkJCUIyMjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBT
VkdTY3JpcHRFbGVtZW50LmNwcCAqLywKQEAgLTIyODQ3LDYgKzIyODU3LDcgQEAKIAkJCQlCMjIy
Nzk1NjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5
NTcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1ODBE
MDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5pZGwgKi8sCisJCQkJNTVFNDRBRTAxRTRC
RkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8sCiAJCQkJQjIyMjc5NTkwRDAwQkYyMTAwNzFC
NzgyIC8qIFNWR1ZpZXdFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzk1QTBEMDBCRjIxMDA3MUI3
ODIgLyogU1ZHVmlld0VsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1QjBEMDBCRjIxMDA3MUI3ODIg
LyogU1ZHVmlld0VsZW1lbnQuaWRsICovLApAQCAtMjk2OTMsNiArMjk3MDQsNyBAQAogCQkJCTY1
NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
QW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBT
VkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0
OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBI
ZWFkZXJzICovLApAQCAtMjk4MDQsNiArMjk4MTYsNyBAQAogCQkJCUIyMjI3QTNDMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxMDc2NDQx
MjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1NjI3Qjc4MjAyOTJCRjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9j
YXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAwNDQyMzQgLyog
U1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4MTYsNiArMjk4
MjksNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1i
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdO
dW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQg
LyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNTcwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTI5ODU0LDYgKzI5ODY4LDcgQEAKIAkJCQlCMjIyN0E4MTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2
MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUMyMDI1NDYwNTAwNEQ3NUY0IC8qIFNWR1BhdGhT
ZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFF
NjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzYx
NzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENvbnRleHQuaCBp
biBIZWFkZXJzICovLApAQCAtMjk4NjUsMTAgKzI5ODgwLDEyIEBACiAJCQkJQjIyMjdBODgwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTU4QjY5OUUyMDI1NDYyQjAwNEQ3NUY0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2
MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVG
MURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTI5
ODc2LDcgKzI5ODkzLDYgQEAKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhF
MDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0
RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QUEwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdS
ZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzNyw3IEBACiAJCQkJ
QjIyMjdBREEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybWFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QUREMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5j
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Ry
YW5zZm9ybUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVG
NCAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1
ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUUyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBRTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyOCw2ICsyOTk0NSw3IEBACiAJCQkJMzdDNzM4RUQxRURC
RDVCQzAwM0YyQjBCIC8qIFNWR1Vua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FFQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVVJJUmVmZXJlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0FFRDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTU4QjY5OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0FGMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdW
aWV3U3BlYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4NTIyOEIxMTkwMTczQzAwNkVEQzdGIC8q
IFNWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCwxNiArMTAwLDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZH
RWxlbWUKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50
PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMg
PSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+
dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3Qo
KSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVydHkoKSk7CiAKICAgICB1bnNp
Z25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQoaSkpOworICAgICAg
ICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7CiAKICAgICBwYXRoLmNsb3Nl
U3VicGF0aCgpOwogICAgIHJldHVybiBwYXRoOwpAQCAtMTE3LDE2ICsxMTcsMTYgQEAgc3RhdGlj
IFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbAogCiBzdGF0aWMgUGF0aCBwYXRoRnJv
bVBvbHlsaW5lRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50
cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMo
KS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlm
IChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRo
OwotICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2lu
dHMuZmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGgu
YWRkTGluZVRvKHBvaW50cy5hdChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5w
cm9wZXJ0eUF0KGkpKTsKICAgICByZXR1cm4gcGF0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJp
YnV0ZXNCdWlsZGVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjMsMTUgKzE2MywxNSBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlcjo6YnVpCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25l
ZCBpLCBmbG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdDaGFyYWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBT
VkdMZW5ndGhDb250ZXh0JiBsZW5ndGhDb250ZXh0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVz
KiB4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0
aExpc3RWYWx1ZXMqIGR4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHlMaXN0LCBj
b25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzKiByb3RhdGVMaXN0KQogewogICAgIGlmICh4TGlzdCkK
LSAgICAgICAgZGF0YS54ID0geExpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAg
ICAgICBkYXRhLnggPSB4TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsK
ICAgICBpZiAoeUxpc3QpCi0gICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS55ID0geUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUo
bGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR4TGlzdCkKLSAgICAgICAgZGF0YS5keCA9IGR4TGlz
dC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHggPSBkeExpc3Qt
PnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAg
ICAgICAgZGF0YS5keSA9IGR5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAg
ICAgIGRhdGEuZHkgPSBkeUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7
CiAgICAgaWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0
LT5hdChpKTsKKyAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkp
OwogICAgICAgICBsYXN0Um90YXRpb24gPSBkYXRhLnJvdGF0ZTsKICAgICB9CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5nbGUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdBbmdsZSA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
QW5nbGVWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRl
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7
CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmdsZShpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0FuZ2xlPiBjcmVhdGUoY29uc3QgU1ZHQW5nbGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7
Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxTVkdBbmdsZT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0xMzYsNyArMTMx
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5n
bGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVlPigmYW5p
bWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwxMSArMTQw
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1
ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdBbmdsZShj
b25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsMzEgKzEzNiw2IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW0K
ICAgICB1cGRhdGVBbmltYXRpb25Nb2RlKCk7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQo
Y29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVy
cyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNo
YXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVyczsKLSAgICBjb25zdCBVQ2hhciogZW5kID0g
Y3VyICsgcy5sZW5ndGgoKTsKLSAgICAKLSAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhj
dXIsIGVuZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsK
LSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAotICAgIGZsb2F0IHkgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQs
IHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50
KHgsIHkpOwotICAgIAotICAgIC8vIGRpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQg
dGhlIGVuZAotICAgIHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0K
LSAgICAKIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkK
IHsKICAgICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMiAr
MzIsMTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmltYXRlZEFuZwogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3Rk
OjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAg
ICBhdXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKLQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBv
cmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21T
dHJpbmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUgPiAwKQotICAgICAgICBh
bmltYXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7
Ci0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29u
c3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
czxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU3LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmlt
VgogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTc1LDEzICs2NSwxMyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6
YWRkQW5pbWF0CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEFuZ2xlKTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0g
ICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVl
Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0Fu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBh
dXRvJiB0b0VudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1sx
XSk7CiAgICAgLy8gT25seSByZXNwZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFy
ZSBib3RoIHNwZWNpZmllZCBpbiBhbmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCi0gICAgaWYg
KGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24u
c2Vjb25kIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmll
bnRBbmdsZSkKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24gfHwgZnJv
bUVudW1lcmF0aW9uICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQogICAgICAgICByZXR1cm47Ci0g
ICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7
Ci0gICAgYXV0byYgdG9BbmdsZSA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKICAgICB0
b0FuZ2xlLnNldFZhbHVlKHRvQW5nbGUudmFsdWUoKSArIGZyb21BbmdsZS52YWx1ZSgpKTsKIH0K
IApAQCAtOTAsNDggKzgwLDQ5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxj
dWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250
ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJh
dGlvbigpOwotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9
IHRvQXRFbmRPZkR1cmF0aW9uLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4o
KmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0Fu
Z2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlvbiA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKnRvQXRFbmRPZkR1
cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkQW5nbGUgPSBzdGF0aWNfY2Fz
dDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1h
dGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVz
WzFdKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9Bbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCkgeworICAgIGlmIChmcm9tRW51bWVyYXRpb24gIT0gdG9F
bnVtZXJhdGlvbikgewogICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gLSBubyBsaW5lYXIg
aW50ZXJwb2xhdGlvbiBwb3NzaWJsZSBiZXR3ZWVuIHZhbHVlcyAoZS5nLiBhdXRvIHRvIGFuZ2xl
KS4KICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPCAwLjVmKSB7Ci0gICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vj
b25kOwotICAgICAgICAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3QgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKKyAgICAgICAg
ICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CisgICAgICAgICAgICBp
ZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAg
ICAgIGFuaW1hdGVkQW5nbGUgPSBmcm9tQW5nbGU7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOwor
ICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNl
Y29uZCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgIGlmICh0b0FuZ2xl
QW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICAg
ICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0ID0gdG9BbmdsZUFuZEVudW1lcmF0
aW9uLmZpcnN0OworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gdG9FbnVtZXJhdGlvbjsK
KyAgICAgICAgaWYgKHRvRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAg
ICAgICAgICBhbmltYXRlZEFuZ2xlID0gdG9BbmdsZTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgICAg
ICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZSgwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFu
Z2xlKSB7CiAgICAgICAgIC8vIFJlZ3VsYXIgZnJvbSBhbmdsZSB0byBhbmdsZSBhbmltYXRpb24s
IHdpdGggc3VwcG9ydCBmb3Igc21vb3RoIGludGVycG9sYXRpb24sIGFuZCBhZGRpdGl2ZSBhbmQg
YWNjdW11bGF0ZWQgYW5pbWF0aW9uLgotICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgICAgIGFuaW1hdGVkRW51bWVy
YXRpb24gPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsKIAotICAgICAgICBhdXRvJiBhbmltYXRlZFNW
R0FuZ2xlID0gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBjb25z
dCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0FuZ2xlID0gdG9BdEVuZE9mRHVyYXRpb25Bbmds
ZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBmbG9hdCBhbmltYXRlZEFuZ2xlID0gYW5p
bWF0ZWRTVkdBbmdsZS52YWx1ZSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnZhbHVl
KCksIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZSk7Ci0g
ICAgICAgIGFuaW1hdGVkU1ZHQW5nbGUuc2V0VmFsdWUoYW5pbWF0ZWRBbmdsZSk7CisgICAgICAg
IGZsb2F0IGFuaW1hdGVkQW5nbGVWYWx1ZSA9IGFuaW1hdGVkQW5nbGUudmFsdWUoKTsKKyAgICAg
ICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGZyb21BbmdsZS52YWx1ZSgpLCB0b0FuZ2xlLnZhbHVlKCksIHRvQXRFbmRP
ZkR1cmF0aW9uQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZVZhbHVlKTsKKyAgICAgICAgYW5p
bWF0ZWRBbmdsZS5zZXRWYWx1ZShhbmltYXRlZEFuZ2xlVmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgLy8gYXV0bywgYXV0by1zdGFydC1yZXZlcnNlLCBvciB1bmtub3duLgot
ICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICBh
bmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQotICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kOworICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0
byB8fCBmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVtZXJhdGlvbjsKICAgICBlbHNl
Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJP
cmllbnRVbmtub3duOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZHTWFya2VyT3Jp
ZW50VW5rbm93bjsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxh
dGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJp
bmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcjo6U1ZHQW5pbWF0ZWRCCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVCb29sZWFuKHN0ZDo6bWFrZV91bmlxdWU8Ym9vbD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5ib29sZWFuKCkgPSAoc3RyaW5nID09ICJ0cnVlIik7IC8vIHdhdD8KLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9w
ZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcykp
OworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4o
YW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1h
dGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9v
bGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGJvb2wgZnJvbUJvb2xlYW4g
PSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFu
aW1hdGVkLT5ib29sZWFuKCkgOiBmcm9tLT5ib29sZWFuKCk7Ci0gICAgYm9vbCB0b0Jvb2xlYW4g
PSB0by0+Ym9vbGVhbigpOwotICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5i
b29sZWFuKCk7CisgICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRl
ZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGJvb2wmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAg
ICBib29sIHRvQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+
dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlw
ZTxib29sPihwZXJjZW50YWdlLCBmcm9tQm9vbGVhbiwgdG9Cb29sZWFuLCBhbmltYXRlZEJvb2xl
YW4pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRv
cjo6U1ZHQW5pbWF0ZWRDb2wKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6
bWFrZV91bmlxdWU8Q29sb3I+KENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCkpKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3Bl
cnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9t
LCBTVkdBbmltYXRlZFR5cGUqIHRvKQpAQCAtNDQsOCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVk
Q29sb3JBbmltYXRvcjo6YWRkQW5pbWF0CiAgICAgQVNTRVJUKHRvLT50eXBlKCkgPT0gQW5pbWF0
ZWRDb2xvcik7CiAKICAgICAvLyBJZ25vcmVzIGFueSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBvbiBy
ZXN1bHQgdG8gMTAwJSBvcGFxdWUuCi0gICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+Y29sb3Io
KTsKLSAgICBhdXRvJiB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgYXV0byYgZnJvbUNvbG9y
ID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0Nv
bG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7CiAgICAgdG9Db2xvciA9
IHsgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLnJlZCgpICsgZnJvbUNvbG9yLnJl
ZCgpKSwKICAgICAgICAgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmdyZWVuKCkg
KyBmcm9tQ29sb3IuZ3JlZW4oKSksCiAgICAgICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwo
dG9Db2xvci5ibHVlKCkgKyBmcm9tQ29sb3IuYmx1ZSgpKSB9OwpAQCAtNjksOCArNjksOCBAQCB2
b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29s
b3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+Y29sb3IoKSA6IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3Ig
dG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIENvbG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIENvbG9yIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+
dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9y
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbUNvbG9yLCBtX2NvbnRleHRFbGVtZW50KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdB
bmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1l
bnQtPnRvUHJvcGVydHlWYWx1ZVR5cGUoKSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAg
dG9Db2xvciA9IGN1cnJlbnRDb2xvcigqbV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0
b0F0RW5kT2ZEdXJhdGlvbkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAg
YXV0byYgYW5pbWF0ZWRDb2xvciA9IGFuaW1hdGVkLT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0b0F0RW5kT2ZEdXJhdGlv
bi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xv
ciAtIHRoaXMgd2lsbCBuZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBk
aWZmZXJlbnQgY29sb3Igc3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBb
MC0yNTVdIENvbG9ycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDE0ICsxMDks
MTIgQEAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpTVkdBbmltYQogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVCht
X2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAg
ICBhbmltYXRlZFR5cGUtPmVudW1lcmF0aW9uKCkgPSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0
QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlv
bkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVl
Rm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBt
X2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjQs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RvCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVy
YXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9u
KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9y
OjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC0xNDksOSArMTQ3LDkgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OmNhbAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlv
biA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmVudW1lcmF0aW9uKCkgOiBmcm9tLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2ln
bmVkIHRvRW51bWVyYXRpb24gPSB0by0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5p
bWF0ZWRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVk
IGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHVuc2ln
bmVkIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRlRGlzY3JldGVUeXBlPHVuc2lnbmVkPihwZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24s
IHRvRW51bWVyYXRpb24sIGFuaW1hdGVkRW51bWVyYXRpb24pOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVk
SQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJB
bmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6
Om1ha2VfdW5pcXVlPGludD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyKCkgPSBzdHJp
bmcudG9JbnRTdHJpY3QoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5n
KHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBT
VkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmltCiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEludGVnZXIpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+aW50ZWdlcigpICs9IGZyb20t
PmludGVnZXIoKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3Rh
dGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVt
ZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQgdG9JbnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRp
b25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50ZWdlcikKQEAgLTgzLDEwICs4MSwxMCBAQCB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgaW50IGZy
b21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+aW50ZWdlcigpIDogZnJvbS0+aW50ZWdlcigpOwotICAgIGludCB0
b0ludGVnZXIgPSB0by0+aW50ZWdlcigpOwotICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVn
ZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlcigpOwotICAgIGludCYgYW5pbWF0ZWRJbnRl
Z2VyID0gYW5pbWF0ZWQtPmludGVnZXIoKTsKKyAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGludCB0b0ludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZh
bHVlc1swXSk7CisgICAgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHN0YXRpY19jYXN0
PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFuaW1hdGVk
SW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAg
IGNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBmcm9tSW50ZWdlciwgdG9JbnRlZ2VyLCB0b0F0RW5kT2ZEdXJhdGlvbklu
dGVnZXIsIGFuaW1hdGVkSW50ZWdlcik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIzICszMywxMiBAQCBTVkdBbmlt
YXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5p
bWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGludCwgaW50Pj4oKSk7Ci0gICAgc3RkOjpwYWly
PGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyKCk7Ci0gICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwOwotICAgIGZsb2F0IHNlY29u
ZE51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywg
Zmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZp
cnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IDA7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Pihyb3Vu
ZGYoZmlyc3ROdW1iZXIpKTsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IHN0YXRp
Y19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpOwotICAgIH0KLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAog
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZElu
dGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU5LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJB
bgogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Cisg
ICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50
ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc3LDExICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJU
KGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQs
IGludD4mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsK
LSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRp
b25hbEludGVnZXIoKTsKLQotICAgIHRvSW50ZWdlclBhaXIuZmlyc3QgKz0gZnJvbUludGVnZXJQ
YWlyLmZpcnN0OwotICAgIHRvSW50ZWdlclBhaXIuc2Vjb25kICs9IGZyb21JbnRlZ2VyUGFpci5z
ZWNvbmQ7CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19j
YXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGludCY+KCp0by0+
dmFsdWVzWzFdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZH
QW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUq
IHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODksMTMg
Kzc1LDE3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBB
U1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7
CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVk
LT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkgOiBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5p
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYg
dG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRl
Z2VyUGFpciA9IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7CisgICAgY29uc3Qg
aW50JiBmb3JtRmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0
YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8
aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0ZpcnN0ID0gc3RhdGlj
X2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9TZWNvbmQgPSBz
dGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5k
T2ZEdXJhdGlvbkZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQgPSBzdGF0
aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7CisgICAgaW50JiBh
bmltYXRlZEZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwor
ICAgIGludCYgYW5pbWF0ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZh
bHVlc1sxXSk7CiAKLSAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGZyb21JbnRlZ2VyUGFpci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVy
YXRpb25JbnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFpci5maXJzdCk7Ci0gICAg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2Fu
aW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIu
c2Vjb25kLCB0b0ludGVnZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFp
ci5zZWNvbmQsIGFuaW1hdGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKKyAgICBTVkdBbmltYXRlZElu
dGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVu
dCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZvcm1GaXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9m
RHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRp
b25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0
aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBAQCBTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwg
c3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZh
bHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDgsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTY3LDggKzY3LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRB
bmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKICAgICBTVkdM
ZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7Ci0gICAgY29uc3Qg
YXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoID0g
dG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBzdGF0aWNfY2FzdDxT
VkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvTGVuZ3RoID0g
c3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB0b0xl
bmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGgu
dmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQpAQCAtODUsMTAgKzg1LDEw
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAg
ICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGgoKSA6IGZyb20tPmxlbmd0aCgpOwot
ICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+bGVuZ3RoKCk7Ci0gICAgY29uc3QgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoKCk7Ci0g
ICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCk7CisgICAgYXV0
byBmcm9tU1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFs
dWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byB0b1NWR0xlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRv
LT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVl
c1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5n
dGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhl
cml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRh
bmNlPFNWR0xlbmd0aFZhbHVlPihwYXJzZUxlbmd0aEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxl
bWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21TVkdMZW5ndGgsIG1fY29udGV4dEVs
ZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlz
dC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OlNWR0FuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xl
bmd0aExpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNl
KHN0cmluZywgbV9sZW5ndGhNb2RlKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJl
dHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhM
aXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcsIG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVMZW5ndGhMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYg
dHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Pihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTsKKyAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtNjgsOCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9y
OjphZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tTGVuZ3RoTGlzdCA9IGZyb20tPmxlbmd0aExpc3QoKTsKLSAgICBhdXRvJiB0b0xlbmd0
aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMm
PigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTGVuZ3RoTGlzdFNpemUgPSBm
cm9tTGVuZ3RoTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTGVuZ3RoTGlzdFNpemUgfHwgZnJv
bUxlbmd0aExpc3RTaXplICE9IHRvTGVuZ3RoTGlzdC5zaXplKCkpCkBAIC03Nyw3ICs3NSw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKIAogICAgIFNWR0xlbmd0
aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZnJvbUxlbmd0aExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTGVuZ3Ro
TGlzdFtpXS5zZXRWYWx1ZSh0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgKyBm
cm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5w
cm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExpc3QucHJvcGVy
dHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CiB9CiAKIHN0YXRp
YyBTVkdMZW5ndGhMaXN0VmFsdWVzIHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcoU1ZHQW5pbWF0
aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC05
MiwxMCArOTAsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwog
ICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVt
ZW50KTsKIAotICAgIGF1dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBm
cm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlz
dCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0
ID0gYW5pbWF0ZWQtPmxlbmd0aExpc3QoKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8g
dG9MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFs
dWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1
ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBD
U1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJ
bmhlcml0YW5jZTxTVkdMZW5ndGhMaXN0VmFsdWVzPihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5n
LCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3Ro
TGlzdCwgbV9jb250ZXh0RWxlbWVudCk7CkBAIC0xMTAsMTggKzEwOCwxOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRvTGVuZ3RoTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBhbmltYXRlZE51bWJl
ciA9IGFuaW1hdGVkTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKLSAgICAgICAg
U1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3RoTGlzdFtpXS51bml0VHlwZSgpOworICAg
ICAgICBmbG9hdCBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0
KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBl
ID0gdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsKICAgICAgICAgZmxvYXQg
ZWZmZWN0aXZlRnJvbSA9IDA7CiAgICAgICAgIGlmIChmcm9tTGVuZ3RoTGlzdFNpemUpIHsKICAg
ICAgICAgICAgIGlmIChwZXJjZW50YWdlIDwgMC41KQotICAgICAgICAgICAgICAgIHVuaXRUeXBl
ID0gZnJvbUxlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKLSAgICAgICAgICAgIGVmZmVjdGl2ZUZy
b20gPSBmcm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgICAg
ICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsK
KyAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0
aW9uTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRF
bmRPZkR1cmF0aW9uTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQp
IDogMDsKIAotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJl
cihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0W2ld
LnZhbHVlKGxlbmd0aENvbnRleHQpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7
Ci0gICAgICAgIGFuaW1hdGVkTGVuZ3RoTGlzdFtpXS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBh
bmltYXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CisgICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBlZmZlY3RpdmVGcm9tLCB0b0xlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhD
b250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOworICAgICAgICBhbmlt
YXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmlt
YXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDE2ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpTVkdBbmlt
YXRlZE51CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihz
dGQ6Om1ha2VfdW5pcXVlPGZsb2F0PigpKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBh
bmltYXRlZFR5cGUtPm51bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0
cmluZywgYW5pbWF0ZWROdW1iZXIpKQotICAgICAgICBhbmltYXRlZE51bWJlciA9IDA7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUo
U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5
cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1i
ZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUxLDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJl
ckFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmlt
YXRlZFR5cGU6Om51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVt
YmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRl
ZE51bWJlckFuaW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5p
bWF0ZWROdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAK
LSAgICB0by0+bnVtYmVyKCkgKz0gZnJvbS0+bnVtYmVyKCk7CisgICAgc3RhdGljX2Nhc3Q8Zmxv
YXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVz
WzBdKTsKIH0KIAogc3RhdGljIGZsb2F0IHBhcnNlTnVtYmVyRnJvbVN0cmluZyhTVkdBbmltYXRp
b25FbGVtZW50KiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgZmxvYXQgbnVtYmVyID0g
MDsKLSAgICBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpOwotICAgIHJldHVy
biBudW1iZXI7CisgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmlu
ZyhzdHJpbmcpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNW
R0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBl
KiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEw
ICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgZmxvYXQgZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlcigpIDogZnJvbS0+bnVtYmVy
KCk7Ci0gICAgZmxvYXQgdG9OdW1iZXIgPSB0by0+bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9BdEVu
ZE9mRHVyYXRpb25OdW1iZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyKCk7Ci0gICAgZmxv
YXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWQtPm51bWJlcigpOworICAgIGZsb2F0IGZyb21O
dW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVl
c1swXSk7CisgICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVs
ZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4o
cGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZh
bHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZU51bWJlckxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdOdW1iZXJMaXN0VmFsdWVzPigpKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm51bWJlckxpc3QoKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBh
bmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVOdW1iZXJMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDksNyArNDcs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVk
VHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJM
aXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNjcsMjUgKzY1LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVy
TGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNv
bnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJvbS0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8m
IHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51
bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlz
dFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21OdW1iZXJMaXN0
U2l6ZSA9IGZyb21OdW1iZXJMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21OdW1iZXJMaXN0U2l6
ZSB8fCBmcm9tTnVtYmVyTGlzdFNpemUgIT0gdG9OdW1iZXJMaXN0LnNpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyb21OdW1iZXJMaXN0U2l6
ZTsgKytpKQotICAgICAgICB0b051bWJlckxpc3RbaV0gKz0gZnJvbU51bWJlckxpc3RbaV07Cisg
ICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvTnVtYmVyTGlzdFtpXSkgKz0gc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqZnJvbU51bWJlckxpc3RbaV0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVk
VHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVk
VHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAKLSAg
ICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlckxpc3QoKSA6IGZyb20t
Pm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+bnVtYmVy
TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWROdW1iZXJM
aXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVy
TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBd
KSA6IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0
VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqdG9BdEVu
ZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
ICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdO
dW1iZXJMaXN0VmFsdWVzPihmcm9tTnVtYmVyTGlzdCwgdG9OdW1iZXJMaXN0LCBhbmltYXRlZE51
bWJlckxpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk0LDkgKzkyLDkg
QEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsYwogICAgIHVuc2lnbmVk
IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA9IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5zaXpl
KCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9OdW1iZXJMaXN0U2l6ZTsgKytp
KSB7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBm
cm9tTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBp
IDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0W2ld
IDogMDsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIo
cGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdFtpXSwg
ZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0W2ldKTsKKyAgICAgICAgZmxvYXQg
ZWZmZWN0aXZlRnJvbSA9IGZyb21OdW1iZXJMaXN0U2l6ZSA/IGZyb21OdW1iZXJMaXN0LnByb3Bl
cnR5QXQoaSkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRF
bmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5wcm9wZXJ0eUF0
KGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1i
ZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5w
cm9wZXJ0eUF0KGkpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlckxpc3QucHJvcGVy
dHlBdChpKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE4ICszMywxMiBAQCBTVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyQW5pbWF0b3I6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjptYWtlX3VuaXF1
ZTxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4mIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBlLT5udW1iZXJPcHRpb25hbE51bWJlcigp
OwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGFuaW1hdGVkTnVt
YmVyLmZpcnN0LCBhbmltYXRlZE51bWJlci5zZWNvbmQpKSB7Ci0gICAgICAgIGFuaW1hdGVkTnVt
YmVyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIuc2Vjb25kID0gMDsKLSAgICB9
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+Ojpmcm9tU3Ry
aW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIo
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVt
YmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC01NCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlckFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIp
OworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVk
TnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcyLDExICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwot
ICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0
aW9uYWxOdW1iZXIoKTsKLQotICAgIHRvTnVtYmVyUGFpci5maXJzdCArPSBmcm9tTnVtYmVyUGFp
ci5maXJzdDsKLSAgICB0b051bWJlclBhaXIuc2Vjb25kICs9IGZyb21OdW1iZXJQYWlyLnNlY29u
ZDsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRv
LT52YWx1ZXNbMV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlw
ZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwx
MyArNzUsMTcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAg
IEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50
KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCkgOiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1i
ZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0g
dG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5u
dW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmlt
YXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBj
b25zdCBhdXRvJiBmb3JtRmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNb
MF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBh
dXRvJiBmb3JtU2Vjb25kID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYg
dG9GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0
IGF1dG8mIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1sxXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRp
b24tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgYW5pbWF0ZWRGaXJzdCA9IHN0YXRpY19jYXN0PGZs
b2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkU2Vjb25kID0g
c3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAgICBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZnJvbU51bWJlclBhaXIuZmlyc3QsIHRvTnVtYmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVy
YXRpb25OdW1iZXJQYWlyLmZpcnN0LCBhbmltYXRlZE51bWJlclBhaXIuZmlyc3QpOwotICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBmcm9tTnVtYmVyUGFpci5zZWNvbmQsIHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRF
bmRPZkR1cmF0aW9uTnVtYmVyUGFpci5zZWNvbmQsIGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQp
OworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmly
c3QsIGFuaW1hdGVkRmlyc3QpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0
aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwg
dG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBACiAKICNp
bmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0aAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U3RyaW5nKHN0cmluZywgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhC
eXRlU3RyZWFtPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC00Myw5ICs0MCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW0KICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAKICAgICAvLyBCdWls
ZCBpbml0aWFsIHBhdGggYnl0ZSBzdHJlYW0uCi0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VW
YWwoYW5pbWF0ZWRUeXBlcywgYnl0ZVN0cmVhbS5nZXQoKSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwor
ICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsK
KyAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OCw3ICs1NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZj4gcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFs
VHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwogICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IHBy
b3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGJhc2VWYWx1ZSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJl
ZFBhcnNpbmcpOworICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqYmFzZVZhbHVlKSwgKmJ5
dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTVkdBbmlt
YXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPj4gcmVzdWx0OwogCkBAIC03Miw3ICs2OSw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBpZiAoIXJl
c3VsdC5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9j
a2VyIGJsb2NrZXIoKnByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKICAgICAgICAgZm9yIChh
dXRvJiBzZWdtZW50IDogcmVzdWx0KQotICAgICAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3Rh
cnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1h
dGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJnN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVz
Jj4oKmJhc2VWYWx1ZSkpOwogICAgIH0KIH0KIApAQCAtODAsNyArNzcsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXMuc2l6ZSgpID49IDEpOwogICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAg
IHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAg
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsICZzdGF0aWNfY2FzdDxTVkdQYXRo
Qnl0ZVN0cmVhbSY+KCp0eXBlLnZhbHVlc1swXSkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC05OCwxMiArOTUsMTIgQEAgdm9pZCBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0g
QW5pbWF0ZWRQYXRoKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwog
Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNW
R1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21Q
YXRoU2l6ZSA9IGZyb21QYXRoLT5zaXplKCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJv
bVBhdGhTaXplICE9IHRvUGF0aC0+c2l6ZSgpKQorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0g
c3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBh
dXRvJiB0b1BhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVz
WzBdKTsKKyAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAg
aWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0
aCk7CisgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9t
LCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9u
LCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhC
eXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9m
RHVyYXRpb25QYXRoID0gdG9BdEVuZE9mRHVyYXRpb24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0
ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9t
UGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byYgdG9QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gc3RhdGljX2Nh
c3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRQYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVT
dHJlYW0+IHVuZGVybHlpbmdQYXRoOwogICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1Rv
QW5pbWF0aW9uKSB7Ci0gICAgICAgIHVuZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5
KCk7Ci0gICAgICAgIGZyb21QYXRoID0gdW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAg
IGlmIChpc1RvQW5pbWF0aW9uKQorICAgICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAog
ICAgIC8vIENhY2hlIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRB
bmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYg
KCFmcm9tUGF0aC0+c2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAm
JiAhaXNUb0FuaW1hdGlvbikpCi0gICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBh
dGgtPmNvcHkoKTsKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAg
IGlmICghZnJvbVBhdGguc2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUo
KSAmJiAhaXNUb0FuaW1hdGlvbikpCisgICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRl
ZFBhdGg7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRl
ZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5pbWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNW
R1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50
bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVy
Y2VudGFnZSwgZmFsc2UpKQorICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9t
VG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRlU3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRl
ZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRB
bmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0
aCwgcGVyY2VudGFnZSk7CisgICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21Q
YXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUg
YWRkaXRpdmU9J3N1bScuCi0gICAgaWYgKGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAg
IGlmICghbGFzdEFuaW1hdGVkUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5
dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBsYXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRs
ZSBhY2N1bXVsYXRlPSdzdW0nLgogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11
bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkKLSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgq
YW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAg
ICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlv
blBhdGgsIHJlcGVhdENvdW50KTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjpTVkdBbmltYXRlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0g
ICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFuaW1hdGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmlu
Zyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmlu
ZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1
Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBA
IC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEK
IAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2lu
dExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMjUgKzY3LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcjo6YWRkQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
UG9pbnRzKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAg
Y29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8m
IHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2lu
dExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBd
KTsKKyAgICBhdXRvJiB0b1BvaW50TGlzdCA9ICBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tUG9pbnRMaXN0U2l6ZSA9
IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVBvaW50TGlzdFNpemUgfHwgZnJv
bVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAgdG9Qb2lu
dExpc3QucHJvcGVydHlBdChpKSArPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBl
KiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1
cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQogewogICAgIEFTU0VSVChtX2FuaW1h
dGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBv
aW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9Qb2ludExp
c3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYg
ZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2lu
dExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9m
RHVyYXRpb25Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3Qg
PSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7
CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZH
UG9pbnRMaXN0VmFsdWVzPihmcm9tUG9pbnRMaXN0LCB0b1BvaW50TGlzdCwgYW5pbWF0ZWRQb2lu
dExpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk4LDE0ICs5NiwxNCBA
QCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRvUG9pbnRMaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlRnJvbTsKICAgICAgICAgaWYgKGZyb21Qb2ludExpc3RTaXplKQotICAgICAg
ICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2ludExpc3RbaV07Ci0gICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5k
T2ZEdXJhdGlvblBvaW50TGlzdFtpXSA6IEZsb2F0UG9pbnQoKTsKKyAgICAgICAgICAgIGVmZmVj
dGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CisgICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5k
T2ZEdXJhdGlvblBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpIDogRmxvYXRQb2ludCgpOwogCi0gICAg
ICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAgICAgICAg
ZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0aXZlVG9B
dEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnko
KSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsK
LSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5p
bWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExpc3QucHJv
cGVydHlBdChpKS54KCk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRM
aXN0LnByb3BlcnR5QXQoaSkueSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54
KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwg
YW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50
TGlzdC5wcm9wZXJ0eUF0KGkpLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7
CisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkgPSBGbG9hdFBvaW50KGFu
aW1hdGVkWCwgYW5pbWF0ZWRZKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjoKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjptYWtl
X3VuaXF1ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkpOwotICAgIGFuaW1hdGVkVHlw
ZS0+cHJlc2VydmVBc3BlY3RSYXRpbygpLnBhcnNlKHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9p
ZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogCiB2b2lkIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cHJl
c2VydmVBc3BlY3RSYXRpbyk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkg
KzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogICAgIEFT
U0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsK
IAotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJlc2Vy
dmVBc3BlY3RSYXRpbygpIDogZnJvbS0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGNvbnN0
IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHRvLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7
Ci0gICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQtPnByZXNl
cnZlQXNwZWN0UmF0aW8oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRp
byA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmFuaW1hdGVkLT52YWx1
ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gc3Rh
dGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZl
QXNwZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0CiAK
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlx
dWU8RmxvYXRSZWN0PigpKTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJl
Y3QoKSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJp
bmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlUmVjdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4o
YW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRl
ZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6cmVjdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVj
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDcgKzY1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RB
bmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRS
ZWN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8t
PnJlY3QoKSArPSBmcm9tLT5yZWN0KCk7CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRv
LT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0p
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9m
RHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC03NSwxMCArNzMsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNv
bnN0IEZsb2F0UmVjdCYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1v
ZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5yZWN0KCkgOiBmcm9tLT5yZWN0KCk7Ci0g
ICAgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QgPSB0by0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0
UmVjdCYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnJlY3QoKTsK
LSAgICBGbG9hdFJlY3QmIGFuaW1hdGVkUmVjdCA9IGFuaW1hdGVkLT5yZWN0KCk7CisgICAgY29u
c3QgYXV0byYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKSA6IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNv
bnN0IGF1dG8mIHRvUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblJlY3QgPSBzdGF0aWNfY2FzdDxG
bG9hdFJlY3QmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5p
bWF0ZWRSZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0p
OwogCiAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRSZWN0LngoKTsKICAgICBmbG9hdCBh
bmltYXRlZFkgPSBhbmltYXRlZFJlY3QueSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSwxNCArMzIsMTIgQEAg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6U1ZHQW5pbWF0ZWRTdAogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RG
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBl
ID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+c3RyaW5nKCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmlt
YXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC00OCw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRv
cjo6c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNzYsOSArNzUsOSBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5p
bWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyb21TdHJpbmcgPSBmcm9tLT5z
dHJpbmcoKTsKLSAgICBTdHJpbmcgdG9TdHJpbmcgPSB0by0+c3RyaW5nKCk7Ci0gICAgU3RyaW5n
JiBhbmltYXRlZFN0cmluZyA9IGFuaW1hdGVkLT5zdHJpbmcoKTsKKyAgICBTdHJpbmcgZnJvbVN0
cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIFN0cmlu
ZyB0b1N0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBT
dHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U3RyaW5nPihwYXJzZVN0cmlu
Z0Zyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCks
IGZyb21TdHJpbmcsIG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxNSArNDEsMTIgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OlNWR0FuaQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlVHJhbnNmb3JtTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3Jt
VHlwZVN0cmluZyArIHN0cmluZyArICcpJyk7Ci0gICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJh
bnNmb3JtTGlzdCgpLnNpemUoKSA8PSAxKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJp
bmcgKyAnKScpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJl
dHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzU2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6cwogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywg
dHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTc3LDE1ICs3NCwxNSBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
OjphCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0
b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZy
b21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAgICAgYXV0byBmcm9t
VHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFm
cm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNm
b3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNm
b3JtTGlzdFNpemUgPT0gMSk7Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21U
cmFuc2Zvcm1MaXN0WzBdOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0
WzBdOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlzdC5w
cm9wZXJ0eUF0KDApOworICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnBy
b3BlcnR5QXQoMCk7CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybS50eXBlKCkgPT0gdG9UcmFu
c2Zvcm0udHlwZSgpKTsKICAgICB0b1RyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlOjph
ZGRTVkdUcmFuc2Zvcm1zKGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKQEAgLTk4LDEwICs5
NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjCiAgICAgLy8g
U3BlYzogVG8gYW5pbWF0aW9ucyBwcm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0
IGEgc21vb3RoIGNoYW5nZSBmcm9tIHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8v
IOKAmHRv4oCZIGF0dHJpYnV0ZSB2YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5
IHdpdGggdGhlIHJlcXVpcmVtZW50IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwog
ICAgIC8vIHRvIGJlIHBvc3QtbXVsdGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEu
MSB0aGUgYmVoYXZpb3Igb2YgdG8gYW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKA
mSBpcyB1bmRlZmluZWQuCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9t
LT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8t
PnRyYW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5z
Zm9ybUxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8m
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zv
cm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVz
WzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSBz
dGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52
YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAv
LyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhl
IHNwZWNpYWwgcG9zdC1tdWx0aXBsaWNhdGlvbiBiZWhhdmlvciBvZiA8YW5pbWF0ZVRyYW5zZm9y
bT4gbmVlZHMgdG8gYmUgcmVzcGVjdGVkIGJlbG93LgogICAgIGlmICghbV9hbmltYXRpb25FbGVt
ZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGZyb21U
cmFuc2Zvcm1MaXN0LCB0b1RyYW5zZm9ybUxpc3QsIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCwgcGVy
Y2VudGFnZSwgZmFsc2UpKQpAQCAtMTEyLDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xl
YXIoKTsKIAogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxp
c3Quc2l6ZSgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0
WzBdOwotICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6
ZSA/IGZyb21UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0u
dHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAg
Y29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsK
KyAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBm
cm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFu
c2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7
CiAgICAgYXV0byBjdXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0
aXZlRnJvbSwgdG9UcmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZH
VHJhbnNmb3JtKGVmZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlz
QWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVj
dGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9B
dEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFu
c2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7
Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFu
Y2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwg
cmVwZWF0Q291bnQpKTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9B
dEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJh
bnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0u
dHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAg
ICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFu
c2Zvcm1WYWx1ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVu
dFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7
CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxT
VkdUcmFuc2Zvcm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTMxLDIwICsxMjgsMjAg
QEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgIGF1dG8gZnJv
bSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CiAgICAgYXV0byB0byA9IGNvbnN0
cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0gICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3Qg
PSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8t
PnRyYW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19j
YXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRv
JiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4o
KnRvLT52YWx1ZXNbMF0pOwogICAgIHVuc2lnbmVkIGl0ZW1zQ291bnQgPSBmcm9tVHJhbnNmb3Jt
TGlzdC5zaXplKCk7CiAgICAgaWYgKCFpdGVtc0NvdW50IHx8IGl0ZW1zQ291bnQgIT0gdG9UcmFu
c2Zvcm1MaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgQVNTRVJUKGl0ZW1z
Q291bnQgPT0gMSk7Ci0gICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0WzBdLnR5cGUoKSAhPSB0b1Ry
YW5zZm9ybUxpc3RbMF0udHlwZSgpKQorICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0
eUF0KDApLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBlKCkpCiAg
ICAgICAgIHJldHVybiAtMTsKIAogICAgIC8vIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NW
Ry9hbmltYXRlLmh0bWwjY29tcGxleERpc3RhbmNlcwogICAgIC8vIFBhY2VkIGFuaW1hdGlvbnMg
YXNzdW1lIGEgbm90aW9uIG9mIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZhcmlvdXMgYW5pbWF0aW9u
IHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSDigJh0b+KAmSwg4oCYZnJvbeKAmSwg4oCYYnnigJkgYW5k
IOKAmHZhbHVlc+KAmSBhdHRyaWJ1dGVzLgogICAgIC8vIERpc3RhbmNlIGlzIGRlZmluZWQgb25s
eSBmb3Igc2NhbGFyIHR5cGVzIChzdWNoIGFzIDxsZW5ndGg+KSwgY29sb3JzIGFuZCB0aGUgc3Vi
c2V0IG9mIHRyYW5zZm9ybWF0aW9uIHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSDigJhhbmlt
YXRlVHJhbnNmb3Jt4oCZLgotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJh
bnNmb3JtTGlzdFswXSwgdG9UcmFuc2Zvcm1MaXN0WzBdKS5kaXN0YW5jZSgpOworICAgIHJldHVy
biBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLCB0
b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSkuZGlzdGFuY2UoKTsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShub25leGlzdGVudCkKQEAg
LTEsMzI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2lu
Y2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFt
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRl
ZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLSAgICA6IG1fdHlwZSh0eXBlKQotewot
fQotCi1TVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAo
bV90eXBlKSB7Ci0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgICAgICBkZWxldGUgbV9kYXRh
LmFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRC
b29sZWFuOgotICAgICAgICBkZWxldGUgbV9kYXRhLmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLmVudW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVk
SW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2Rh
dGEubGVuZ3RoTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
LSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXJMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1f
ZGF0YS5wb2ludExpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvOgotICAgICAgICBkZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUg
bV9kYXRhLnJlY3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEuc3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVu
dW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+PiBhbmdsZUFuZEVudW1lcmF0aW9uKQotewotICAgIEFTU0VSVChhbmdsZUFuZEVudW1lcmF0
aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZEFuZ2xlKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5nbGVBbmRFbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVlX3B0cjxib29sPiBib29sZWFu
KQotewotICAgIEFTU0VSVChib29sZWFuKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEJvb2xlYW4pOwotICAgIGFuaW1h
dGVkVHlwZS0+bV9kYXRhLmJvb2xlYW4gPSBib29sZWFuLnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4gY29sb3IpCi17
Ci0gICAgQVNTRVJUKGNvbG9yKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91
bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZENvbG9yKTsKLSAgICBhbmltYXRlZFR5cGUt
Pm1fZGF0YS5jb2xvciA9IGNvbG9yLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4gZW51bWVyYXRpb24p
Ci17Ci0gICAgQVNTRVJUKGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uLnJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRy
PGludD4gaW50ZWdlcikKLXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2Vy
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0
ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KQotewotICAgIEFTU0VSVChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVnZXJPcHRp
b25hbEludGVnZXIgPSBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFs
dWU+IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xl
bmd0aExpc3RWYWx1ZXM+IGxlbmd0aExpc3QpCi17Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlz
dCA9IGxlbmd0aExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
TnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4gbnVtYmVyKQotewotICAgIEFTU0VSVChudW1i
ZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkTnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIg
PSBudW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVy
TGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gbnVtYmVyTGlzdCkKLXsK
LSAgICBBU1NFUlQobnVtYmVyTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5udW1iZXJMaXN0ID0gbnVtYmVyTGlzdC5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewot
ICAgIEFTU0VSVChudW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIg
PSBudW1iZXJPcHRpb25hbE51bWJlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gcGF0aCkKLXsK
LSAgICBBU1NFUlQocGF0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQYXRoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5wYXRoID0gcGF0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0
KQotewotICAgIEFTU0VSVChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9w
dHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewot
ICAgIEFTU0VSVChwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBw
cmVzZXJ2ZUFzcGVjdFJhdGlvLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVJlY3Qoc3RkOjp1bmlxdWVfcHRyPEZsb2F0UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQo
cmVjdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkVHlwZT4oQW5pbWF0ZWRSZWN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0g
cmVjdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3Rk
Ojp1bmlxdWVfcHRyPFN0cmluZz4gc3RyaW5nKQotewotICAgIEFTU0VSVChzdHJpbmcpOwotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFu
aW1hdGVkU3RyaW5nKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5zdHJpbmcgPSBzdHJpbmcu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChz
dGQ6OnVuaXF1ZV9wdHI8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsK
LSAgICBBU1NFUlQodHJhbnNmb3JtTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS50cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotU3RyaW5nIFNWR0FuaW1hdGVk
VHlwZTo6dmFsdWVBc1N0cmluZygpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNl
IEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICBy
ZXR1cm4gbV9kYXRhLmNvbG9yLT5zZXJpYWxpemVkKCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gbV9kYXRh
Lmxlbmd0aC0+dmFsdWVBc1N0cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0Ogot
ICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gbV9kYXRh
Lmxlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgot
ICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51
bWJlcigqbV9kYXRhLm51bWJlcik7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFT
U0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEu
cmVjdC0+eCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAn
Ci0gICAgICAgICAgICAgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAn
ICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+aGVpZ2h0KCkpOwotICAgIGNhc2UgQW5p
bWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEuc3RyaW5nOwotCi0gICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGlu
IHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVz
IGRvbid0IG5lZWQgdmFsdWVBc1N0cmluZygpIHN1cHBvcnQuCi0gICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJh
dGlvbjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0g
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVk
VW5rbm93bjoKLSAgICAgICAgLy8gT25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHBy
b3BlcnR5IHR5cGVzIC0gdGhhdCBtZWFucyB2YWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBm
b3IgdGhvc2UuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1ib29sIFNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKG1f
dHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5j
b2xvcik7Ci0gICAgICAgICptX2RhdGEuY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFs
dWUuc3RyaXBXaGl0ZVNwYWNlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFu
aW1hdGVkTGVuZ3RoOgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJl
dHVybiAhbV9kYXRhLmxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFs
dWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4
Y2VwdGlvbigpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQo
bV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICBtX2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFs
dWUsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUo
YXR0ck5hbWUpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJl
cjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICBwYXJzZU51bWJlckZy
b21TdHJpbmcodmFsdWUsICptX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAg
ICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcp
OwotICAgICAgICAqbV9kYXRhLnN0cmluZyA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUgaW4gU1ZHRWxl
bWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVkIHNldFZhbHVl
QXNTdHJpbmcoKSBzdXBwb3J0LiAKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBB
bmltYXRlZEJvb2xlYW46Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2Ug
QW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlcjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVk
UG9pbnRzOgotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2Ug
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAg
ICAvLyBPbmx5IFNWRyBET00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0
aGF0IG1lYW5zIHNldFZhbHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbChB
bmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKQotewotICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25s
eSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KLSAgICByZXR1cm4gdHlwZSAhPSBB
bmltYXRlZFVua25vd24gJiYgdHlwZSAhPSBBbmltYXRlZENvbG9yOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMjg0ICsy
MCwxMjkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdM
ZW5ndGhMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRl
ICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgi
Ci0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZH
UHJvcGVydHlJbmZvLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2lu
Y2x1ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0
aEJ5dGVTdHJlYW07Ci0KLWNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVy
dHlUeXBlKTsKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9u
KHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4o
c3RkOjp1bmlxdWVfcHRyPGJvb2w+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0
ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlv
bmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1
bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0
aExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVl
X3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0
cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0
cmVhbT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVj
dFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6
OnVuaXF1ZV9wdHI8RmxvYXRSZWN0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxp
c3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8g
Tm9uLW11dGFibGUgYWNjZXNzb3JzLgotICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVl
LCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
YW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBib29sJiBib29sZWFuKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xv
ciYgY29sb3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZENvbG9yKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29u
c3QgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVu
dW1lcmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwg
aW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qg
U1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwot
ICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZs
b2F0JiBudW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkgY29uc3QKK3N0cnVjdCBT
VkdBbmltYXRlZFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBTVkdBbmltYXRlZFR5cGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCisgICAgICAgIDogdmFs
dWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKHByb3BlcnR5KSkgfQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJMaXN0OwogICAgIH0KIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpIGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBl
KFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZh
bHVlKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJl
cjsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpIGNvbnN0Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBl
Mj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5
VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAgOiB2YWx1ZXMgeyBTVkdWYWx1ZTo6Y3JlYXRl
KHByb3BlcnRpZXMuZmlyc3QpLCBTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSB9
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAg
IHJldHVybiBtX2RhdGEucGF0aDsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQb2ludExpc3RWYWx1
ZXMmIHBvaW50TGlzdCgpIGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCisgICAgICAgIDogdmFsdWVz
IHsgV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikgfQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBv
aW50TGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
IHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZT4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAg
Y29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZShQcm9wZXJ0eVR5cGUmJiBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucmVjdDsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3Bl
cnR5KSk7CiAgICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdAorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1Zh
bHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0
cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlKSk7CiAgICAgfQog
Ci0gICAgY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpIGNvbnN0
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlU
eXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6
OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4+Ojppbml0aWFsVmFsdWUoKSk7CiAg
ICAgfQogCi0gICAgLy8gTXV0YWJsZSBhY2Nlc3NvcnMuCi0gICAgc3RkOjpwYWlyPFNWR0FuZ2xl
VmFsdWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKHN0ZDo6cGFpcjxQcm9wZXJ0
eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmds
ZUFuZEVudW1lcmF0aW9uOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KFdURk1vdmUocHJvcGVydGllcykpOwogICAgIH0KIAotICAgIGJvb2wmIGJvb2xl
YW4oKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUo
UmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEuYm9vbGVhbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlMSksIFdURk1vdmUodmFsdWUyKSk7CiAgICAg
fQogCi0gICAgQ29sb3ImIGNvbG9yKCkKKyAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIHVuc2lnbmVkJiBlbnVt
ZXJhdGlvbigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkRW51bWVy
YXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAg
ICBpbnQmIGludGVnZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQot
ICAgIFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAg
ICB9Ci0KLSAgICBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0pOwor
ICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRl
ZFR5cGUoKnZhbHVlc1swXSk7CisgICAgICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVk
VHlwZTIgPSB2YWx1ZXNbMV0gPyB2YWx1ZUFuaW1hdGVkVHlwZSgqdmFsdWVzWzFdKSA6IEFuaW1h
dGVkVW5rbm93bjsKIAotICAgIGZsb2F0JiBudW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJl
cjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsK
KyAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24p
OworICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KIAotICAgIFNW
R051bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1i
ZXJMaXN0OwotICAgIH0KKyAgICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRJbnRl
Z2VyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRJbnRlZ2VyKQorICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKIAotICAgIHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRl
ZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWROdW1i
ZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjsKIAot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5wYXRoOworICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZFVua25vd24pOworICAgICAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50
TGlzdCgpCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnBvaW50TGlzdDsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1swXSAmJiAhdmFsdWVzWzFdKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlc1swXS0+dG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKQorICAgIGJvb2wgc2V0
VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0
aW87CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJl
dHVybiB2YWx1ZXNbMF0tPnBhcnNlKGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZs
b2F0UmVjdCYgcmVjdCgpCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVk
UHJvcGVydHlUeXBlIHR5cGUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1h
dGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAg
ICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xv
cjsKICAgICB9CiAKLSAgICBTdHJpbmcmIHN0cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJv
cGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZp
c2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAg
ICAgeyByZXR1cm4gQW5pbWF0ZWRBbmdsZTsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wm
KSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisg
ICAgICAgICAgICBbXShjb25zdCBDb2xvciYpICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1
cm4gQW5pbWF0ZWRDb2xvcjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAg
ICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAg
ICAgICAgW10oY29uc3QgaW50JikgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFu
aW1hdGVkSW50ZWdlcjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikg
ICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtd
KGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmKSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExl
bmd0aExpc3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAg
ICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25z
dCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJM
aXN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAg
ICAgIHsgcmV0dXJuIEFuaW1hdGVkUGF0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpICB7IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW87IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAg
ICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQb2ludHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBG
bG9hdFJlY3QmKSAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAor
ICAgICAgICAgICAgW10oY29uc3QgU3RyaW5nJikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0
dXJuIEFuaW1hdGVkU3RyaW5nOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyYpICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAg
ICAgICAgICAgIFtdKGNvbnN0IGF1dG8mKSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVy
biBBbmltYXRlZFVua25vd247IH0KKyAgICAgICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFs
dWVWYXJpYW50Jj4odmFsdWUpKTsKICAgICB9CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
JiB0cmFuc2Zvcm1MaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsK
LSAgICB9Ci0KLSAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVB
c1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6
Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9u
IHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAgICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1
bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0g
ICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAgICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAg
ICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAgIHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJP
cHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNWR0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAg
IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7
Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0
aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSog
cHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExp
c3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVjdDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0g
ICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2Rh
dGE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQs
MjggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gSGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3Bl
cmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBqdXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5
cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAg
ewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAx
KTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmlt
YXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgp
OworICAgICAgICBjb25zdCBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTx0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAgICAg
IGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRl
ZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1hdGVk
VHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVkVmFs
dWUpOworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShhbmlt
YXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+
Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHR5cGVuYW1l
IEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgKFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkK
KyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwog
ICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogcHJv
cGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5p
bWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICAgICAgcHJvcGVydHktPnN5
bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0
ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlw
ZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAKLSAgICAgICAgdHlwZW5hbWUgQW5p
bVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIp
KCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlv
bkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlKTsKKyAgICAgICAg
UmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUgPSBhbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFs
dWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gdHlwZS52YWx1
ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZSY+KCphbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBl
OjpDb250ZW50VHlwZSY+KCpiYXNlVmFsdWUpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgYW5pbWF0ZWRW
YWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBAIC0x
MTAsMzQgKzExMSwzOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBIZWxwZXJzIGZvciBhbmltYXRv
cnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMsIGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0ZWRJ
bnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFu
aW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1W
YWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+
PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1lIEFu
aW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5
VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmlt
VmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0u
Z2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMSog
Zmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmlt
VmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAg
IGNvbnN0IEFuaW1WYWxUeXBlMiogc2Vjb25kQW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJv
cGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRp
ZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gY29weSA9IHN0ZDo6bWFrZV91bmlxdWU8c3Rk
OjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1W
YWxUeXBlMjo6Q29udGVudFR5cGU+PihmaXJzdFR5cGUsIHNlY29uZFR5cGUpOwotICAgICAgICBl
eGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
VHlwZXMsIDAsICZjb3B5LT5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJmNvcHktPnNlY29u
ZCk7Ci0gICAgICAgIHJldHVybiBjb3B5OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0
QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJy
ZW50QmFzZVZhbHVlKCkpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVk
VmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNl
VmFsdWUoKSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShz
ZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5p
bVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9pZCByZXNldEZyb21CYXNl
VmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUx
OjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIChTVkdB
bmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBt
X3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJzdFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBzZWNvbmRQcm9wZXJ0eSA9ICBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZpcnN0UHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBl
cnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNvbmRQcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVy
c0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6
Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+JiBhbmltYXRl
ZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVl
LmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBhbmlt
YXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNvbmRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgp
OwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgQW5pbVZh
bFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsK
KyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZpcnN0QW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdy
YXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAgc2Vjb25kQW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6
ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QmFz
ZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAg
UmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAg
ICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpm
aXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5p
bVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RB
bmltYXRlZFZhbHVlKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEJhc2VWYWx1
ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQ
dHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1sxXTsKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSY+KCpzZWNv
bmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29u
dGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRB
bmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlw
ZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MCwzMyArMTk1LDMzIEBAIHByaXZhdGU6
CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQg
ZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHks
IHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogdHlwZSA9IDApCisgICAgdm9pZCBl
eGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwg
UmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gbnVsbHB0cikKICAgICB7CiAgICAgICAg
IC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJl
Y2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50
YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRU
eXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGVkVHlw
ZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBhbmltYXRlZFR5cGUucHJvcGVydGllcy5zaXplKCkp
OwotICAgICAgICAgICAgQW5pbVZhbFR5cGUqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNo
UHJvcGVydHldLmdldCgpKTsKKyAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFByb3Bl
cnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1h
dGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKIAogICAgICAgICAgICAg
c3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgICAgIGNhc2UgU3RhcnRBbmltYXRpb25BY3Rpb246
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5cGUpOwotICAgICAgICAgICAgICAgIGlmICghcHJv
cGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmlt
YXRpb25TdGFydGVkKHR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVl
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkp
CisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvblN0YXJ0ZWQo
YW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAg
ICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOworICAgICAgICAgICAgICAgIEFTU0VS
VCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGFuaW1hdGVkUHJvcGVydHkt
PmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFu
aW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7
Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRl
ZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5nZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlkQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAg
IEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxEaWRDaGFu
Z2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAg
ICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlz
dGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRUeXBlOwog
Y2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZHQ29tcG9uZW50VHIK
ICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMuZXhwb25lbnQgPSBl
eHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAgZnVuYy50YWJsZVZh
bHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVz
KCkucHJvcGVydGllcygpOwogICAgIHJldHVybiBmdW5jOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDgg
KzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0N1
cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdo
dCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdO
YW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGll
c0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEwIEBAIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdFbGxpcHNlRWxlbWVu
dDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWln
aHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcnkoTGVuZ3RoTW9kZUhl
aWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAs
IG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3J4KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3J5KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjplbGxp
cHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdFbGxpcHNlRWxl
bWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIGJv
b2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckUKICAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFR5
cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCi0g
ICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVlcygpKTsKKyAgICAgICAg
cmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFsdWVzKCkucHJvcGVydGllcygpKTsKIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMyw3ICsx
MzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVl
cyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS5wcm9wZXJ0aWVz
KCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBmaWx0ZXJWYWx1ZXMuc2l6ZSgpOwogCiAgICAg
ICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYICYmIHNpemUg
IT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MiwxMiAr
MjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXgKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OmRpdmlz
b3JBdHRyKSkgewogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtlcm5lbE1hdHJpeFNpemU7
ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxNYXRyaXguYXQoaSk7Cisg
ICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2VybmVsTWF0cml4LnByb3BlcnR5QXQoaSk7CiAg
ICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAgICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsK
ICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0
ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFz
KCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxv
YXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwg
cHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252
b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFs
dWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZ
VmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtl
cm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeC5wcm9w
ZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkuYXBwZW5kKGlucHV0MSk7CiAg
ICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDEwIEBA
IGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW4KICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZpbHRlclVuaXRzKFNWR1VuaXRUeXBlczo6
U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1fcHJpbWl0aXZlVW5pdHMo
U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAl
IikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUg
aXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3
ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUi
IHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICIwJSIpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTAwJSIpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMCUiKSkKKyAgICAsIG1f
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKSkKKyAgICAsIG1fd2lkdGgo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV9oZWlnaHQo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKSkKIHsKICAgICAvLyBTcGVj
OiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFz
IGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUg
d2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFz
IGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3go
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dp
ZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWdu
T2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTAgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ltYWdlRWxlbWVudDo6U1ZHSW1hZ2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5n
dGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgo
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAs
IG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVyKCp0aGlzKQogewogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBTVkdf
TEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQQwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFNW
R0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01NywxMSArNTcsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChpbml0aWFsVmFsdWUpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aFZh
bHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdMZW5ndGg+PiBjcmVhdGUoRXhjZXB0aW9uT3I8
VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4
Y2VwdGlvbigpKQpAQCAtMTUzLDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTGVuZ3Ro
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkK
ICAgICB7CiAgICAgfQpAQCAtMTYyLDExICsxNTcsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAg
ICB9Ci0KLSAgICBleHBsaWNpdCBTVkdMZW5ndGgoY29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRp
YWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGlu
aXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwx
MyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPjsK
ICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVh
dGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3Ro
TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR0xlbmd0aExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdMZW5ndGhM
aXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdM
ZW5ndGhMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZh
bHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNs
dWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCB2b2lkIFNW
R0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmIChsZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZVN0cmluZykuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChsZW5ndGgpOworICAg
ICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdMZW5ndGhWYWx1ZT4obGVuZ3RoKSk7CiAg
ICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5kKTsKICAgICB9
CiB9CkBAIC02MCw3ICs2MSw3IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMSwyNiArMjIsMzkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFs
dWUuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0xlbmd0aDsKIGNsYXNzIFNWR0xl
bmd0aExpc3Q7CiAKLWNsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVj
dG9yPFNWR0xlbmd0aFZhbHVlPiB7CitjbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDog
cHVibGljIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+IHsKIHB1YmxpYzoKICAgICB2b2lk
IHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0xlbmd0aE1vZGUpOwogICAgIFN0cmluZyB2
YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4geworICAgIHN0YXRpYyBTVkdMZW5ndGhM
aXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuICB7IH07IH0KKyAgICBzdGF0aWMgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdMZW5n
dGhNb2RlIGxlbmd0aE1vZGUpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxp
c3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBsZW5ndGhNb2RlKTsKKyAgICAgICAgcmV0
dXJuIGxpc3Q7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0aExpc3RW
YWx1ZXM+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAgICAg
ICAgbGlzdC5wYXJzZShzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAg
fQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYg
bGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KKyAgICAKICAgICB1c2luZyBM
aXN0SXRlbVR5cGUgPSBTVkdMZW5ndGhWYWx1ZTsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYg
PSBTVkdMZW5ndGg7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0xlbmd0aExp
c3Q7Ci0KLSAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiAgeyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhM
aXN0VmFsdWVzJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVl
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyArMTQ3LDEzIEBAIHByaXZhdGU6CiAKIHRlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPiB7CiAgICAgc3Rh
dGljIFNWR0xlbmd0aFZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHR5cGUpIHsgcmV0dXJu
IHR5cGUudmFsdWVBc1N0cmluZygpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTGVu
Z3RoVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aFZhbHVlIGxlbmd0aDsKKyAgICAg
ICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3Ro
TW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7
CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCkgeyByZXR1cm4gbGVuZ3RoLnZhbHVlQXNT
dHJpbmcoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDEwICs1MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94MShM
ZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kxKExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3gy
KExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAgICwgbV95MihMZW5ndGhNb2RlSGVpZ2h0KQor
ICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95MShT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1feDIoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV95MihTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeDIgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2Vy
ZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRp
ZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cit2b2lkIFNWR0xpc3RWYWx1ZXM8UHJvcGVy
dHlUeXBlPjo6cmVzaXplKHNpemVfdCBuZXdTaXplKQoreworICAgIHNpemVfdCBpbmRleCA9IHNp
emUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj46OnJlc2l6ZShuZXdTaXplKTsKKyAg
ICBmb3IgKDsgaW5kZXggPCBuZXdTaXplOyArK2luZGV4KQorICAgICAgICBhdChpbmRleCkgPSBT
VkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK1ZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFBy
b3BlcnR5VHlwZT46OmRlZXBDb3B5KCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4gdmFsdWVzOworICAgIGZvciAoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUgOiAq
dGhpcykKKyAgICAgICAgdmFsdWVzLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlKCp2YWx1ZSkpOwor
ICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIGV4cGxpY2l0IGlu
c3RhbnRpYXRpb24uCit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+OjpyZXNpemUo
c2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6cmVzaXpl
KHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+Ojpy
ZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1W
YWx1ZT46OnJlc2l6ZShzaXplX3QpOworCit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gU1ZHTGlzdFZhbHVlczxmbG9hdD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0
b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTdHJpbmc+OjpkZWVwQ29weSgpIGNv
bnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8Rmxv
YXRQb2ludD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7Cit0
ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxSZWZQdHI8U1ZH
UGF0aFNlZz4+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdWYWx1ZTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0
cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBkZWZhdWx0Owor
CisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICAgICAg
OiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAgICB7CisgICAg
fQorCisgICAgdm9pZCByZXNpemUoc2l6ZV90KTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gZGVlcENvcHkoKSBjb25zdDsKKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHlB
dChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCphdChpbmRleCkpOyB9CisgICAgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRl
eCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKwor
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHBy
b3BlcnR5QXQoMCk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSB7IHJldHVy
biBwcm9wZXJ0eUF0KDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0
eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKyAgICBQcm9wZXJ0
eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0K
KworICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllczsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgcHJvcGVydGllcy5hcHBlbmQoc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlKSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0
aWVzOworICAgIH0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsMTAgKzcxLDEwIEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdNYXJrZXJFbGVtZW50OjpTVkdN
YXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3JlZlgo
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9yZWZZKExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBt
X21hcmtlcldpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjMiKQotICAgICwgbV9tYXJrZXJIZWlnaHQo
TGVuZ3RoTW9kZUhlaWdodCwgIjMiKSAKKyAgICAsIG1fcmVmWChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV9yZWZZKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV9tYXJrZXJXaWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgs
ICIzIikpCisgICAgLCBtX21hcmtlckhlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMyIpKQogICAgICwgbV9tYXJrZXJVbml0cyhTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRo
KQogICAgICwgbV9vcmllbnRUeXBlKFNWR01hcmtlck9yaWVudEFuZ2xlKQogewpAQCAtMjM4LDEy
ICsyMzgsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzeW5jaHJvbml6ZU9yaWVudAogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJldmVyc2VTdHJp
bmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3RhcnQtcmV2ZXJz
ZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBhbHJlYWR5IHNl
dCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93bmVyVHlwZS5t
X29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykgeworICAgIGlmIChzdGF0
aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVudFR5cGUudmFs
dWUpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50
VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0
dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZSkKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpv
d25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRS
ZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25l
clR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0YXJ0
UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI1OSwxMSArMjU5LDExIEBAIFNWR01hcmtlck9yaWVu
dFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAgICAg
aWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAgICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkp
IDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
VkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwog
ICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVl
KTsKIH0KIAogUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFy
a2VyT3JpZW50VHlwZT4+IFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmltYXRlZCgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDc1ICsyOSwxMCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94
LmgiCisjaW5jbHVkZSAiU1ZHTWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIFNWR01hcmtlclVuaXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0g
MCwKLSAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRz
U3Ryb2tlV2lkdGgKLX07Ci0KLWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFy
a2VyT3JpZW50VW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdN
YXJrZXJPcmllbnRBbmdsZSwKLSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAot
Ci0gICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmll
bnRNYXgKLX07Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJVbml0c1R5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsg
cmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJT
cGFjZU9uVXNlOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25V
c2UiKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25V
c2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0g
ICAgICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNW
R01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vu
a25vd247Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVu
dW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkg
eyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2
ZXJzZTsgfQotCi0gICAgLy8gdG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmll
bnRUeXBlKCkgaGFuZGxlcyB0aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2Vy
T3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUm
IGFuZ2xlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAg
IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8t
c3RhcnQtcmV2ZXJzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZTsKLSAgICAgICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVl
QXNTdHJpbmcodmFsdWUpOwotICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAg
cmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtl
ckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKQEAgLTE2NCw4
ICs5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQ
cm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBlV3JhcHBlcihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0
OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNl
VmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBtX29yaWVudFR5cGUudmFs
dWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9v
cmllbnRUeXBlLnZhbHVlKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25z
dCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9IHR5
cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdN
YXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRz
VW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdN
YXJrZXJVbml0c1N0cm9rZVdpZHRoCit9OworCitlbnVtIFNWR01hcmtlck9yaWVudFR5cGUgewor
ICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAorICAgIFNWR01hcmtlck9yaWVudEF1dG8s
CisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0
UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAg
IFNWR01hcmtlck9yaWVudE1heAorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGln
aGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtu
b3duOgorICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZH
TWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aDoKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRz
VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAo
dmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlOworICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikK
KyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOworICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGlj
IHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRv
U3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAg
ICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAg
ICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7CisgICAgICAg
IGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAg
ICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0
dXJuIFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmll
bnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6
OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdN
YXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJP
cmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVu
dFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmdsZSA9IHsgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUs
IG9yaWVudFR5cGUpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBT
VkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1W
YWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEwIEBAIGlubGluZSBTVkdNYXNrRWxlbWVudDo6U1ZH
TWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAg
LCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdC
T1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAg
ICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9k
ZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIp
CisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAg
ICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBt
X3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1f
aGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAg
Ly8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVj
OiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZm
ZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNv
bWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGlj
IFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQ
cm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC0xODAsNyArMTgwLDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsgICAgICAgIAorICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVz
dWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2Nh
bGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjAyLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVG
YWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3Rv
clkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMjQsNyAr
MjI0LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwg
eSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJv
dGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
CkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7
ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBY
KCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5mbGlwWSgpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5mbGlwWSgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI1OSw3ICsyNTksNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WChhbmdsZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwpAQCAtMjcwLDE0ICsyNzAsMTQgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZ
KGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkuc2tld1koYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBT
VkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBTVkdNYXRyaXgoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdNYXRyaXhWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXIgOiBwdWJsaWMgU1ZH
UHJvcGVydHlUZWFyT2ZmPGZsb2F0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdOdW1i
ZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlKSk7CiAgICAgfQpAQCAtNDEsMTEgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkp
OwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8U1ZHTnVtYmVyPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAg
IHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTcwLDcgKzY1
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0
JiB2YWx1ZSkKKyAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oJmFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC03OSwxMSArNzQsNiBAQCBwcml2YXRlOgog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQogICAgIHsK
ICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdOdW1iZXIoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1
ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKLSAg
ICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgcHVi
bGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0
V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNh
Y2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBl
cnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVz
PihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBTVkdOdW1iZXJMaXN0VmFs
dWVzOjpwYXJzZShjb25zdCBTdAogICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAgICAgICAgaWYg
KCFwYXJzZU51bWJlcihwdHIsIGVuZCwgbnVtYmVyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgYXBwZW5kKG51bWJlcik7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPGZs
b2F0PihudW1iZXIpKTsKICAgICB9CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgU3RyaW5nIFNWR051
bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KGF0KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocHJvcGVydHlBdChpKSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAs
MjQgKzIwLDMwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5o
IgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJlcjsKIGNsYXNzIFNWR051
bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVj
dG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNW
R0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbHVl
QXNTdHJpbmcoKSBjb25zdDsgICAKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR051bWJlckxp
c3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051
bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJp
bmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVl
QXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNp
bmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVyOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRl
YXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDMxIEBA
IGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHIKICAgICByZXR1cm4gY3Vy
ID09IGVuZDsKIH0KIAorYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQb2lu
dCYgcG9pbnQpCit7CisgICAgaWYgKHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3KHMpLnVwY29udmVy
dGVkQ2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1cGNvbnZlcnRlZENoYXJh
Y3RlcnM7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVuZ3RoKCk7CisKKyAgICBp
ZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZsb2F0IHggPSAwOworICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoIXBh
cnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9p
bnQgPSBGbG9hdFBvaW50KHgsIHkpOworCisgICAgLy8gRGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0
IHNwYWNlcyBhdCB0aGUgZW5kLgorICAgIHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1
ciwgZW5kKTsKK30KKwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZsb2F0
UmVjdCYgcmVjdCkKIHsKICAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1Zp
ZXcoc3RyaW5nKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKQEAgLTI2NCw3ICsyODksNyBAQCBi
b29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3RWCiAgICAgICAgIH0KICAgICAg
ICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKIAotICAgICAgICBwb2ludHNMaXN0
LmFwcGVuZChGbG9hdFBvaW50KHhQb3MsIHlQb3MpKTsKKyAgICAgICAgcG9pbnRzTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50PihGbG9hdFBvaW50KHhQb3MsIHlQb3MpKSk7
CiAgICAgfQogICAgIHJldHVybiBjdXIgPT0gZW5kICYmICFkZWxpbVBhcnNlZDsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsNyBAQCBib29sIHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3Qg
U3RyCiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBMQ2hhciomIHB0ciwgY29uc3QgTENoYXIqIGVu
ZCwgYm9vbCYgZmxhZyk7CiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29u
c3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcm
LCBGbG9hdFJlY3QmKTsKK2Jvb2wgcGFyc2VQb2ludChjb25zdCBTdHJpbmcmLCBGbG9hdFBvaW50
Jik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBwYXJzZUZsb2F0
UG9pbnQoY29uc3QgQ2hhcmFjdGVyVHlwZSomIGN1cnJlbnQsIGNvbnN0IENoYXJhY3RlclR5cGUq
IGVuZCwgRmxvYXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRl
U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3Ry
ZWFtLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0
ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5
VHJhaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00NiwzNCArNDgsNDIgQEAgcHVibGljOgogICAgIHR5cGVkZWYgRGF0YTo6Y29uc3RfaXRl
cmF0b3IgRGF0YUl0ZXJhdG9yOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0oKSB7IH0KLSAgICBT
VkdQYXRoQnl0ZVN0cmVhbShjb25zdCBEYXRhJiBkYXRhKSA6IG1fZGF0YShkYXRhKSB7IH0KKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAgICAgICA6
IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkpCisgICAgeworICAgIH0KICAgICAKLSAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAg
IFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKKyAgICAg
ICAgOiBtX2RhdGEob3RoZXIubV9kYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGF0YSA9
PSBvdGhlci5tX2RhdGE7CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1Bh
dGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0
b3I9KFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCisgICAgeworICAgICAgICBtX2RhdGEgPSBX
VEZNb3ZlKG90aGVyLm1fZGF0YSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAg
U1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3Ro
ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIG1f
ZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAorICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgIT0gb3Ro
ZXIubV9kYXRhOyB9CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNv
cHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0
aEJ5dGVTdHJlYW0+KG1fZGF0YSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R1BhdGhCeXRlU3RyZWFtPigqdGhpcyk7CiAgICAgfQogCiAgICAgRGF0YUl0ZXJhdG9yIGJlZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmJlZ2luKCk7IH0KICAgICBEYXRhSXRlcmF0b3IgZW5k
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmVuZCgpOyB9CiAKICAgICB2b2lkIGFwcGVuZCh1bnNp
Z25lZCBjaGFyIGJ5dGUpIHsgbV9kYXRhLmFwcGVuZChieXRlKTsgfQotICAgIHZvaWQgYXBwZW5k
KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAoYXV0
byBzdHJlYW0gOiBvdGhlcikKLSAgICAgICAgICAgIGFwcGVuZChzdHJlYW0pOwotICAgIH0KKyAg
ICB2b2lkIGFwcGVuZChjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIHsgbV9kYXRhLmFw
cGVuZFZlY3RvcihvdGhlci5tX2RhdGEpOyB9CiAgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNs
ZWFyKCk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhLnNpemUo
KTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc0VtcHR5KCk7
IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQog
CiAgICAgLy8gT25seSBkZWZpbmVkIHRvIGxldCBTVkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2Ug
dGhlIHN0YW5kYXJkIGxpc3QgY29kZSBwYXRocyAtIHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxl
ZC4KQEAgLTgyLDUgKzkyLDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGF0YSBtX2RhdGE7
CiB9OworICAgIAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhC
eXRlU3RyZWFtPiB7CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFtIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIFNWR1BhdGhCeXRlU3RyZWFtKCk7IH0KKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVT
dHJlYW0gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNW
R1BhdGhCeXRlU3RyZWFtIGJ5dGVTdHJlYW07CisgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJl
YW1Gcm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAg
ICAgIHJldHVybiBieXRlU3RyZWFtOworICAgIH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODAsNyArODAsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwog
CiBpbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJl
ZFJvbGUpCisgICAgLCBtX3BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdV
bmFsdGVyZWRSb2xlKSkKICAgICAsIG1faXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAg
QVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKTsKQEAgLTI1NSw3ICsyNTUsNyBA
QCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmICht
X3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojps
b29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAg
ICAgICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xl
KTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbSht
X3BhdGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAg
ICAgICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0gbmV3TGlzdDsKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpID0gV1RG
TW92ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMy
Nyw4ICszMjcsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAg
ICAgaWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVy
PFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigm
b3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5Owog
Ci0gICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAg
ICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3Bh
dGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBV
bmFsdGVyZWRQYXJzaW5nKTsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHkoKSkKKyAgICAgICAg
YnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhC
eXRlU3RyZWFtLCBvd25lclR5cGUsIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4o
Km93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1Bh
dGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRo
U2VnTGlzdFZhbHVlcz4oJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9w
YXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBAIC0zMzksNyArMzM5LDcgQEAgdm9pZCBTVkdQYXRoRWxl
bWVudDo6c3luY2hyb25pemVEKFNWR0VsZQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUg
PSBkb3duY2FzdDxTVkdQYXRoRWxlbWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93
bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47
Ci0gICAgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFBy
b3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1
ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9u
aXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUp
LnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJv
cGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5MiwxMCArMzkyLDEwIEBAIHZvaWQgU1ZHUGF0aEVs
ZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRo
U2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYgKGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1v
ZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAgICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZh
bHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21T
VkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUubGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0
ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBBU1NFUlQoIXN0YXRpY19j
YXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKHN0
YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmxh
c3RQcm9wZXJ0eSgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2lu
Zyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZy
b21TVkdQYXRoU2VnTGlzdFZhbHVlcyhtX3BhdGhTZWdMaXN0LnZhbHVlLCBtX3BhdGhCeXRlU3Ry
ZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJl
YW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBh
cnNpbmcpOwogICAgICAgICBtX2NhY2hlZFBhdGggPSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuZGVmaW5lZFJvbGU6CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyQ29udGV4
dEFuZFJvbGVzKCkKIHsKLSAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgIGZvciAoYXV0byYgaXRl
bSA6ICptX3ZhbHVlcykKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiB2YWx1ZXNQcm9wZXJ0eSgpLnBy
b3BlcnRpZXMoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4o
aXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRS
b2xlKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKCkKIHsK
LSAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAg
IGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIGNsZWFyQ29udGV4dEFuZFJvbGVzKCk7CkBAIC01MCw4ICs0OCw4IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMKIAogRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1Bh
dGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0oUmVmPFNWR1BhdGhTZWc+JiYgbmV3
SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgbV92YWx1ZXMtPnNpemUo
KSkgewotICAgICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVtID0gbV92YWx1ZXMtPmF0KGlu
ZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkgeworICAgICAg
ICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVtID0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0
KGluZGV4KTsKICAgICAgICAgQVNTRVJUKHJlcGxhY2VkSXRlbSk7CiAgICAgICAgIHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KHJlcGxhY2VkSXRlbS5nZXQoKSktPnNldENvbnRl
eHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICsz
MiwxMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0g
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKICAg
ICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdFZh
bHVlcz46Okxpc3RJdGVtVHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGlj
IFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBh
dGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0
aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKQEAgLTQ1LDExICs0
NSw5IEBAIHB1YmxpYzoKIAogICAgIGludCBmaW5kSXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIGl0
ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotCi0gICAgICAgIHVu
c2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzaXplID0g
dmFsdWVzUHJvcGVydHkoKS5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisg
ICAgICAgICAgICBpZiAoaXRlbSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgIH0KIApAQCAtNTgsMTAgKzU2LDkgQEAg
cHVibGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwg
Ym9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUlu
ZGV4IDwgbV92YWx1ZXMtPnNpemUoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwog
Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJv
cGVydHkoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25p
emVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtOTMsNyArOTAsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0
UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQog
ICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAg
LCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpAQCAtMTE3LDE0ICsxMTQsMTIgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24pOworICAg
ICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5j
b250ZXh0RWxlbWVudCgpLCBMaXN0TW9kaWZpY2F0aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAg
dm9pZCBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5h
bAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNv
bW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9k
aWZpY2F0aW9uKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAg
fQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVt
VHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIGZpbmFsOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzggQEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpT
VkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9S
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55
KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250
YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdS
b2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVm
UHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNl
Z1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRl
cjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVN
b2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgp
LCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBv
aW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCks
IHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9p
bnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2lu
dDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9k
ZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCks
IHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBt
X3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVU
b1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnko
KSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2lu
dCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2Rl
ID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0
QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJn
ZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwg
cjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRo
U2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxh
ZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcs
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwg
bGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xl
KSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAg
Ym9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhT
ZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2Vn
VHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQp
OworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50
KTsKICAgICBwYXRoU2VnVHlwZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21l
bnQtPnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdT
ZWdtZQogCiBTVkdQYXRoU2VnVHlwZSBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQo
U1ZHUGF0aFNlZ1R5cGUpCiB7Ci0gICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0
ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9p
dGVtQ3VycmVudCk7CiAgICAgU1ZHUGF0aFNlZ1R5cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnVHlwZT4obV9zZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRl
bUN1cnJlbnQ7CiAgICAgcmV0dXJuIHBhdGhTZWdUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwx
MCArMTksOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eS5o
IgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCiAj
aW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTMzLDcgKzMyLDcgQEAgY2xhc3MgU1ZHUGF0aFNlZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdQYXRoU2VnPj4geworY2xhc3MgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRoU2VnTGlzdFZhbHVlcyhTVkdQYXRoU2VnUm9s
ZSByb2xlKQogICAgICAgICA6IG1fcm9sZShyb2xlKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcg
QEAgYm9vbCBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoUwogICAgIEFTU0VSVChw
YXJzaW5nTW9kZSA9PSBVbmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFNWR1BhdGhTZWdMaXN0VmFs
dWVzIGFwcGVuZGVkSXRlbUxpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpOwotICAgIGFwcGVuZGVk
SXRlbUxpc3QuYXBwZW5kKFdURk1vdmUocGF0aFNlZykpOworICAgIGFwcGVuZGVkSXRlbUxpc3Qu
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihXVEZNb3ZlKHBhdGhT
ZWcpKSk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAg
U1ZHUGF0aFNlZ0xpc3RTb3VyY2Ugc291cmNlKGFwcGVuZGVkSXRlbUxpc3QpOwpAQCAtMjA2LDE1
ICsyMDYsMTQgQEAgYm9vbCBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oY29ucwogCiBi
b29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0cmVhbVRvQXBw
ZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBieVN0cmVhbSwgdW5zaWduZWQgcmVwZWF0
Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJldHVybiB3aGVuIHN0cmVhbVRvQXBwZW5kVG8gaXMgZW1w
dHk/IERvbid0IHdlIHN0aWxsIG5lZWQgdG8gYXBwZW5kPworICAgIC8vIFRoZSBieVN0cmVhbSB3
aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0FwcGVuZFRvLiBTbyBzdHJlYW1Ub0FwcGVuZFRv
IGhhcyB0byBoYXZlIGVsZW1lbnRzLgogICAgIGlmIChzdHJlYW1Ub0FwcGVuZFRvLmlzRW1wdHko
KSB8fCBieVN0cmVhbS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8g
SXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGZyb20gYSBzdHJl
YW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFtPworICAgIC8vIGJ1aWxkZXIgaXMgdGhlIGRl
c3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3VyY2UgYW5kIGJ5U291cmNlLiBUaGUgc3RyZWFt
IG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJlYW1Ub0FwcGVuZFRvKSBoYXMgdG8gYmUgY2xl
YXJlZCBiZWZvcmUgY2FsbGluZyBhZGRBbmltYXRlZFBhdGguCiAgICAgU1ZHUGF0aEJ5dGVTdHJl
YW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBlbmRUbyk7Ci0KLSAgICBTVkdQYXRoQnl0ZVN0
cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0cmVhbVRvQXBwZW5kVG87Ci0gICAgc3RyZWFtVG9BcHBl
bmRUby5jbGVhcigpOworICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gV1RG
TW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGZy
b21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkpOwogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGJ5
U291cmNlKGJ5U3RyZWFtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50IDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MywxMSArNDMsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGluaXRpYWxWYWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50KiBp
bml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2lu
dChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1BvaW50Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5p
dGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24o
KSkKQEAgLTk5LDEyICs5NCwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8Rmxv
YXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CiAK
LSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisg
ICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PihudWxscHRy
LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTEzLDExICsxMDgsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUG9pbnQoY29uc3QgRmxvYXRQb2lu
dCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50
Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
MTMgKzM3LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPjsK
ICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0
ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0
KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlzdFZhbHVlcyYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQb2ludExpc3QoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlz
dFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIFN0cmluZyBTVkdQb2ludExp
c3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFzIHRv
IHNlcGVyYXRlPwogCi0gICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gYXQoaSk7CisgICAgICAg
IGNvbnN0IGF1dG8mIHBvaW50ID0gcHJvcGVydHlBdChpKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIocG9pbnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMjIgKzIx
LDI4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRl
ICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9p
bnQ7CiBjbGFzcyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5h
bCA6IHB1YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD4gewogcHVibGljOgogICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZH
UG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCisgICAgc3Rh
dGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIHBvaW50c0xp
c3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9
CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAgICB1c2luZyBMaXN0SXRl
bVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZH
UG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJv
cGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0
Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRl
cl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJz
KG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IG5ld0xpc3Q7Cisg
ICAgICAgIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSkg
PSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDksNyAr
MTA5LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQb2ludHMoUwogICAgIFNW
R1BvbHlFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5RWxlbWVudD4oKmNvbnRl
eHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5zaG91bGRTeW5jaHJvbml6
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgm
b3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBl
Lm1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJUeXBlLm1fcG9pbnRz
LnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVO
YW1lLCBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcG9pbnRz
LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4g
U1ZHUG9seUVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBlcihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgUmVmPFNWR1BvaW50TGlz
dD4gcG9pbnRzKCk7CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gYW5pbWF0ZWRQb2ludHMoKTsKIAot
ICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb2lu
dHMudmFsdWU7IH0KKyAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSk7
IH0KIAogICAgIHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5m
bygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1Byb3Bl
cnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbz4gY3JlYXRlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlh
bFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVh
dGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtOTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMDAsMTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0
aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0g
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4o
aW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDEx
IEBAIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmUKIHsKIH0KIAorU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcGFyc2Uoc3RyaW5nKTsKK30KKwogRXhjZXB0aW9u
T3I8dm9pZD4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpzZXRBbGlnbih1bnNpZ25lZCBz
aG9ydCBhbGlnbikKIHsKICAgICBpZiAoYWxpZ24gPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
VU5LTk9XTiB8fCBhbGlnbiA+IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICB9OwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWdu
KCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRp
YWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAg
c3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsg
fQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMiArNTUsMTIgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3RoTW9kZVdpZHRoLCAiNTAlIikKLSAgICAsIG1fY3ko
TGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpCi0gICAgLCBtX3IoTGVuZ3RoTW9kZU90aGVyLCAiNTAl
IikKLSAgICAsIG1fZngoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9meShMZW5ndGhNb2RlSGVp
Z2h0KQotICAgICwgbV9mcihMZW5ndGhNb2RlT3RoZXIsICIwJSIpCisgICAgLCBtX2N4KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpKQorICAgICwgbV9jeShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikpCisgICAgLCBtX3IoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZU90aGVyLCAiNTAlIikpCisgICAgLCBtX2Z4KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVXaWR0aCkpCisgICAgLCBtX2Z5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV9mcihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIsICIwJSIpKQogewog
ICAgIC8vIFNwZWM6IElmIHRoZSBjeC9jeS9yL2ZyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnJhZGlhbEdyYWRpZW50VGFnKSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDEzICsyMCwxMyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0
VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdSZWN0IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9h
dFJlY3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxv
YXRSZWN0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdSZWN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAt
MzYsMTEgKzM2LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdS
ZWN0KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3Jl
YXRlKGNvbnN0IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1JlY3Q+PiBjcmVhdGUo
RXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlh
bFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtMTEzLDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdS
ZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAg
ICAgewogICAgIH0KQEAgLTEyMiwxMSArMTE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQot
ICAgIGV4cGxpY2l0IFNWR1JlY3QoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAg
ICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4oaW5pdGlhbFZhbHVlKQotICAgIHsK
LSAgICB9CiB9OwogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRp
YyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBl
LngoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMSArNzEsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3Jh
cGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0
aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2Rl
V2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhl
aWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxp
dGVyYWwoIjEwMCUiKSkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkpCiAgICAgLCBtX3RpbWVDb250YWluZXIoU01J
TFRpbWVDb250YWluZXI6OmNyZWF0ZSgqdGhpcykpCisgICAgLCBtX2N1cnJlbnRUcmFuc2xhdGUo
U1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50PigpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpzdmdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R1NWR0VsZW1lbnQoKTsKQEAgLTE5Nyw5ICsxOTgsOSBAQCBSZWY8U1ZHUG9pbnQ+IFNWR1NWR0Vs
ZW1lbnQ6OmN1cnJlbnRUcmFuCiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5z
bGF0ZShjb25zdCBGbG9hdFBvaW50JiB0cmFuc2xhdGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50
VHJhbnNsYXRlID09IHRyYW5zbGF0aW9uKQorICAgIGlmIChzdGF0aWNfY2FzdDxGbG9hdFBvaW50
Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPT0gdHJhbnNsYXRpb24pCiAgICAgICAgIHJldHVybjsK
LSAgICBtX2N1cnJlbnRUcmFuc2xhdGUgPSB0cmFuc2xhdGlvbjsKKyAgICBzdGF0aWNfY2FzdDxG
bG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRh
dGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3VzZUN1cnJlbnRWaWV3IHsgZmFsc2UgfTsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pv
b21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9OwogICAgIFJlZjxTTUlMVGltZUNvbnRh
aW5lcj4gbV90aW1lQ29udGFpbmVyOwotICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50VHJhbnNsYXRl
OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9jdXJyZW50VHJhbnNsYXRlOwogICAgIFJlZlB0cjxT
VkdWaWV3U3BlYz4gbV92aWV3U3BlYzsKICAgICBTdHJpbmcgbV9jdXJyZW50Vmlld0ZyYWdtZW50
SWRlbnRpZmllcjsKIH07CkBAIC0xNzUsNyArMTc1LDcgQEAgaW5saW5lIGJvb2wgU1ZHU1ZHRWxl
bWVudDo6dXNlQ3VycmVudFZpZQogCiBpbmxpbmUgRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50Ojpj
dXJyZW50VHJhbnNsYXRlVmFsdWUoKQogewotICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRl
KTsKIH0KIAogaW5saW5lIFNWR1pvb21BbmRQYW5UeXBlIFNWR1NWR0VsZW1lbnQ6Onpvb21BbmRQ
YW4oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMiArMzYsMTIgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdM
aXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdTdHJp
bmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RW
YWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdF
bGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdCgmY29udGV4
dEVsZW1lbnQsIHZhbHVlcykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlz
dD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwg
U1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJikKKyAgICBzdGF0
aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
LCBTVkdQcm9wZXJ0eVJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byByZW1v
dmUgdGhpcy4gSXQncyBvbmx5IG5lZWRlZCB0byBrZWVwIFdpbmRvd3MgY29tcGlsaW5nLgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdHJpbmdMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHU3RyaW5nTGlzdChTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgICAgICA6IFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVl
cz4oY29udGV4dEVsZW1lbnQsIHZhbHVlcykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQoY29uc3Qg
U3QKIAogICAgIC8vIEFkZCBlbXB0eSBzdHJpbmcsIGlmIGxpc3QgaXMgZW1wdHkuCiAgICAgaWYg
KGlzRW1wdHkoKSkKLSAgICAgICAgYXBwZW5kKGVtcHR5U3RyaW5nKCkpOworICAgICAgICBhcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9pZCBT
VkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJpbmcmIGRhdGEsIFVDaGFyIGRlbGlt
aXRlcikKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShj
b25zdCBTdAogICAgICAgICAgICAgcHRyKys7CiAgICAgICAgIGlmIChwdHIgPT0gc3RhcnQpCiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgYXBwZW5kKFN0cmluZyhzdGFydCwgcHRyIC0gc3Rh
cnQpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U3RyaW5nPihTdHJpbmcoc3Rh
cnQsIHB0ciAtIHN0YXJ0KSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGlt
aXRlcihwdHIsIGVuZCwgZGVsaW1pdGVyKTsKICAgICB9CiB9CkBAIC03MCw3ICs3MCw3IEBAIFN0
cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAw
KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFw
cGVuZChhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5QXQoaSkpOwogICAg
IH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDgg
KzIxLDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2lu
Y2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNs
YXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBmaW5h
bCA6IHB1YmxpYyBWZWN0b3I8U3RyaW5nPiB7CitjbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZp
bmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U3RyaW5nPiB7CiBwdWJsaWM6CiAgICAgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgICAg
ICA6IG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVz
dHMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbgogfQogCiBTVkdUZXN0czo6U1ZHVGVzdHMoKQotICAgIDog
bV9yZXF1aXJlZEZlYXR1cmVzKHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAgICwgbV9yZXF1aXJl
ZEV4dGVuc2lvbnMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikKLSAgICAsIG1fc3lzdGVtTGFuZ3Vh
Z2Uoc3lzdGVtTGFuZ3VhZ2VBdHRyKQorICAgIDogbV9yZXF1aXJlZEZlYXR1cmVzKFNWR1N0cmlu
Z0xpc3RWYWx1ZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpKQorICAgICwgbV9yZXF1aXJlZEV4dGVu
c2lvbnMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKSkKKyAgICAs
IG1fc3lzdGVtTGFuZ3VhZ2UoU1ZHU3RyaW5nTGlzdFZhbHVlcyhzeXN0ZW1MYW5ndWFnZUF0dHIp
KQogewogfQogCkBAIC0xNTQsMTUgKzE1NCwyMCBAQCBib29sIFNWR1Rlc3RzOjpoYXNFeHRlbnNp
b24oY29uc3QgU3RyaW5nCiAKIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogewotICAg
IGZvciAoYXV0byYgZmVhdHVyZSA6IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkgeworICAgIGF1
dG8gZmVhdHVyZXMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWly
ZWRGZWF0dXJlcy52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAoYXV0byYgZmVhdHVyZSA6
IGZlYXR1cmVzKSB7CiAgICAgICAgIGlmIChmZWF0dXJlLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVk
U1ZHRmVhdHVyZXMoKS5jb250YWlucyhmZWF0dXJlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IG1fc3lzdGVtTGFuZ3VhZ2UudmFs
dWUpIHsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZh
bHVlcyY+KCptX3N5c3RlbUxhbmd1YWdlLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChh
dXRvJiBsYW5ndWFnZSA6IGxhbmd1YWdlcykgewogICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gZGVm
YXVsdExhbmd1YWdlKCkuc3Vic3RyaW5nKDAsIDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6IG1fcmVxdWlyZWRFeHRlbnNpb25z
LnZhbHVlKSB7CisKKyAgICBhdXRvIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdM
aXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlKS5wcm9wZXJ0aWVzKCk7Cisg
ICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBleHRlbnNpb25zKSB7CiAgICAgICAgIGlmICghaGFz
RXh0ZW5zaW9uKGV4dGVuc2lvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMTcyLDExICsxNzcsMTEgQEAgYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB2b2lk
IFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChhdHRyaWJ1dGVOYW1l
ID09IHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRmVhdHVyZXMudmFs
dWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVz
Jj4oKm1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkucmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRy
aWJ1dGVOYW1lID09IHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRF
eHRlbnNpb25zLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3Ry
aW5nTGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucmVzZXQodmFsdWUp
OwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHN5c3RlbUxhbmd1YWdlQXR0cikKLSAgICAgICAg
bV9zeXN0ZW1MYW5ndWFnZS52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0
PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkucmVzZXQodmFs
dWUpOwogfQogCiBib29sIFNWR1Rlc3RzOjppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCkBAIC0yMDgsNyArMjEzLDcgQEAgdm9pZCBTVkdUZXN0czo6
c3luY2hyb25pemVBdHRyaWJ1dGUoU1ZHRQogewogICAgIGlmICghcHJvcGVydHkuc2hvdWxkU3lu
Y2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hy
b25pemUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS52YWx1
ZUFzU3RyaW5nKCkpOworICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMm
PigqcHJvcGVydHkudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHVGVzdHM6
OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsOCArNjYsOCBAQCBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3Rl
eHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQotICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKExl
bmd0aE1vZGVPdGhlcikKKyAgICAsIG1fdGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlT3RoZXIpKQorICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX2xlbmd0aEFkanVzdChTVkdMZW5ndGhBZGp1c3RTcGFj
aW5nKQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVGV4dENvbnRlbnRF
bGVtZW50KCk7CkBAIC05NSw3ICs5NSw3IEBAIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gU1ZHVGV4
dENvbnRlbnRFbGUKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoVmFsdWU+
IGRlZmF1bHRUZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcik7CiAgICAgaWYgKG1fc3BlY2lmaWVk
VGV4dExlbmd0aCA9PSBkZWZhdWx0VGV4dExlbmd0aCkKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZh
bHVlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRU
ZXh0TGVuZ3RoKCkpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3Rl
eHRMZW5ndGgudmFsdWUpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwg
Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOwogCiAgICAgbV90ZXh0TGVuZ3RoLnNob3VsZFN5bmNo
cm9uaXplID0gdHJ1ZTsKICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNWR0FuaW1h
dGVkTGVuZ3RoPihsb29rdXBPckNyZWF0ZVRleHRMZW5ndGhXcmFwcGVyKHRoaXMpKTsKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1CiAg
ICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID4gMCkKICAgICAgICAgICAgIHNldExlbmd0aEFkanVz
dEJhc2VWYWx1ZShwcm9wZXJ0eVZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnRleHRMZW5ndGhBdHRyKQotICAgICAgICBtX3RleHRMZW5ndGgudmFsdWUgPSBTVkdMZW5n
dGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZv
cmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVl
Jj4oKm1fdGV4dExlbmd0aC52YWx1ZSkgPSBTVkdMZW5ndGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0
aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CiAK
ICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUp
OwogCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZQogICAgIH0KIAogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0
aEF0dHIpCi0gICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC52YWx1
ZTsKKyAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3Ro
VmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKTsKIAogICAgIGlmIChhdXRvIHJlbmRlcmVyID0g
dGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBFTkRfUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpTVkdUZXh0
UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHVGV4dENvbnRlbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAg
ICwgbV9zdGFydE9mZnNldChMZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3N0YXJ0T2Zmc2V0KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX21ldGhvZChTVkdUZXh0UGF0
aE1ldGhvZEFsaWduKQogICAgICwgbV9zcGFjaW5nKFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0KQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2
YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1RyYW5zZm9ybShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAg
LTQzLDExICs0Myw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
VHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJh
bnNmb3JtPiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFs
dWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9u
T3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0x
MzQsNyArMTI5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zv
cm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAg
IHsKICAgICB9CkBAIC0xNDMsMTEgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAg
IH0KLQotICAgIGV4cGxpY2l0IFNWR1RyYW5zZm9ybShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSog
aW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1W
YWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNp
bmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMxLDIwICszMiwxOCBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFw
cGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7
CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFu
aW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBF
eGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJp
eChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0g
ICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRy
aXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHkoKS5jcmVhdGVTVkdUcmFuc2Zvcm1G
cm9tTWF0cml4KG1hdHJpeCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1Ry
YW5zZm9ybT4+IGNvbnNvbGlkYXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7
CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICBhdXRvIHJlc3VsdCA9IGNh
bkFsdGVyTGlzdCgpOwpAQCAtNTIsMjMgKzUxLDIzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUg
bGlzdCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1ZSBvZiBudWxsIGlzIHJldHVybmVkLgotICAgICAg
ICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCku
aXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNo
TGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4g
d3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJh
bnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUHJvcGVydHkoKS5jb25zb2xpZGF0ZSgpOwogICAgICAg
ICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpKTsKIAotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsK
ICAgICAgICAgcmV0dXJuIFdURk1vdmUod3JhcHBlcik7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdUcmFuc2Zvcm1MaXN0KEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQog
ICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAg
UmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNm
b3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJh
bnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4o
dHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7
CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25j
YXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAg
ICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkpLm1hdHJpeCgpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1
ZUFzU3QKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRy
YWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFs
dWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xh
c3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKLQorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZH
VHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsK
K2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVl
czxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNy
ZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNW
R1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAgLTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0
aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0Owor
ICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8
PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52
YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9y
bVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MSw0ICs5MSw5IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgU1ZHVHJhbnNmb3IKICAgICByZXR1cm4gIShhID09IGIpOwogfQogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT4geworICAgIHN0YXRpYyBT
VkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIHsg
cmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5nKCk7IH0KK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtYWJs
ZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAgICAgaWYgKCFwYXJzZVRyYW5zZm9ybVZhbHVlKHR5
cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNmb3JtKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0cmFuc2Zvcm0pOworICAgICAgICBsaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAg
ICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1cnJUcmFuc2Zvcm0sIGVuZCk7CiAgICAgICAg
IGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpjdXJyVHJhbnNmb3JtID09ICcsJykgewogICAg
ICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxMCArNjIsMTAgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0
aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAg
ICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlSGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50
OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVkKQogewogICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJl
c29sdmVDYWxsYmFja3MoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIK
KyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFs
dWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxp
c3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNW
R1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCisj
aW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUHJv
cGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdTdHJpbmdMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVl
LmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PAorICAgIFNWR0FuZ2xlVmFsdWUsICAgICAg
ICAgICAgICAgICAgLy8gIDA6IGFuZ2xlCisgICAgYm9vbCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAgMTogYm9vbGVhbgorICAgIENvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gIDI6IGNvbG9yCisgICAgdW5zaWduZWQsICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzog
ZW51bWVyYXRpb24KKyAgICBpbnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICA0OiBp
bnRlZ2VyCisgICAgU1ZHTGVuZ3RoVmFsdWUsICAgICAgICAgICAgICAgICAvLyAgNTogbGVuZ3Ro
CisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywgICAgICAgICAgICAvLyAgNjogbGVuZ3RoTGlzdAor
ICAgIFNWR01hdHJpeFZhbHVlLCAgICAgICAgICAgICAgICAgLy8gIDc6IG1hdHJpeAorICAgIGZs
b2F0LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDg6IG51bWJlcgorICAgIFNWR051bWJl
ckxpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gIDk6IG51bWJlckxpc3QKKyAgICBTVkdQYXRoQnl0
ZVN0cmVhbSwgICAgICAgICAgICAgIC8vIDEwOiBwYXRoCisgICAgUmVmUHRyPFNWR1BhdGhTZWc+
LCAgICAgICAgICAgICAvLyAxMTogcGF0aFNlZworICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzLCAg
ICAgICAgICAgLy8gMTI6IHBhdGhTZWdMaXN0CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlLCAgICAvLyAxMzogcHJlc2VydmVBc3BlY3RSYXRpbworICAgIEZsb2F0UG9pbnQsICAgICAg
ICAgICAgICAgICAgICAgLy8gMTQ6IHBvaW50CisgICAgU1ZHUG9pbnRMaXN0VmFsdWVzLCAgICAg
ICAgICAgICAvLyAxNTogcG9pbnRMaXN0CisgICAgRmxvYXRSZWN0LCAgICAgICAgICAgICAgICAg
ICAgICAvLyAxNjogcmVjdAorICAgIFN0cmluZywgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
MTc6IHN0cmluZworICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gMTg6IHN0
cmluZ0xpc3QKKyAgICBTVkdUcmFuc2Zvcm1WYWx1ZSwgICAgICAgICAgICAgIC8vIDE5OiB0cmFu
c2Zvcm0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzICAgICAgICAgIC8vIDIwOiB0cmFuc2Zv
cm1MaXN0Cis+OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZH
VHJhaXRIYXNUb1N0cmluZyB7CisgICAgdHlwZWRlZiBjaGFyIG9uZTsKKyAgICB0eXBlZGVmIGxv
bmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBvbmUgdGVzdChkZWNs
dHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnRvU3RyaW5nKSk7CisgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51bSB7IHZh
bHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNoYXIp
IH07Cit9OworICAgIAorc3RydWN0IHRvU3RyaW5nVmlzaXRvciB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzVG9TdHJpbmc8
UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgU3RyaW5nIG9wZXJhdG9yKCko
Y29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyh2YWx1ZSk7CisgICAgfQorCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFp
dEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmlu
ZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9Cit9OworICAgIAordGVt
cGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1RyYWl0SGFzUGFyc2Ugewor
ICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25nIHR3bzsKKworICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3QoZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJh
aXRzPFQ+OjpwYXJzZSkpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdvIHRl
c3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0PFByb3Bl
cnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9OworfTsKKworc3RydWN0IHBhcnNl
VmlzaXRvciB7CisgICAgcGFyc2VWaXNpdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
LCBjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHVmFsdWVWYXJpYW50JiB2YXJpYW50KQorICAgICAg
ICA6IG1fYXR0ck5hbWUoYXR0ck5hbWUpCisgICAgICAgICwgbV9zdHJpbmcoc3RyaW5nKQorICAg
ICAgICAsIG1fdmFyaWFudCh2YXJpYW50KQorICAgIHsKKyAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzUGFy
c2U8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigp
KGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb3Bl
cnR5VHlwZT4gcmVzdWx0ID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6cGFyc2Uo
bV9hdHRyTmFtZSwgbV9zdHJpbmcpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgbV92YXJpYW50LmVtcGxhY2U8UHJvcGVydHlUeXBlPihX
VEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9p
Zl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgor
ICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBjb25zdCBRdWFsaWZpZWROYW1lJiBtX2F0dHJOYW1lOworICAgIGNvbnN0IFN0cmluZyYgbV9z
dHJpbmc7CisgICAgU1ZHVmFsdWVWYXJpYW50JiBtX3ZhcmlhbnQ7Cit9OworICAgIAorY2xhc3Mg
U1ZHVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdWYWx1ZT4sIHB1YmxpYyBTVkdWYWx1ZVZh
cmlhbnQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZTxQcm9wZXJ0eVR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRp
YWxWYWx1ZSgpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlw
ZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9
IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5
VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICAvLyBBbGwgZW51bXMgYXJlIHN0b3JlZCBh
cyB1bnNpZ25lZCB2YWx1ZXMuCisgICAgICAgIEFTU0VSVChzaXplb2YocHJvcGVydHkpIDw9IHNp
emVvZih1bnNpZ25lZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjpp
c19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBSZWY8
U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUocHJvcGVydHkpKTsKKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHZhbHVlKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wg
aXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8
UHJvcGVydHlUeXBlPigqdGhpcykgfHwgKHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1
ZSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjpp
c19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIGNv
bnN0IFByb3BlcnR5VHlwZSYoKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gQ2FzdCB0aGUgdW5z
aWduZWQgdmFsdWUgdG8gdGhlIHJlcXVpcmVkIGVudW0uCisgICAgICAgIEFTU0VSVChXVEY6Omhv
bGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJs
ZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+Cisg
ICAgb3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3Bl
cnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5
cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiog
PSBudWxscHRyPgorICAgIG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVk
PigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0
ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVs
bHB0cj4KKyAgICBvcGVyYXRvciBQcm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlU
eXBlPigqdGhpcyk7CisgICAgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KHRvU3RyaW5nVmlzaXRvcigpLCBzdGF0aWNfY2Fz
dDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKworICAgIGJvb2wgcGFy
c2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQocGFyc2VWaXNpdG9yKGF0dHJOYW1lLCBz
dHJpbmcsIHN0YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSksIHN0YXRpY19jYXN0
PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBleHBsaWNpdCBTVkdWYWx1ZShj
b25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFyaWFudCh2YWx1
ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgIH0KKyAg
ICAKKyAgICBTVkdWYWx1ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogU1ZHVmFs
dWVWYXJpYW50KHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVlKSkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChpbmRleCgpID09IHZhbHVlLmluZGV4KCkpOworICAgIH0KK307
CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmll
d0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBh
bihTVkdab29tQW5kUGFuTWFnbmlmeSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdOYW1lczo6dmll
d1RhcmdldEF0dHIpCisgICAgLCBtX3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJp
bmdMaXN0VmFsdWVzKFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikpKQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjp2aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwpAQCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHU3RyaW5n
TGlzdD4gU1ZHVmlld0VsZW1lbnQ6OnZpZXdUCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKLSAgICAg
ICAgbV92aWV3VGFyZ2V0LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3Ry
aW5nTGlzdFZhbHVlcyY+KCptX3ZpZXdUYXJnZXQpLnJlc2V0KHZhbHVlKTsKIAogICAgIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAg
ICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTks
NyArNTksNyBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMK
IAogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAgICBTVkdTdHJpbmdMaXN0
VmFsdWVzIG1fdmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld1RhcmdldDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdT
cGVjLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdT
cGVjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOSBAQCBjb25zdCBTVkdQcm9wZXJ0
eUluZm8qIFNWR1ZpZXdTcGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdF
bGVtZW50JiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRF
bGVtZW50KQorICAgICwgbV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzPigpKQorICAgICwgbV92aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRSZWN0
PigpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKQogewogfQogCkBAIC0xMDgsMTcgKzExMSwxNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFuCiAKIFN0cmluZyBTVkdWaWV3
U3BlYzo6dHJhbnNmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNmb3JtKTsKKyAg
ICByZXR1cm4gbV90cmFuc2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3Bl
Yzo6dmlld0JveFN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRz
PEZsb2F0UmVjdD46OnRvU3RyaW5nKG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1fdmlld0JveC0+
dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJhdGlv
U3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAg
ICByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmluZygpOwogfQogCiBTVkdFbGVt
ZW50KiBTVkdWaWV3U3BlYzo6dmlld1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSArMTgwLDkgQEAg
UmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1ZpZXdTcGVjOjpsbwogdm9pZCBTVkdWaWV3U3Bl
Yzo6cmVzZXQoKQogewogICAgIG1fem9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5NYWduaWZ5Owot
ICAgIG1fdHJhbnNmb3JtLmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94ID0geyB9OwotICAgIG1fcHJl
c2VydmVBc3BlY3RSYXRpbyA9IHsgfTsKKyAgICBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzJj4oKm1fdHJhbnNmb3JtKS5jbGVhcigpOworICAgIHN0YXRpY19jYXN0PEZsb2F0UmVj
dCY+KCptX3ZpZXdCb3gpID0geyB9OworICAgIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0UmF0aW8pID0geyB9OwogICAgIG1fdmlld1Rh
cmdldFN0cmluZyA9IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQsNyBAQCBib29s
IFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAgICBpZiAoY3Vy
clZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAg
IFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJhbnNmb3JtLCBj
dXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOworICAg
ICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUoc3RhdGlj
X2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSksIGN1cnJWaWV3U3Bl
YywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBp
ZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcgKzU1LDE3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9ybScgcHJvcGVy
dHkuCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwotICAgIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2Zvcm07IH0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigq
bV90cmFuc2Zvcm0pOyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHByb3Bl
cnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFJlY3Q+IHZpZXdCb3hBbmltYXRlZCgpOwotICAg
IEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAgIHZvaWQgc2V0
Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94ID0g
dmlld0JveDsgfQorICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEZsb2F0UmVjdCY+KCptX3ZpZXdCb3gpOyB9CisgICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVl
KGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92
aWV3Qm94KSA9IHZpZXdCb3g7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRlZCAncHJlc2VydmVB
c3BlY3RSYXRpbycgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCk7Ci0gICAgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4gbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvOyB9Ci0gICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVl
KGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykg
eyBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CisgICAgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVBc3Bl
Y3RSYXRpbyk7IH0KKyAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNlVmFsdWUoY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKSB7IHN0
YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0
UmF0aW8pID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmKTsKQEAgLTg0LDkgKzg0LDkgQEAgcHJpdmF0ZToKIAog
ICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQ7CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUg
bV96b29tQW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKLSAgICBTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzIG1fdHJhbnNmb3JtOwotICAgIEZsb2F0UmVjdCBtX3ZpZXdCb3g7Ci0gICAgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWZQ
dHI8U1ZHVmFsdWU+IG1fdHJhbnNmb3JtOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92aWV3Qm94
OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgIFN0cmlu
ZyBtX3ZpZXdUYXJnZXRTdHJpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
blByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU1LDIyICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OnNldEJhc2VWYWwocHJv
cGVydHkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblBy
b3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIEVudW1UeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMg
UmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVh
dGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29u
dGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmli
dXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQm
Pihwcm9wZXJ0eSkpKTsKLSAgICB9Ci0KLSAgICBFbnVtVHlwZSYgY3VycmVudEFuaW1hdGVkVmFs
dWUoKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQmIGFuaW1hdGVkVmFsdWUgPSBTVkdBbmltYXRl
ZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7
Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJhaXRzPEVudW1U
eXBlPjo6aGlnaGVzdEVudW1WYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8RW51bVR5cGUmPihhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29udGV4
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUp
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5
VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IHVuc2lnbmVkJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5
VGVhck9mZjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQorICAgICAgICA6IFNWR0FuaW1h
dGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmli
dXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHVzaW5n
IExpc3RQcm9wZXJ0eVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0
eVR5cGU+OjpMaXN0UHJvcGVydHlUZWFyT2ZmOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJv
cGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50
KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTg1LDQ0ICs4NSw1MCBAQCBwdWJsaWM6CiAg
ICAgICAgIExpc3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKCZtX3dyYXBw
ZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgp
CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIHJldHVybiBt
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNB
bmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygp
OworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgp
IGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV92YWx1ZXM7CiAgICAgfQogCi0gICAgdm9p
ZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwgYm9vbCBzaG91bGRP
d25WYWx1ZXMgPSBmYWxzZSkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVmUHRyPFNWR1Zh
bHVlPiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsK
ICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6
ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFBy
b3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNp
emUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkV3JhcHBlcnMuaXNFbXB0eSgpKTsKIAog
ICAgICAgICAvLyBTd2l0Y2ggdG8gbmV3IHBhc3NlZCBpbiB2YWx1ZSB0eXBlICYgbmV3IHdyYXBw
ZXJzIGxpc3QuIFRoZSBuZXcgd3JhcHBlcnMgbGlzdCBtdXN0IGJlIGNyZWF0ZWQgZm9yIHRoZSBu
ZXcgdmFsdWUuCi0gICAgICAgIGlmICghbmV3QW5pbVZhbC0+aXNFbXB0eSgpKQotICAgICAgICAg
ICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwgbmV3QW5pbVZhbC0+c2l6ZSgpKTsKKyAgICAg
ICAgaWYgKHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm5ld0FuaW1W
YWwpLnNpemUoKSkKKyAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIHNpemUp
OwogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9h
bmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmlt
YXRlZFdyYXBwZXJzLCBzaG91bGRPd25WYWx1ZXMpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3Jh
cHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycyk7CisgICAgICAgIEFTU0VSVCht
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFBy
b3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsK
ICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUm
PigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogCi0g
ICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2Fu
aW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3Bl
cnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogCi0g
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMoJm1fdmFsdWVz
LCAmbV93cmFwcGVycywgZmFsc2UpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5
LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUo
KSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobV92
YWx1ZXMsICZtX3dyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygp
LnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKIAogICAgICAgICBtX2FuaW1hdGVkV3JhcHBl
cnMuY2xlYXIoKTsKQEAgLTE0MiwzNCArMTQ4LDM0IEBAIHB1YmxpYzoKICAgICAgICAgLy8gQWxz
byBleGlzdGluZyB3cmFwcGVycyB3aGljaCBwb2ludCBkaXJlY3RseSBhdCBlbGVtZW50cyBpbiB0
aGUgZXhpc3RpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBoYXZlIHRvIGJlIGRldGFjaGVkIChzbyBh
IGNvcHkKICAgICAgICAgLy8gb2YgdGhlbSBpcyBjcmVhdGVkLCBzbyBleGlzdGluZyBhbmltVmFs
IHZhcmlhYmxlcyBpbiBKUyBhcmUga2VwdC1hbGl2ZSkuIElmIHdlJ2QgZGV0YWNoIHRoZW0gbGF0
ZXIgdGhlIHVuZGVybHlpbmcKICAgICAgICAgLy8gU1ZHTGVuZ3RoTGlzdFZhbHVlcyB3YXMgYWxy
ZWFkeSBtdXRhdGVkLCBhbmQgb3VyIGxpc3QgaXRlbSB3cmFwcGVyIHRlYXIgb2ZmcyB3b3VsZCBw
b2ludCBub3doZXJlLiBBc3NlcnRpb25zIHdvdWxkIGZpcmUuCi0gICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCku
c2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMo
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFBy
b3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndy
YXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3Jh
cHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1
ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBw
ZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAg
IH0KIAogICAgIHZvaWQgYW5pbVZhbERpZENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQo
bV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0
YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBt
X3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgp
OwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3Bl
cnR5VHlwZSYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRl
eHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAg
LCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgewotICAgICAgICBpZiAoIXZhbHVlcy5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7CisgICAgICAg
IGlmIChzaXplX3Qgc2l6ZSA9IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp2YWx1ZXMpLnNp
emUoKSkKKyAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKICAgICB9CiAKLSAg
ICBQcm9wZXJ0eVR5cGUmIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7
CiAKICAgICBMaXN0V3JhcHBlckNhY2hlIG1fd3JhcHBlcnM7CiAgICAgTGlzdFdyYXBwZXJDYWNo
ZSBtX2FuaW1hdGVkV3JhcHBlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDEwLCAyMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTMxLDcgKzMyLDcgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhcgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OwogCi0gICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYg
dmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNzUsOSArNzYsOCBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVCghbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKTsKICAgICAg
ICAgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtID0gYnl0ZVN0cmVhbTsKIAotICAgICAgICAvLyBQ
YXNzIHNob3VsZE93blZhbHVlcz10cnVlLCBhcyB0aGUgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbGlm
ZXRpbWUgaXMgc29sZWx5IG1hbmFnZWQgYnkgaXRzIHRlYXIgb2ZmIGNsYXNzLgotICAgICAgICBh
dXRvKiBjb3B5ID0gbmV3IFNWR1BhdGhTZWdMaXN0VmFsdWVzKCpiYXNlVmFsdWUpOwotICAgICAg
ICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHksIHRydWUpOworICAgICAgICBhdXRvIGNvcHkg
PSBTVkdWYWx1ZTo6Y3JlYXRlKCpiYXNlVmFsdWUpOworICAgICAgICBCYXNlOjphbmltYXRpb25T
dGFydGVkKGNvcHkucHRyKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpA
QCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElmIHRoZSBhbmltVmFsIGlzIG9i
c2VydmVkIGZyb20gSlMsIHdlIGhhdmUgdG8gdXBkYXRlIGl0IG9uIGVhY2ggYW5pbWF0aW9uIHN0
ZXAuCiAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBhbmQgb25seSBk
b25lLCBpZiBzb21lb25lIGFjdHVhbGx5IG9ic2VydmVzIHRoZSBhbmltYXRlZFBhdGhTZWdMaXN0
KCkgd2hpbGUgYW4gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgICAgIGlmIChwYXRoRWxlbWVu
dC0+aXNBbmltVmFsT2JzZXJ2ZWQoKSkgewotICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0
ID0gY3VycmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlz
dCA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmN1cnJlbnRBbmltYXRlZFZh
bHVlKCkpOwogICAgICAgICAgICAgYW5pbWF0ZWRMaXN0LmNsZWFyKCk7CiAgICAgICAgICAgICBi
dWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0oKm1fYW5pbWF0ZWRQYXRoQnl0
ZVN0cmVhbSwgKnBhdGhFbGVtZW50LCBhbmltYXRlZExpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwog
ICAgICAgICB9CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtKiBhbmltYXRlZFBhdGhCeXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBh
dGhCeXRlU3RyZWFtOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRQYXRo
U2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAg
OiBCYXNlKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgdmFsdWVzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbShudWxscHRyKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNWR1ZhbHVlOwogY2xh
c3MgU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1Byb3BlcnR5OwogCkBAIC00OSw3ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCk7CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBPd25lclR5cGUsIHR5cGVuYW1lIFRlYXJPZmZUeXBlLCB0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+Ci0gICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlwZT4gbG9va3VwT3JDcmVhdGVXcmFw
cGVyKE93bmVyVHlwZSogZWxlbWVudCwgY29uc3QgU1ZHUHJvcGVydHlJbmZvKiBpbmZvLCBQcm9w
ZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9y
Q3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyog
aW5mbywgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NF
UlQoaW5mbyk7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHlEZXNjcmlwdGlvbiBrZXkoZWxl
bWVudCwgaW5mby0+cHJvcGVydHlJZGVudGlmaWVyKTsKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFRlYXJPZmZUeXBlJj4oKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogCi0gICAg
ICAgIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0
ZShlbGVtZW50LCBpbmZvLT5hdHRyaWJ1dGVOYW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlw
ZSwgcHJvcGVydHkpOworICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9
IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKTsKICAgICAgICAgaWYgKGluZm8tPmFuaW1hdGVk
UHJvcGVydHlTdGF0ZSA9PSBQcm9wZXJ0eUlzUmVhZE9ubHkpCiAgICAgICAgICAgICB3cmFwcGVy
LT5zZXRJc1JlYWRPbmx5KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlNYWNyb3MuaAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDEwLTIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUs
NiArMjYsNyBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJT
VkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMu
aCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVj
dCBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkgewogICAgIFNWR1N5bmNocm9uaXph
YmxlQW5pbWF0ZWRQcm9wZXJ0eSgpCi0gICAgICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8
UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25p
emUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShTVkdW
YWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKSkKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXphYmxl
QW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkKLSAg
ICAgICAgOiB2YWx1ZSh2YWx1ZTEpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2Up
Ci0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFt
ZXRlcjI+Ci0gICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0
cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUxLCBjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjImIHZh
bHVlMikKLSAgICAgICAgOiB2YWx1ZSh2YWx1ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91bGRT
eW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAg
ICAgICA6IHZhbHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAgICAg
ewogICAgIH0KIApAQCAtNjEsOSArNTAsOSBAQCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmlt
YXRlZFByb3BlcnR5CiAgICAgICAgIG93bmVyRWxlbWVudC0+c2V0U3luY2hyb25pemVkTGF6eUF0
dHJpYnV0ZShhdHRyTmFtZSwgdmFsdWUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSB2YWx1
ZTsKLSAgICBib29sIHNob3VsZFN5bmNocm9uaXplIDogMTsKLSAgICBib29sIGlzVmFsaWQgOiAx
OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFsdWU7CisgICAgYm9vbCBzaG91bGRTeW5jaHJvbml6
ZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIC8vIFByb3Bl
cnR5IHJlZ2lzdHJhdGlvbiBoZWxwZXJzCkBAIC0xMjQsMTkgKzExMywxOSBAQCBwdWJsaWM6IFwK
ICAgICB7IFwKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6
Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJUeXBlLCBUZWFyT2ZmVHlwZT4odGhpcywgTG93ZXJQcm9w
ZXJ0eSMjUHJvcGVydHlJbmZvKCkpKSB7IFwKICAgICAgICAgICAgIGlmICh3cmFwcGVyLT5pc0Fu
aW1hdGluZygpKSBcCi0gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXItPmN1cnJlbnRBbmlt
YXRlZFZhbHVlKCk7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOyBcCiAgICAgICAgIH0g
XAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSk7
IFwKICAgICB9IFwKIFwKICAgICBQcm9wZXJ0eVR5cGUmIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1
ZSgpIGNvbnN0IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG1f
IyNMb3dlclByb3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpOyBcCiAgICAgfSBcCiBcCi0gICAg
dm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHR5
cGUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwKKyAg
ICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYg
dmFsdWUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwK
ICAgICB7IFwKLSAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUgPSB0eXBlOyBcCisgICAg
ICAgIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkg
PSB2YWx1ZTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5pc1ZhbGlkID0gdmFsaWRWYWx1
ZTsgXAogICAgIH0gXAogXApAQCAtMTU2LDcgKzE0NSw3IEBAIHByaXZhdGU6IFwKICAgICB7IFwK
ICAgICAgICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkgXAogICAg
ICAgICAgICAgcmV0dXJuOyBcCi0gICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0
eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkp
OyBcCisgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0
eVR5cGU+Ojp0b1N0cmluZyhzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV8jI0xvd2VyUHJv
cGVydHkudmFsdWUpKSk7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuc3luY2hyb25pemUo
dGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHZhbHVl
KTsgXAogICAgIH0gXAogXApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAgcHVibGljOgogICAg
IHVzaW5nIFByb3BlcnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVydHlU
eXBlOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGlj
IFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0
eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJP
ZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3Bl
cnR5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVy
dHlUZWFyT2ZmPiBiYXNlVmFsKCkKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAobV9iYXNlVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRl
YXJPZmYqPihtX2Jhc2VWYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQmFzZVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAg
ICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VW
YWxSb2xlLCBtX2Jhc2VWYWx1ZSk7CiAgICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVh
dGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CkBAIC01MywzNiAr
NTMsNDIgQEAgcHVibGljOgogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0
dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCi0g
ICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5p
bVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlU
ZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX2Jhc2VWYWx1ZSk7CiAgICAgICAg
IG1fYW5pbVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVybiBw
cm9wZXJ0eTsKICAgICB9CiAKICAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5OyB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRB
bmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVl
KCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0
eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
cHJvcGVydHk7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fYmFzZVZhbHVlOwogICAgIH0KIAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0
eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0
aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7CiAgICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1
ZSgqbmV3QW5pbVZhbCk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobmV3
QW5pbVZhbCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
c2V0VmFsdWUobV9wcm9wZXJ0eSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFs
dWUobV9iYXNlVmFsdWUpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwog
ICAgIH0KIApAQCAtMTA0LDEzICsxMTAsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAg
ICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCi0gICAgICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKKyAg
ICAgICAgLCBtX2Jhc2VWYWx1ZShiYXNlVmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFByb3Bl
cnR5VHlwZSYgbV9wcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fYmFzZVZhbHVlOwog
ICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYmFzZVZhbDsK
ICAgICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2FuaW1WYWw7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCisjaW5j
bHVkZSAiU1ZHVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw1MyArMzMs
NTkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgY29uc3QgUHJvcGVydHlUeXBlJiBhbmltVmFsKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2Fu
aW1hdGVkUHJvcGVydHkpCi0gICAgICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsK
LSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIGlmIChtX2FuaW1hdGVkVmFsdWUp
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fYW5pbWF0
ZWRWYWx1ZSk7CisgICAgICAgIHJldHVybiBiYXNlVmFsKCk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVy
dHkpCisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3Bl
cnR5VHlwZSYgYmFzZVZhbHVlKQogICAgIHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3BlcnR5
OworICAgICAgICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV9iYXNlVmFsdWUpID0gYmFz
ZVZhbHVlOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9CiAKLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9h
bmltYXRlZFByb3BlcnR5OyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZTsgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRl
ZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJv
cGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFzZVZhbHVlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0
RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCBiYXNlVmFsdWUpKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUm
IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmlt
YXRlZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAg
ICAgcmV0dXJuICptX2FuaW1hdGVkUHJvcGVydHk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVk
VmFsdWU7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVl
KCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVl
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBBU1NF
UlQoaXNBbmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkVmFsdWU7CisgICAg
fQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2Jhc2VWYWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFu
aW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0
aW9uU3RhcnRlZChSZWZQdHI8U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBB
U1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAg
ICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG5ld0FuaW1WYWw7CisgICAgICAgIG1fYW5pbWF0ZWRW
YWx1ZSA9IG5ld0FuaW1WYWw7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCiAg
ICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eSA9IG51bGxwdHI7CisgICAgICAgIG1fYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCkBAIC05OSwxNiArMTA2LDE2IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0
ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUpCi0gICAgICAgICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKLSAgICAgICAgLCBtX2FuaW1h
dGVkUHJvcGVydHkobnVsbHB0cikKKyAgICAgICAgLCBtX2Jhc2VWYWx1ZShiYXNlVmFsdWUpCiAg
ICAgeworICAgICAgICBBU1NFUlRfSU1QTElFUyhtX2Jhc2VWYWx1ZSwgbV9iYXNlVmFsdWUtPmlz
PFByb3BlcnR5VHlwZT4oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFByb3BlcnR5VHlwZSYg
bV9wcm9wZXJ0eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICBS
ZWZQdHI8U1ZHVmFsdWU+IG1fYmFzZVZhbHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9hbmlt
YXRlZFZhbHVlOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRl
YXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVy
dHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5
VHlwZSwgdmFsdWVzKSk7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgewogICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdMaXN0UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1LDYgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2Rp
ZmljYXRpb25Vbmtub3duID0gMCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAg
ICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92
ZSA9IDMsCi0gICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5
cGVuYW1lIFByb3BlcnR5VHlwZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZjsKIApAQCAtNzUsMTkgKzY3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBw
ZXJzQW5kUmVzaXplKG1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lk
IHNldFZhbHVlc0FuZFdyYXBwZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlKiB3cmFwcGVycywgYm9vbCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNB
bmRXcmFwcGVycyhjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUqIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFu
aW1WYWwgc3VwcG9ydCwgdG8gc3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJz
CiAgICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRp
b24gZm9yIGEgbGlzdCBzdGFydHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAg
IEFTU0VSVChtX3dyYXBwZXJzKTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9s
ZSk7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1
ZXM7CiAgICAgICAgIG1fdmFsdWVzID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBz
aG91bGRPd25WYWx1ZXM7CiAgICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAg
ICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6Y2xlYXIoKQpAQCAtOTgsNyArODcsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMt
PmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtMTExLDcgKzEwMCw3
IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xl
YXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA4LDcgQEAg
cHVibGljOgogICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVkIG51
bWJlck9mSXRlbXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5zaXpl
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICB9CiAKICAg
ICAvLyBTVkdMaXN0Ojppbml0aWFsaXplKCkKQEAgLTEzNCw4ICsxMjMsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAg
ICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxp
c3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNw
ZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKLSAg
ICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHko
KS5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3Jl
YXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
ICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcgKzEzOSw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsK
IAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0xNTks
OSArMTQ4LDkgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3Rp
bmcgY3VycmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlz
dCB0byBob2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KICAg
ICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsK
KyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogCi0gICAgICAgIG1fdmFsdWVzLT5h
cHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3Bl
cnR5KCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBl
bmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
QEAgLTE3MSw3ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0SXRlbSgpCiAg
ICAgRXhjZXB0aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0g
ICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXgg
Pj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE4NSw3ICsx
NzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCiAgICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20g
dGhlIGxpc3QuIFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEg
Y29weS4KLSAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG1fdmFsdWVzLT5hdChpbmRleCkg
fTsKKyAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IHN0YXRpY19jYXN0PExpc3RJdGVtVHlw
ZSY+KCp2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSkgfTsKICAgICB9CiAKICAgICBFeGNlcHRp
b25PcjxSZWY8TGlzdEl0ZW1UZWFyT2ZmPj4gZ2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAg
LTE5OSwxMyArMTg4LDEzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRo
ZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUg
aXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUg
dG8gdGhlIGl0ZW0gYXJlIGltbWVkaWF0ZWx5IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAg
ICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAg
ICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSBzdGF0aWNfY2FzdDxM
aXN0SXRlbVRlYXJPZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBp
ZiAoIXdyYXBwZXIpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgd3JhcHBlciwgd2hpY2gg
aXMgYWxsb3dlZCB0byBkaXJlY3RseSBtb2RpZnkgdGhlIGl0ZW0gaW4gdGhlIGxpc3QsIHcvbyBj
b3B5aW5nIGFuZCBjYWNoZSB0aGUgd3JhcHBlciBpbiBvdXIgbWFwLgogICAgICAgICAgICAgLy8g
SXQgaXMgYWxzbyBhc3NvY2lhdGVkIHdpdGggb3VyIGFuaW1hdGVkIHByb3BlcnR5LCBzbyBpdCBj
YW4gbm90aWZ5IHRoZSBTVkcgRWxlbWVudCB3aGljaCBob2xkcyB0aGUgU1ZHQW5pbWF0ZWQqTGlz
dAogICAgICAgICAgICAgLy8gdGhhdCBpdCBoYXMgYmVlbiBtb2RpZmllZCAoYW5kIHRodXMgY2Fu
IGNhbGwgc3ZnQXR0cmlidXRlQ2hhbmdlZChhc3NvY2lhdGVkQXR0cmlidXRlTmFtZSkpLgotICAg
ICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwg
VW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVy
ID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2
YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CiAgICAgICAgICAgICBtX3dyYXBwZXJzLT5hdChp
bmRleCkgPSB3cmFwcGVyLT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIH0KIApAQCAtMjIxLDgg
KzIxMCw4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0
byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6
ZSgpKQotICAgICAgICAgICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAo
aW5kZXggPiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFs
dWVzUHJvcGVydHkoKS5zaXplKCk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBh
bHJlYWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJl
Zm9yZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgaWYgKCFwcm9jZXNz
SW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sICZpbmRleCkpIHsKQEAgLTIzMiw3ICsyMjEs
NyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8g
dGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVt
IGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQu
IFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwg
dGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0Lgot
ICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVz
UHJvcGVydHkoKS5pbnNlcnQoaW5kZXgsIFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihu
ZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0
SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0yNDgsMTAgKzIzNywxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNw
ZWM6IElmIHRoZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVt
cywgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4K
LSAgICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4
ID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHko
KS5zaXplKCkpCisgICAgICAgICAgICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwog
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAK
QEAgLTI2MSw3ICsyNTAsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBh
IG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGlu
ZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAg
ICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXgg
aXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250
IG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5w
cm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5k
ZXgsIG5ld0l0ZW0tPnZhbHVlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0
IHBvc2l0aW9uICdpbmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRp
b25zIG9mIG5ld0l0ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAg
ICAgICAgbV93cmFwcGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkp
OwpAQCAtMjc4LDcgKzI2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAg
ICAgaWYgKGluZGV4ID49IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0yOTgsMTMgKzI4NywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0
ZW1UeXBlIHsgbmV3SXRlbSB9OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5p
c0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVt
b3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5n
IHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJy
b3IgfTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYXQgdGhlIGRl
c2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBu
ZXdJdGVtOworICAgICAgICBzdGF0aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVy
dHkoKS5hdChpbmRleCkpID0gbmV3SXRlbTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTMxOSw3ICszMDgsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAK
ICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMzI4LDcg
KzMxNyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdy
YXBwZXIobmV3SXRlbSwgJmluZGV4KSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0
ZW0pOwogCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2
YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fd3JhcHBl
cnMtPmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBp
biBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVh
bnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKQEAgLTM0MCw3ICszMjksNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBvbGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRo
ZSB2YWx1ZSBhbmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4g
Ci0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5j
ZSgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSA9IG5ld0l0ZW0tPnZhbHVl
KCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPmNyZWF0ZVdlYWtQ
dHIoKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTM1NSw3ICszNDQsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAg
ICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGlu
ZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9w
ZXJ0eSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVF
cnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzY4LDggKzM1Nyw4IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBMaXN0SXRl
bVR5cGUgb2xkSXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5y
ZW1vdmUoaW5kZXgpOworICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IHN0YXRpY19jYXN0
PExpc3RJdGVtVHlwZSY+KCp2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CisgICAgICAgIHZh
bHVlc1Byb3BlcnR5KCkucmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuIFdURk1vdmUob2xkSXRlbSk7CkBAIC0zODQsMTYgKzM3MywxNiBAQCBw
dWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAg
ICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNT
RVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAg
ICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlz
dEl0ZW1UZWFyT2ZmPiBvbGRJdGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93
cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAg
ICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5k
ZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICBvbGRJdGVtID0g
TGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1
ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CiAKICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBl
cigpOwogICAgICAgICBtX3dyYXBwZXJzLT5yZW1vdmUoaW5kZXgpOwotICAgICAgICBtX3ZhbHVl
cy0+cmVtb3ZlKGluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgp
OwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbS5yZWxl
YXNlTm9uTnVsbCgpOwpAQCAtNDExLDcgKzQwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vz
c0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQg
dGhlIHZhbHVlIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBl
bmQobmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExp
c3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3
SXRlbSB9OwpAQCAtNDI2LDcgKzQxNSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dy
YXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkg
PT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBu
ZXdJdGVtKGl0ZW0pOwogCkBAIC00MzQsMTkgKzQyMywyNSBAQCBwdWJsaWM6CiAgICAgICAgIHBy
b2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBB
cHBlbmQgdGhlIHZhbHVlIGFuZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAg
ICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAg
ICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBt
X3dyYXBwZXJzLT5hcHBlbmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBj
b21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBXVEZN
b3ZlKG5ld0l0ZW0pOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzKCkKKyAgICBS
ZWY8U1ZHVmFsdWU+IHZhbHVlcygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1
ZXMpOwogICAgICAgICByZXR1cm4gKm1fdmFsdWVzOwogICAgIH0KIAorICAgIFByb3BlcnR5VHlw
ZSYgdmFsdWVzUHJvcGVydHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVz
KTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlcyk7
CisgICAgfQorCiAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwpAQCAtNDU5LDIwICs0NTQsMTMgQEAgcHVibGlj
OgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJz
KQorICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAgICAg
OiBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAgICAgICwg
bV92YWx1ZXMoJnZhbHVlcykKKyAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgICAgICwg
bV93cmFwcGVycyh3cmFwcGVycykKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U1ZHTGlz
dFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAg
ICBkZWxldGUgbV92YWx1ZXM7Ci0gICAgfQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVy
cmlkZSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9u
KQogICAgIHsKQEAgLTQ4Myw4ICs0NzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29s
IHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3
SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3BlcnR5Um9s
ZSBtX3JvbGU7Ci0gICAgYm9vbCBtX293bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3Zh
bHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFwcGVyQ2Fj
aGUqIG1fd3JhcHBlcnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dl
YWtQdHJGYWN0b3J5OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAko
d29ya2luZyBjb3B5KQpAQCAtMzUsMjIgKzM1LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8
UHJvcGVydHlUeXBlPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gdHlwZW5hbWUgU1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2Fj
aGU7CiAKKyAgICB1c2luZyBCYXNlOjp2YWx1ZXNQcm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjpt
X3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFw
cGVyczsKIAotICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5
VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVm
PFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2VsZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7
CiAgICAgfQogCiAgICAgaW50IGZpbmRJdGVtKExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBw
ZXJzKTsKIAogICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAg
ICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNp
emUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+
YXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CkBAIC02MSwxNSArNjAsMTQgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9v
bCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1
ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVz
UHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgbV93cmFwcGVycy0+c2l6ZSgp
KTsKIAogICAgICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpdGVtSW5kZXgpOwogICAg
ICAgICBpdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShp
dGVtSW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAg
IHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3Vs
ZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTEx
Miw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFBy
b3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVl
cywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3Bl
cnR5KQogICAgIHsKQEAgLTEyOSwxOCArMTI3LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQg
Y29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7
CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rp
bmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQu
CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFT
U0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkp
OwogICAgICAgICAgICAgaWYgKCFpdGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQcm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkucHRy
KCkpOwotICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAgICAg
ICAgICAgIGl0ZW0tPnNldFZhbHVlKHZhbHVlc1Byb3BlcnR5KCkuYXQoaSkpOwogICAgICAgICB9
CiAKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5jb21taXRDaGFuZ2UoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJp
eFRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAKICAg
ICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3Bh
cmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRW
YWx1ZShTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVm
ZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0TWF0cml4KHN0YXRpY19jYXN0PFNWR01hdHJpeFZhbHVlJj4oKnZhbHVlKSk7IH0KIAog
ICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFy
T2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRp
b25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdQ
cm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcgKzY2LDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsg
cmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgcHJvcGVydHlSZWZl
cmVuY2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV92YWx1ZSk7IH0K
ICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1
cm4gbV9hbmltYXRlZFByb3BlcnR5LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29w
eSkgeworICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxk
cmVuKCk7Ci0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgICAgICBt
X3ZhbHVlSXNDb3B5ID0gZmFsc2U7Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFsdWU7CisgICAgICAg
IG1fdmFsdWUgPSB2YWx1ZTsKICAgICB9CiAKICAgICB2b2lkIHNldEFuaW1hdGVkUHJvcGVydHko
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEwOSw3ICsxMDksNyBA
QCBwdWJsaWM6CiAgICAgICAgIC8vIGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRvIHJlcG9ydCAnNTAn
IGFuZCBpdCBoYXMgdG8gYmUgcG9zc2libGUgdG8gbW9kaWZ5ICdpdGVtJwogICAgICAgICAvLyB3
L28gY2hhbmdpbmcgdGhlICJuZXcgaXRlbSIgKHdpdGggeD0xMDApIGluIHRoZSB0ZXh0IGVsZW1l
bnQuCiAgICAgICAgIC8vIFdoZW5ldmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVzIHRoZSAieCIgYXR0
cmlidXRlLCBhbGwgZXhpc3Rpbmcgd3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1c2luZyB0aGlzIGZ1
bmN0aW9uLgotICAgICAgICBtX3ZhbHVlID0gbmV3IFByb3BlcnR5VHlwZSgqbV92YWx1ZSk7Cisg
ICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PFByb3BlcnR5VHlw
ZSY+KCptX3ZhbHVlKSk7CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVlOwogICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KQEAgLTEzNiwxMCArMTM2LDEwIEBA
IHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVk
UHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5p
bWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX3ZhbHVl
KCZ2YWx1ZSkKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAsIG1fdmFsdWVJc0Nv
cHkoZmFsc2UpCiAgICAgewogICAgIH0KQEAgLTE1MiwxNyArMTUyLDE2IEBAIHByb3RlY3RlZDoK
ICAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoY29uc3QgUHJvcGVydHlUeXBlKiBpbml0aWFsVmFsdWUp
CiAgICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCiAgICAgICAgICwgbV9yb2xl
KFVuZGVmaW5lZFJvbGUpCi0gICAgICAgICwgbV92YWx1ZShpbml0aWFsVmFsdWUgPyBuZXcgUHJv
cGVydHlUeXBlKCppbml0aWFsVmFsdWUpIDogbnVsbHB0cikKICAgICAgICAgLCBtX3ZhbHVlSXND
b3B5KHRydWUpCiAgICAgeworICAgICAgICBpZiAoaW5pdGlhbFZhbHVlKQorICAgICAgICAgICAg
bV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmluaXRpYWxWYWx1ZSk7CiAgICAgfQogCiAgICAg
dmlydHVhbCB+U1ZHUHJvcGVydHlUZWFyT2ZmKCkKICAgICB7Ci0gICAgICAgIGlmIChtX3ZhbHVl
SXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0YWNo
Q2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAgICAg
fQogCiAgICAgdm9pZCBkZXRhY2hDaGlsZHJlbigpCkBAIC0xNzYsMTAgKzE3NSwxMCBAQCBwcm90
ZWN0ZWQ6CiAKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbV9hbmltYXRlZFByb3Bl
cnR5OwogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3Zh
bHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZTsKICAgICBWZWN0b3I8V2Vha1B0cjxT
VkdQcm9wZXJ0eVRlYXJPZmZCYXNlPj4gbV9jaGlsZFRlYXJPZmZzOwogICAgIFdlYWtQdHJGYWN0
b3J5PFNWR1Byb3BlcnR5VGVhck9mZj4gbV93ZWFrUHRyRmFjdG9yeTsKLSAgICBib29sIG1fdmFs
dWVJc0NvcHk7CisgICAgYm9vbCBtX3ZhbHVlSXNDb3B5IHsgZmFsc2UgfTsKIH07CiAKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjAgKzIwLDQ4IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ29sb3Iu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5j
bHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIExpc3RNb2RpZmljYXRp
b24geworICAgIExpc3RNb2RpZmljYXRpb25Vbmtub3duID0gMCwKKyAgICBMaXN0TW9kaWZpY2F0
aW9uSW5zZXJ0ID0gMSwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCisgICAgTGlz
dE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCisgICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQK
K307CisgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHMgeyB9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
Ym9vbD4gewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgc3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1
cm4gc3RyaW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0
eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiIDogImZhbHNlIjsgfQogfTsKIAogdGVtcGxhdGU8
Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPiB7CisgICAgc3RhdGljIENvbG9yIGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIENvbG9yKCk7IH0KKyAgICBzdGF0aWMgQ29sb3IgZnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZUNvbG9y
KHN0cmluZy5zdHJpcFdoaXRlU3BhY2UoKSk7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxD
b2xvcj4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5n
LnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yLmlzVmFsaWQoKSA/IGNv
bG9yIDogc3RkOjpvcHRpb25hbDxDb2xvcj4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyhjb25zdCBDb2xvciYgdHlwZSkgeyByZXR1cm4gdHlwZS5zZXJpYWxpemVkKCk7IH0K
K307CisKK3RlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czx1bnNpZ25lZD4gewog
ICAgIHN0YXRpYyB1bnNpZ25lZCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CiAgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZyh1bnNpZ25lZCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJl
cih0eXBlKTsgfQpAQCAtNDIsMTkgKzcwLDEwOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
dW5zaWduZWQ+IHsKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+IHsK
ICAgICBzdGF0aWMgaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMg
aW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJnN0cmluZykgeyByZXR1cm4gc3RyaW5nLnRvSW50
U3RyaWN0KCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0eXBlKSB7IHJldHVy
biBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+PiB7CisgICAgc3RhdGljIHN0ZDo6
cGFpcjxpbnQsIGludD4gaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGlj
IHN0ZDo6cGFpcjxpbnQsIGludD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAg
ICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsKKyAg
ICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIs
IHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVt
YmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpKTsKKyAgICB9Cit9
OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+IHsKICAgICBz
dGF0aWMgZmxvYXQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBmbG9h
dCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQg
dHlwZSA9IDA7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCB0
eXBlKSA/IHR5cGUgOiAwOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxmbG9hdD4g
cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsK
KyAgICAgICAgZmxvYXQgbnVtYmVyOworICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJGcm9tU3Ry
aW5nKHN0cmluZywgbnVtYmVyKSA/IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+KCk7Cisg
ICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkgeyByZXR1cm4gU3Ry
aW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMg
c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
KyAgICB7CisgICAgICAgIGZsb2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsK
KyAgICAgICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1i
ZXIsIHNlY29uZE51bWJlcikpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKTsKKyAgICB9Cit9
OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4gewor
ICAgIHN0YXRpYyBGbG9hdFBvaW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UG9pbnQo
KTsgfQorICAgIHN0YXRpYyBGbG9hdFBvaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4gcGFy
c2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDogRmxvYXRQb2ludCgpOworICAgIH0KKyAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBwYXJzZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBv
aW50OworICAgICAgICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDog
c3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IEZsb2F0UG9pbnQmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
dHlwZS55KCkpOworICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307
CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKKyAg
ICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9
CisgICAgc3RhdGljIEZsb2F0UmVjdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qo
c3RyaW5nLCByZWN0KSA/IHJlY3QgOiBGbG9hdFJlY3QoKTsKKyAgICAgICAgCisgICAgfQorICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7
CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3QgOiBzdGQ6Om9w
dGlvbmFsPEZsb2F0UmVjdD4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBGbG9hdFJlY3QmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLndpZHRoKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8U3RyaW5nPiB7CiAgICAgc3RhdGljIFN0cmluZyBpbml0aWFsVmFsdWUoKSB7
IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU3Ry
aW5nJiB0eXBlKSB7IHJldHVybiB0eXBlOyB9CisgICAgc3RhdGljIFN0cmluZyBmcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJp
bmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CiB9OwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbnVtVHlwZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFp
dHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFzZTo6bV9y
b2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZhbHVlc1By
b3BlcnR5OwogCiAgICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4
dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQogICAgIHsKQEAgLTc2LDcgKzc2LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRl
YXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQor
ICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKFVuZGVm
aW5lZFJvbGUsIHZhbHVlcywgbnVsbHB0cikKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCpj
b250ZXh0RWxlbWVudCkKICAgICB7CkBAIC04OSw4ICs4OSw3IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudCk7
CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQp
OwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBM
aXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3Rh
dGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gVXNlZCBmb3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBlcyB0aGF0IGFyZSBu
b3QgYXNzb2NpYXRlZCB3aXRoIGEgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvYmplY3QsIG5vciB3aXRo
IGEgWE1MIERPTSBhdHRyaWJ1dGUKICAgICAvLyAoZm9yIGV4YW1wbGU6IFNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGUpLgotICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRF
bGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9k
IHVwZGF0ZSkKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2Qg
dXBkYXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0
RWxlbWVudCwgdmFsdWUsIHVwZGF0ZSkpOwogICAgIH0KQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwgeyAobV9jb250ZXh0RWxlbWVudC5nZXQo
KS0+Km1fdXBkYXRlKSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHU3RhdGljUHJvcGVydHlUZWFy
T2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwg
VXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4
dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwg
VXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICAgICAgOiBQcm9wZXJ0eVRlYXJPZmYoVW5kZWZpbmVk
Um9sZSwgdmFsdWUpCiAgICAgICAgICwgbV91cGRhdGUodXBkYXRlKQogICAgICAgICAsIG1fY29u
dGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333938</attachid>
            <date>2018-02-15 13:38:38 -0800</date>
            <delta_ts>2018-02-15 15:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180215133838.patch</filename>
            <type>text/plain</type>
            <size>340298</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODUyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzMCBAQAorMjAxOC0wMi0xNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBsZWFrIGFuZCB1c2UtYWZ0
ZXItCisgICAgICAgIGZyZWUgYnVncy4gVGVhci1vZmYgb2JqZWN0cyBhcmUgY3JlYXRlZCBvbiBk
ZW1hbmQuIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGV5CisgICAgICAgIGFyZSBjcmVhdGVkIHdoZW4g
YW5pbWF0aW5nIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlIG9yIHdoZW4gY3JlYXRpbmcgYQor
ICAgICAgICBET00gb2JqZWN0IGZvciB0aGF0IGF0dHJpYnV0ZS4gVGhlIHByb2JsZW0gaXMgdGhl
c2UgdGVhci1vZmYgb2JqZWN0cyBob2xkCisgICAgICAgIGEgcmF3IHJlZmVyZW5jZSB0byB0aGUg
U1ZHRWxlbWVudCdzIGF0dHJpYnV0ZS4gVG8ga2VlcCB0aGlzIHJlZmVyZW5jZSB2YWxpZCwKKyAg
ICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXItb2ZmIG9iamVjdCB1c2VkIHRv
IGhvbGQgYSBSZWZQdHIgdG8gZWFjaAorICAgICAgICBvdGhlciB3aGljaCB3YXMgY2F1c2luZyBh
IG1lbW9yeSBsZWFrLiBXaGVuIHRoaXMgc3Ryb25nIGRvdWJsZSByZWZlcmVuY2luZworICAgICAg
ICB3YXMgcmVsYXhlZCBieSB1c2luZyBXZWFrUHRyIG9yIHJhdyBwb2ludGVyIGZyb20gb25lIHNp
ZGUgdG8gdGhlIG90aGVyLCBhCisgICAgICAgIHVzZS1hZnRlci1mcmVlIGJ1Z3Mgd2VyZSBoYXBw
ZW5pbmcuIEEgbW9yZSBzdWJ0bGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4KKyAgICAgICAgdGhl
IHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluIGEgbGlzdCBhdHRy
aWJ1dGUuIEV2ZW4gaWYKKyAgICAgICAgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhlIHRlYXIt
b2ZmIGV4aXN0IGluIG1lbW9yeSwgYSB1c2UtYWZ0ZXItZnJlZSBtYXkKKyAgICAgICAgaGFwcGVu
IGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMgcmVhbGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5vdCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9m
IHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2ggaXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2Jq
ZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBp
c3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50
ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGluZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZl
cnkgZGF0YSB0eXBlIG9mIHRoZSBTVkcgYXR0cmlidXRlcyBkb2VzCisgICAgICAgIG5vdCBsb29r
IHRoZSBjbGVhbmVzdCBzb2x1dGlvbi4gQmVzaWRlcywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRo
ZSB1bmlvbgorICAgICAgICBTVkdBbmltYXRlZFR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgYWxs
IHRoZSBkYXRhIHR5cGVzLiBTbyBoZXJlIGlzIHRoZQorICAgICAgICBvdXRsaW5lIG9mIHRoaXMg
cGF0Y2g6CisKKyAgICAgICAgLS0gQ3JlYXRlIHRoZSBjbGFzcyBTVkdWYWx1ZSB3aGljaCBpcyBh
IHZhcmlhbnQgb2YgYWxsIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAgIGJhc2ljIGRhdGEgdHlw
ZXMgaW5jbHVkaW5nIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgU1ZHIGF0dHJpYnV0
ZQorICAgICAgICBsaXN0cy4KKworICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRv
IGhvbGQgdHdvIFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAg
YW5kIG9ubHkgdXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEg
dHlwZXMuCisKKyAgICAgICAgLS0gQ2hhbmdlIGFsbCB0aGUgYXR0cmlidXRlcyBvZiBhbGwgdGhl
IFNWR0VsZW1lbnQgdG8gYmUgb2YgdHlwZSBSZWZQdHI8U1ZHVmFsdWU+LgorCisgICAgICAgIC0t
IENoYW5nZSBhbGwgdGhlIGxpc3QgYXR0cmlidXRlcyB0byBiZSBvZiB0eXBlIFZlY3RvcjxSZWZQ
dHI8U1ZHVmFsdWU+Pi4KKworICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmpl
Y3RzIHRvIGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcg
YSByYXcgcmVmZXJlbmNlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzIGZv
ciBTVkdWYWx1ZSBhbmQgU1ZHTGlzdFZsYXVlcy4gTW92ZSBkZWZpbml0aW9ucyBmcm9tCisgICAg
ICAgIFNWR01hcmtlckVsZW1lbnQuaCB0byBTVkdNYXJrZXJUeXBlcy5oLiBNb3ZlIGRlZmluaXRp
b25zIG9mIFNWR1JlY3RUcmFpdHMuaAorICAgICAgICB0byBTVkdQcm9wZXJ0eVRyYWl0cy5oLgor
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9t
UG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJE
YXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
Z2xlOjpjcmVhdGUpOiBSZXBsYWNlIHRoZSBwYXJhbWV0ZXIgU1ZHQW5nbGVWYWx1ZSYgYnkKKyAg
ICAgICAgUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpTVkdB
bmdsZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxldGVkLiBNb3ZlZCB0byBTVkdQYXJzZXJVdGls
aXRpZXMuY3BwLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgVXNlIHRoZSBTVkdQcm9wZXJ0eVRyYWl0czo6ZnJvbVN0cmluZyB0byBjcmVh
dGUgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUKKyAgICAgICAgU1ZHQW5pbWF0ZWRUeXBlLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmlt
YXRpb24pOgorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcygpIG5vdyByZXR1cm5zIGEg
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRBbmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICBEb24ndCBw
YXNzIFNWR0FuaW1hdGVkVHlwZSBnZXR0ZXIgdG8gcmVzZXRGcm9tQmFzZVZhbHVlcygpLiBUaGUg
UHJvcGVydHlUWXBlCisgICAgICAgIGNhbiBiZSB1c2VkIHRvIGdldCB0aGUgZGF0YSBlbGVtZW50
IGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
QW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIENhc3QgdGhlIFNWR1Zh
bHVlIGVsZW1lbnRzIHRvIHRoZSByZXF1aXJlZCBkYXRhIG1lbWJlcnMuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOiBE
aXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5Bbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0
dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkRW51bWVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25B
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0
b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRv
cjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5n
dGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1h
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAg
ICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpw
YXJzZU51bWJlckZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0
ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4K
KworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8u
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
ZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjphbmdsZUFuZEVudW1lcmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdl
ck9wdGlvbmFsSW50ZWdlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6Omxlbmd0aExpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRM
aXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
cHJlc2VydmVBc3BlY3RSYXRpbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGU6OnJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1MaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFs
TnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZl
QXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBl
OjpyZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNm
b3JtTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIFNpbXBsaWZ5IFNWR0FuaW1hdGVkVHlwZS4gSXQg
aXMgbm93IGEgc3RydWN0IHdoaWNoIGhhcyB0d28gUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAg
VGhlIHNlY29uZCBwb2ludGVyIGNhbiBiZSBudWxsIGV4cGVjdCB3aXRoIHRoZSB0eXBlcyB3aXRo
IHR3byB2YWx1ZXMuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlKTogQ29uc3RydWN0IHRoZSAKKyAgICAgICAgYW5pbWF0ZWQgU1ZHVmFsdWUgZnJv
bSB0aGUgU1ZHVmFsdWUgb2YgdGhlIGJhc2UgdmFsdWUgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICAg
ICAgICBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRv
cjo6cmVzZXRGcm9tQmFzZVZhbHVlKTogUmVzZXQgdGhlIGFuaW1hdGVkCisgICAgICAgIFNWR1ZB
bHVlIHRvIHRoZSBTVkdWYWx1ZSBvZiB0aGUgYmFzZSB2YWx1ZSBiZWZvcmUgZW5kaW5nIHRoZSBh
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29u
c3RydWN0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFzIAorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlKCkgYnV0IGZvciB0d28tU1ZHQXZsdWVzIGFuaW1hdGVkIHR5cGVzLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOiBT
YW1lIGFzCisgICAgICAgIHJlc2V0RnJvbUJhc2VWYWx1ZSgpIGJ1dCBmb3IgdHdvLVNWR0F2bHVl
cyBhbmltYXRlZCB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yOjpleGVjdXRlQWN0aW9uKToKKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVt
ZW50KTogRXhwbGljaXRseSBjcmVhdGUgYW4KKyAgICAgICAgU1ZHTGVuZ3RoVmFsdWUgd2hpY2gg
d2lsbCBpbXBsaWNpdGx5IGZvcmNlIGNhbGxpbmcgdGhlIGNvbnN0cnVjdG9yIG9mCisgICAgICAg
IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eS4KKworICAgICAgICAqIHN2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6
U1ZHRWxsaXBzZUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpidWls
ZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdG
b3JlaWduT2JqZWN0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpT
VkdMZW5ndGgpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
TGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6
CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojppbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46
OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojp0b1N0cmluZyk6CisgICAgICAgIFNWR0xlbmd0aExp
c3RWYWx1ZXMgaXMgbm93IGEgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uIEhvd2V2ZXIgdGhl
CisgICAgICAgIG9ubHkgZXhwZWN0ZWQgdmFsdWUgaW4gdGhlIGVsZW1lbnRzIG9mIHRoaXMgdmVj
dG9yIGlzIFNWR0xlbmd0aFZhbHVlLgorCisgICAgICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46OnBh
cnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVl
Pjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5
IGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0eUF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZh
bHVlczo6Zmlyc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzOjpmaXJzdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxh
c3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpsYXN0
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6cHJvcGVydGllcyBj
b25zdCk6CisgICAgICAgIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIHRoZSBTVkcgbGlz
dCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHRvIGhhdmUKKyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9u
IG9mIHNvbWUgZnVuY3Rpb24gYmUgaW4gYSBzb3VyY2UgZmlsZSB0byB3b3JrIGFyb3VuZAorICAg
ICAgICBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGlzc3Vlcy4gVGhlIFNWRyBsaXN0IGF0dHJpYnV0
ZXMgY2FuIGJlIG9uZSBvZgorICAgICAgICBTVkdWYWx1ZSBkYXRhIG1lbWJlcnMgYnV0IGF0IHRo
ZSBzYW1lIHRpbWUgaXQgaXMgdmVjdG9yIG9mIFJlZlB0cjxTVkdWYWx1ZT4uCisKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJF
bGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVs
ZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJr
ZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5p
dHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+
Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1p
dHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5
cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgVGhpcyBjb2RlIGlzIG1vdmVkIHRvIHRoZSBuZXcgZmlsZSBTVkdNYXJrZXJUeXBl
cy5oLgorCisgICAgICAgICogc3ZnL1NWR01hcmtlclR5cGVzLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVu
dW1WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJV
bml0c1R5cGU+Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFy
a2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKToKKyAgICAgICAgKiBzdmcv
U1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OlNW
R01hc2tFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnRy
YW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNjYWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGVOb25Vbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6cm90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRl
RnJvbVZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmZsaXBYKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4Ojpza2V3WCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNrZXdZKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6U1ZHTWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHTnVt
YmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdOdW1iZXI6OlNWR051bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxp
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0
VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVl
cz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VQb2ludCk6IFRoaXMgZnVuY3Rp
b24gd2FzIG1vdmVkIGZyb20gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6cG9pbnRzTGlzdEZyb21TVkdEYXRhKToKKworICAgICAgICAqIHN2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuaDoKKworICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3RyZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
Qnl0ZVN0cmVhbTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgor
ICAgICAgICBBZGQgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBvcGVyYXRvci4KKwor
ICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVs
ZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEVsZW1lbnQ6OnN5bmNocm9uaXplRCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVu
dDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKToKKworICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9s
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZXBsYWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdMaXN0Lmg6CisgICAgICAgIEFjY2VzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyB0aHJv
dWdoIHZhbHVlc1Byb3BlcnR5KCkgaW5zdGVhZCBvZiBtX3ZhbHVlcworICAgICAgICB3aGljaCBp
cyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1v
dmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0
aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9D
dWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9D
dWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1
cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
OjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdM
aXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICBTdG9yZSBhIG5ldyBSZWZQdHI8U1ZHVmFsdWU+IGZv
ciBldmVyeSBTVkdQYXRoU2VnLgorCisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1Nl
Z21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0
Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRT
VkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICBBbnN3ZXIgU2ltb24ncyBxdWVzdGlvbnMgd2hp
Y2ggd2VyZSBhZGRlZCBpbiByMTkwODQ0LgorCisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50OjpTVkdQb2ludCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+Ojpmcm9tU3Ry
aW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50cyk6CisgICAgICAgICogc3ZnL1NWR1BvbHlF
bGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6cG9pbnRMaXN0IGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8pOgorICAg
ICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZT46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6
U1ZHUmVjdCk6CisKKyAgICAgICAgKiBzdmcvU1ZHUmVjdFRyYWl0cy5oOiBSZW1vdmVkLiBUaGlz
IHN0cnVjdCB3YXMgbW92ZWQgdG8gU1ZHUHJvcGVydHlUcmFpdHMuaAorCisgICAgICAgICogc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZH
U1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50
VHJhbnNsYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZVZhbHVlKToKKyAgICAgICAgKiBz
dmcvU1ZHU3RyaW5nTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmg6CisgICAgICAgICogc3ZnL1NWR1Rlc3RzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpTVkdUZXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6
cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnN5bmNocm9uaXpl
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0
aEFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVt
ZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNW
R1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojp0b1N0cmluZyk6Cisg
ICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9T
VkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1Vz
ZUVsZW1lbnQpOgorCisgICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6dG9TdHJpbmdWaXNpdG9yOjpvcGVyYXRvcigpKTogVGhpcyB2aXNpdG9yIHJldHVy
bnMgdGhlIHN0cmluZworICAgICAgICBvZiB0aGUgYWx0ZXJuYXRpdmUgb2YgU1ZHVmFsdWVWYXJp
YW50LgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpwYXJzZVZpc2l0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpvcGVyYXRvcigpKTogVGhpcyByZXBsYWNlcyB0
aGUgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAgU1ZHVmFsdWVWYXJpYW50IHdpdGggdGhlIHZhbHVl
IHdlIGdldCBmcm9tIHBhcnNpbmcgdGhlIHN0cmluZyBvZiBhbgorICAgICAgICBhdHRyaWJ1dGUu
CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6b3BlcmF0
b3IgY29uc3QgUHJvcGVydHlUeXBlJiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1
ZTo6b3BlcmF0b3IgUHJvcGVydHlUeXBlJik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnBhcnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpTVkdWYWx1ZSk6CisKKyAgICAgICAgKiBzdmcvU1ZH
Vmlld0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld0VsZW1lbnQ6OlNWR1Zp
ZXdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6CisKKyAgICAgICAgKiBzdmcv
U1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdT
cGVjKTogSW5pdGlhbGl6ZSBwb2ludGVycyB3aXRoIHRoZSBkZWZhdWx0CisgICAgICAgIHZhbHVl
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZH
Vmlld1NwZWMuaDoKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgTm8gbmVlZCBmb3IgdGhlIGNhc3Rpbmcg
Y3VycmVudEFuaW1hdGVkVmFsdWUoKSBtZXRob2Qgc2luY2UgdGhlIGJhc2UgY2xhc3MKKyAgICAg
ICAgbWV0aG9kIG5vdyByZXR1cm5zIGEgUmVmUHRyPFNWR1ZhbHVlPi4gVGhlIGNhc3Rpbmcgd2ls
bCBoYXBwZW4gd2hlbiBnZXR0aW5nCisgICAgICAgIHRoZSBlbnVtIHZhbHVlIGZyb20gdGhlIFNW
R1ZhbHVlLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50
QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JD
cmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5TWFjcm9zLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHk6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1W
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6
OnNldEJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
OjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
U3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oOgorCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
c3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1Byb3BlcnR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6U1ZHTGlzdFByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6flNWR0xpc3RQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgIE5vIG5lZWQgZm9yIG1fb3duc1ZhbHVlcyBhbnltb3JlLiBtX3ZhbHVlcyBp
cyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LiBJdAorICAgICAgICB3aWxsIGJlIGRlbGV0ZWQgb25j
ZSB0aGUgcmVmLWNvdW50IGJlY29tZXMgemVyby4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpmaW5kSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmOjp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6
OnByb3BlcnR5UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9m
Zjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQ
cm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+
U1ZHUHJvcGVydHlUZWFyT2ZmKToKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6
ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xv
cj46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29s
b3I+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpm
cm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6
cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46
OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9h
dFBvaW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxGbG9hdFBvaW50Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8RmxvYXRQb2ludD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6dG9TdHJpbmcpOgorICAgICAgICBIYXZlIGFs
bCB0aGUgU1ZHUHJvcGVydHlUcmFpdHMgd2l0aCBubyBzcGVjaWZpYyBTVkcgdHlwZSBiZSBpbiBv
bmUgZmlsZS4KKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJP
ZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oOgorCiAyMDE4LTAyLTE1ICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBIYXJmQnV6ekZhY2U6IHJld29y
ayBjYWNoZSBlbnRyeSByZWZlcmVuY2UgaG9sZGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDcxLDcgKzIwNzEsNiBAQCBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmNwcAogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAK
IHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCi1zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNw
cAogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcAogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwCiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTIxMzUsNiArMjEzNCw3IEBAIHN2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAogc3ZnL1NW
R0xpbmVFbGVtZW50LmNwcAogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKK3N2Zy9T
VkdMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xvY2F0YWJsZS5jcHAKIHN2Zy9TVkdNUGF0aEVsZW1l
bnQuY3BwCiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTYzMiw3ICsxNjMyLDE1IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDEx
MUFBMCAvKiBJbWFnZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3
Q0NDQ0IwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNv
ZGluZ09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYw
QUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0
MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1NThCNjk5ODIwMjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDky
NDU3QiAvKiBTVkdWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFE
RDNCM0I5MDBFOTJEQTMgLyogU1ZHQW5nbGVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBT
VkdOdW1iZXJMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzM5QzM2OTFEREI4NkQzMDBGRUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAw
RkVGQjI5IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNW
R1BvaW50TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MzOUMzNkIxRERCODcxQzAwRkVGQjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2
OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0Qx
QzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0
RDc1RjQgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4
MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTND
MDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJh
Y2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAw
MjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE5MzAsNyArMTkzOCw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkw
MEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpT
QW5pbWF0aW9uRWZmZWN0VGltaW5nLmggKi87IH07CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQw
OCAvKiBKU0tleWZyYW1lRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MTU1NkNCNzFGOUYwOUZDMDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVj
dC5oICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNv
bnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJF
MjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1Bh
dGhVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1Bh
dGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0
ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFD
QTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcx
IC8qIEpTU1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzFEQ0I3MDAxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5o
ICovOyB9OwogCQk3MUUyMTgzQTE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4Mzgx
NzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCAqLzsgfTsKQEAgLTIwMzIsNyAr
MjA0MCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFG
ODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhG
QUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5
NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8q
IEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMu
aCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlD
MzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdD
MzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBG
RUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdT
dHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5
MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQx
QTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNl
ck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIu
Y3BwICovOyB9OwpAQCAtMjE2NCwxMCArMjE3Miw5IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3
MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZDMUYyQUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVx
dWVzdE1vZGUuaCAqLzsgfTsKIAkJN0NFMTkxN0IxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hS
ZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0
LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1
QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1
MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICov
OyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAx
Mjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07Ci0JCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAv
KiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVl
LmggKi87IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIx
REQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87IH07CisJCTdDRTU4RDU4MURE
N0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNW
R1RyYW5zZm9ybVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFE
RDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0
RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVz
c2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjMwOSw3ICsyMzE2LDcgQEAKIAkJODNGRTdDQTcxREE5
RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudElu
aXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3
MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3Jt
YW5jZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsg
fTsKLQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBE
OTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1C
dWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87
IH07CiAJCTg0MTlEMkFEMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQy
QUIxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJ
CTg0MTlEMkJBMTIwRTBDNzYwMDE0MUY4RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3
NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggKi87IH07CkBAIC0yMzM2LDcgKzIz
NDMsNyBAQAogCQk4NDczMEQ5MzEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEy
NDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFE
RjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAv
KiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1
QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDc2QzlFODExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIu
aCAqLzsgfTsKLQkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkx
MURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oICovOyB9OworCQk4NDc2QzlFQzEx
REY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZH
UGF0aENvbnN1bWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZB
NTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggKi87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMw
MENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5C
bHVyLmggKi87IH07CiAJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJC
QkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyODEs
OSArMzI4OCw5IEBACiAJCUIyMjI3QTRCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEI1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJ
QjIyMjdBNEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR01QYXRoRWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMjc4QkIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIg
LyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCMjIyN0E1OTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oICovOyB9OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsK
KwkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdQYXRoU2VnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjIyMjdBNUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZH
UGF0aFNlZ0Nsb3NlUGF0aC5oICovOyB9OwogCQlCMjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjIyMjc4Q0YwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWMuaCAqLzsgfTsKQEAgLTcyODMsNyArNzI5MCw2IEBACiAJCTQzOUQzMzQxMTNBNjkx
MUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MzlEMzM0MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFj
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBB
NUYwQTcgLyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAv
KiBTVkdBbmltYXRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1Rjcx
M0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0
cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTc0LDEwICs4MTgw
LDEzIEBACiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmll
ZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTUw
NEU5NDIwMkNERkQyMDA1MDdDNzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdMaXN0VmFsdWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1
MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW1hZ2VUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY29kaW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVy
Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVy
Q0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAz
NDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VEZWNvZGVyQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdC
NzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
TGlzdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNC
MzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHTWFya2VyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTg1LDYgKzgxOTQsNyBAQAogCQk1NUFGMTRFMzFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJ
UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFD
NTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUw
IC8qIFNWR0ltYWdlQ2xpZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdJbWFnZUNsaWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAx
RTRCRkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3
MUU1Mzg1MTYwMDM1NjYwMSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2
MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNBZXNDYmNDZmJQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcw
NDQwNUIxRTUzOTM3OTAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk0NjYsNyArOTQ3Niw2IEBACiAJCTdDRTE5MTZFMUYy
QUI3MEQwMDI3MkY3QiAvKiBKU0NhY2hlUXVlcnlPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQ2FjaGVRdWVyeU9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Q0UxOTE2RjFGMkFCNzBGMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUy
IC8qIFNWR051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1i
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4
NTUyIC8qIFNWR0xlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdM
ZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAw
MTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0xlbmd0aFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIyNDMxLDcgKzIyNDQwLDYgQEAKIAkJCQk3MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQgLyog
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAqLywKIAkJCQkwODI1MDkzODEyOEJENEQ4MDBF
MkVEOEUgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8sCiAJCQkJQjIyMjc3RjgwRDAw
QkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJNDNB
MEYwQjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8sCiAJCQkJNDM5
RDMzNDAxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZC
Q0U5MTc4QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJ
CQkJNDM5RDMzNDExM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgg
Ki8sCkBAIC0yMjYzMiwxMSArMjI2NDAsMTQgQEAKIAkJCQlCMjIyNzhBNTBEMDBCRjIwMDA3MUI3
ODIgLyogU1ZHTGluZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEE2MEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdMaW5lRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAv
KiBTVkdMaW5lRWxlbWVudC5pZGwgKi8sCisJCQkJNTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8q
IFNWR0xpc3RWYWx1ZXMuY3BwICovLAorCQkJCTU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBT
VkdMaXN0VmFsdWVzLmggKi8sCiAJCQkJQjIyMjc4QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xv
Y2F0YWJsZS5jcHAgKi8sCiAJCQkJQjIyMjc4QUIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0
YWJsZS5oICovLAogCQkJCUIyMjI3OEFEMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVt
ZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBRTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxl
bWVudC5oICovLAogCQkJCUIyMjI3OEFGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVt
ZW50LmlkbCAqLywKKwkJCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlw
ZXMuaCAqLywKIAkJCQlCMjIyNzhCMDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQu
Y3BwICovLAogCQkJCUIyMjI3OEIxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5o
ICovLAogCQkJCUIyMjI3OEIyMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5pZGwg
Ki8sCkBAIC0yMjc3MCw3ICsyMjc4MSw2IEBACiAJCQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIg
LyogU1ZHUmVjdEVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHUmVjdEVsZW1lbnQuaWRsICovLAotCQkJCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBT
VkdSZWN0VHJhaXRzLmggKi8sCiAJCQkJQjIyMjc5MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1Jl
bmRlcmluZ0ludGVudC5oICovLAogCQkJCUIyMjI3OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdS
ZW5kZXJpbmdJbnRlbnQuaWRsICovLAogCQkJCUIyMjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBT
VkdTY3JpcHRFbGVtZW50LmNwcCAqLywKQEAgLTIyODQ3LDYgKzIyODU3LDcgQEAKIAkJCQlCMjIy
Nzk1NjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5
NTcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1ODBE
MDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5pZGwgKi8sCisJCQkJNTVFNDRBRTAxRTRC
RkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8sCiAJCQkJQjIyMjc5NTkwRDAwQkYyMTAwNzFC
NzgyIC8qIFNWR1ZpZXdFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzk1QTBEMDBCRjIxMDA3MUI3
ODIgLyogU1ZHVmlld0VsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1QjBEMDBCRjIxMDA3MUI3ODIg
LyogU1ZHVmlld0VsZW1lbnQuaWRsICovLApAQCAtMjk2OTMsNiArMjk3MDQsNyBAQAogCQkJCTY1
NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
QW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBT
VkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0
OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBI
ZWFkZXJzICovLApAQCAtMjk4MDQsNiArMjk4MTYsNyBAQAogCQkJCUIyMjI3QTNDMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxMDc2NDQx
MjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1NjI3Qjc4MjAyOTJCRjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9j
YXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAwNDQyMzQgLyog
U1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4MTYsNiArMjk4
MjksNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1i
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdO
dW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQg
LyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNTcwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTI5ODU0LDYgKzI5ODY4LDcgQEAKIAkJCQlCMjIyN0E4MTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2
MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUMyMDI1NDYwNTAwNEQ3NUY0IC8qIFNWR1BhdGhT
ZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFF
NjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzYx
NzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENvbnRleHQuaCBp
biBIZWFkZXJzICovLApAQCAtMjk4NjUsMTAgKzI5ODgwLDEyIEBACiAJCQkJQjIyMjdBODgwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTU4QjY5OUUyMDI1NDYyQjAwNEQ3NUY0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2
MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVG
MURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTI5
ODc2LDcgKzI5ODkzLDYgQEAKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhF
MDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0
RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QUEwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdS
ZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzNyw3IEBACiAJCQkJ
QjIyMjdBREEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybWFibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QUREMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5j
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Ry
YW5zZm9ybUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVG
NCAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1
ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUUyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBRTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyOCw2ICsyOTk0NSw3IEBACiAJCQkJMzdDNzM4RUQxRURC
RDVCQzAwM0YyQjBCIC8qIFNWR1Vua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FFQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVVJJUmVmZXJlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0FFRDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTU4QjY5OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0FGMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdW
aWV3U3BlYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4NTIyOEIxMTkwMTczQzAwNkVEQzdGIC8q
IFNWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCwxNiArMTAwLDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZH
RWxlbWUKIAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50
PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMg
PSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+
dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3Qo
KSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVydHkoKSk7CiAKICAgICB1bnNp
Z25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQoaSkpOworICAgICAg
ICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7CiAKICAgICBwYXRoLmNsb3Nl
U3VicGF0aCgpOwogICAgIHJldHVybiBwYXRoOwpAQCAtMTE3LDE2ICsxMTcsMTYgQEAgc3RhdGlj
IFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbAogCiBzdGF0aWMgUGF0aCBwYXRoRnJv
bVBvbHlsaW5lRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50
cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMo
KS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlm
IChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRo
OwotICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2lu
dHMuZmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGgu
YWRkTGluZVRvKHBvaW50cy5hdChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5w
cm9wZXJ0eUF0KGkpKTsKICAgICByZXR1cm4gcGF0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJp
YnV0ZXNCdWlsZGVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjMsMTUgKzE2MywxNSBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlcjo6YnVpCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25l
ZCBpLCBmbG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdDaGFyYWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBT
VkdMZW5ndGhDb250ZXh0JiBsZW5ndGhDb250ZXh0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVz
KiB4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0
aExpc3RWYWx1ZXMqIGR4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHlMaXN0LCBj
b25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzKiByb3RhdGVMaXN0KQogewogICAgIGlmICh4TGlzdCkK
LSAgICAgICAgZGF0YS54ID0geExpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAg
ICAgICBkYXRhLnggPSB4TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsK
ICAgICBpZiAoeUxpc3QpCi0gICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS55ID0geUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUo
bGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR4TGlzdCkKLSAgICAgICAgZGF0YS5keCA9IGR4TGlz
dC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHggPSBkeExpc3Qt
PnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAg
ICAgICAgZGF0YS5keSA9IGR5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAg
ICAgIGRhdGEuZHkgPSBkeUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7
CiAgICAgaWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0
LT5hdChpKTsKKyAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkp
OwogICAgICAgICBsYXN0Um90YXRpb24gPSBkYXRhLnJvdGF0ZTsKICAgICB9CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5nbGUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdBbmdsZSA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZH
QW5nbGVWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRl
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7
CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmdsZShpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0FuZ2xlPiBjcmVhdGUoY29uc3QgU1ZHQW5nbGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7
Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxTVkdBbmdsZT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0xMzYsNyArMTMx
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5n
bGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVlPigmYW5p
bWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwxMSArMTQw
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1
ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdBbmdsZShj
b25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsMzEgKzEzNiw2IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW0K
ICAgICB1cGRhdGVBbmltYXRpb25Nb2RlKCk7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQo
Y29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVy
cyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNo
YXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVyczsKLSAgICBjb25zdCBVQ2hhciogZW5kID0g
Y3VyICsgcy5sZW5ndGgoKTsKLSAgICAKLSAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhj
dXIsIGVuZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsK
LSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAotICAgIGZsb2F0IHkgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQs
IHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50
KHgsIHkpOwotICAgIAotICAgIC8vIGRpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQg
dGhlIGVuZAotICAgIHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0K
LSAgICAKIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkK
IHsKICAgICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMiAr
MzIsMTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmltYXRlZEFuZwogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3Rk
OjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAg
ICBhdXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKLQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBv
cmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21T
dHJpbmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUgPiAwKQotICAgICAgICBh
bmltYXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7
Ci0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29u
c3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
czxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVz
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU3LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmlt
VgogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNW
R0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZh
bHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTc1LDEzICs2NSwxMyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6
YWRkQW5pbWF0CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEFuZ2xlKTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0g
ICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVl
Jj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0Fu
Z2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBh
dXRvJiB0b0VudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1sx
XSk7CiAgICAgLy8gT25seSByZXNwZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFy
ZSBib3RoIHNwZWNpZmllZCBpbiBhbmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCi0gICAgaWYg
KGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24u
c2Vjb25kIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmll
bnRBbmdsZSkKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uICE9IHRvRW51bWVyYXRpb24gfHwgZnJv
bUVudW1lcmF0aW9uICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQogICAgICAgICByZXR1cm47Ci0g
ICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7
Ci0gICAgYXV0byYgdG9BbmdsZSA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKICAgICB0
b0FuZ2xlLnNldFZhbHVlKHRvQW5nbGUudmFsdWUoKSArIGZyb21BbmdsZS52YWx1ZSgpKTsKIH0K
IApAQCAtOTAsNDggKzgwLDQ5IEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxj
dWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250
ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKSA6IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJh
dGlvbigpOwotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9
IHRvQXRFbmRPZkR1cmF0aW9uLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24o
KTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4o
KmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgdG9BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0Fu
Z2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlvbiA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1ZXNbMV0pOworICAgIGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKnRvQXRFbmRPZkR1
cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkQW5nbGUgPSBzdGF0aWNfY2Fz
dDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1h
dGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVz
WzFdKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9Bbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCkgeworICAgIGlmIChmcm9tRW51bWVyYXRpb24gIT0gdG9F
bnVtZXJhdGlvbikgewogICAgICAgICAvLyBEaXNjcmV0ZSBhbmltYXRpb24gLSBubyBsaW5lYXIg
aW50ZXJwb2xhdGlvbiBwb3NzaWJsZSBiZXR3ZWVuIHZhbHVlcyAoZS5nLiBhdXRvIHRvIGFuZ2xl
KS4KICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPCAwLjVmKSB7Ci0gICAgICAgICAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vj
b25kOwotICAgICAgICAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBT
VkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3QgPSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdDsKKyAgICAgICAg
ICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBmcm9tRW51bWVyYXRpb247CisgICAgICAgICAgICBp
ZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAg
ICAgIGFuaW1hdGVkQW5nbGUgPSBmcm9tQW5nbGU7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOwor
ICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNl
Y29uZCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgIGlmICh0b0FuZ2xl
QW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICAg
ICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0ID0gdG9BbmdsZUFuZEVudW1lcmF0
aW9uLmZpcnN0OworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gdG9FbnVtZXJhdGlvbjsK
KyAgICAgICAgaWYgKHRvRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAg
ICAgICAgICBhbmltYXRlZEFuZ2xlID0gdG9BbmdsZTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgICAg
ICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZSgwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpIHsKKyAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtlck9yaWVudEFu
Z2xlKSB7CiAgICAgICAgIC8vIFJlZ3VsYXIgZnJvbSBhbmdsZSB0byBhbmdsZSBhbmltYXRpb24s
IHdpdGggc3VwcG9ydCBmb3Igc21vb3RoIGludGVycG9sYXRpb24sIGFuZCBhZGRpdGl2ZSBhbmQg
YWNjdW11bGF0ZWQgYW5pbWF0aW9uLgotICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50QW5nbGU7CisgICAgICAgIGFuaW1hdGVkRW51bWVy
YXRpb24gPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsKIAotICAgICAgICBhdXRvJiBhbmltYXRlZFNW
R0FuZ2xlID0gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBjb25z
dCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0FuZ2xlID0gdG9BdEVuZE9mRHVyYXRpb25Bbmds
ZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAgICBmbG9hdCBhbmltYXRlZEFuZ2xlID0gYW5p
bWF0ZWRTVkdBbmdsZS52YWx1ZSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xlQW5kRW51
bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0LnZhbHVl
KCksIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZSk7Ci0g
ICAgICAgIGFuaW1hdGVkU1ZHQW5nbGUuc2V0VmFsdWUoYW5pbWF0ZWRBbmdsZSk7CisgICAgICAg
IGZsb2F0IGFuaW1hdGVkQW5nbGVWYWx1ZSA9IGFuaW1hdGVkQW5nbGUudmFsdWUoKTsKKyAgICAg
ICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwg
cmVwZWF0Q291bnQsIGZyb21BbmdsZS52YWx1ZSgpLCB0b0FuZ2xlLnZhbHVlKCksIHRvQXRFbmRP
ZkR1cmF0aW9uQW5nbGUudmFsdWUoKSwgYW5pbWF0ZWRBbmdsZVZhbHVlKTsKKyAgICAgICAgYW5p
bWF0ZWRBbmdsZS5zZXRWYWx1ZShhbmltYXRlZEFuZ2xlVmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgLy8gYXV0bywgYXV0by1zdGFydC1yZXZlcnNlLCBvciB1bmtub3duLgot
ICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICBh
bmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQotICAgICAgICBh
bmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24uc2Vjb25kOworICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0
byB8fCBmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVtZXJhdGlvbjsKICAgICBlbHNl
Ci0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJP
cmllbnRVbmtub3duOworICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gU1ZHTWFya2VyT3Jp
ZW50VW5rbm93bjsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxh
dGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJp
bmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMiBAQCBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcjo6U1ZHQW5pbWF0ZWRCCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVCb29sZWFuKHN0ZDo6bWFrZV91bmlxdWU8Ym9vbD4oKSk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5ib29sZWFuKCkgPSAoc3RyaW5nID09ICJ0cnVlIik7IC8vIHdhdD8KLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9w
ZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcykp
OworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4o
YW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1h
dGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9v
bGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGJvb2wgZnJvbUJvb2xlYW4g
PSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFu
aW1hdGVkLT5ib29sZWFuKCkgOiBmcm9tLT5ib29sZWFuKCk7Ci0gICAgYm9vbCB0b0Jvb2xlYW4g
PSB0by0+Ym9vbGVhbigpOwotICAgIGJvb2wmIGFuaW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5i
b29sZWFuKCk7CisgICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRl
ZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGJvb2wmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAg
ICBib29sIHRvQm9vbGVhbiA9IHN0YXRpY19jYXN0PGJvb2wmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gc3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+
dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlw
ZTxib29sPihwZXJjZW50YWdlLCBmcm9tQm9vbGVhbiwgdG9Cb29sZWFuLCBhbmltYXRlZEJvb2xl
YW4pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRv
cjo6U1ZHQW5pbWF0ZWRDb2wKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6
bWFrZV91bmlxdWU8Q29sb3I+KENTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCkpKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3Bl
cnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9t
LCBTVkdBbmltYXRlZFR5cGUqIHRvKQpAQCAtNDQsOCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVk
Q29sb3JBbmltYXRvcjo6YWRkQW5pbWF0CiAgICAgQVNTRVJUKHRvLT50eXBlKCkgPT0gQW5pbWF0
ZWRDb2xvcik7CiAKICAgICAvLyBJZ25vcmVzIGFueSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBvbiBy
ZXN1bHQgdG8gMTAwJSBvcGFxdWUuCi0gICAgYXV0byYgZnJvbUNvbG9yID0gZnJvbS0+Y29sb3Io
KTsKLSAgICBhdXRvJiB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgYXV0byYgZnJvbUNvbG9y
ID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0Nv
bG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8tPnZhbHVlc1swXSk7CiAgICAgdG9Db2xvciA9
IHsgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLnJlZCgpICsgZnJvbUNvbG9yLnJl
ZCgpKSwKICAgICAgICAgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0b0NvbG9yLmdyZWVuKCkg
KyBmcm9tQ29sb3IuZ3JlZW4oKSksCiAgICAgICAgIHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwo
dG9Db2xvci5ibHVlKCkgKyBmcm9tQ29sb3IuYmx1ZSgpKSB9OwpAQCAtNjksOCArNjksOCBAQCB2
b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5p
bWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29s
b3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+Y29sb3IoKSA6IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3Ig
dG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIENvbG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIENvbG9yIHRvQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+
dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9y
RnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwg
ZnJvbUNvbG9yLCBtX2NvbnRleHRFbGVtZW50KTsKQEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdB
bmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0ZQogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1l
bnQtPnRvUHJvcGVydHlWYWx1ZVR5cGUoKSA9PSBDdXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAg
dG9Db2xvciA9IGN1cnJlbnRDb2xvcigqbV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0
b0F0RW5kT2ZEdXJhdGlvbkNvbG9yID0gdG9BdEVuZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAg
YXV0byYgYW5pbWF0ZWRDb2xvciA9IGFuaW1hdGVkLT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uQ29sb3IgPSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0b0F0RW5kT2ZEdXJhdGlv
bi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gc3RhdGljX2Nhc3Q8Q29s
b3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xv
ciAtIHRoaXMgd2lsbCBuZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBk
aWZmZXJlbnQgY29sb3Igc3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBb
MC0yNTVdIENvbG9ycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDE0ICsxMDks
MTIgQEAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpTVkdBbmltYQogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVCht
X2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAg
ICBhbmltYXRlZFR5cGUtPmVudW1lcmF0aW9uKCkgPSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0
QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlv
bkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVl
Rm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBt
X2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjQs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RvCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVy
YXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9u
KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0
ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9y
OjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCkBAIC0xNDksOSArMTQ3LDkgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1l
cmF0aW9uQW5pbWF0b3I6OmNhbAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlv
biA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmVudW1lcmF0aW9uKCkgOiBmcm9tLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2ln
bmVkIHRvRW51bWVyYXRpb24gPSB0by0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5p
bWF0ZWRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVk
IGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1sw
XSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHVuc2ln
bmVkIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRlRGlzY3JldGVUeXBlPHVuc2lnbmVkPihwZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24s
IHRvRW51bWVyYXRpb24sIGFuaW1hdGVkRW51bWVyYXRpb24pOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVk
SQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJB
bmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6
Om1ha2VfdW5pcXVlPGludD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyKCkgPSBzdHJp
bmcudG9JbnRTdHJpY3QoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5n
KHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBT
VkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pCiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICByZXNl
dEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphZGRBbmltCiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEludGVnZXIpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+aW50ZWdlcigpICs9IGZyb20t
PmludGVnZXIoKTsKKyAgICBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3Rh
dGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1swXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVt
ZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQgdG9JbnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRp
b25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50ZWdlcikKQEAgLTgzLDEwICs4MSwxMCBAQCB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0
aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgaW50IGZy
b21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+aW50ZWdlcigpIDogZnJvbS0+aW50ZWdlcigpOwotICAgIGludCB0
b0ludGVnZXIgPSB0by0+aW50ZWdlcigpOwotICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVn
ZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdlcigpOwotICAgIGludCYgYW5pbWF0ZWRJbnRl
Z2VyID0gYW5pbWF0ZWQtPmludGVnZXIoKTsKKyAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52
YWx1ZXNbMF0pOworICAgIGludCB0b0ludGVnZXIgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZh
bHVlc1swXSk7CisgICAgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHN0YXRpY19jYXN0
PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBpbnQmIGFuaW1hdGVk
SW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAg
IGNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBmcm9tSW50ZWdlciwgdG9JbnRlZ2VyLCB0b0F0RW5kT2ZEdXJhdGlvbklu
dGVnZXIsIGFuaW1hdGVkSW50ZWdlcik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIzICszMywxMiBAQCBTVkdBbmlt
YXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5p
bWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGludCwgaW50Pj4oKSk7Ci0gICAgc3RkOjpwYWly
PGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWRUeXBlLT5pbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyKCk7Ci0gICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwOwotICAgIGZsb2F0IHNlY29u
ZE51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywg
Zmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZp
cnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IDA7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Pihyb3Vu
ZGYoZmlyc3ROdW1iZXIpKTsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLnNlY29uZCA9IHN0YXRp
Y19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpOwotICAgIH0KLSAgICByZXR1cm4gYW5p
bWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAog
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZElu
dGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTU5LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJB
bgogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Cisg
ICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50
ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc3LDExICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJU
KGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQs
IGludD4mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsK
LSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRp
b25hbEludGVnZXIoKTsKLQotICAgIHRvSW50ZWdlclBhaXIuZmlyc3QgKz0gZnJvbUludGVnZXJQ
YWlyLmZpcnN0OwotICAgIHRvSW50ZWdlclBhaXIuc2Vjb25kICs9IGZyb21JbnRlZ2VyUGFpci5z
ZWNvbmQ7CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19j
YXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGludCY+KCp0by0+
dmFsdWVzWzFdKSArPSBzdGF0aWNfY2FzdDxpbnQmPigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZH
QW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUq
IHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtODksMTMg
Kzc1LDE3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBB
U1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7
CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVk
LT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkgOiBmcm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5p
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYg
dG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRl
Z2VyUGFpciA9IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7CisgICAgY29uc3Qg
aW50JiBmb3JtRmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0
YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8
aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0ZpcnN0ID0gc3RhdGlj
X2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9TZWNvbmQgPSBz
dGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5k
T2ZEdXJhdGlvbkZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52
YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQgPSBzdGF0
aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7CisgICAgaW50JiBh
bmltYXRlZEZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwor
ICAgIGludCYgYW5pbWF0ZWRTZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZh
bHVlc1sxXSk7CiAKLSAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGZyb21JbnRlZ2VyUGFpci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVy
YXRpb25JbnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFpci5maXJzdCk7Ci0gICAg
U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2Fu
aW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIu
c2Vjb25kLCB0b0ludGVnZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFp
ci5zZWNvbmQsIGFuaW1hdGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKKyAgICBTVkdBbmltYXRlZElu
dGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVu
dCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZvcm1GaXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9m
RHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNl
bnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRp
b25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0
aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBAQCBTVkdBbmltYXRl
ZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwg
c3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZh
bHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpA
QCAtNDgsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmlt
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZH
QW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMs
IHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTY3LDggKzY3LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRB
bmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKICAgICBTVkdM
ZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7Ci0gICAgY29uc3Qg
YXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoID0g
dG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBzdGF0aWNfY2FzdDxT
VkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvTGVuZ3RoID0g
c3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB0b0xl
bmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGgu
dmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENvbnRleHQpOwogfQpAQCAtODUsMTAgKzg1LDEw
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAg
ICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGgoKSA6IGZyb20tPmxlbmd0aCgpOwot
ICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+bGVuZ3RoKCk7Ci0gICAgY29uc3QgYXV0byYgdG9B
dEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoKCk7Ci0g
ICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+bGVuZ3RoKCk7CisgICAgYXV0
byBmcm9tU1ZHTGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFs
dWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byB0b1NWR0xlbmd0aCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRv
LT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVl
c1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5n
dGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhl
cml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRh
bmNlPFNWR0xlbmd0aFZhbHVlPihwYXJzZUxlbmd0aEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxl
bWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21TVkdMZW5ndGgsIG1fY29udGV4dEVs
ZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlz
dC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OlNWR0FuaW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xl
bmd0aExpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNl
KHN0cmluZywgbV9sZW5ndGhNb2RlKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJl
dHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhM
aXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcsIG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRv
cjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVMZW5ndGhMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2
b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYg
dHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0Pihh
bmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTsKKyAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQpAQCAtNjgsOCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9y
OjphZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tTGVuZ3RoTGlzdCA9IGZyb20tPmxlbmd0aExpc3QoKTsKLSAgICBhdXRvJiB0b0xlbmd0
aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMm
PigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tTGVuZ3RoTGlzdFNpemUgPSBm
cm9tTGVuZ3RoTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTGVuZ3RoTGlzdFNpemUgfHwgZnJv
bUxlbmd0aExpc3RTaXplICE9IHRvTGVuZ3RoTGlzdC5zaXplKCkpCkBAIC03Nyw3ICs3NSw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKIAogICAgIFNWR0xlbmd0
aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZnJvbUxlbmd0aExpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTGVuZ3Ro
TGlzdFtpXS5zZXRWYWx1ZSh0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgKyBm
cm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7Cisg
ICAgICAgIHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5w
cm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExpc3QucHJvcGVy
dHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CiB9CiAKIHN0YXRp
YyBTVkdMZW5ndGhMaXN0VmFsdWVzIHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcoU1ZHQW5pbWF0
aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC05
MiwxMCArOTAsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwog
ICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVt
ZW50KTsKIAotICAgIGF1dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBm
cm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlz
dCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0
ID0gYW5pbWF0ZWQtPmxlbmd0aExpc3QoKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNf
Y2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGlj
X2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8g
dG9MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFs
dWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSBz
dGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1
ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xl
bmd0aExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBD
U1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJ
bmhlcml0YW5jZTxTVkdMZW5ndGhMaXN0VmFsdWVzPihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5n
LCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3Ro
TGlzdCwgbV9jb250ZXh0RWxlbWVudCk7CkBAIC0xMTAsMTggKzEwOCwxOCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjCiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxl
bmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRvTGVuZ3RoTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBhbmltYXRlZE51bWJl
ciA9IGFuaW1hdGVkTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKLSAgICAgICAg
U1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVuZ3RoTGlzdFtpXS51bml0VHlwZSgpOworICAg
ICAgICBmbG9hdCBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0
KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBl
ID0gdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsKICAgICAgICAgZmxvYXQg
ZWZmZWN0aXZlRnJvbSA9IDA7CiAgICAgICAgIGlmIChmcm9tTGVuZ3RoTGlzdFNpemUpIHsKICAg
ICAgICAgICAgIGlmIChwZXJjZW50YWdlIDwgMC41KQotICAgICAgICAgICAgICAgIHVuaXRUeXBl
ID0gZnJvbUxlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKLSAgICAgICAgICAgIGVmZmVjdGl2ZUZy
b20gPSBmcm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgICAg
ICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsK
KyAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2
ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0
aW9uTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRF
bmRPZkR1cmF0aW9uTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQp
IDogMDsKIAotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJl
cihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0W2ld
LnZhbHVlKGxlbmd0aENvbnRleHQpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7
Ci0gICAgICAgIGFuaW1hdGVkTGVuZ3RoTGlzdFtpXS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBh
bmltYXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CisgICAgICAgIG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBlZmZlY3RpdmVGcm9tLCB0b0xlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhD
b250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOworICAgICAgICBhbmlt
YXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmlt
YXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDE2ICszMiwxMiBAQCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpTVkdBbmlt
YXRlZE51CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihz
dGQ6Om1ha2VfdW5pcXVlPGZsb2F0PigpKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBh
bmltYXRlZFR5cGUtPm51bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0
cmluZywgYW5pbWF0ZWROdW1iZXIpKQotICAgICAgICBhbmltYXRlZE51bWJlciA9IDA7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUo
U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpz
dGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51
bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5
cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1i
ZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUxLDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJl
ckFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmlt
YXRlZFR5cGU6Om51bWJlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVt
YmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OSwxNCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRl
ZE51bWJlckFuaW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5p
bWF0ZWROdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAK
LSAgICB0by0+bnVtYmVyKCkgKz0gZnJvbS0+bnVtYmVyKCk7CisgICAgc3RhdGljX2Nhc3Q8Zmxv
YXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVz
WzBdKTsKIH0KIAogc3RhdGljIGZsb2F0IHBhcnNlTnVtYmVyRnJvbVN0cmluZyhTVkdBbmltYXRp
b25FbGVtZW50KiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgZmxvYXQgbnVtYmVyID0g
MDsKLSAgICBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpOwotICAgIHJldHVy
biBudW1iZXI7CisgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmlu
ZyhzdHJpbmcpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNW
R0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBl
KiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEw
ICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAg
QVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQp
OwogCi0gICAgZmxvYXQgZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlcigpIDogZnJvbS0+bnVtYmVy
KCk7Ci0gICAgZmxvYXQgdG9OdW1iZXIgPSB0by0+bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9BdEVu
ZE9mRHVyYXRpb25OdW1iZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+bnVtYmVyKCk7Ci0gICAgZmxv
YXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWQtPm51bWJlcigpOworICAgIGZsb2F0IGZyb21O
dW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHN0YXRp
Y19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVl
c1swXSk7CisgICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVs
ZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4o
cGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZh
bHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2NvbnRleHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDEyIEBAIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZU51bWJlckxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdOdW1iZXJMaXN0VmFsdWVzPigpKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm51bWJlckxpc3QoKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBh
bmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVOdW1iZXJMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDksNyArNDcs
NyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVk
VHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJM
aXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5
cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6YW5p
bVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNjcsMjUgKzY1LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVy
TGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNv
bnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJvbS0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8m
IHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51
bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlz
dFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIHVuc2lnbmVkIGZyb21OdW1iZXJMaXN0
U2l6ZSA9IGZyb21OdW1iZXJMaXN0LnNpemUoKTsKICAgICBpZiAoIWZyb21OdW1iZXJMaXN0U2l6
ZSB8fCBmcm9tTnVtYmVyTGlzdFNpemUgIT0gdG9OdW1iZXJMaXN0LnNpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyb21OdW1iZXJMaXN0U2l6
ZTsgKytpKQotICAgICAgICB0b051bWJlckxpc3RbaV0gKz0gZnJvbU51bWJlckxpc3RbaV07Cisg
ICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvTnVtYmVyTGlzdFtpXSkgKz0gc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqZnJvbU51bWJlckxpc3RbaV0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVk
VHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVk
VHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAKLSAg
ICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlckxpc3QoKSA6IGZyb20t
Pm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+bnVtYmVy
TGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWROdW1iZXJM
aXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVy
TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBd
KSA6IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0
VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RWYWx1ZXMmPigqdG9BdEVu
ZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0g
c3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsK
ICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdO
dW1iZXJMaXN0VmFsdWVzPihmcm9tTnVtYmVyTGlzdCwgdG9OdW1iZXJMaXN0LCBhbmltYXRlZE51
bWJlckxpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk0LDkgKzkyLDkg
QEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6Y2FsYwogICAgIHVuc2lnbmVk
IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA9IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5zaXpl
KCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9OdW1iZXJMaXN0U2l6ZTsgKytp
KSB7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBm
cm9tTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBp
IDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0W2ld
IDogMDsKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIo
cGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdFtpXSwg
ZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0W2ldKTsKKyAgICAgICAgZmxvYXQg
ZWZmZWN0aXZlRnJvbSA9IGZyb21OdW1iZXJMaXN0U2l6ZSA/IGZyb21OdW1iZXJMaXN0LnByb3Bl
cnR5QXQoaSkgOiAwOworICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRF
bmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5wcm9wZXJ0eUF0
KGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1i
ZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5w
cm9wZXJ0eUF0KGkpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlckxpc3QucHJvcGVy
dHlBdChpKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE4ICszMywxMiBAQCBTVkdBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyQW5pbWF0b3I6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RkOjptYWtlX3VuaXF1
ZTxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4mIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRUeXBlLT5udW1iZXJPcHRpb25hbE51bWJlcigp
OwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihzdHJpbmcsIGFuaW1hdGVkTnVt
YmVyLmZpcnN0LCBhbmltYXRlZE51bWJlci5zZWNvbmQpKSB7Ci0gICAgICAgIGFuaW1hdGVkTnVt
YmVyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIuc2Vjb25kID0gMDsKLSAgICB9
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+Ojpmcm9tU3Ry
aW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIo
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVt
YmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVz
PFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC01NCw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlckFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0
b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNl
dEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIp
OworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVk
TnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcyLDExICs2Niw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChm
cm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBmcm9tLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwot
ICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0
aW9uYWxOdW1iZXIoKTsKLQotICAgIHRvTnVtYmVyUGFpci5maXJzdCArPSBmcm9tTnVtYmVyUGFp
ci5maXJzdDsKLSAgICB0b051bWJlclBhaXIuc2Vjb25kICs9IGZyb21OdW1iZXJQYWlyLnNlY29u
ZDsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2Fz
dDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRv
LT52YWx1ZXNbMV0pICs9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBT
VkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlw
ZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwx
MyArNzUsMTcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAg
IEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50
KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCkgOiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1i
ZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0g
dG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5u
dW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmlt
YXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBj
b25zdCBhdXRvJiBmb3JtRmlyc3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNb
MF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBh
dXRvJiBmb3JtU2Vjb25kID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxmbG9hdCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6
IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYg
dG9GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0
IGF1dG8mIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1sxXSk7Cisg
ICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRp
b24tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgYW5pbWF0ZWRGaXJzdCA9IHN0YXRpY19jYXN0PGZs
b2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkU2Vjb25kID0g
c3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAgICBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3Vu
dCwgZnJvbU51bWJlclBhaXIuZmlyc3QsIHRvTnVtYmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVy
YXRpb25OdW1iZXJQYWlyLmZpcnN0LCBhbmltYXRlZE51bWJlclBhaXIuZmlyc3QpOwotICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBmcm9tTnVtYmVyUGFpci5zZWNvbmQsIHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRF
bmRPZkR1cmF0aW9uTnVtYmVyUGFpci5zZWNvbmQsIGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQp
OworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmly
c3QsIGFuaW1hdGVkRmlyc3QpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0
aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwg
dG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBACiAKICNp
bmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0aAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U3RyaW5nKHN0cmluZywgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhC
eXRlU3RyZWFtPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC00Myw5ICs0MCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW0KICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAKICAgICAvLyBCdWls
ZCBpbml0aWFsIHBhdGggYnl0ZSBzdHJlYW0uCi0gICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VW
YWwoYW5pbWF0ZWRUeXBlcywgYnl0ZVN0cmVhbS5nZXQoKSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwor
ICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsK
KyAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1h
dG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OCw3ICs1NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQ
YXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZj4gcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFs
VHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwogICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IHBy
b3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGJhc2VWYWx1ZSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJl
ZFBhcnNpbmcpOworICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqYmFzZVZhbHVlKSwgKmJ5
dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTVkdBbmlt
YXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPj4gcmVzdWx0OwogCkBAIC03Miw3ICs2OSw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBpZiAoIXJl
c3VsdC5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9j
a2VyIGJsb2NrZXIoKnByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKICAgICAgICAgZm9yIChh
dXRvJiBzZWdtZW50IDogcmVzdWx0KQotICAgICAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3Rh
cnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1h
dGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJnN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVz
Jj4oKmJhc2VWYWx1ZSkpOwogICAgIH0KIH0KIApAQCAtODAsNyArNzcsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXMuc2l6ZSgpID49IDEpOwogICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAg
IHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAg
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsICZzdGF0aWNfY2FzdDxTVkdQYXRo
Qnl0ZVN0cmVhbSY+KCp0eXBlLnZhbHVlc1swXSkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0
aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC05OCwxMiArOTUsMTIgQEAgdm9pZCBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0g
QW5pbWF0ZWRQYXRoKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwog
Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21QYXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNW
R1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21Q
YXRoU2l6ZSA9IGZyb21QYXRoLT5zaXplKCk7Ci0gICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJv
bVBhdGhTaXplICE9IHRvUGF0aC0+c2l6ZSgpKQorICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0g
c3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBh
dXRvJiB0b1BhdGggPSBzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVz
WzBdKTsKKyAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAg
aWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0
aCk7CisgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9t
LCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9u
LCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlv
bkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhC
eXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9m
RHVyYXRpb25QYXRoID0gdG9BdEVuZE9mRHVyYXRpb24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0
ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9t
UGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRlU3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgYXV0byYgdG9QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gc3RhdGljX2Nh
c3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRQYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigq
YW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVT
dHJlYW0+IHVuZGVybHlpbmdQYXRoOwogICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1Rv
QW5pbWF0aW9uKSB7Ci0gICAgICAgIHVuZGVybHlpbmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5
KCk7Ci0gICAgICAgIGZyb21QYXRoID0gdW5kZXJseWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAg
IGlmIChpc1RvQW5pbWF0aW9uKQorICAgICAgICBmcm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAog
ICAgIC8vIENhY2hlIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRB
bmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCkgY2xlYXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYg
KCFmcm9tUGF0aC0+c2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAm
JiAhaXNUb0FuaW1hdGlvbikpCi0gICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBh
dGgtPmNvcHkoKTsKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAg
IGlmICghZnJvbVBhdGguc2l6ZSgpIHx8IChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUo
KSAmJiAhaXNUb0FuaW1hdGlvbikpCisgICAgICAgIGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRl
ZFBhdGg7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRl
ZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5pbWF0aW9uIGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNW
R1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0aEJ5dGVTdHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50
bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8
U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVy
Y2VudGFnZSwgZmFsc2UpKQorICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9t
VG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRlU3RyZWFtPihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRl
ZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRB
bmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCpmcm9tUGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0
aCwgcGVyY2VudGFnZSk7CisgICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21Q
YXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUg
YWRkaXRpdmU9J3N1bScuCi0gICAgaWYgKGxhc3RBbmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRv
U1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAg
IGlmICghbGFzdEFuaW1hdGVkUGF0aC5pc0VtcHR5KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5
dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBsYXN0QW5pbWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRs
ZSBhY2N1bXVsYXRlPSdzdW0nLgogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11
bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkKLSAgICAgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgq
YW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9mRHVyYXRpb25QYXRoLCByZXBlYXRDb3VudCk7CisgICAg
ICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlv
blBhdGgsIHJlcGVhdENvdW50KTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjpTVkdBbmltYXRlCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0g
ICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFuaW1hdGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmlu
Zyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmlu
ZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1
Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBA
IC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEK
IAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2lu
dExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMjUgKzY3LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2lu
dExpc3RBbmltYXRvcjo6YWRkQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
UG9pbnRzKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAg
Y29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8m
IHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2lu
dExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBd
KTsKKyAgICBhdXRvJiB0b1BvaW50TGlzdCA9ICBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNpZ25lZCBmcm9tUG9pbnRMaXN0U2l6ZSA9
IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVBvaW50TGlzdFNpemUgfHwgZnJv
bVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAgdG9Qb2lu
dExpc3QucHJvcGVydHlBdChpKSArPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBl
KiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1
cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQogewogICAgIEFTU0VSVChtX2FuaW1h
dGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBv
aW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9Qb2ludExp
c3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Q
b2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYg
ZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUG9pbnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVl
c1swXSk7CisgICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2lu
dExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9m
RHVyYXRpb25Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG9B
dEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3Qg
PSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7
CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZH
UG9pbnRMaXN0VmFsdWVzPihmcm9tUG9pbnRMaXN0LCB0b1BvaW50TGlzdCwgYW5pbWF0ZWRQb2lu
dExpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk4LDE0ICs5NiwxNCBA
QCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRvUG9pbnRMaXN0U2l6ZTsgKytpKSB7CiAgICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlRnJvbTsKICAgICAgICAgaWYgKGZyb21Qb2ludExpc3RTaXplKQotICAgICAg
ICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2ludExpc3RbaV07Ci0gICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5k
T2ZEdXJhdGlvblBvaW50TGlzdFtpXSA6IEZsb2F0UG9pbnQoKTsKKyAgICAgICAgICAgIGVmZmVj
dGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CisgICAgICAgIEZsb2F0UG9p
bnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5k
T2ZEdXJhdGlvblBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpIDogRmxvYXRQb2ludCgpOwogCi0gICAg
ICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAgICAgICAg
ZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAgICBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRD
b3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0aXZlVG9B
dEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnko
KSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsK
LSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5p
bWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExpc3QucHJv
cGVydHlBdChpKS54KCk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRM
aXN0LnByb3BlcnR5QXQoaSkueSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54
KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwg
YW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVO
dW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50
TGlzdC5wcm9wZXJ0eUF0KGkpLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7
CisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkgPSBGbG9hdFBvaW50KGFu
aW1hdGVkWCwgYW5pbWF0ZWRZKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjoKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjptYWtl
X3VuaXF1ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkpOwotICAgIGFuaW1hdGVkVHlw
ZS0+cHJlc2VydmVBc3BlY3RSYXRpbygpLnBhcnNlKHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9p
ZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogCiB2b2lkIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cHJl
c2VydmVBc3BlY3RSYXRpbyk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkg
KzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYQogICAgIEFT
U0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsK
IAotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+cHJlc2Vy
dmVBc3BlY3RSYXRpbygpIDogZnJvbS0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGNvbnN0
IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9IHRvLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7
Ci0gICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQtPnByZXNl
cnZlQXNwZWN0UmF0aW8oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRp
byA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmFuaW1hdGVkLT52YWx1
ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmZyb20t
PnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gc3Rh
dGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZl
QXNwZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0CiAK
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlx
dWU8RmxvYXRSZWN0PigpKTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJl
Y3QoKSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJp
bmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRS
ZWN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlUmVjdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4o
YW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRl
ZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9y
OjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6cmVjdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVj
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDcgKzY1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RB
bmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRS
ZWN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8t
PnJlY3QoKSArPSBmcm9tLT5yZWN0KCk7CisgICAgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRv
LT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0p
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9m
RHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC03NSwxMCArNzMsMTAgQEAg
dm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNv
bnN0IEZsb2F0UmVjdCYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1v
ZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5yZWN0KCkgOiBmcm9tLT5yZWN0KCk7Ci0g
ICAgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QgPSB0by0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0
UmVjdCYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPnJlY3QoKTsK
LSAgICBGbG9hdFJlY3QmIGFuaW1hdGVkUmVjdCA9IGFuaW1hdGVkLT5yZWN0KCk7CisgICAgY29u
c3QgYXV0byYgZnJvbVJlY3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVz
WzBdKSA6IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNv
bnN0IGF1dG8mIHRvUmVjdCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBd
KTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblJlY3QgPSBzdGF0aWNfY2FzdDxG
bG9hdFJlY3QmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5p
bWF0ZWRSZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0p
OwogCiAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRSZWN0LngoKTsKICAgICBmbG9hdCBh
bmltYXRlZFkgPSBhbmltYXRlZFJlY3QueSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSwxNCArMzIsMTIgQEAg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6U1ZHQW5pbWF0ZWRTdAogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RG
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBl
ID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+c3RyaW5nKCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29u
c3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOwor
ICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmlt
YXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCkBAIC00OCw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRv
cjo6c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1W
YWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
OjpzdHJpbmcpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNzYsOSArNzUsOSBAQCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5p
bWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyb21TdHJpbmcgPSBmcm9tLT5z
dHJpbmcoKTsKLSAgICBTdHJpbmcgdG9TdHJpbmcgPSB0by0+c3RyaW5nKCk7Ci0gICAgU3RyaW5n
JiBhbmltYXRlZFN0cmluZyA9IGFuaW1hdGVkLT5zdHJpbmcoKTsKKyAgICBTdHJpbmcgZnJvbVN0
cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIFN0cmlu
ZyB0b1N0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBT
dHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U3RyaW5nPihwYXJzZVN0cmlu
Z0Zyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCks
IGZyb21TdHJpbmcsIG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxNSArNDEsMTIgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OlNWR0FuaQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlVHJhbnNmb3JtTGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+
KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3Jt
VHlwZVN0cmluZyArIHN0cmluZyArICcpJyk7Ci0gICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJh
bnNmb3JtTGlzdCgpLnNpemUoKSA8PSAxKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhtX3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJp
bmcgKyAnKScpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJl
dHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzU2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6cwogCiB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1h
dG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVz
ZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywg
dHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk7CisgICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hh
bmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
QEAgLTc3LDE1ICs3NCwxNSBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
OjphCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0
b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZy
b21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAgICAgYXV0byBmcm9t
VHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFm
cm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNm
b3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNm
b3JtTGlzdFNpemUgPT0gMSk7Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21U
cmFuc2Zvcm1MaXN0WzBdOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0
WzBdOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlzdC5w
cm9wZXJ0eUF0KDApOworICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnBy
b3BlcnR5QXQoMCk7CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybS50eXBlKCkgPT0gdG9UcmFu
c2Zvcm0udHlwZSgpKTsKICAgICB0b1RyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlOjph
ZGRTVkdUcmFuc2Zvcm1zKGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKQEAgLTk4LDEwICs5
NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjCiAgICAgLy8g
U3BlYzogVG8gYW5pbWF0aW9ucyBwcm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0
IGEgc21vb3RoIGNoYW5nZSBmcm9tIHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8v
IOKAmHRv4oCZIGF0dHJpYnV0ZSB2YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5
IHdpdGggdGhlIHJlcXVpcmVtZW50IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwog
ICAgIC8vIHRvIGJlIHBvc3QtbXVsdGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEu
MSB0aGUgYmVoYXZpb3Igb2YgdG8gYW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKA
mSBpcyB1bmRlZmluZWQuCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9t
LT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8t
PnRyYW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5z
Zm9ybUxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8m
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAg
Y29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zv
cm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVz
WzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSBz
dGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52
YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAv
LyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhl
IHNwZWNpYWwgcG9zdC1tdWx0aXBsaWNhdGlvbiBiZWhhdmlvciBvZiA8YW5pbWF0ZVRyYW5zZm9y
bT4gbmVlZHMgdG8gYmUgcmVzcGVjdGVkIGJlbG93LgogICAgIGlmICghbV9hbmltYXRpb25FbGVt
ZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGZyb21U
cmFuc2Zvcm1MaXN0LCB0b1RyYW5zZm9ybUxpc3QsIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCwgcGVy
Y2VudGFnZSwgZmFsc2UpKQpAQCAtMTEyLDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xl
YXIoKTsKIAogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxp
c3Quc2l6ZSgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0
WzBdOwotICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6
ZSA/IGZyb21UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0u
dHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAg
Y29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsK
KyAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBm
cm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFu
c2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7
CiAgICAgYXV0byBjdXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0
aXZlRnJvbSwgdG9UcmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZH
VHJhbnNmb3JtKGVmZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlz
QWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVj
dGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9B
dEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFu
c2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7
Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFu
Y2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwg
cmVwZWF0Q291bnQpKTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9B
dEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJh
bnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0u
dHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAg
ICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFu
c2Zvcm1WYWx1ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVu
dFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7
CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxT
VkdUcmFuc2Zvcm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTMxLDIwICsxMjgsMjAg
QEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgIGF1dG8gZnJv
bSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0cmluZyk7CiAgICAgYXV0byB0byA9IGNvbnN0
cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0gICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3Qg
PSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8t
PnRyYW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19j
YXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRv
JiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4o
KnRvLT52YWx1ZXNbMF0pOwogICAgIHVuc2lnbmVkIGl0ZW1zQ291bnQgPSBmcm9tVHJhbnNmb3Jt
TGlzdC5zaXplKCk7CiAgICAgaWYgKCFpdGVtc0NvdW50IHx8IGl0ZW1zQ291bnQgIT0gdG9UcmFu
c2Zvcm1MaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgQVNTRVJUKGl0ZW1z
Q291bnQgPT0gMSk7Ci0gICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0WzBdLnR5cGUoKSAhPSB0b1Ry
YW5zZm9ybUxpc3RbMF0udHlwZSgpKQorICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0
eUF0KDApLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBlKCkpCiAg
ICAgICAgIHJldHVybiAtMTsKIAogICAgIC8vIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NW
Ry9hbmltYXRlLmh0bWwjY29tcGxleERpc3RhbmNlcwogICAgIC8vIFBhY2VkIGFuaW1hdGlvbnMg
YXNzdW1lIGEgbm90aW9uIG9mIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZhcmlvdXMgYW5pbWF0aW9u
IHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSDigJh0b+KAmSwg4oCYZnJvbeKAmSwg4oCYYnnigJkgYW5k
IOKAmHZhbHVlc+KAmSBhdHRyaWJ1dGVzLgogICAgIC8vIERpc3RhbmNlIGlzIGRlZmluZWQgb25s
eSBmb3Igc2NhbGFyIHR5cGVzIChzdWNoIGFzIDxsZW5ndGg+KSwgY29sb3JzIGFuZCB0aGUgc3Vi
c2V0IG9mIHRyYW5zZm9ybWF0aW9uIHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSDigJhhbmlt
YXRlVHJhbnNmb3Jt4oCZLgotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJh
bnNmb3JtTGlzdFswXSwgdG9UcmFuc2Zvcm1MaXN0WzBdKS5kaXN0YW5jZSgpOworICAgIHJldHVy
biBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLCB0
b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSkuZGlzdGFuY2UoKTsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShub25leGlzdGVudCkKQEAg
LTEsMzI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2lu
Y2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFt
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRl
ZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLSAgICA6IG1fdHlwZSh0eXBlKQotewot
fQotCi1TVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAo
bV90eXBlKSB7Ci0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgICAgICBkZWxldGUgbV9kYXRh
LmFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRC
b29sZWFuOgotICAgICAgICBkZWxldGUgbV9kYXRhLmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLmVudW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVk
SW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2Rh
dGEubGVuZ3RoTGlzdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
LSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXJMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1f
ZGF0YS5wb2ludExpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvOgotICAgICAgICBkZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUg
bV9kYXRhLnJlY3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0g
ICAgICAgIGRlbGV0ZSBtX2RhdGEuc3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVu
dW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+PiBhbmdsZUFuZEVudW1lcmF0aW9uKQotewotICAgIEFTU0VSVChhbmdsZUFuZEVudW1lcmF0
aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZEFuZ2xlKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5nbGVBbmRFbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVlX3B0cjxib29sPiBib29sZWFu
KQotewotICAgIEFTU0VSVChib29sZWFuKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6
bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEJvb2xlYW4pOwotICAgIGFuaW1h
dGVkVHlwZS0+bV9kYXRhLmJvb2xlYW4gPSBib29sZWFuLnJlbGVhc2UoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4gY29sb3IpCi17
Ci0gICAgQVNTRVJUKGNvbG9yKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91
bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZENvbG9yKTsKLSAgICBhbmltYXRlZFR5cGUt
Pm1fZGF0YS5jb2xvciA9IGNvbG9yLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4gZW51bWVyYXRpb24p
Ci17Ci0gICAgQVNTRVJUKGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uLnJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRy
PGludD4gaW50ZWdlcikKLXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2Vy
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0
ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
KQotewotICAgIEFTU0VSVChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1h
dGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVnZXJPcHRp
b25hbEludGVnZXIgPSBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFs
dWU+IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlw
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xl
bmd0aExpc3RWYWx1ZXM+IGxlbmd0aExpc3QpCi17Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlz
dCA9IGxlbmd0aExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
TnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4gbnVtYmVyKQotewotICAgIEFTU0VSVChudW1i
ZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRl
ZFR5cGU+KEFuaW1hdGVkTnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIg
PSBudW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVy
TGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gbnVtYmVyTGlzdCkKLXsK
LSAgICBBU1NFUlQobnVtYmVyTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5udW1iZXJMaXN0ID0gbnVtYmVyTGlzdC5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1
ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewot
ICAgIEFTU0VSVChudW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIg
PSBudW1iZXJPcHRpb25hbE51bWJlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gcGF0aCkKLXsK
LSAgICBBU1NFUlQocGF0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQYXRoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5wYXRoID0gcGF0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0
KQotewotICAgIEFTU0VSVChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3Rk
OjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAgIHJl
dHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9w
dHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewot
ICAgIEFTU0VSVChwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBw
cmVzZXJ2ZUFzcGVjdFJhdGlvLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZVJlY3Qoc3RkOjp1bmlxdWVfcHRyPEZsb2F0UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQo
cmVjdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkVHlwZT4oQW5pbWF0ZWRSZWN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0g
cmVjdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3Rk
Ojp1bmlxdWVfcHRyPFN0cmluZz4gc3RyaW5nKQotewotICAgIEFTU0VSVChzdHJpbmcpOwotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFu
aW1hdGVkU3RyaW5nKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5zdHJpbmcgPSBzdHJpbmcu
cmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChz
dGQ6OnVuaXF1ZV9wdHI8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsK
LSAgICBBU1NFUlQodHJhbnNmb3JtTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAg
ICBhbmltYXRlZFR5cGUtPm1fZGF0YS50cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotU3RyaW5nIFNWR0FuaW1hdGVk
VHlwZTo6dmFsdWVBc1N0cmluZygpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNl
IEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICBy
ZXR1cm4gbV9kYXRhLmNvbG9yLT5zZXJpYWxpemVkKCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0
aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gbV9kYXRh
Lmxlbmd0aC0+dmFsdWVBc1N0cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0Ogot
ICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gbV9kYXRh
Lmxlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgot
ICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51
bWJlcigqbV9kYXRhLm51bWJlcik7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFT
U0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEu
cmVjdC0+eCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAn
Ci0gICAgICAgICAgICAgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAn
ICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+aGVpZ2h0KCkpOwotICAgIGNhc2UgQW5p
bWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEuc3RyaW5nOwotCi0gICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGlu
IHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVz
IGRvbid0IG5lZWQgdmFsdWVBc1N0cmluZygpIHN1cHBvcnQuCi0gICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJh
dGlvbjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNl
IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0g
ICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVk
VW5rbm93bjoKLSAgICAgICAgLy8gT25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHBy
b3BlcnR5IHR5cGVzIC0gdGhhdCBtZWFucyB2YWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBm
b3IgdGhvc2UuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwot
fQotCi1ib29sIFNWR0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKG1f
dHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5j
b2xvcik7Ci0gICAgICAgICptX2RhdGEuY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFs
dWUuc3RyaXBXaGl0ZVNwYWNlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFu
aW1hdGVkTGVuZ3RoOgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJl
dHVybiAhbV9kYXRhLmxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFs
dWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4
Y2VwdGlvbigpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQo
bV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICBtX2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFs
dWUsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUo
YXR0ck5hbWUpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJl
cjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICBwYXJzZU51bWJlckZy
b21TdHJpbmcodmFsdWUsICptX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAg
ICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcp
OwotICAgICAgICAqbV9kYXRhLnN0cmluZyA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUgaW4gU1ZHRWxl
bWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVkIHNldFZhbHVl
QXNTdHJpbmcoKSBzdXBwb3J0LiAKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBB
bmltYXRlZEJvb2xlYW46Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2Ug
QW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlcjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVk
UG9pbnRzOgotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2Ug
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAg
ICAvLyBPbmx5IFNWRyBET00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0
aGF0IG1lYW5zIHNldFZhbHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbChB
bmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKQotewotICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25s
eSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KLSAgICByZXR1cm4gdHlwZSAhPSBB
bmltYXRlZFVua25vd24gJiYgdHlwZSAhPSBBbmltYXRlZENvbG9yOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUeXBlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMjg0ICsy
MCwxMjkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdM
ZW5ndGhMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRl
ICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgi
Ci0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZH
UHJvcGVydHlJbmZvLmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2lu
Y2x1ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0
aEJ5dGVTdHJlYW07Ci0KLWNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVy
dHlUeXBlKTsKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9u
KHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4o
c3RkOjp1bmlxdWVfcHRyPGJvb2w+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0
ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlv
bmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1
bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0
aExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVl
X3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0
cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0
cmVhbT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVj
dFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6
OnVuaXF1ZV9wdHI8RmxvYXRSZWN0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxp
c3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8g
Tm9uLW11dGFibGUgYWNjZXNzb3JzLgotICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVl
LCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
YW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBib29sJiBib29sZWFuKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsK
LSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xv
ciYgY29sb3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZENvbG9yKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29u
c3QgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVu
dW1lcmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwg
aW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJl
dHVybiAqbV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qg
U1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwot
ICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZs
b2F0JiBudW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkgY29uc3QKK3N0cnVjdCBT
VkdBbmltYXRlZFR5cGUgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBTVkdBbmltYXRlZFR5cGUoUHJvcGVydHlUeXBlJiYgcHJvcGVydHkpCisgICAgICAgIDogdmFs
dWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKHByb3BlcnR5KSkgfQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJMaXN0OwogICAgIH0KIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwg
ZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpIGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBl
KFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZh
bHVlKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJl
cjsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpIGNvbnN0Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBl
Mj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5
VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAgOiB2YWx1ZXMgeyBTVkdWYWx1ZTo6Y3JlYXRl
KHByb3BlcnRpZXMuZmlyc3QpLCBTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSB9
CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAg
IHJldHVybiBtX2RhdGEucGF0aDsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQb2ludExpc3RWYWx1
ZXMmIHBvaW50TGlzdCgpIGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTIpCisgICAgICAgIDogdmFsdWVz
IHsgV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikgfQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBv
aW50TGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
IHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZT4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAg
Y29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNy
ZWF0ZShQcm9wZXJ0eVR5cGUmJiBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucmVjdDsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3Bl
cnR5KSk7CiAgICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdAorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1Zh
bHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0
cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlKSk7CiAgICAgfQog
Ci0gICAgY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpIGNvbnN0
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlU
eXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRl
KCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6
OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4+Ojppbml0aWFsVmFsdWUoKSk7CiAg
ICAgfQogCi0gICAgLy8gTXV0YWJsZSBhY2Nlc3NvcnMuCi0gICAgc3RkOjpwYWlyPFNWR0FuZ2xl
VmFsdWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVtZXJhdGlvbigpCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKHN0ZDo6cGFpcjxQcm9wZXJ0
eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCiAgICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmds
ZUFuZEVudW1lcmF0aW9uOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmlt
YXRlZFR5cGU+KFdURk1vdmUocHJvcGVydGllcykpOwogICAgIH0KIAotICAgIGJvb2wmIGJvb2xl
YW4oKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUo
UmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEuYm9vbGVhbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlMSksIFdURk1vdmUodmFsdWUyKSk7CiAgICAg
fQogCi0gICAgQ29sb3ImIGNvbG9yKCkKKyAgICBBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwotICAgIH0KLQotICAgIHVuc2lnbmVkJiBlbnVt
ZXJhdGlvbigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkRW51bWVy
YXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5lbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAg
ICBpbnQmIGludGVnZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAg
IHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQot
ICAgIFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAg
ICB9Ci0KLSAgICBTVkdMZW5ndGhMaXN0VmFsdWVzJiBsZW5ndGhMaXN0KCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0pOwor
ICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRl
ZFR5cGUoKnZhbHVlc1swXSk7CisgICAgICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVk
VHlwZTIgPSB2YWx1ZXNbMV0gPyB2YWx1ZUFuaW1hdGVkVHlwZSgqdmFsdWVzWzFdKSA6IEFuaW1h
dGVkVW5rbm93bjsKIAotICAgIGZsb2F0JiBudW1iZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJl
cjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsK
KyAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24p
OworICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KIAotICAgIFNW
R051bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1i
ZXJMaXN0OwotICAgIH0KKyAgICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRJbnRl
Z2VyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRJbnRlZ2VyKQorICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjsKIAotICAgIHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigpCi0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRl
ZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWROdW1i
ZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjsKIAot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAgcmV0dXJuIG1fZGF0YS5wYXRoOworICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZFVua25vd24pOworICAgICAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKLSAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50
TGlzdCgpCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnBvaW50TGlzdDsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1swXSAmJiAhdmFsdWVzWzFdKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlc1swXS0+dG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKQorICAgIGJvb2wgc2V0
VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0
aW87CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0gJiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJl
dHVybiB2YWx1ZXNbMF0tPnBhcnNlKGF0dHJOYW1lLCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZs
b2F0UmVjdCYgcmVjdCgpCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVk
UHJvcGVydHlUeXBlIHR5cGUpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1h
dGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAg
ICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xv
cjsKICAgICB9CiAKLSAgICBTdHJpbmcmIHN0cmluZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJv
cGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZp
c2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikgICAgICAgICAgICAg
ICAgeyByZXR1cm4gQW5pbWF0ZWRBbmdsZTsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wm
KSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisg
ICAgICAgICAgICBbXShjb25zdCBDb2xvciYpICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1
cm4gQW5pbWF0ZWRDb2xvcjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAg
ICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAg
ICAgICAgW10oY29uc3QgaW50JikgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFu
aW1hdGVkSW50ZWdlcjsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikg
ICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtd
KGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmKSAgICAgICAgICB7IHJldHVybiBBbmltYXRlZExl
bmd0aExpc3Q7IH0sCisgICAgICAgICAgICBbXShjb25zdCBmbG9hdCkgICAgICAgICAgICAgICAg
ICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXI7IH0sCisgICAgICAgICAgICBbXShjb25z
dCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJM
aXN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAg
ICAgIHsgcmV0dXJuIEFuaW1hdGVkUGF0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpICB7IHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW87IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAg
ICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQb2ludHM7IH0sCisgICAgICAgICAgICBbXShjb25zdCBG
bG9hdFJlY3QmKSAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAor
ICAgICAgICAgICAgW10oY29uc3QgU3RyaW5nJikgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0
dXJuIEFuaW1hdGVkU3RyaW5nOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyYpICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAg
ICAgICAgICAgIFtdKGNvbnN0IGF1dG8mKSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVy
biBBbmltYXRlZFVua25vd247IH0KKyAgICAgICAgKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFs
dWVWYXJpYW50Jj4odmFsdWUpKTsKICAgICB9CiAKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
JiB0cmFuc2Zvcm1MaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsK
LSAgICB9Ci0KLSAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVB
c1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6
Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV90eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9u
IHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAgICAgICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1
bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0g
ICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAgICAgdW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAg
ICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAgIHN0ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJP
cHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNWR0xlbmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAg
IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0aExpc3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7
Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMqIG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6
cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0
aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSog
cHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExp
c3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVjdDsKLSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0g
ICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMqIHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2Rh
dGE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQs
MjggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gSGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3Bl
cmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBqdXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5
cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAg
ewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAx
KTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmlt
YXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgp
OworICAgICAgICBjb25zdCBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTx0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAgICAg
IGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRl
ZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1hdGVk
VHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVkVmFs
dWUpOworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShhbmlt
YXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+
Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHR5cGVuYW1l
IEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgKFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkK
KyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwog
ICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogcHJv
cGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5p
bWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICAgICAgcHJvcGVydHktPnN5
bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0
ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlw
ZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAKLSAgICAgICAgdHlwZW5hbWUgQW5p
bVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIp
KCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlv
bkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlKTsKKyAgICAgICAg
UmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUgPSBhbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFs
dWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gdHlwZS52YWx1
ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZSY+KCphbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBl
OjpDb250ZW50VHlwZSY+KCpiYXNlVmFsdWUpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgYW5pbWF0ZWRW
YWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBAIC0x
MTAsMzQgKzExMSwzOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBIZWxwZXJzIGZvciBhbmltYXRv
cnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMsIGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0ZWRJ
bnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFu
aW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1W
YWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+
PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlw
ZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1lIEFu
aW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5
VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmlt
VmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0u
Z2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMSog
Zmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmlt
VmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAg
IGNvbnN0IEFuaW1WYWxUeXBlMiogc2Vjb25kQW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJv
cGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRp
ZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gY29weSA9IHN0ZDo6bWFrZV91bmlxdWU8c3Rk
OjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1W
YWxUeXBlMjo6Q29udGVudFR5cGU+PihmaXJzdFR5cGUsIHNlY29uZFR5cGUpOwotICAgICAgICBl
eGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
VHlwZXMsIDAsICZjb3B5LT5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMSwgJmNvcHktPnNlY29u
ZCk7Ci0gICAgICAgIHJldHVybiBjb3B5OworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0
QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJy
ZW50QmFzZVZhbHVlKCkpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVk
VmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNvbmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNl
VmFsdWUoKSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShz
ZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5p
bVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+Ci0gICAgdm9pZCByZXNldEZyb21CYXNl
VmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUx
OjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4mIChTVkdB
bmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAgICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBt
X3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJzdFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNb
MF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBzZWNvbmRQcm9wZXJ0eSA9ICBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZpcnN0UHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBl
cnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNvbmRQcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVy
c0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6
Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+JiBhbmltYXRl
ZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVl
LmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBhbmlt
YXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNvbmRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgp
OwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAg
ICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmlt
YXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBlVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgQW5pbVZh
bFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsK
KyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZpcnN0QW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdy
YXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAgc2Vjb25kQW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6
ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QmFz
ZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAg
UmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAg
ICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpm
aXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5p
bVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RB
bmltYXRlZFZhbHVlKTsKKworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEJhc2VWYWx1
ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQ
dHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSB0eXBlLnZhbHVlc1sxXTsKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZSY+KCpzZWNv
bmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29u
dGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRB
bmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlw
ZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MCwzMyArMTk1LDMzIEBAIHByaXZhdGU6
CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQg
ZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9uLCBjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHks
IHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogdHlwZSA9IDApCisgICAgdm9pZCBl
eGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwg
UmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVlID0gbnVsbHB0cikKICAgICB7CiAgICAgICAg
IC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJl
Y2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50
YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRU
eXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGVkVHlw
ZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBhbmltYXRlZFR5cGUucHJvcGVydGllcy5zaXplKCkp
OwotICAgICAgICAgICAgQW5pbVZhbFR5cGUqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNo
UHJvcGVydHldLmdldCgpKTsKKyAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBhbmltYXRlZFByb3Bl
cnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1h
dGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKIAogICAgICAgICAgICAg
c3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgICAgIGNhc2UgU3RhcnRBbmltYXRpb25BY3Rpb246
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5cGUpOwotICAgICAgICAgICAgICAgIGlmICghcHJv
cGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmlt
YXRpb25TdGFydGVkKHR5cGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVl
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkp
CisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvblN0YXJ0ZWQo
YW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAg
ICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOworICAgICAgICAgICAgICAgIEFTU0VS
VCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGFuaW1hdGVkUHJvcGVydHkt
PmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFu
aW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7
Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxXaWxsQ2hhbmdlKCk7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRl
ZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5nZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlkQ2hhbmdlQWN0aW9uOgotICAgICAgICAgICAgICAg
IEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFuaW1WYWxEaWRDaGFu
Z2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAg
ICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlz
dGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRUeXBlOwog
Y2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZHQ29tcG9uZW50VHIK
ICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMuZXhwb25lbnQgPSBl
eHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAgZnVuYy50YWJsZVZh
bHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVz
KCkucHJvcGVydGllcygpOwogICAgIHJldHVybiBmdW5jOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDgg
KzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0N1
cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdo
dCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdO
YW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGll
c0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEwIEBAIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdFbGxpcHNlRWxlbWVu
dDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWln
aHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcnkoTGVuZ3RoTW9kZUhl
aWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAs
IG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3J4KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3J5KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjplbGxp
cHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdFbGxpcHNlRWxl
bWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIGJv
b2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckUKICAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFR5
cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCi0g
ICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVlcygpKTsKKyAgICAgICAg
cmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXModmFsdWVzKCkucHJvcGVydGllcygpKTsKIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMyw3ICsx
MzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVl
cyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS5wcm9wZXJ0aWVz
KCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBmaWx0ZXJWYWx1ZXMuc2l6ZSgpOwogCiAgICAg
ICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYICYmIHNpemUg
IT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MiwxMiAr
MjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXgKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OmRpdmlz
b3JBdHRyKSkgewogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtlcm5lbE1hdHJpeFNpemU7
ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxNYXRyaXguYXQoaSk7Cisg
ICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2VybmVsTWF0cml4LnByb3BlcnR5QXQoaSk7CiAg
ICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAgICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsK
ICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0
ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFz
KCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxv
YXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwg
cHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252
b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFs
dWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZ
VmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtl
cm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeC5wcm9w
ZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5wdXRFZmZlY3RzKCkuYXBwZW5kKGlucHV0MSk7CiAg
ICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDEwIEBA
IGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW4KICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2ZpbHRlclVuaXRzKFNWR1VuaXRUeXBlczo6
U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1fcHJpbWl0aXZlVW5pdHMo
U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAl
IikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUg
aXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3
ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUi
IHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICIwJSIpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTAwJSIpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMCUiKSkKKyAgICAsIG1f
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKSkKKyAgICAsIG1fd2lkdGgo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV9oZWlnaHQo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKSkKIHsKICAgICAvLyBTcGVj
OiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFz
IGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUg
d2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFz
IGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3go
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dp
ZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWdu
T2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMCArNTUsMTAgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ltYWdlRWxlbWVudDo6U1ZHSW1hZ2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5n
dGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgo
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAs
IG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0
aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVyKCp0aGlzKQogewogICAgIHJlZ2lzdGVyQW5p
bWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBTVkdf
TEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQQwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFNW
R0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01NywxMSArNTcsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChpbml0aWFsVmFsdWUpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aFZh
bHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdMZW5ndGg+PiBjcmVhdGUoRXhjZXB0aW9uT3I8
VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4
Y2VwdGlvbigpKQpAQCAtMTUzLDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTGVuZ3Ro
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkK
ICAgICB7CiAgICAgfQpAQCAtMTYyLDExICsxNTcsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAg
ICB9Ci0KLSAgICBleHBsaWNpdCBTVkdMZW5ndGgoY29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRp
YWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGlu
aXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwx
MyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPjsK
ICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVh
dGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3Ro
TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR0xlbmd0aExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdMZW5ndGhM
aXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdM
ZW5ndGhMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZh
bHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNs
dWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDcsNyBAQCB2b2lkIFNW
R0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmIChsZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZVN0cmluZykuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChsZW5ndGgpOworICAg
ICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdMZW5ndGhWYWx1ZT4obGVuZ3RoKSk7CiAg
ICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5kKTsKICAgICB9
CiB9CkBAIC02MCw3ICs2MSw3IEBAIFN0cmluZyBTVkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFz
U3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMSwyNiArMjIsMzkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFs
dWUuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0xlbmd0aDsKIGNsYXNzIFNWR0xl
bmd0aExpc3Q7CiAKLWNsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVj
dG9yPFNWR0xlbmd0aFZhbHVlPiB7CitjbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDog
cHVibGljIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+IHsKIHB1YmxpYzoKICAgICB2b2lk
IHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0xlbmd0aE1vZGUpOwogICAgIFN0cmluZyB2
YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4geworICAgIHN0YXRpYyBTVkdMZW5ndGhM
aXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuICB7IH07IH0KKyAgICBzdGF0aWMgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdMZW5n
dGhNb2RlIGxlbmd0aE1vZGUpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxp
c3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nLCBsZW5ndGhNb2RlKTsKKyAgICAgICAgcmV0
dXJuIGxpc3Q7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0aExpc3RW
YWx1ZXM+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAgICAg
ICAgbGlzdC5wYXJzZShzdHJpbmcsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0
ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAg
fQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYg
bGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KKyAgICAKICAgICB1c2luZyBM
aXN0SXRlbVR5cGUgPSBTVkdMZW5ndGhWYWx1ZTsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYg
PSBTVkdMZW5ndGg7CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0xlbmd0aExp
c3Q7Ci0KLSAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiAgeyB9OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhM
aXN0VmFsdWVzJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVl
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyArMTQ3LDEzIEBAIHByaXZhdGU6CiAKIHRlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPiB7CiAgICAgc3Rh
dGljIFNWR0xlbmd0aFZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHR5cGUpIHsgcmV0dXJu
IHR5cGUudmFsdWVBc1N0cmluZygpOyB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTGVu
Z3RoVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xlbmd0aFZhbHVlIGxlbmd0aDsKKyAgICAg
ICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3Ro
TW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7
CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCkgeyByZXR1cm4gbGVuZ3RoLnZhbHVlQXNT
dHJpbmcoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDEwICs1MSwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElF
UwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94MShM
ZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kxKExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3gy
KExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAgICwgbV95MihMZW5ndGhNb2RlSGVpZ2h0KQor
ICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95MShT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1feDIoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQorICAgICwgbV95MihTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeDIgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2Vy
ZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRp
ZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cit2b2lkIFNWR0xpc3RWYWx1ZXM8UHJvcGVy
dHlUeXBlPjo6cmVzaXplKHNpemVfdCBuZXdTaXplKQoreworICAgIHNpemVfdCBpbmRleCA9IHNp
emUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj46OnJlc2l6ZShuZXdTaXplKTsKKyAg
ICBmb3IgKDsgaW5kZXggPCBuZXdTaXplOyArK2luZGV4KQorICAgICAgICBhdChpbmRleCkgPSBT
VkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK1ZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFBy
b3BlcnR5VHlwZT46OmRlZXBDb3B5KCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4gdmFsdWVzOworICAgIGZvciAoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUgOiAq
dGhpcykKKyAgICAgICAgdmFsdWVzLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlKCp2YWx1ZSkpOwor
ICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIGV4cGxpY2l0IGlu
c3RhbnRpYXRpb24uCit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+OjpyZXNpemUo
c2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6cmVzaXpl
KHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+Ojpy
ZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1W
YWx1ZT46OnJlc2l6ZShzaXplX3QpOworCit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gU1ZHTGlzdFZhbHVlczxmbG9hdD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0
b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTdHJpbmc+OjpkZWVwQ29weSgpIGNv
bnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8Rmxv
YXRQb2ludD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7Cit0
ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxSZWZQdHI8U1ZH
UGF0aFNlZz4+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0
OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdWYWx1ZTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0
cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBkZWZhdWx0Owor
CisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICAgICAg
OiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAgICB7CisgICAg
fQorCisgICAgdm9pZCByZXNpemUoc2l6ZV90KTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gZGVlcENvcHkoKSBjb25zdDsKKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHlB
dChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+
KCphdChpbmRleCkpOyB9CisgICAgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRl
eCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKwor
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgZmlyc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHBy
b3BlcnR5QXQoMCk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSB7IHJldHVy
biBwcm9wZXJ0eUF0KDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0
eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKyAgICBQcm9wZXJ0
eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIHsgcmV0dXJuIHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0K
KworICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJvcGVydGllczsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgcHJvcGVydGllcy5hcHBlbmQoc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVlKSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0
aWVzOworICAgIH0KK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsMTAgKzcxLDEwIEBAIEVORF9SRUdJ
U1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdNYXJrZXJFbGVtZW50OjpTVkdN
YXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3JlZlgo
TGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9yZWZZKExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBt
X21hcmtlcldpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjMiKQotICAgICwgbV9tYXJrZXJIZWlnaHQo
TGVuZ3RoTW9kZUhlaWdodCwgIjMiKSAKKyAgICAsIG1fcmVmWChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV9yZWZZKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV9tYXJrZXJXaWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgs
ICIzIikpCisgICAgLCBtX21hcmtlckhlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMyIpKQogICAgICwgbV9tYXJrZXJVbml0cyhTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRo
KQogICAgICwgbV9vcmllbnRUeXBlKFNWR01hcmtlck9yaWVudEFuZ2xlKQogewpAQCAtMjM4LDEy
ICsyMzgsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzeW5jaHJvbml6ZU9yaWVudAogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJldmVyc2VTdHJp
bmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3RhcnQtcmV2ZXJz
ZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBhbHJlYWR5IHNl
dCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93bmVyVHlwZS5t
X29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykgeworICAgIGlmIChzdGF0
aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKm93bmVyVHlwZS5tX29yaWVudFR5cGUudmFs
dWUpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50
VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0
dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZSkKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpv
d25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRS
ZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25l
clR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0YXJ0
UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI1OSwxMSArMjU5LDExIEBAIFNWR01hcmtlck9yaWVu
dFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAgICAg
aWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAgICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkp
IDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
VkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwog
ICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVl
KTsKIH0KIAogUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFy
a2VyT3JpZW50VHlwZT4+IFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmltYXRlZCgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDc1ICsyOSwxMCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94
LmgiCisjaW5jbHVkZSAiU1ZHTWFya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIFNWR01hcmtlclVuaXRzVHlwZSB7Ci0gICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0g
MCwKLSAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRz
U3Ryb2tlV2lkdGgKLX07Ci0KLWVudW0gU1ZHTWFya2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFy
a2VyT3JpZW50VW5rbm93biA9IDAsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdN
YXJrZXJPcmllbnRBbmdsZSwKLSAgICBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAot
Ci0gICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmll
bnRNYXgKLX07Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJVbml0c1R5cGU+IHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsg
cmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5cGUpCi0gICAgewotICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1Vua25vd246Ci0gICAgICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJT
cGFjZU9uVXNlOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25V
c2UiKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOgotICAgICAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tlV2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgU1ZHTWFya2VyVW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25V
c2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0g
ICAgICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lkdGgiKQotICAgICAgICAgICAgcmV0dXJuIFNW
R01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7Ci0gICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vu
a25vd247Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVu
dW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkg
eyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2
ZXJzZTsgfQotCi0gICAgLy8gdG9TdHJpbmcgaXMgbm90IG5lZWRlZCwgc3luY2hyb25pemVPcmll
bnRUeXBlKCkgaGFuZGxlcyB0aGlzIG9uIGl0cyBvd24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2Vy
T3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUm
IGFuZ2xlKQotICAgIHsKLSAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAg
IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwotICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8t
c3RhcnQtcmV2ZXJzZSIpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZTsKLSAgICAgICAgYXV0byBzZXRWYWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVl
QXNTdHJpbmcodmFsdWUpOwotICAgICAgICBpZiAoc2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAg
cmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwotICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtl
ckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKQEAgLTE2NCw4
ICs5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQ
cm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBlV3JhcHBlcihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0
OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNl
VmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBtX29yaWVudFR5cGUudmFs
dWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9v
cmllbnRUeXBlLnZhbHVlKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25z
dCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9IHR5
cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdN
YXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRz
VW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdN
YXJrZXJVbml0c1N0cm9rZVdpZHRoCit9OworCitlbnVtIFNWR01hcmtlck9yaWVudFR5cGUgewor
ICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAorICAgIFNWR01hcmtlck9yaWVudEF1dG8s
CisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCisgICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0
UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQgbmV3IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAg
IFNWR01hcmtlck9yaWVudE1heAorfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGln
aGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtu
b3duOgorICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZH
TWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VX
aWR0aDoKKyAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRz
VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAo
dmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJV
bml0c1VzZXJTcGFjZU9uVXNlOworICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikK
KyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOworICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGlj
IHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRv
U3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGljIFNWR01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmdsZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAg
ICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3Jp
ZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVlID09ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAg
ICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2U7CisgICAgICAg
IGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAg
ICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0
dXJuIFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmll
bnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6
OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBTVkdBbmdsZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdN
YXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJP
cmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcsIGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVu
dFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmdsZSA9IHsgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUs
IG9yaWVudFR5cGUpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBT
VkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1W
YWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEwIEBAIGlubGluZSBTVkdNYXNrRWxlbWVudDo6U1ZH
TWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAg
LCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdC
T1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAg
ICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9k
ZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIp
CisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAg
ICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBt
X3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1f
aGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAg
Ly8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVj
OiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZm
ZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNv
bWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGlj
IFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQ
cm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC0xODAsNyArMTgwLDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsgICAgICAgIAorICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOwogICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVz
dWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2Nh
bGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5zY2FsZShzY2FsZUZhY3Rvcik7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjAyLDcgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVG
YWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3Rv
clkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4
OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMjQsNyAr
MjI0LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwg
eSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJv
dGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
CkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7
ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBY
KCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5mbGlwWSgpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5mbGlwWSgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI1OSw3ICsyNTksNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WChhbmdsZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQp
OwpAQCAtMjcwLDE0ICsyNzAsMTQgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZ
KGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkuc2tld1koYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBT
VkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBTVkdNYXRyaXgoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdNYXRyaXhWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXIgOiBwdWJsaWMgU1ZH
UHJvcGVydHlUZWFyT2ZmPGZsb2F0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdOdW1i
ZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBj
cmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlKSk7CiAgICAgfQpAQCAtNDEsMTEgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShjb25zdCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkp
OwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8U1ZHTnVtYmVyPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAg
IHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTcwLDcgKzY1
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0
JiB2YWx1ZSkKKyAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oJmFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC03OSwxMSArNzQsNiBAQCBwcml2YXRlOgog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oaW5pdGlhbFZhbHVlKQogICAgIHsK
ICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdOdW1iZXIoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1
ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKLSAg
ICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgcHVi
bGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0
V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNh
Y2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBl
cnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVz
PihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBTVkdOdW1iZXJMaXN0VmFs
dWVzOjpwYXJzZShjb25zdCBTdAogICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAgICAgICAgaWYg
KCFwYXJzZU51bWJlcihwdHIsIGVuZCwgbnVtYmVyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgYXBwZW5kKG51bWJlcik7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPGZs
b2F0PihudW1iZXIpKTsKICAgICB9CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgU3RyaW5nIFNWR051
bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KGF0KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocHJvcGVydHlBdChpKSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAs
MjQgKzIwLDMwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5o
IgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJlcjsKIGNsYXNzIFNWR051
bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVj
dG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNW
R0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbHVl
QXNTdHJpbmcoKSBjb25zdDsgICAKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPiB7CiAgICAgc3RhdGljIFNWR051bWJlckxp
c3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051
bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJp
bmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVl
QXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNp
bmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVyOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRl
YXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDMxIEBA
IGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHIKICAgICByZXR1cm4gY3Vy
ID09IGVuZDsKIH0KIAorYm9vbCBwYXJzZVBvaW50KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQb2lu
dCYgcG9pbnQpCit7CisgICAgaWYgKHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3KHMpLnVwY29udmVy
dGVkQ2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBjdXIgPSB1cGNvbnZlcnRlZENoYXJh
Y3RlcnM7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IGN1ciArIHMubGVuZ3RoKCk7CisKKyAgICBp
ZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZsb2F0IHggPSAwOworICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoIXBh
cnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9p
bnQgPSBGbG9hdFBvaW50KHgsIHkpOworCisgICAgLy8gRGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0
IHNwYWNlcyBhdCB0aGUgZW5kLgorICAgIHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1
ciwgZW5kKTsKK30KKwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEZsb2F0
UmVjdCYgcmVjdCkKIHsKICAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1Zp
ZXcoc3RyaW5nKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKQEAgLTI2NCw3ICsyODksNyBAQCBi
b29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQb2ludExpc3RWCiAgICAgICAgIH0KICAgICAg
ICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKIAotICAgICAgICBwb2ludHNMaXN0
LmFwcGVuZChGbG9hdFBvaW50KHhQb3MsIHlQb3MpKTsKKyAgICAgICAgcG9pbnRzTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50PihGbG9hdFBvaW50KHhQb3MsIHlQb3MpKSk7
CiAgICAgfQogICAgIHJldHVybiBjdXIgPT0gZW5kICYmICFkZWxpbVBhcnNlZDsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsNyBAQCBib29sIHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3Qg
U3RyCiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBMQ2hhciomIHB0ciwgY29uc3QgTENoYXIqIGVu
ZCwgYm9vbCYgZmxhZyk7CiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29u
c3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBib29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcm
LCBGbG9hdFJlY3QmKTsKK2Jvb2wgcGFyc2VQb2ludChjb25zdCBTdHJpbmcmLCBGbG9hdFBvaW50
Jik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogYm9vbCBwYXJzZUZsb2F0
UG9pbnQoY29uc3QgQ2hhcmFjdGVyVHlwZSomIGN1cnJlbnQsIGNvbnN0IENoYXJhY3RlclR5cGUq
IGVuZCwgRmxvYXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRl
U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3Ry
ZWFtLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0
ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw4IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5
VHJhaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00NiwzNCArNDgsNDIgQEAgcHVibGljOgogICAgIHR5cGVkZWYgRGF0YTo6Y29uc3RfaXRl
cmF0b3IgRGF0YUl0ZXJhdG9yOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0oKSB7IH0KLSAgICBT
VkdQYXRoQnl0ZVN0cmVhbShjb25zdCBEYXRhJiBkYXRhKSA6IG1fZGF0YShkYXRhKSB7IH0KKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAgICAgICA6
IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkpCisgICAgeworICAgIH0KICAgICAKLSAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAg
IFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKKyAgICAg
ICAgOiBtX2RhdGEob3RoZXIubV9kYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZGF0YSA9
PSBvdGhlci5tX2RhdGE7CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1Bh
dGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0
b3I9KFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIpCisgICAgeworICAgICAgICBtX2RhdGEgPSBX
VEZNb3ZlKG90aGVyLm1fZGF0YSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAg
U1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3Ro
ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIG1f
ZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAorICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgIT0gb3Ro
ZXIubV9kYXRhOyB9CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNv
cHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0
aEJ5dGVTdHJlYW0+KG1fZGF0YSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R1BhdGhCeXRlU3RyZWFtPigqdGhpcyk7CiAgICAgfQogCiAgICAgRGF0YUl0ZXJhdG9yIGJlZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmJlZ2luKCk7IH0KICAgICBEYXRhSXRlcmF0b3IgZW5k
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmVuZCgpOyB9CiAKICAgICB2b2lkIGFwcGVuZCh1bnNp
Z25lZCBjaGFyIGJ5dGUpIHsgbV9kYXRhLmFwcGVuZChieXRlKTsgfQotICAgIHZvaWQgYXBwZW5k
KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGZvciAoYXV0
byBzdHJlYW0gOiBvdGhlcikKLSAgICAgICAgICAgIGFwcGVuZChzdHJlYW0pOwotICAgIH0KKyAg
ICB2b2lkIGFwcGVuZChjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpIHsgbV9kYXRhLmFw
cGVuZFZlY3RvcihvdGhlci5tX2RhdGEpOyB9CiAgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNs
ZWFyKCk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhLnNpemUo
KTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc0VtcHR5KCk7
IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQog
CiAgICAgLy8gT25seSBkZWZpbmVkIHRvIGxldCBTVkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2Ug
dGhlIHN0YW5kYXJkIGxpc3QgY29kZSBwYXRocyAtIHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxl
ZC4KQEAgLTgyLDUgKzkyLDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGF0YSBtX2RhdGE7
CiB9OworICAgIAordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhC
eXRlU3RyZWFtPiB7CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFtIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIFNWR1BhdGhCeXRlU3RyZWFtKCk7IH0KKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVT
dHJlYW0gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNW
R1BhdGhCeXRlU3RyZWFtIGJ5dGVTdHJlYW07CisgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJl
YW1Gcm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAg
ICAgIHJldHVybiBieXRlU3RyZWFtOworICAgIH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODAsNyArODAsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwog
CiBpbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJl
ZFJvbGUpCisgICAgLCBtX3BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdV
bmFsdGVyZWRSb2xlKSkKICAgICAsIG1faXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAg
QVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKTsKQEAgLTI1NSw3ICsyNTUsNyBA
QCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmICht
X3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojps
b29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAg
ICAgICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xl
KTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbSht
X3BhdGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAg
ICAgICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0gbmV3TGlzdDsKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpID0gV1RG
TW92ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMy
Nyw4ICszMjcsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAg
ICAgaWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVy
PFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigm
b3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5Owog
Ci0gICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAg
ICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3Bh
dGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBV
bmFsdGVyZWRQYXJzaW5nKTsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHkoKSkKKyAgICAgICAg
YnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhC
eXRlU3RyZWFtLCBvd25lclR5cGUsIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4o
Km93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlKSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1Bh
dGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRo
U2VnTGlzdFZhbHVlcz4oJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9w
YXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBAIC0zMzksNyArMzM5LDcgQEAgdm9pZCBTVkdQYXRoRWxl
bWVudDo6c3luY2hyb25pemVEKFNWR0VsZQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUg
PSBkb3duY2FzdDxTVkdQYXRoRWxlbWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93
bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47
Ci0gICAgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFBy
b3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1
ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9u
aXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUp
LnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJv
cGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5MiwxMCArMzkyLDEwIEBAIHZvaWQgU1ZHUGF0aEVs
ZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRo
U2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYgKGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1v
ZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAgICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZh
bHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21T
VkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUubGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0
ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBBU1NFUlQoIXN0YXRpY19j
YXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHko
KSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKHN0
YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmxh
c3RQcm9wZXJ0eSgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2lu
Zyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZy
b21TVkdQYXRoU2VnTGlzdFZhbHVlcyhtX3BhdGhTZWdMaXN0LnZhbHVlLCBtX3BhdGhCeXRlU3Ry
ZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJl
YW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBh
cnNpbmcpOwogICAgICAgICBtX2NhY2hlZFBhdGggPSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuZGVmaW5lZFJvbGU6CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyQ29udGV4
dEFuZFJvbGVzKCkKIHsKLSAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgIGZvciAoYXV0byYgaXRl
bSA6ICptX3ZhbHVlcykKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiB2YWx1ZXNQcm9wZXJ0eSgpLnBy
b3BlcnRpZXMoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4o
aXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRS
b2xlKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKCkKIHsK
LSAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAg
IGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIGNsZWFyQ29udGV4dEFuZFJvbGVzKCk7CkBAIC01MCw4ICs0OCw4IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMKIAogRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1Bh
dGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0oUmVmPFNWR1BhdGhTZWc+JiYgbmV3
SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgbV92YWx1ZXMtPnNpemUo
KSkgewotICAgICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVtID0gbV92YWx1ZXMtPmF0KGlu
ZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkgeworICAgICAg
ICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVtID0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0
KGluZGV4KTsKICAgICAgICAgQVNTRVJUKHJlcGxhY2VkSXRlbSk7CiAgICAgICAgIHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KHJlcGxhY2VkSXRlbS5nZXQoKSktPnNldENvbnRl
eHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICsz
MiwxMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0g
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKICAg
ICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdFZh
bHVlcz46Okxpc3RJdGVtVHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGlj
IFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBh
dGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0
aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKQEAgLTQ1LDExICs0
NSw5IEBAIHB1YmxpYzoKIAogICAgIGludCBmaW5kSXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIGl0
ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotCi0gICAgICAgIHVu
c2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBzaXplID0g
dmFsdWVzUHJvcGVydHkoKS5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisg
ICAgICAgICAgICBpZiAoaXRlbSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnR5QXQoaSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgIH0KIApAQCAtNTgsMTAgKzU2LDkgQEAg
cHVibGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwg
Ym9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUlu
ZGV4IDwgbV92YWx1ZXMtPnNpemUoKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwog
Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJv
cGVydHkoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25p
emVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtOTMsNyArOTAsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0
UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQog
ICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAg
LCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpAQCAtMTE3LDE0ICsxMTQsMTIgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgTGlzdE1vZGlmaWNhdGlvblVua25vd24pOworICAg
ICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5j
b250ZXh0RWxlbWVudCgpLCBMaXN0TW9kaWZpY2F0aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAg
dm9pZCBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5h
bAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNv
bW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9k
aWZpY2F0aW9uKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAg
fQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVt
VHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIGZpbmFsOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzggQEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpT
VkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9S
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55
KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250
YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdS
b2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVm
UHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNl
Z1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRl
cjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVN
b2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgp
LCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBv
aW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCks
IHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9p
bnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2lu
dDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9k
ZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCks
IHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBt
X3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVU
b1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnko
KSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2lu
dCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2Rl
ID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0
QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJn
ZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwg
cjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRo
U2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxh
ZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcs
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwg
bGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xl
KSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAg
Ym9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhT
ZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2Vn
VHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQp
OworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50
KTsKICAgICBwYXRoU2VnVHlwZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21l
bnQtPnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdT
ZWdtZQogCiBTVkdQYXRoU2VnVHlwZSBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQo
U1ZHUGF0aFNlZ1R5cGUpCiB7Ci0gICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0
ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9p
dGVtQ3VycmVudCk7CiAgICAgU1ZHUGF0aFNlZ1R5cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnVHlwZT4obV9zZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRl
bUN1cnJlbnQ7CiAgICAgcmV0dXJuIHBhdGhTZWdUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwx
MCArMTksOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eS5o
IgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCiAj
aW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTMzLDcgKzMyLDcgQEAgY2xhc3MgU1ZHUGF0aFNlZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdQYXRoU2VnPj4geworY2xhc3MgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRoU2VnTGlzdFZhbHVlcyhTVkdQYXRoU2VnUm9s
ZSByb2xlKQogICAgICAgICA6IG1fcm9sZShyb2xlKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcg
QEAgYm9vbCBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoUwogICAgIEFTU0VSVChw
YXJzaW5nTW9kZSA9PSBVbmFsdGVyZWRQYXJzaW5nKTsKIAogICAgIFNWR1BhdGhTZWdMaXN0VmFs
dWVzIGFwcGVuZGVkSXRlbUxpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpOwotICAgIGFwcGVuZGVk
SXRlbUxpc3QuYXBwZW5kKFdURk1vdmUocGF0aFNlZykpOworICAgIGFwcGVuZGVkSXRlbUxpc3Qu
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihXVEZNb3ZlKHBhdGhT
ZWcpKSk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAg
U1ZHUGF0aFNlZ0xpc3RTb3VyY2Ugc291cmNlKGFwcGVuZGVkSXRlbUxpc3QpOwpAQCAtMjA2LDE1
ICsyMDYsMTQgQEAgYm9vbCBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oY29ucwogCiBi
b29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0cmVhbVRvQXBw
ZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBieVN0cmVhbSwgdW5zaWduZWQgcmVwZWF0
Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJldHVybiB3aGVuIHN0cmVhbVRvQXBwZW5kVG8gaXMgZW1w
dHk/IERvbid0IHdlIHN0aWxsIG5lZWQgdG8gYXBwZW5kPworICAgIC8vIFRoZSBieVN0cmVhbSB3
aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0FwcGVuZFRvLiBTbyBzdHJlYW1Ub0FwcGVuZFRv
IGhhcyB0byBoYXZlIGVsZW1lbnRzLgogICAgIGlmIChzdHJlYW1Ub0FwcGVuZFRvLmlzRW1wdHko
KSB8fCBieVN0cmVhbS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8g
SXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGZyb20gYSBzdHJl
YW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFtPworICAgIC8vIGJ1aWxkZXIgaXMgdGhlIGRl
c3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3VyY2UgYW5kIGJ5U291cmNlLiBUaGUgc3RyZWFt
IG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJlYW1Ub0FwcGVuZFRvKSBoYXMgdG8gYmUgY2xl
YXJlZCBiZWZvcmUgY2FsbGluZyBhZGRBbmltYXRlZFBhdGguCiAgICAgU1ZHUGF0aEJ5dGVTdHJl
YW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBlbmRUbyk7Ci0KLSAgICBTVkdQYXRoQnl0ZVN0
cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0cmVhbVRvQXBwZW5kVG87Ci0gICAgc3RyZWFtVG9BcHBl
bmRUby5jbGVhcigpOworICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gV1RG
TW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGZy
b21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkpOwogICAgIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGJ5
U291cmNlKGJ5U3RyZWFtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50IDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBzdGF0aWMg
UmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnQoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC00MywxMSArNDMsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGluaXRpYWxWYWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50KiBp
bml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2lu
dChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1BvaW50Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5p
dGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24o
KSkKQEAgLTk5LDEyICs5NCwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8Rmxv
YXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CiAK
LSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisg
ICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50PihudWxscHRy
LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTEzLDExICsxMDgsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUG9pbnQoY29uc3QgRmxvYXRQb2lu
dCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50
Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
MTMgKzM3LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPjsK
ICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0
ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0
KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlzdFZhbHVlcyYg
dmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQb2ludExpc3QoQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlz
dFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIFN0cmluZyBTVkdQb2ludExp
c3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFzIHRv
IHNlcGVyYXRlPwogCi0gICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gYXQoaSk7CisgICAgICAg
IGNvbnN0IGF1dG8mIHBvaW50ID0gcHJvcGVydHlBdChpKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIocG9pbnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMjIgKzIx
LDI4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRl
ICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9p
bnQ7CiBjbGFzcyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5h
bCA6IHB1YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD4gewogcHVibGljOgogICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZH
UG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotCisgICAgc3Rh
dGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIHBvaW50c0xp
c3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9
CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2ludDsKICAgICB1c2luZyBMaXN0SXRl
bVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZH
UG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJv
cGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0
Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRl
cl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJz
KG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IG5ld0xpc3Q7Cisg
ICAgICAgIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSkg
PSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDksNyAr
MTA5LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQb2ludHMoUwogICAgIFNW
R1BvbHlFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5RWxlbWVudD4oKmNvbnRl
eHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5zaG91bGRTeW5jaHJvbml6
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgm
b3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBl
Lm1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJUeXBlLm1fcG9pbnRz
LnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVO
YW1lLCBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcG9pbnRz
LnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4g
U1ZHUG9seUVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBlcihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgUmVmPFNWR1BvaW50TGlz
dD4gcG9pbnRzKCk7CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gYW5pbWF0ZWRQb2ludHMoKTsKIAot
ICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb2lu
dHMudmFsdWU7IH0KKyAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFNWR1BvaW50TGlzdFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSk7
IH0KIAogICAgIHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5m
bygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1Byb3Bl
cnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbz4gY3JlYXRlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlh
bFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVh
dGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtOTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMDAsMTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0
aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0g
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4o
aW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDEx
IEBAIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmUKIHsKIH0KIAorU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcGFyc2Uoc3RyaW5nKTsKK30KKwogRXhjZXB0aW9u
T3I8dm9pZD4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpzZXRBbGlnbih1bnNpZ25lZCBz
aG9ydCBhbGlnbikKIHsKICAgICBpZiAoYWxpZ24gPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
VU5LTk9XTiB8fCBhbGlnbiA+IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICB9OwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWdu
KCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRp
YWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAg
c3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsg
fQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMiArNTUsMTIgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3RoTW9kZVdpZHRoLCAiNTAlIikKLSAgICAsIG1fY3ko
TGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpCi0gICAgLCBtX3IoTGVuZ3RoTW9kZU90aGVyLCAiNTAl
IikKLSAgICAsIG1fZngoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9meShMZW5ndGhNb2RlSGVp
Z2h0KQotICAgICwgbV9mcihMZW5ndGhNb2RlT3RoZXIsICIwJSIpCisgICAgLCBtX2N4KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpKQorICAgICwgbV9jeShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikpCisgICAgLCBtX3IoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZU90aGVyLCAiNTAlIikpCisgICAgLCBtX2Z4KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVXaWR0aCkpCisgICAgLCBtX2Z5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV9mcihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIsICIwJSIpKQogewog
ICAgIC8vIFNwZWM6IElmIHRoZSBjeC9jeS9yL2ZyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnJhZGlhbEdyYWRpZW50VGFnKSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDEzICsyMCwxMyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0
VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdSZWN0IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9h
dFJlY3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxv
YXRSZWN0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdSZWN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAt
MzYsMTEgKzM2LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdS
ZWN0KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3Jl
YXRlKGNvbnN0IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1JlY3Q+PiBjcmVhdGUo
RXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlh
bFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtMTEzLDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdS
ZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAg
ICAgewogICAgIH0KQEAgLTEyMiwxMSArMTE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQot
ICAgIGV4cGxpY2l0IFNWR1JlY3QoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAg
ICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4oaW5pdGlhbFZhbHVlKQotICAgIHsK
LSAgICB9CiB9OwogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBz
dGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRp
YyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBl
LngoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7
Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMSArNzEsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3Jh
cGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0
aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2Rl
V2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhl
aWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxp
dGVyYWwoIjEwMCUiKSkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkpCiAgICAgLCBtX3RpbWVDb250YWluZXIoU01J
TFRpbWVDb250YWluZXI6OmNyZWF0ZSgqdGhpcykpCisgICAgLCBtX2N1cnJlbnRUcmFuc2xhdGUo
U1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50PigpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpzdmdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNW
R1NWR0VsZW1lbnQoKTsKQEAgLTE5Nyw5ICsxOTgsOSBAQCBSZWY8U1ZHUG9pbnQ+IFNWR1NWR0Vs
ZW1lbnQ6OmN1cnJlbnRUcmFuCiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5z
bGF0ZShjb25zdCBGbG9hdFBvaW50JiB0cmFuc2xhdGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50
VHJhbnNsYXRlID09IHRyYW5zbGF0aW9uKQorICAgIGlmIChzdGF0aWNfY2FzdDxGbG9hdFBvaW50
Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPT0gdHJhbnNsYXRpb24pCiAgICAgICAgIHJldHVybjsK
LSAgICBtX2N1cnJlbnRUcmFuc2xhdGUgPSB0cmFuc2xhdGlvbjsKKyAgICBzdGF0aWNfY2FzdDxG
bG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRh
dGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3VzZUN1cnJlbnRWaWV3IHsgZmFsc2UgfTsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pv
b21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9OwogICAgIFJlZjxTTUlMVGltZUNvbnRh
aW5lcj4gbV90aW1lQ29udGFpbmVyOwotICAgIEZsb2F0UG9pbnQgbV9jdXJyZW50VHJhbnNsYXRl
OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9jdXJyZW50VHJhbnNsYXRlOwogICAgIFJlZlB0cjxT
VkdWaWV3U3BlYz4gbV92aWV3U3BlYzsKICAgICBTdHJpbmcgbV9jdXJyZW50Vmlld0ZyYWdtZW50
SWRlbnRpZmllcjsKIH07CkBAIC0xNzUsNyArMTc1LDcgQEAgaW5saW5lIGJvb2wgU1ZHU1ZHRWxl
bWVudDo6dXNlQ3VycmVudFZpZQogCiBpbmxpbmUgRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50Ojpj
dXJyZW50VHJhbnNsYXRlVmFsdWUoKQogewotICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZsb2F0UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRl
KTsKIH0KIAogaW5saW5lIFNWR1pvb21BbmRQYW5UeXBlIFNWR1NWR0VsZW1lbnQ6Onpvb21BbmRQ
YW4oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMiArMzYsMTIgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdM
aXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdTdHJp
bmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RW
YWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdF
bGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdCgmY29udGV4
dEVsZW1lbnQsIHZhbHVlcykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlz
dD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwg
U1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJikKKyAgICBzdGF0
aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
LCBTVkdQcm9wZXJ0eVJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byByZW1v
dmUgdGhpcy4gSXQncyBvbmx5IG5lZWRlZCB0byBrZWVwIFdpbmRvd3MgY29tcGlsaW5nLgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdHJpbmdMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHU3RyaW5nTGlzdChTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgICAgICA6IFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVl
cz4oY29udGV4dEVsZW1lbnQsIHZhbHVlcykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQoY29uc3Qg
U3QKIAogICAgIC8vIEFkZCBlbXB0eSBzdHJpbmcsIGlmIGxpc3QgaXMgZW1wdHkuCiAgICAgaWYg
KGlzRW1wdHkoKSkKLSAgICAgICAgYXBwZW5kKGVtcHR5U3RyaW5nKCkpOworICAgICAgICBhcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9pZCBT
VkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJpbmcmIGRhdGEsIFVDaGFyIGRlbGlt
aXRlcikKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShj
b25zdCBTdAogICAgICAgICAgICAgcHRyKys7CiAgICAgICAgIGlmIChwdHIgPT0gc3RhcnQpCiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgYXBwZW5kKFN0cmluZyhzdGFydCwgcHRyIC0gc3Rh
cnQpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U3RyaW5nPihTdHJpbmcoc3Rh
cnQsIHB0ciAtIHN0YXJ0KSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGlt
aXRlcihwdHIsIGVuZCwgZGVsaW1pdGVyKTsKICAgICB9CiB9CkBAIC03MCw3ICs3MCw3IEBAIFN0
cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAw
KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFw
cGVuZChhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByb3BlcnR5QXQoaSkpOwogICAg
IH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDgg
KzIxLDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2lu
Y2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNs
YXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xhc3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBmaW5h
bCA6IHB1YmxpYyBWZWN0b3I8U3RyaW5nPiB7CitjbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZp
bmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U3RyaW5nPiB7CiBwdWJsaWM6CiAgICAgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgICAg
ICA6IG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVz
dHMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbgogfQogCiBTVkdUZXN0czo6U1ZHVGVzdHMoKQotICAgIDog
bV9yZXF1aXJlZEZlYXR1cmVzKHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAgICwgbV9yZXF1aXJl
ZEV4dGVuc2lvbnMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikKLSAgICAsIG1fc3lzdGVtTGFuZ3Vh
Z2Uoc3lzdGVtTGFuZ3VhZ2VBdHRyKQorICAgIDogbV9yZXF1aXJlZEZlYXR1cmVzKFNWR1N0cmlu
Z0xpc3RWYWx1ZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpKQorICAgICwgbV9yZXF1aXJlZEV4dGVu
c2lvbnMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKSkKKyAgICAs
IG1fc3lzdGVtTGFuZ3VhZ2UoU1ZHU3RyaW5nTGlzdFZhbHVlcyhzeXN0ZW1MYW5ndWFnZUF0dHIp
KQogewogfQogCkBAIC0xNTQsMTUgKzE1NCwyMCBAQCBib29sIFNWR1Rlc3RzOjpoYXNFeHRlbnNp
b24oY29uc3QgU3RyaW5nCiAKIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogewotICAg
IGZvciAoYXV0byYgZmVhdHVyZSA6IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkgeworICAgIGF1
dG8gZmVhdHVyZXMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWly
ZWRGZWF0dXJlcy52YWx1ZSkucHJvcGVydGllcygpOworICAgIGZvciAoYXV0byYgZmVhdHVyZSA6
IGZlYXR1cmVzKSB7CiAgICAgICAgIGlmIChmZWF0dXJlLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVk
U1ZHRmVhdHVyZXMoKS5jb250YWlucyhmZWF0dXJlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IG1fc3lzdGVtTGFuZ3VhZ2UudmFs
dWUpIHsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZh
bHVlcyY+KCptX3N5c3RlbUxhbmd1YWdlLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChh
dXRvJiBsYW5ndWFnZSA6IGxhbmd1YWdlcykgewogICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gZGVm
YXVsdExhbmd1YWdlKCkuc3Vic3RyaW5nKDAsIDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6IG1fcmVxdWlyZWRFeHRlbnNpb25z
LnZhbHVlKSB7CisKKyAgICBhdXRvIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdM
aXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlKS5wcm9wZXJ0aWVzKCk7Cisg
ICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBleHRlbnNpb25zKSB7CiAgICAgICAgIGlmICghaGFz
RXh0ZW5zaW9uKGV4dGVuc2lvbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMTcyLDExICsxNzcsMTEgQEAgYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB2b2lk
IFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChhdHRyaWJ1dGVOYW1l
ID09IHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRmVhdHVyZXMudmFs
dWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVz
Jj4oKm1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkucmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRy
aWJ1dGVOYW1lID09IHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRF
eHRlbnNpb25zLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3Ry
aW5nTGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkucmVzZXQodmFsdWUp
OwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHN5c3RlbUxhbmd1YWdlQXR0cikKLSAgICAgICAg
bV9zeXN0ZW1MYW5ndWFnZS52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0
PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkucmVzZXQodmFs
dWUpOwogfQogCiBib29sIFNWR1Rlc3RzOjppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCkBAIC0yMDgsNyArMjEzLDcgQEAgdm9pZCBTVkdUZXN0czo6
c3luY2hyb25pemVBdHRyaWJ1dGUoU1ZHRQogewogICAgIGlmICghcHJvcGVydHkuc2hvdWxkU3lu
Y2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hy
b25pemUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS52YWx1
ZUFzU3RyaW5nKCkpOworICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMm
PigqcHJvcGVydHkudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHVGVzdHM6
OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsOCArNjYsOCBAQCBFTkRfUkVHSVNURVJfQU5J
TUFURURfUFJPUEVSVElFUwogCiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3Rl
eHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQotICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKExl
bmd0aE1vZGVPdGhlcikKKyAgICAsIG1fdGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlT3RoZXIpKQorICAgICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX2xlbmd0aEFkanVzdChTVkdMZW5ndGhBZGp1c3RTcGFj
aW5nKQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVGV4dENvbnRlbnRF
bGVtZW50KCk7CkBAIC05NSw3ICs5NSw3IEBAIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gU1ZHVGV4
dENvbnRlbnRFbGUKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoVmFsdWU+
IGRlZmF1bHRUZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcik7CiAgICAgaWYgKG1fc3BlY2lmaWVk
VGV4dExlbmd0aCA9PSBkZWZhdWx0VGV4dExlbmd0aCkKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZh
bHVlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRU
ZXh0TGVuZ3RoKCkpOworICAgICAgICBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3Rl
eHRMZW5ndGgudmFsdWUpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwg
Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOwogCiAgICAgbV90ZXh0TGVuZ3RoLnNob3VsZFN5bmNo
cm9uaXplID0gdHJ1ZTsKICAgICByZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNWR0FuaW1h
dGVkTGVuZ3RoPihsb29rdXBPckNyZWF0ZVRleHRMZW5ndGhXcmFwcGVyKHRoaXMpKTsKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1CiAg
ICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID4gMCkKICAgICAgICAgICAgIHNldExlbmd0aEFkanVz
dEJhc2VWYWx1ZShwcm9wZXJ0eVZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnRleHRMZW5ndGhBdHRyKQotICAgICAgICBtX3RleHRMZW5ndGgudmFsdWUgPSBTVkdMZW5n
dGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZv
cmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVl
Jj4oKm1fdGV4dExlbmd0aC52YWx1ZSkgPSBTVkdMZW5ndGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0
aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CiAK
ICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUp
OwogCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZQogICAgIH0KIAogICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0
aEF0dHIpCi0gICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC52YWx1
ZTsKKyAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3Ro
VmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKTsKIAogICAgIGlmIChhdXRvIHJlbmRlcmVyID0g
dGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBFTkRfUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHVGV4dFBhdGhFbGVtZW50OjpTVkdUZXh0
UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHVGV4dENvbnRlbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAg
ICwgbV9zdGFydE9mZnNldChMZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3N0YXJ0T2Zmc2V0KFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX21ldGhvZChTVkdUZXh0UGF0
aE1ldGhvZEFsaWduKQogICAgICwgbV9zcGFjaW5nKFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0KQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2
YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1RyYW5zZm9ybShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAg
LTQzLDExICs0Myw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
VHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJh
bnNmb3JtPiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFs
dWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9u
T3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1
ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0x
MzQsNyArMTI5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zv
cm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAg
IHsKICAgICB9CkBAIC0xNDMsMTEgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAg
IH0KLQotICAgIGV4cGxpY2l0IFNWR1RyYW5zZm9ybShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSog
aW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1W
YWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNp
bmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMxLDIwICszMiwxOCBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFw
cGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7
CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFu
aW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBF
eGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJp
eChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0g
ICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRy
aXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJvcGVydHkoKS5jcmVhdGVTVkdUcmFuc2Zvcm1G
cm9tTWF0cml4KG1hdHJpeCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1Ry
YW5zZm9ybT4+IGNvbnNvbGlkYXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7
CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICBhdXRvIHJlc3VsdCA9IGNh
bkFsdGVyTGlzdCgpOwpAQCAtNTIsMjMgKzUxLDIzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9
PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUg
bGlzdCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1ZSBvZiBudWxsIGlzIHJldHVybmVkLgotICAgICAg
ICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCku
aXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNo
TGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4g
d3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJh
bnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUHJvcGVydHkoKS5jb25zb2xpZGF0ZSgpOwogICAgICAg
ICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpKTsKIAotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsK
ICAgICAgICAgcmV0dXJuIFdURk1vdmUod3JhcHBlcik7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdUcmFuc2Zvcm1MaXN0KEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQog
ICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAg
UmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNm
b3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJh
bnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4o
dHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7
CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25j
YXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAg
ICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkpLm1hdHJpeCgpOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1
ZUFzU3QKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRy
YWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFs
dWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xh
c3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKLQorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZH
VHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsK
K2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVl
czxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNy
ZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNW
R1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAgLTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZH
UHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0
aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0Owor
ICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7CisgICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8
PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52
YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9y
bVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MSw0ICs5MSw5IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgU1ZHVHJhbnNmb3IKICAgICByZXR1cm4gIShhID09IGIpOwogfQogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT4geworICAgIHN0YXRpYyBT
VkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIHsg
cmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5nKCk7IH0KK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtYWJs
ZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAgICAgaWYgKCFwYXJzZVRyYW5zZm9ybVZhbHVlKHR5
cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNmb3JtKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0cmFuc2Zvcm0pOworICAgICAgICBsaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAg
ICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1cnJUcmFuc2Zvcm0sIGVuZCk7CiAgICAgICAg
IGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpjdXJyVHJhbnNmb3JtID09ICcsJykgewogICAg
ICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxMCArNjIsMTAgQEAgRU5EX1JFR0lT
VEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0
aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAg
ICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlSGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50
OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVkKQogewogICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJl
c29sdmVDYWxsYmFja3MoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIK
KyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFs
dWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxp
c3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNW
R1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCisj
aW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUHJv
cGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdTdHJpbmdMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVl
LmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PAorICAgIFNWR0FuZ2xlVmFsdWUsICAgICAg
ICAgICAgICAgICAgLy8gIDA6IGFuZ2xlCisgICAgYm9vbCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAgMTogYm9vbGVhbgorICAgIENvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gIDI6IGNvbG9yCisgICAgdW5zaWduZWQsICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzog
ZW51bWVyYXRpb24KKyAgICBpbnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICA0OiBp
bnRlZ2VyCisgICAgU1ZHTGVuZ3RoVmFsdWUsICAgICAgICAgICAgICAgICAvLyAgNTogbGVuZ3Ro
CisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywgICAgICAgICAgICAvLyAgNjogbGVuZ3RoTGlzdAor
ICAgIFNWR01hdHJpeFZhbHVlLCAgICAgICAgICAgICAgICAgLy8gIDc6IG1hdHJpeAorICAgIGZs
b2F0LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDg6IG51bWJlcgorICAgIFNWR051bWJl
ckxpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gIDk6IG51bWJlckxpc3QKKyAgICBTVkdQYXRoQnl0
ZVN0cmVhbSwgICAgICAgICAgICAgIC8vIDEwOiBwYXRoCisgICAgUmVmUHRyPFNWR1BhdGhTZWc+
LCAgICAgICAgICAgICAvLyAxMTogcGF0aFNlZworICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzLCAg
ICAgICAgICAgLy8gMTI6IHBhdGhTZWdMaXN0CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlLCAgICAvLyAxMzogcHJlc2VydmVBc3BlY3RSYXRpbworICAgIEZsb2F0UG9pbnQsICAgICAg
ICAgICAgICAgICAgICAgLy8gMTQ6IHBvaW50CisgICAgU1ZHUG9pbnRMaXN0VmFsdWVzLCAgICAg
ICAgICAgICAvLyAxNTogcG9pbnRMaXN0CisgICAgRmxvYXRSZWN0LCAgICAgICAgICAgICAgICAg
ICAgICAvLyAxNjogcmVjdAorICAgIFN0cmluZywgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
MTc6IHN0cmluZworICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMsICAgICAgICAgICAgLy8gMTg6IHN0
cmluZ0xpc3QKKyAgICBTVkdUcmFuc2Zvcm1WYWx1ZSwgICAgICAgICAgICAgIC8vIDE5OiB0cmFu
c2Zvcm0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzICAgICAgICAgIC8vIDIwOiB0cmFuc2Zv
cm1MaXN0Cis+OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZH
VHJhaXRIYXNUb1N0cmluZyB7CisgICAgdHlwZWRlZiBjaGFyIG9uZTsKKyAgICB0eXBlZGVmIGxv
bmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBvbmUgdGVzdChkZWNs
dHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnRvU3RyaW5nKSk7CisgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51bSB7IHZh
bHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9mKGNoYXIp
IH07Cit9OworICAgIAorc3RydWN0IHRvU3RyaW5nVmlzaXRvciB7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzVG9TdHJpbmc8
UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgU3RyaW5nIG9wZXJhdG9yKCko
Y29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyh2YWx1ZSk7CisgICAgfQorCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFp
dEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmlu
ZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9Cit9OworICAgIAordGVt
cGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1RyYWl0SGFzUGFyc2Ugewor
ICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25nIHR3bzsKKworICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3QoZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJh
aXRzPFQ+OjpwYXJzZSkpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgdHdvIHRl
c3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZih0ZXN0PFByb3Bl
cnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9OworfTsKKworc3RydWN0IHBhcnNl
VmlzaXRvciB7CisgICAgcGFyc2VWaXNpdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
LCBjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHVmFsdWVWYXJpYW50JiB2YXJpYW50KQorICAgICAg
ICA6IG1fYXR0ck5hbWUoYXR0ck5hbWUpCisgICAgICAgICwgbV9zdHJpbmcoc3RyaW5nKQorICAg
ICAgICAsIG1fdmFyaWFudCh2YXJpYW50KQorICAgIHsKKyAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzUGFy
c2U8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigp
KGNvbnN0IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFByb3Bl
cnR5VHlwZT4gcmVzdWx0ID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6cGFyc2Uo
bV9hdHRyTmFtZSwgbV9zdHJpbmcpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgbV92YXJpYW50LmVtcGxhY2U8UHJvcGVydHlUeXBlPihX
VEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9p
Zl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgor
ICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBjb25zdCBRdWFsaWZpZWROYW1lJiBtX2F0dHJOYW1lOworICAgIGNvbnN0IFN0cmluZyYgbV9z
dHJpbmc7CisgICAgU1ZHVmFsdWVWYXJpYW50JiBtX3ZhcmlhbnQ7Cit9OworICAgIAorY2xhc3Mg
U1ZHVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdWYWx1ZT4sIHB1YmxpYyBTVkdWYWx1ZVZh
cmlhbnQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBzdGF0aWMgUmVmPFNWR1ZhbHVlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZTxQcm9wZXJ0eVR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRp
YWxWYWx1ZSgpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlw
ZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9
IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5
VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdW
YWx1ZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7CisgICAg
fQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwh
c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRp
YyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUocHJvcGVydHkpKTsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFNWR1ZhbHVl
JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHZh
bHVlKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAg
IGJvb2wgaXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8UHJvcGVydHlUeXBlPigqdGhpcykgfHwgKHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+
Ojp2YWx1ZSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAg
IH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJh
dG9yIGNvbnN0IFByb3BlcnR5VHlwZSYoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigq
dGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6
ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0
cj4KKyAgICBvcGVyYXRvciBjb25zdCBQcm9wZXJ0eVR5cGUmKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8
UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3Bl
cnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFs
dWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgUHJvcGVydHlUeXBlJigpCisgICAgeworICAg
ICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHJvcGVydHlUeXBlJj4oV1RGOjpnZXQ8dW5z
aWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlw
ZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiog
PSBudWxscHRyPgorICAgIG9wZXJhdG9yIFByb3BlcnR5VHlwZSYoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9w
ZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQodG9TdHJpbmdWaXNpdG9yKCksIHN0YXRp
Y19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCisgICAgYm9v
bCBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNpdChwYXJzZVZpc2l0b3IoYXR0ck5h
bWUsIHN0cmluZywgc3RhdGljX2Nhc3Q8U1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKSwgc3RhdGlj
X2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGV4cGxpY2l0IFNWR1Zh
bHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50
KHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAg
fQorICAgIAorICAgIFNWR1ZhbHVlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBT
VkdWYWx1ZVZhcmlhbnQoc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUp
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4KCkgPT0gdmFsdWUuaW5kZXgoKSk7CisgICAg
fQorfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBF
TkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogaW5saW5lIFNWR1ZpZXdFbGVtZW50OjpT
VkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV96b29t
QW5kUGFuKFNWR1pvb21BbmRQYW5NYWduaWZ5KQotICAgICwgbV92aWV3VGFyZ2V0KFNWR05hbWVz
Ojp2aWV3VGFyZ2V0QXR0cikKKyAgICAsIG1fdmlld1RhcmdldChTVkdWYWx1ZTo6Y3JlYXRlKFNW
R1N0cmluZ0xpc3RWYWx1ZXMoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKSkpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnZpZXdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVk
UHJvcGVydGllc0ZvclNWR1ZpZXdFbGVtZW50KCk7CkBAIC02MCw3ICs2MCw3IEBAIFJlZjxTVkdT
dHJpbmdMaXN0PiBTVkdWaWV3RWxlbWVudDo6dmlld1QKIHZvaWQgU1ZHVmlld0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQot
ICAgICAgICBtX3ZpZXdUYXJnZXQucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0aWNfY2FzdDxT
VkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fdmlld1RhcmdldCkucmVzZXQodmFsdWUpOwogCiAgICAg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VBdHRyaWJ1dGUodGhpcywgbmFtZSwgdmFsdWUp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogCiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFuOwotICAgIFNWR1N0cmlu
Z0xpc3RWYWx1ZXMgbV92aWV3VGFyZ2V0OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92aWV3VGFy
Z2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdTcGVjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw5IEBAIGNvbnN0IFNWR1By
b3BlcnR5SW5mbyogU1ZHVmlld1NwZWM6OnRyYW4KIAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVj
KFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQogICAgIDogbV9jb250ZXh0RWxlbWVudCgmY29u
dGV4dEVsZW1lbnQpCisgICAgLCBtX3RyYW5zZm9ybShTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM+KCkpCisgICAgLCBtX3ZpZXdCb3goU1ZHVmFsdWU6OmNyZWF0ZTxGbG9h
dFJlY3Q+KCkpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHVmFsdWU6OmNyZWF0ZTxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkpCiB7CiB9CiAKQEAgLTEwOCwxNyArMTExLDE3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1ZpZXdTcGVjOjpzZXRab29tQW4KIAogU3RyaW5nIFNW
R1ZpZXdTcGVjOjp0cmFuc2Zvcm1TdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjo6dG9TdHJpbmcobV90cmFuc2Zvcm0p
OworICAgIHJldHVybiBtX3RyYW5zZm9ybS0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1Zp
ZXdTcGVjOjp2aWV3Qm94U3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlU
cmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcobV92aWV3Qm94KTsKKyAgICByZXR1cm4gbV92aWV3
Qm94LT50b1N0cmluZygpOwogfQogCiBTdHJpbmcgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0
UmF0aW9TdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojp0b1N0cmluZyhtX3ByZXNlcnZlQXNwZWN0UmF0aW8p
OworICAgIHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnRvU3RyaW5nKCk7CiB9CiAKIFNW
R0VsZW1lbnQqIFNWR1ZpZXdTcGVjOjp2aWV3VGFyZ2V0KCkgY29uc3QKQEAgLTE3Nyw5ICsxODAs
OSBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHVmlld1NwZWM6OmxvCiB2b2lkIFNWR1Zp
ZXdTcGVjOjpyZXNldCgpCiB7CiAgICAgbV96b29tQW5kUGFuID0gU1ZHWm9vbUFuZFBhbk1hZ25p
Znk7Ci0gICAgbV90cmFuc2Zvcm0uY2xlYXIoKTsKLSAgICBtX3ZpZXdCb3ggPSB7IH07Ci0gICAg
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0geyB9OworICAgIHN0YXRpY19jYXN0PFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMmPigqbV90cmFuc2Zvcm0pLmNsZWFyKCk7CisgICAgc3RhdGljX2Nhc3Q8Rmxv
YXRSZWN0Jj4oKm1fdmlld0JveCkgPSB7IH07CisgICAgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVBc3BlY3RSYXRpbykgPSB7IH07CiAgICAgbV92
aWV3VGFyZ2V0U3RyaW5nID0gZW1wdHlTdHJpbmcoKTsKIH0KIApAQCAtMjYxLDcgKzI2NCw3IEBA
IGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3QKICAgICAgICAgICAgIGlm
IChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygnKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwotICAgICAg
ICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUobV90cmFuc2Zv
cm0sIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7
CisgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShz
dGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJhbnNmb3JtKSwgY3VyclZp
ZXdTcGVjLCBlbmQsIFNWR1RyYW5zZm9ybWFibGU6OkRvTm90Q2xlYXJMaXN0KTsKICAgICAgICAg
ICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJyknKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNyArNTUs
MTcgQEAgcHVibGljOgogCiAgICAgLy8gQ3VzdG9tIG5vbi1hbmltYXRlZCAndHJhbnNmb3JtJyBw
cm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gdHJhbnNmb3JtKCk7Ci0gICAg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybTsgfQorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFz
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyY+KCptX3RyYW5zZm9ybSk7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRlZCAndmlld0JveCcg
cHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdD4gdmlld0JveEFuaW1hdGVkKCk7
Ci0gICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gbV92aWV3Qm94OyB9Ci0gICAgdm9p
ZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyBtX3ZpZXdC
b3ggPSB2aWV3Qm94OyB9CisgICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCk7IH0KKyAgICB2b2lkIHNldFZpZXdCb3hCYXNl
VmFsdWUoY29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94KSB7IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+
KCptX3ZpZXdCb3gpID0gdmlld0JveDsgfQogCiAgICAgLy8gQ3VzdG9tIGFuaW1hdGVkICdwcmVz
ZXJ2ZUFzcGVjdFJhdGlvJyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0ZWQoKTsKLSAgICBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IHJldHVybiBtX3By
ZXNlcnZlQXNwZWN0UmF0aW87IH0KLSAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNl
VmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJh
dGlvKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHByZXNlcnZlQXNwZWN0UmF0aW87IH0KKyAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvKTsgfQorICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1
ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8p
IHsgc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJj4oKm1fcHJlc2VydmVB
c3BlY3RSYXRpbykgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpAQCAtODQsOSArODQsOSBAQCBwcml2YXRl
OgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAgICBTVkdab29tQW5kUGFu
VHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9OwotICAgIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0IG1fdmlld0JveDsKLSAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAg
IFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Zp
ZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAg
U3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsMjIgKzU1LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPjo6c2V0QmFzZVZh
bChwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgRW51bVR5cGUmIHByb3BlcnR5KQorICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VS
VChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZCY+KHByb3BlcnR5KSkpOwotICAgIH0KLQotICAgIEVudW1UeXBlJiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICB1bnNpZ25lZCYgYW5pbWF0ZWRWYWx1ZSA9IFNWR0Fu
aW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPjo6Y3VycmVudEFuaW1hdGVkVmFs
dWUoKTsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkVmFsdWUgPD0gU1ZHUHJvcGVydHlUcmFpdHM8
RW51bVR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxFbnVtVHlwZSY+KGFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VW
YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJv
cGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQotICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJv
cGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Q
cm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCisgICAgICAgIDogU1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKQogICAgIHsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46Okxpc3RQcm9wZXJ0eVRlYXJPZmY7CiAgICAgdXNpbmcgQ29udGVudFR5cGUg
PSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0aWMg
UmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVs
ZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtODUsNDQgKzg1LDUwIEBAIHB1Ymxp
YzoKICAgICAgICAgTGlzdFByb3BlcnR5OjpkZXRhY2hMaXN0V3JhcHBlcnNBbmRSZXNpemUoJm1f
d3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKICAgICAgICAgcmV0
dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJv
cGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzKCk7CisgICAgfQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZh
bHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlczsKICAgICB9CiAKLSAg
ICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsLCBib29sIHNo
b3VsZE93blZhbHVlcyA9IGZhbHNlKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChSZWZQdHI8
U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5n
KCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nh
c3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1fd3JhcHBl
cnMuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkp
OwogCiAgICAgICAgIC8vIFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcg
d3JhcHBlcnMgbGlzdC4gVGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3Ig
dGhlIG5ldyB2YWx1ZS4KLSAgICAgICAgaWYgKCFuZXdBbmltVmFsLT5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBuZXdBbmltVmFsLT5zaXplKCkpOwor
ICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbmV3
QW5pbVZhbCkuc2l6ZSgpKQorICAgICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwg
c2l6ZSk7CiAKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gYW5pbVZhbCgpOwotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZt
X2FuaW1hdGVkV3JhcHBlcnMsIHNob3VsZE93blZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVChtX2Fu
aW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndy
YXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNB
bmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzKTsKKyAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmlt
YXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1h
dGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXpl
KCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09
IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PFByb3BlcnR5
VHlwZSY+KCpjdXJyZW50QmFzZVZhbHVlKCkpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7
CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09
IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVk
UHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7
CiAKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycygmbV92
YWx1ZXMsICZtX3dyYXBwZXJzLCBmYWxzZSk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVy
cyhtX3ZhbHVlcywgJm1fd3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBw
ZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRX
cmFwcGVycy5jbGVhcigpOwpAQCAtMTQyLDM0ICsxNDgsMzQgQEAgcHVibGljOgogICAgICAgICAv
LyBBbHNvIGV4aXN0aW5nIHdyYXBwZXJzIHdoaWNoIHBvaW50IGRpcmVjdGx5IGF0IGVsZW1lbnRz
IGluIHRoZSBleGlzdGluZyBTVkdMZW5ndGhMaXN0VmFsdWVzIGhhdmUgdG8gYmUgZGV0YWNoZWQg
KHNvIGEgY29weQogICAgICAgICAvLyBvZiB0aGVtIGlzIGNyZWF0ZWQsIHNvIGV4aXN0aW5nIGFu
aW1WYWwgdmFyaWFibGVzIGluIEpTIGFyZSBrZXB0LWFsaXZlKS4gSWYgd2UnZCBkZXRhY2ggdGhl
bSBsYXRlciB0aGUgdW5kZXJseWluZwogICAgICAgICAvLyBTVkdMZW5ndGhMaXN0VmFsdWVzIHdh
cyBhbHJlYWR5IG11dGF0ZWQsIGFuZCBvdXIgbGlzdCBpdGVtIHdyYXBwZXIgdGVhciBvZmZzIHdv
dWxkIHBvaW50IG5vd2hlcmUuIEFzc2VydGlvbnMgd291bGQgZmlyZS4KLSAgICAgICAgbV9hbmlt
YXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFw
cGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmlt
YXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1h
dGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0
eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAgICB9
CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgpID09IG1f
d3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7
CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NF
UlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSkuc2l6ZSgp
ID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVl
ZGVkKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHko
Y29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAg
ICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKKyAg
ICAgICAgaWYgKHNpemVfdCBzaXplID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVl
cykuc2l6ZSgpKQorICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAsIHNpemUpOwogICAgIH0K
IAotICAgIFByb3BlcnR5VHlwZSYgbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Zh
bHVlczsKIAogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV93cmFwcGVyczsKICAgICBMaXN0V3JhcHBl
ckNhY2hlIG1fYW5pbWF0ZWRXcmFwcGVyczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTAsIDIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMzEsNyArMzIsNyBAQCBjbGFzcyBTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAg
ICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC03NSw5ICs3Niw4
IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKCFtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0pOwog
ICAgICAgICBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0gPSBieXRlU3RyZWFtOwogCi0gICAgICAg
IC8vIFBhc3Mgc2hvdWxkT3duVmFsdWVzPXRydWUsIGFzIHRoZSBTVkdQYXRoU2VnTGlzdFZhbHVl
cyBsaWZldGltZSBpcyBzb2xlbHkgbWFuYWdlZCBieSBpdHMgdGVhciBvZmYgY2xhc3MuCi0gICAg
ICAgIGF1dG8qIGNvcHkgPSBuZXcgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoKmJhc2VWYWx1ZSk7Ci0g
ICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weSwgdHJ1ZSk7CisgICAgICAgIGF1dG8g
Y29weSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmJhc2VWYWx1ZSk7CisgICAgICAgIEJhc2U6OmFuaW1h
dGlvblN0YXJ0ZWQoY29weS5wdHIoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRl
ZCgpCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gSWYgdGhlIGFuaW1WYWwg
aXMgb2JzZXJ2ZWQgZnJvbSBKUywgd2UgaGF2ZSB0byB1cGRhdGUgaXQgb24gZWFjaCBhbmltYXRp
b24gc3RlcC4KICAgICAgICAgLy8gVGhpcyBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBv
bmx5IGRvbmUsIGlmIHNvbWVvbmUgYWN0dWFsbHkgb2JzZXJ2ZXMgdGhlIGFuaW1hdGVkUGF0aFNl
Z0xpc3QoKSB3aGlsZSBhbiBhbmltYXRpb24gaXMgcnVubmluZy4KICAgICAgICAgaWYgKHBhdGhF
bGVtZW50LT5pc0FuaW1WYWxPYnNlcnZlZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBhbmltYXRl
ZExpc3QgPSBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgYXV0byYgYW5pbWF0
ZWRMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqY3VycmVudEFuaW1h
dGVkVmFsdWUoKSk7CiAgICAgICAgICAgICBhbmltYXRlZExpc3QuY2xlYXIoKTsKICAgICAgICAg
ICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbSgqbV9hbmltYXRlZFBh
dGhCeXRlU3RyZWFtLCAqcGF0aEVsZW1lbnQsIGFuaW1hdGVkTGlzdCwgVW5hbHRlcmVkUGFyc2lu
Zyk7CiAgICAgICAgIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgU1ZHUGF0aEJ5
dGVTdHJlYW0qIGFuaW1hdGVkUGF0aEJ5dGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX2FuaW1h
dGVkUGF0aEJ5dGVTdHJlYW07IH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAg
ICAgICA6IEJhc2UoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCB2YWx1ZXMpCiAgICAgICAgICwgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKG51bGxw
dHIpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHkuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU1ZHVmFsdWU7
CiBjbGFzcyBTVkdFbGVtZW50OwogY2xhc3MgU1ZHUHJvcGVydHk7CiAKQEAgLTQ5LDcgKzUwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkUHJvcGVydHkoKTsKIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwgdHlwZW5hbWUgVGVhck9mZlR5cGUsIHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0
ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8s
IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlwZT4gbG9v
a3VwT3JDcmVhdGVXcmFwcGVyKE93bmVyVHlwZSogZWxlbWVudCwgY29uc3QgU1ZHUHJvcGVydHlJ
bmZvKiBpbmZvLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAg
IEFTU0VSVChpbmZvKTsKICAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uIGtl
eShlbGVtZW50LCBpbmZvLT5wcm9wZXJ0eUlkZW50aWZpZXIpOwpAQCAtNTgsNyArNTksNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8VGVhck9mZlR5cGUmPigqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiAK
LSAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6
Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBwcm9wZXJ0eSk7CisgICAgICAgIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiB3cmFw
cGVyID0gVGVhck9mZlR5cGU6OmNyZWF0ZShlbGVtZW50LCBpbmZvLT5hdHRyaWJ1dGVOYW1lLCBp
bmZvLT5hbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWUpOwogICAgICAgICBpZiAoaW5mby0+YW5p
bWF0ZWRQcm9wZXJ0eVN0YXRlID09IFByb3BlcnR5SXNSZWFkT25seSkKICAgICAgICAgICAgIHdy
YXBwZXItPnNldElzUmVhZE9ubHkoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eU1hY3Jvcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkIDIwMTAtMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yNSw2ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1
ZGUgIlNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRy
YWl0cy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC0zNCwyNSArMzYsMTIg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgog
c3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSB7CiAgICAgU1ZHU3luY2hy
b25pemFibGVBbmltYXRlZFByb3BlcnR5KCkKLSAgICAgICAgOiB2YWx1ZShTVkdQcm9wZXJ0eVRy
YWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSkKLSAgICAgICAgLCBzaG91bGRTeW5j
aHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgICAgICA6IHZhbHVl
KFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPigpKQogICAgIHsKICAgICB9CiAKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjE+Ci0gICAgU1ZHU3luY2hyb25p
emFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUx
KQotICAgICAgICA6IHZhbHVlKHZhbHVlMSkKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShm
YWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjEsIHR5cGVuYW1lIENvbnN0cnVjdG9y
UGFyYW1ldGVyMj4KLSAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3Qg
Q29uc3RydWN0b3JQYXJhbWV0ZXIxJiB2YWx1ZTEsIGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVy
MiYgdmFsdWUyKQotICAgICAgICA6IHZhbHVlKHZhbHVlMSwgdmFsdWUyKQotICAgICAgICAsIHNo
b3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCisgICAgU1ZH
U3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUp
CisgICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KHZhbHVlKSkK
ICAgICB7CiAgICAgfQogCkBAIC02MSw5ICs1MCw5IEBAIHN0cnVjdCBTVkdTeW5jaHJvbml6YWJs
ZUFuaW1hdGVkUHJvcGVydHkKICAgICAgICAgb3duZXJFbGVtZW50LT5zZXRTeW5jaHJvbml6ZWRM
YXp5QXR0cmlidXRlKGF0dHJOYW1lLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBl
IHZhbHVlOwotICAgIGJvb2wgc2hvdWxkU3luY2hyb25pemUgOiAxOwotICAgIGJvb2wgaXNWYWxp
ZCA6IDE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZTsKKyAgICBib29sIHNob3VsZFN5bmNo
cm9uaXplIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKIAogLy8g
UHJvcGVydHkgcmVnaXN0cmF0aW9uIGhlbHBlcnMKQEAgLTEyNCwxOSArMTEzLDE5IEBAIHB1Ymxp
YzogXAogICAgIHsgXAogICAgICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFRlYXJPZmZUeXBlPih0aGlzLCBMb3dl
clByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKSkpIHsgXAogICAgICAgICAgICAgaWYgKHdyYXBwZXIt
PmlzQW5pbWF0aW5nKCkpIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVu
dEFuaW1hdGVkVmFsdWUoKTsgXAorICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVR5cGUmPigqd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKSk7IFwKICAgICAg
ICAgfSBcCi0gICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZh
bHVlKTsgXAogICAgIH0gXAogXAogICAgIFByb3BlcnR5VHlwZSYgTG93ZXJQcm9wZXJ0eSMjQmFz
ZVZhbHVlKCkgY29uc3QgT3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICByZXR1
cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFByb3BlcnR5VHlwZSY+KCptXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSk7IFwKICAgICB9IFwKIFwK
LSAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlw
ZSYgdHlwZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZpZXIg
XAorICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVydHlU
eXBlJiB2YWx1ZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZp
ZXIgXAogICAgIHsgXAotICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSA9IHR5cGU7IFwK
KyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZh
bHVlKSA9IHZhbHVlOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5LmlzVmFsaWQgPSB2YWxp
ZFZhbHVlOyBcCiAgICAgfSBcCiBcCkBAIC0xNTYsNyArMTQ1LDcgQEAgcHJpdmF0ZTogXAogICAg
IHsgXAogICAgICAgICBpZiAoIW1fIyNMb3dlclByb3BlcnR5LnNob3VsZFN5bmNocm9uaXplKSBc
CiAgICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fIyNMb3dlclByb3BlcnR5LnZh
bHVlKSk7IFwKKyAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OnRvU3RyaW5nKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptXyMjTG93
ZXJQcm9wZXJ0eS52YWx1ZSkpKTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5zeW5jaHJv
bml6ZSh0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwg
dmFsdWUpOyBcCiAgICAgfSBcCiBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFByb3BlcnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVy
dHlUeXBlOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVh
dGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9w
ZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgcHJvcGVydHkp
CiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+
KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJv
cGVydHkpKTsKQEAgLTYwLDIzICs2MCwyOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0
aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5OyB9CiAKLSAgICBQ
cm9wZXJ0eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGlu
ZygpKTsKLSAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+cHJvcGVydHlSZWZlcmVu
Y2UoKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKICAgICB9
CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAg
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmlt
YXRlZFByb3BlcnR5LT52YWx1ZSgpOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4gY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9wcm9w
ZXJ0eTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBu
ZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsK
ICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkg
PSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUoKm5ld0Fu
aW1WYWwpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG5ld0FuaW1WYWwp
OwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtMTA0LDEzICsxMTAsMTMg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFBy
b3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiBwcm9wZXJ0eSkKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAg
ICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQogICAgIHsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5
cGUmIG1fcHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Byb3BlcnR5OwogICAgIFdl
YWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYmFzZVZhbDsKICAgICBX
ZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2FuaW1WYWw7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCisjaW5jbHVkZSAi
U1ZHVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw0MyArMzMsNDkgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fcHJvcGVydHk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVR5cGUmPigqbV9wcm9wZXJ0eSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBjb25z
dCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwoKQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbWF0ZWRQ
cm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OwotICAgICAg
ICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVR5cGUmPigqbV9hbmltYXRlZFByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIGJhc2VWYWwo
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJhc2VWYWwoY29u
c3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIG1fcHJvcGVydHkgPSBw
cm9wZXJ0eTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fcHJvcGVydHkp
ID0gcHJvcGVydHk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkK
KyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5
VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHByb3BlcnR5KQogICAgIHsKICAgICAgICAg
QVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7CiAgICAg
fQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRy
PFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgeworICAgICAgICBBU1NFUlQo
aXNBbmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7CisgICAg
fQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNv
bnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIHJldHVy
biAqbV9hbmltYXRlZFByb3BlcnR5OworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5
OwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNv
bnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5OwogICAgIH0KIAotICAgIHZvaWQgYW5p
bWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9pZCBhbmltYXRp
b25TdGFydGVkKFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFT
U0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKQEAgLTk5
LDE2ICsxMDYsMTYgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1h
dGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRl
ZFN0YXRpY1Byb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHByb3BlcnR5KQogICAgICAg
ICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFu
aW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCi0gICAg
ICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCiAgICAgeworICAgICAgICBBU1NFUlRf
SU1QTElFUyhtX3Byb3BlcnR5LCBtX3Byb3BlcnR5LT5pczxQcm9wZXJ0eVR5cGU+KCkpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7Ci0gICAgUHJvcGVy
dHlUeXBlKiBtX2FuaW1hdGVkUHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Byb3Bl
cnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9hbmltYXRlZFByb3BlcnR5OwogfTsKIAogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVt
ZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzKQorICAg
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1l
bnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2RpZmljYXRpb25Vbmtub3duID0gMCwK
LSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAgICBMaXN0TW9kaWZpY2F0aW9uUmVw
bGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCi0gICAgTGlzdE1vZGlm
aWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
IGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjsKIApAQCAtNzUsMTkgKzY3LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKG1fd3JhcHBl
cnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lkIHNldFZhbHVlc0FuZFdyYXBwZXJz
KFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycywgYm9vbCBz
aG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQogICAgIHsK
ICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFuaW1WYWwgc3VwcG9ydCwgdG8gc3dp
dGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJzCiAgICAgICAgIC8vIHRvIHRoZSBj
dXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRpb24gZm9yIGEgbGlzdCBzdGFydHMu
CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsK
ICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9sZSk7Ci0gICAgICAgIGlmIChtX293
bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7CiAgICAgICAgIG1fdmFsdWVz
ID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBzaG91bGRPd25WYWx1ZXM7CiAgICAg
ICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5
KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlz
dDo6Y2xlYXIoKQpAQCAtOTgsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZh
bHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQpAQCAtMTExLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgZGV0YWNoTGlz
dFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVz
UHJvcGVydHkoKS5jbGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA4LDcgQEAgcHVibGljOgogICAgIC8vIFNWR0xp
c3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXMoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0Ojppbml0aWFs
aXplKCkKQEAgLTEzNCw4ICsxMjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWlu
Z0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gU3BlYzogQ2xlYXJzIGFs
bCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJlLWluaXRpYWxpemVz
IHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBieSB0aGUgcGFyYW1l
dGVyLgotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKLSAgICAgICAgbV92YWx1ZXMtPmFwcGVu
ZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOworICAgICAgICB2
YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3
SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0
ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVy
dHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0
ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0xNTksOSArMTQ4LDkgQEAgcHVibGljOgog
CiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVtcyBmcm9t
IHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBzaW5nbGUg
aXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KICAgICAgICAgZGV0YWNoTGlzdFdyYXBw
ZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVy
dHkoKS5jbGVhcigpOwogCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbS0+cHJvcGVy
dHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKG5ld0l0ZW0t
PnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRlbS0+Y3JlYXRlV2Vh
a1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTE3MSw3ICsxNjAsNyBAQCBw
dWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0SXRlbSgpCiAgICAgRXhjZXB0aW9uT3I8Ym9vbD4g
Y2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlmIChpbmRleCA+PSBt
X3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5z
aXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsK
IAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE4NSw3ICsxNzQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNw
ZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSByZXR1cm5l
ZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KLSAgICAgICAgcmV0dXJu
IExpc3RJdGVtVHlwZSB7IG1fdmFsdWVzLT5hdChpbmRleCkgfTsKKyAgICAgICAgcmV0dXJuIExp
c3RJdGVtVHlwZSB7IHN0YXRpY19jYXN0PExpc3RJdGVtVHlwZSY+KCp2YWx1ZXNQcm9wZXJ0eSgp
LmF0KGluZGV4KSkgfTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8TGlzdEl0ZW1UZWFy
T2ZmPj4gZ2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5OSwxMyArMTg4LDEzIEBAIHB1
YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9t
IHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBh
IGNvcHkuCiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0ZW0gYXJlIGltbWVk
aWF0ZWx5IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3Bl
cnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIFJlZlB0cjxMaXN0
SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJPZmYqPihtX3dy
YXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBpZiAoIXdyYXBwZXIpIHsKICAgICAg
ICAgICAgIC8vIENyZWF0ZSBuZXcgd3JhcHBlciwgd2hpY2ggaXMgYWxsb3dlZCB0byBkaXJlY3Rs
eSBtb2RpZnkgdGhlIGl0ZW0gaW4gdGhlIGxpc3QsIHcvbyBjb3B5aW5nIGFuZCBjYWNoZSB0aGUg
d3JhcHBlciBpbiBvdXIgbWFwLgogICAgICAgICAgICAgLy8gSXQgaXMgYWxzbyBhc3NvY2lhdGVk
IHdpdGggb3VyIGFuaW1hdGVkIHByb3BlcnR5LCBzbyBpdCBjYW4gbm90aWZ5IHRoZSBTVkcgRWxl
bWVudCB3aGljaCBob2xkcyB0aGUgU1ZHQW5pbWF0ZWQqTGlzdAogICAgICAgICAgICAgLy8gdGhh
dCBpdCBoYXMgYmVlbiBtb2RpZmllZCAoYW5kIHRodXMgY2FuIGNhbGwgc3ZnQXR0cmlidXRlQ2hh
bmdlZChhc3NvY2lhdGVkQXR0cmlidXRlTmFtZSkpLgotICAgICAgICAgICAgd3JhcHBlciA9IExp
c3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1
ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpj
cmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGlu
ZGV4KSk7CiAgICAgICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSB3cmFwcGVyLT5jcmVh
dGVXZWFrUHRyKCk7CiAgICAgICAgIH0KIApAQCAtMjIxLDggKzIxMCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8g
U3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1iZXJPZkl0
ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0
LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAgICAgaW5k
ZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNQcm9wZXJ0
eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7
CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJlYWR5IGluIGEgbGlzdCwgaXQg
aXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9yZSBpdCBpcyBpbnNlcnRlZCBp
bnRvIHRoaXMgbGlzdC4KICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVl
KG5ld0l0ZW0sICZpbmRleCkpIHsKQEAgLTIzMiw3ICsyMjEsNyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNp
ZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3
IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51
bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMg
aW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+aW5z
ZXJ0KGluZGV4LCBuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5k
ZXgsIFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07
CkBAIC0yNDgsMTAgKzIzNywxMCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0g
aXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4g
bV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsK
KyAgICAgICAgaWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCisgICAgICAgICAg
ICBpbmRleCA9IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCi0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJl
ZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTI2MSw3ICsyNTAsNyBAQCBw
dWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxp
c3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9y
ZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBm
aXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0
aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgotICAgICAg
ICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsK
KyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnZhbHVlKCkp
OwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9uICdpbmRleCcsIGNo
YW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5ld0l0ZW0sIGRpcmVj
dGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAgICAgICAgbV93cmFwcGVycy0+aW5z
ZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwpAQCAtMjc4LDcgKzI2Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBp
ZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVl
c1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4
U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTgsMTMgKzI4NywxMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9Owog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAg
aWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAvLyAnbmV3SXRl
bScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdy
ZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4
Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtOworICAgICAgICBzdGF0
aWNfY2FzdDxMaXN0SXRlbVR5cGUmPigqdmFsdWVzUHJvcGVydHkoKS5hdChpbmRleCkpID0gbmV3
SXRlbTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVt
VHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTMxOSw3ICszMDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5
KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVt
VGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMzI4LDcgKzMxNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgJmluZGV4
KSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0ZW0pOwogCi0gICAgICAgIGlmICht
X3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMtPmlzRW1wdHkoKSk7CiAgICAg
ICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3Zl
ZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRv
IHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3Ig
fTsKQEAgLTM0MCw3ICszMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBvbGRJdGVtLT5kZXRh
Y2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgdGhlIHdyYXBw
ZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5h
dChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLmF0KGluZGV4KSA9IG5ld0l0ZW0tPnZhbHVlKCk7CiAgICAgICAgIG1fd3JhcHBl
cnMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKTsKIAogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKQEAgLTM1NSw3ICszNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXpl
KCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMzY4LDggKzM1Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IG1fdmFs
dWVzLT5hdChpbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOworICAgICAg
ICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IHN0YXRpY19jYXN0PExpc3RJdGVtVHlwZSY+KCp2YWx1
ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3Zl
KGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUob2xkSXRlbSk7CkBAIC0zODQsMTYgKzM3MywxNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkg
PT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRoZSBl
eGlzdGluZyB3cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBvbGRJdGVt
ID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdl
dCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJ
dGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMt
PmF0KGluZGV4KSk7CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVh
dGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4
KSk7CiAKICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBw
ZXJzLT5yZW1vdmUoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAg
ICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbS5yZWxlYXNlTm9uTnVsbCgpOwpAQCAtNDEx
LDcgKzQwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1
ZShuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVlIGF0IHRoZSBlbmQg
b2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAg
IHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihu
ZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQp
OwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtNDI2LDcgKzQx
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
ICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC00
MzQsMTkgKzQyMywyNSBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVt
V3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVlIGFuZCB3
cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQo
bmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
YXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3
SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoTGlzdE1vZGlm
aWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0ZW0pOwogICAgIH0K
IAotICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzKCkKKyAgICBSZWY8U1ZHVmFsdWU+IHZhbHVlcygp
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICByZXR1cm4g
Km1fdmFsdWVzOwogICAgIH0KIAorICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzUHJvcGVydHkoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlcyk7CisgICAgfQorCiAgICAgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOwpAQCAtNDU5LDIwICs0NTQsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBl
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0
eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAgICAgOiBtX3JvbGUocm9sZSkKLSAgICAg
ICAgLCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAgICAgICwgbV92YWx1ZXMoJnZhbHVlcykKKyAg
ICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgICAgICwgbV93cmFwcGVycyh3cmFwcGVycykK
ICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U1ZHTGlzdFByb3BlcnR5KCkKLSAgICB7Ci0g
ICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7Ci0g
ICAgfQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uKQogICAgIHsKQEAgLTQ4Myw4ICs0
NzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJ
dGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4
VG9Nb2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgYm9vbCBt
X293bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZH
VmFsdWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUqIG1fd3JhcHBlcnM7CiAgICAg
V2Vha1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
MjIgKzM1LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjsKICAgICB1
c2luZyBMaXN0V3JhcHBlckNhY2hlID0gdHlwZW5hbWUgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2FjaGU7CiAKKyAgICB1c2luZyBCYXNl
Ojp2YWx1ZXNQcm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFz
ZTo6bV92YWx1ZXM7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAotICAgIHN0YXRpYyBS
ZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3Jh
cHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgaW50IGZp
bmRJdGVtKExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICB1bnNp
Z25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBt
X3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHko
KS5zaXplKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+YXQoaSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGk7CkBAIC02MSwxNSArNjAsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1v
dmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdy
YXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJU
KG1fd3JhcHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBw
ZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oaXRlbUluZGV4IDwgbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBhdXRvIGl0
ZW0gPSBtX3dyYXBwZXJzLT5hdChpdGVtSW5kZXgpOwogICAgICAgICBpdGVtLT5kZXRhY2hXcmFw
cGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpdGVtSW5kZXgpOwotICAgICAgICBt
X3ZhbHVlcy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVt
b3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMp
CiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsxMTAsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xp
c3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAg
ICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgIHsKQEAgLTEyOSwx
OCArMTI3LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJp
ZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dy
YXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBp
bmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAgICAgIHVuc2lnbmVkIHNp
emUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUo
KSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAg
ICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpOwogICAgICAgICAgICAgaWYgKCFp
dGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaXRlbS0+c2V0QW5p
bWF0ZWRQcm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkucHRyKCkpOwotICAgICAgICAgICAgaXRl
bS0+c2V0VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVl
KHZhbHVlc1Byb3BlcnR5KCkuYXQoaSkpOwogICAgICAgICB9CiAKICAgICAgICAgbV9hbmltYXRl
ZFByb3BlcnR5LT5jb21taXRDaGFuZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAKICAgICBTVkdNYXRyaXhWYWx1ZSYgcHJv
cGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVu
Y2UoKS5zdmdNYXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShTVkdNYXRyaXhWYWx1ZSYg
dmFsdWUpIGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZh
bHVlKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
IGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHN0YXRpY19j
YXN0PFNWR01hdHJpeFZhbHVlJj4oKnZhbHVlKSk7IH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdl
KCkgZmluYWwKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUg
IlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjUsMTcgKzY2LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShp
bml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
UHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9Cisg
ICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAg
ICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgcHJvcGVydHlSZWZlcmVuY2UoKSB7IHJldHVybiBzdGF0
aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqbV92YWx1ZSk7IH0KICAgICBTVkdBbmltYXRlZFByb3Bl
cnR5KiBhbmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5
LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBlJiB2YWx1
ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92
YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBk
ZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gZmFsc2U7
Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFsdWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAg
ICB9CiAKICAgICB2b2lkIHNldEFuaW1hdGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSog
YW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIC8v
IGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRvIHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8gYmUgcG9z
c2libGUgdG8gbW9kaWZ5ICdpdGVtJwogICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhlICJuZXcg
aXRlbSIgKHdpdGggeD0xMDApIGluIHRoZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8vIFdoZW5l
dmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVzIHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhpc3Rpbmcg
d3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAgICBtX3Zh
bHVlID0gbmV3IFByb3BlcnR5VHlwZSgqbV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUgPSBTVkdW
YWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3ZhbHVlKSk7CiAgICAg
ICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVlOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBu
dWxscHRyOwogICAgIH0KQEAgLTEzNiwxMCArMTM2LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
b3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWUp
CisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAg
ICAgLCBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKKyAgICAgICAgLCBt
X3ZhbHVlKHZhbHVlKQogICAgICAgICAsIG1fdmFsdWVJc0NvcHkoZmFsc2UpCiAgICAgewogICAg
IH0KQEAgLTE1MiwxNyArMTUyLDE2IEBAIHByb3RlY3RlZDoKICAgICBTVkdQcm9wZXJ0eVRlYXJP
ZmYoY29uc3QgUHJvcGVydHlUeXBlKiBpbml0aWFsVmFsdWUpCiAgICAgICAgIDogbV9hbmltYXRl
ZFByb3BlcnR5KG51bGxwdHIpCiAgICAgICAgICwgbV9yb2xlKFVuZGVmaW5lZFJvbGUpCi0gICAg
ICAgICwgbV92YWx1ZShpbml0aWFsVmFsdWUgPyBuZXcgUHJvcGVydHlUeXBlKCppbml0aWFsVmFs
dWUpIDogbnVsbHB0cikKICAgICAgICAgLCBtX3ZhbHVlSXNDb3B5KHRydWUpCiAgICAgeworICAg
ICAgICBpZiAoaW5pdGlhbFZhbHVlKQorICAgICAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpj
cmVhdGUoKmluaXRpYWxWYWx1ZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHlU
ZWFyT2ZmKCkKICAgICB7Ci0gICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlm
IChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAg
ICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2hD
aGlsZHJlbigpCkBAIC0xNzYsMTAgKzE3NSwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8
U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbV9hbmltYXRlZFByb3BlcnR5OwogICAgIFNWR1Byb3BlcnR5
Um9sZSBtX3JvbGU7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlOworICAgIFJlZlB0cjxTVkdW
YWx1ZT4gbV92YWx1ZTsKICAgICBWZWN0b3I8V2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmZCYXNl
Pj4gbV9jaGlsZFRlYXJPZmZzOwogICAgIFdlYWtQdHJGYWN0b3J5PFNWR1Byb3BlcnR5VGVhck9m
Zj4gbV93ZWFrUHRyRmFjdG9yeTsKLSAgICBib29sIG1fdmFsdWVJc0NvcHk7CisgICAgYm9vbCBt
X3ZhbHVlSXNDb3B5IHsgZmFsc2UgfTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjAsMjAgKzIwLDQ4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBv
aW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5o
IgorI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitlbnVtIExpc3RNb2RpZmljYXRpb24geworICAgIExpc3RNb2RpZmlj
YXRpb25Vbmtub3duID0gMCwKKyAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKKyAgICBM
aXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCisgICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9
IDMsCisgICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKK307CisgICAgCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHMgeyB9OwogCiB0
ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0YXRpYyBi
b29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wgZnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0cnVlIjsg
fQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBlID8g
InRydWUiIDogImZhbHNlIjsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPENvbG9yPiB7CisgICAgc3RhdGljIENvbG9yIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJu
IENvbG9yKCk7IH0KKyAgICBzdGF0aWMgQ29sb3IgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRlU3Bh
Y2UoKSk7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb2xvcj4gcGFyc2UoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgQ29sb3Ig
Y29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsK
KyAgICAgICAgcmV0dXJuIGNvbG9yLmlzVmFsaWQoKSA/IGNvbG9yIDogc3RkOjpvcHRpb25hbDxD
b2xvcj4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBDb2xvciYg
dHlwZSkgeyByZXR1cm4gdHlwZS5zZXJpYWxpemVkKCk7IH0KK307CisKK3RlbXBsYXRlPD4KIHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czx1bnNpZ25lZD4gewogICAgIHN0YXRpYyB1bnNpZ25lZCBp
bml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyh1
bnNpZ25lZCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQpAQCAtNDIsMTkg
KzcwLDEwOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKIHRlbXBsYXRl
PD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+IHsKICAgICBzdGF0aWMgaW50IGluaXRp
YWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgaW50IGZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJnN0cmluZykgeyByZXR1cm4gc3RyaW5nLnRvSW50U3RyaWN0KCk7IH0KICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBl
KTsgfQogfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6
OnBhaXI8aW50LCBpbnQ+PiB7CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4g
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0IGZp
cnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51bWJl
ck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9w
YWlyKHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSksIHN0YXRpY19jYXN0PGlu
dD4ocm91bmRmKHNlY29uZE51bWJlcikpKTsKKyAgICB9Cit9OwogCiB0ZW1wbGF0ZTw+CiBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+IHsKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFZh
bHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBmbG9hdCBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgdHlwZSA9IDA7CisgICAgICAgIHJl
dHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCB0eXBlKSA/IHR5cGUgOiAwOworICAg
IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxmbG9hdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgbnVtYmVy
OworICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVyKSA/
IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+KCk7CisgICAgfQogICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0K
IH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0
IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51
bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisg
ICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihm
aXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4geworICAgIHN0YXRpYyBGbG9hdFBvaW50
IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UG9pbnQoKTsgfQorICAgIHN0YXRpYyBGbG9h
dFBvaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBG
bG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50
KSA/IHBvaW50IDogRmxvYXRQb2ludCgpOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxGbG9hdFBvaW50PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4g
cGFyc2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDogc3RkOjpvcHRpb25hbDxGbG9hdFBv
aW50PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0UG9p
bnQmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKKyAgICBzdGF0aWMgRmxvYXRSZWN0IGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgc3RhdGljIEZsb2F0UmVj
dCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRS
ZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3Qg
OiBGbG9hdFJlY3QoKTsKKyAgICAgICAgCisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEZsb2F0UmVjdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJz
ZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3QgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4oKTsK
KyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5cGUp
CisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cih0eXBlLmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICB9Cit9OworCit0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPiB7
CiAgICAgc3RhdGljIFN0cmluZyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQot
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKSB7IHJldHVybiB0
eXBlOyB9CisgICAgc3RhdGljIFN0cmluZyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBh
cnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4g
c3RyaW5nOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykgeyByZXR1cm4gc3RyaW5nOyB9CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlwZT4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0
ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlz
dEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6
Om1fdmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZhbHVlc1Byb3BlcnR5OwogCiAgICAgc3RhdGlj
IFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlw
ZSYgdmFsdWVzKQogICAgIHsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAgIFNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKFVuZGVmaW5lZFJvbGUsIHZhbHVlcywgbnVs
bHB0cikKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCpjb250ZXh0RWxlbWVudCkKICAgICB7
CkBAIC04OSw4ICs4OSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkg
b3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFs
dWVzLT5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudCk7CisgICAgICAgIHZhbHVlc1Byb3Bl
cnR5KCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wg
cHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25l
ZCopIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogCiAgICAgLy8gVXNlZCBm
b3Igbm9uLWFuaW1hdGVkIFBPRCB0eXBlcyB0aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvYmplY3QsIG5vciB3aXRoIGEgWE1MIERPTSBhdHRyaWJ1dGUK
ICAgICAvLyAoZm9yIGV4YW1wbGU6IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgot
ICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVu
dCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBzdGF0aWMg
UmVmPFNlbGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0
ZSkpOwogICAgIH0KQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkgZmluYWwgeyAobV9jb250ZXh0RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CiAK
IHByaXZhdGU6Ci0gICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBj
b250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkK
KyAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkK
ICAgICAgICAgOiBQcm9wZXJ0eVRlYXJPZmYoVW5kZWZpbmVkUm9sZSwgdmFsdWUpCiAgICAgICAg
ICwgbV91cGRhdGUodXBkYXRlKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRF
bGVtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333961</attachid>
            <date>2018-02-15 15:55:00 -0800</date>
            <delta_ts>2018-02-16 12:41:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180215155459.patch</filename>
            <type>text/plain</type>
            <size>339643</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODUyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzMSBAQAorMjAxOC0wMi0xNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSB3aGljaCBoYXZlIGJlZW4K
KyAgICAgICAgZGlmZmljdWx0IHRvIHRyYWNrLiBUaGUgU1ZHIHRlYXItb2ZmIG9iamVjdHMgYXJl
IGNyZWF0ZWQgb24gZGVtYW5kLiBNb3JlCisgICAgICAgIHNwZWNpZmljYWxseSwgdGhleSBhcmUg
Y3JlYXRlZCB3aGVuIGFuaW1hdGluZyB0aGUgU1ZHRWxlbWVudCdzIGF0dHJpYnV0ZQorICAgICAg
ICBvciB3aGVuIGNyZWF0aW5nIGEgRE9NIG9iamVjdCBmb3IgdGhhdCBhdHRyaWJ1dGUuIFRoZSBw
cm9ibGVtIGlzIHRoZXNlCisgICAgICAgIHRlYXItb2ZmIG9iamVjdHMgaG9sZCBhIHJhdyByZWZl
cmVuY2UgdG8gdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUuIFRvCisgICAgICAgIGtlZXAgdGhp
cyByZWZlcmVuY2UgdmFsaWQsIGJvdGggdGhlIFNWR0VsZW1lbnQgYW5kIHRoZSB0ZWFyLW9mZiBv
YmplY3QKKyAgICAgICAgdXNlZCB0byBob2xkIGEgUmVmUHRyIHRvIGVhY2ggb3RoZXIgd2hpY2gg
d2FzIGNhdXNpbmcgYSBtZW1vcnkgbGVhay4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5v
dCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9mIHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2gg
aXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2JqZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmli
dXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0
cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGlu
ZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZlcnkgZGF0YSB0eXBlIG9mIHRoZSBTVkcgYXR0cmli
dXRlcyBkb2VzCisgICAgICAgIG5vdCBsb29rIHRoZSBjbGVhbmVzdCBzb2x1dGlvbi4gQmVzaWRl
cywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSB1bmlvbgorICAgICAgICBTVkdBbmltYXRlZFR5
cGUgaXMgdXNlZCB0byByZXByZXNlbnQgYWxsIHRoZSBkYXRhIHR5cGVzLiBTbyBoZXJlIGlzIHRo
ZQorICAgICAgICBvdXRsaW5lIG9mIHRoaXMgcGF0Y2g6CisKKyAgICAgICAgLS0gQ3JlYXRlIHRo
ZSBjbGFzcyBTVkdWYWx1ZSB3aGljaCBpcyBhIHZhcmlhbnQgb2YgYWxsIHRoZSBTVkcgYXR0cmli
dXRlCisgICAgICAgIGJhc2ljIGRhdGEgdHlwZXMgaW5jbHVkaW5nIHRoZSB0eXBlIG9mIHRoZSBl
bGVtZW50cyBpbiB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBsaXN0cy4KKworICAgICAgICAt
LSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdvIFNWR1ZhbHVlcy4gVGhlIHNlY29u
ZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkgdXNlZCBmb3IgYW5pbWF0ZWQgdHlw
ZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisKKyAgICAgICAgLS0gQ2hhbmdlIGFs
bCB0aGUgYXR0cmlidXRlcyBvZiBhbGwgdGhlIFNWR0VsZW1lbnQgdG8gYmUgb2YgdHlwZSBSZWZQ
dHI8U1ZHVmFsdWU+LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGxpc3QgYXR0cmlidXRl
cyB0byBiZSBvZiB0eXBlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+Pi4KKworICAgICAgICAtLSBD
aGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRvIGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBp
bnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcgcmVmZXJlbmNlLgorCisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICBBZGQgbmV3IGZpbGVzIGZvciBTVkdWYWx1ZSBhbmQgU1ZHTGlzdFZsYXVlcy4g
TW92ZSBkZWZpbml0aW9ucyBmcm9tCisgICAgICAgIFNWR01hcmtlckVsZW1lbnQuaCB0byBTVkdN
YXJrZXJUeXBlcy5oLiBNb3ZlIGRlZmluaXRpb25zIG9mIFNWR1JlY3RUcmFpdHMuaAorICAgICAg
ICB0byBTVkdQcm9wZXJ0eVRyYWl0cy5oLgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQ
YXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOiBSZXBsYWNlIHRoZSBwYXJh
bWV0ZXIgU1ZHQW5nbGVWYWx1ZSYgYnkKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpTVkdBbmdsZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxl
dGVkLiBNb3ZlZCB0byBTVkdQYXJzZXJVdGlsaXRpZXMuY3BwLgorCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgVXNlIHRoZSBTVkdQcm9wZXJ0
eVRyYWl0czo6ZnJvbVN0cmluZyB0byBjcmVhdGUgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUKKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmds
ZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICBjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlcygpIG5vdyByZXR1cm5zIGEgdW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+Lgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICBEb24ndCBwYXNzIFNWR0FuaW1hdGVkVHlwZSBnZXR0ZXIgdG8g
cmVzZXRGcm9tQmFzZVZhbHVlcygpLiBUaGUgUHJvcGVydHlUWXBlCisgICAgICAgIGNhbiBiZSB1
c2VkIHRvIGdldCB0aGUgZGF0YSBlbGVtZW50IGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyk6CisgICAgICAgIENhc3QgdGhlIFNWR1ZhbHVlIGVsZW1lbnRzIHRvIHRoZSByZXF1aXJlZCBk
YXRhIG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6
OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOiBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRv
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3Ry
dWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkSW50ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlZE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRU
eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZU51bWJlckZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51
bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEFu
aW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRS
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRSZWN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Ry
aW5nQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRk
QW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAg
ICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNT
dHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1
ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNB
bmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBbmltYXRl
ZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjphbmdsZUFuZEVudW1l
cmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aExpc3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1i
ZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnJlY3QgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1M
aXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIFNp
bXBsaWZ5IFNWR0FuaW1hdGVkVHlwZS4gSXQgaXMgbm93IGEgc3RydWN0IHdoaWNoIGhhcyB0d28g
UmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAgVGhlIHNlY29uZCBwb2ludGVyIGNhbiBiZSBudWxs
IGV4cGVjdCB3aXRoIHRoZSB0eXBlcyB3aXRoIHR3byB2YWx1ZXMuCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKTogQ29uc3RydWN0IHRoZSAKKyAg
ICAgICAgYW5pbWF0ZWQgU1ZHVmFsdWUgZnJvbSB0aGUgU1ZHVmFsdWUgb2YgdGhlIGJhc2UgdmFs
dWUgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICAgICAgICBhbmltYXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFzZVZhbHVlKTogUmVzZXQg
dGhlIGFuaW1hdGVkCisgICAgICAgIFNWR1ZBbHVlIHRvIHRoZSBTVkdWYWx1ZSBvZiB0aGUgYmFz
ZSB2YWx1ZSBiZWZvcmUgZW5kaW5nIHRoZSBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFz
IAorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKCkgYnV0IGZvciB0d28tU1ZHQXZsdWVz
IGFuaW1hdGVkIHR5cGVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFzCisgICAgICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZSgpIGJ1dCBmb3IgdHdvLVNWR0F2bHVlcyBhbmltYXRlZCB0eXBlcy4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0aW9uKToKKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
dXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KTogRXhwbGljaXRseSBjcmVhdGUgYW4KKyAg
ICAgICAgU1ZHTGVuZ3RoVmFsdWUgd2hpY2ggd2lsbCBpbXBsaWNpdGx5IGZvcmNlIGNhbGxpbmcg
dGhlIGNvbnN0cnVjdG9yIG9mCisgICAgICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9w
ZXJ0eS4KKworICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQpOgorICAgICAgICAq
IHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbG9yTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3Zn
L1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVy
RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAg
ICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudCk6CisgICAgICAg
ICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVs
ZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpTVkdMZW5ndGgpOgorICAgICAgICAqIHN2Zy9TVkdM
ZW5ndGhMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAg
ICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdFZhbHVlczo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZh
bHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExp
c3RWYWx1ZXM+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojp0b1N0
cmluZyk6CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgaXMgbm93IGEgdmVjdG9yIG9mIFJl
ZlB0cjxTVkdWYWx1ZT4uIEhvd2V2ZXIgdGhlCisgICAgICAgIG9ubHkgZXhwZWN0ZWQgdmFsdWUg
aW4gdGhlIGVsZW1lbnRzIG9mIHRoaXMgdmVjdG9yIGlzIFNWR0xlbmd0aFZhbHVlLgorCisgICAg
ICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdMaXN0VmFsdWVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5IGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdM
aXN0VmFsdWVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZH
TGlzdFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0eUF0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6Zmlyc3RQcm9wZXJ0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpmaXJzdFByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpsYXN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFZhbHVlczo6cHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIFRoaXMgaXMgdGhlIGJh
c2UgY2xhc3Mgb2YgYWxsIHRoZSBTVkcgbGlzdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHRvIGhhdmUK
KyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgZnVuY3Rpb24gYmUgaW4gYSBzb3Vy
Y2UgZmlsZSB0byB3b3JrIGFyb3VuZAorICAgICAgICBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGlz
c3Vlcy4gVGhlIFNWRyBsaXN0IGF0dHJpYnV0ZXMgY2FuIGJlIG9uZSBvZgorICAgICAgICBTVkdW
YWx1ZSBkYXRhIG1lbWJlcnMgYnV0IGF0IHRoZSBzYW1lIHRpbWUgaXQgaXMgdmVjdG9yIG9mIFJl
ZlB0cjxTVkdWYWx1ZT4uCisKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0
c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hl
c3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5
cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgVGhpcyBjb2RlIGlzIG1vdmVkIHRv
IHRoZSBuZXcgZmlsZSBTVkdNYXJrZXJUeXBlcy5oLgorCisgICAgICAgICogc3ZnL1NWR01hcmtl
clR5cGVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVu
dFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2Vk
RW51bVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGVOb25V
bmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmZsaXBYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnNrZXdZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6U1ZHTWF0
cml4KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OlNWR051bWJlcik6
CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051
bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpTVkdO
dW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToK
KworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VQb2ludCk6IFRoaXMgZnVuY3Rpb24gd2FzIG1vdmVkIGZyb20gU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRzTGlzdEZyb21TVkdEYXRh
KToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaDoKKworICAgICAgICAqIHN2
Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJl
YW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3Ry
ZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9w
ZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNv
cHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVhbTo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46Omlu
aXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRo
Qnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgorICAgICAgICBBZGQgY29weSBjb25zdHJ1Y3RvciBh
bmQgYXNzaWdubWVudCBvcGVyYXRvci4KKworICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN5bmNocm9uaXplRCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKToKKworICAg
ICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZXBs
YWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgIEFjY2Vz
cyBTVkdQYXRoU2VnTGlzdFZhbHVlcyB0aHJvdWdoIHZhbHVlc1Byb3BlcnR5KCkgaW5zdGVhZCBv
ZiBtX3ZhbHVlcworICAgICAgICB3aGljaCBpcyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LgorCisg
ICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICBTdG9y
ZSBhIG5ldyBSZWZQdHI8U1ZHVmFsdWU+IGZvciBldmVyeSBTVkdQYXRoU2VnLgorCisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhTZWdMaXN0VmFsdWVzLmg6CisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2Vn
KToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICBB
bnN3ZXIgU2ltb24ncyBxdWVzdGlvbnMgd2hpY2ggd2VyZSBhZGRlZCBpbiByMTkwODQ0LgorCisg
ICAgICAgICogc3ZnL1NWR1BvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpTVkdQb2ludCk6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAg
ICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZH
UG9pbnRMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdQb2ludExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50
cyk6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6cG9pbnRMaXN0IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRp
bzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8pOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisKKyAgICAgICAgKiBzdmcvU1ZH
UmVjdFRyYWl0cy5oOiBSZW1vdmVkLiBUaGlzIHN0cnVjdCB3YXMgbW92ZWQgdG8gU1ZHUHJvcGVy
dHlUcmFpdHMuaAorCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
U1ZHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRy
YW5zbGF0ZVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdC5oOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmlu
Z0xpc3RWYWx1ZXM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1
ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmg6Cisg
ICAgICAgICogc3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpT
VkdUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGVzdHM6OnN5bmNocm9uaXplQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50
RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0aEFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQ
YXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojpp
bml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJh
bnNmb3JtVmFsdWU+Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1B
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorCisgICAgICAgICogc3ZnL1NW
R1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9TdHJpbmdWaXNpdG9yOjpvcGVy
YXRvcigpKTogVGhpcyB2aXNpdG9yIHJldHVybnMgdGhlIHN0cmluZworICAgICAgICBvZiB0aGUg
YWx0ZXJuYXRpdmUgb2YgU1ZHVmFsdWVWYXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VW
aXNpdG9yOjpwYXJzZVZpc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpv
cGVyYXRvcigpKTogVGhpcyByZXBsYWNlcyB0aGUgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAgU1ZH
VmFsdWVWYXJpYW50IHdpdGggdGhlIHZhbHVlIHdlIGdldCBmcm9tIHBhcnNpbmcgdGhlIHN0cmlu
ZyBvZiBhbgorICAgICAgICBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZTo6b3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6b3BlcmF0b3IgUHJvcGVydHlUeXBlJik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpTVkdW
YWx1ZSk6CisKKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmlld0VsZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdF
bGVtZW50Lmg6CisKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKTogSW5pdGlhbGl6ZSBwb2ludGVycyB3aXRo
IHRoZSBkZWZhdWx0CisgICAgICAgIHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdT
cGVjOjp0cmFuc2Zvcm1TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1Nw
ZWM6OnZpZXdCb3hTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6
OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZp
ZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKworICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAg
ICAgTm8gbmVlZCBmb3IgdGhlIGNhc3RpbmcgY3VycmVudEFuaW1hdGVkVmFsdWUoKSBtZXRob2Qg
c2luY2UgdGhlIGJhc2UgY2xhc3MKKyAgICAgICAgbWV0aG9kIG5vdyByZXR1cm5zIGEgUmVmUHRy
PFNWR1ZhbHVlPi4gVGhlIGNhc3Rpbmcgd2lsbCBoYXBwZW4gd2hlbiBnZXR0aW5nCisgICAgICAg
IHRoZSBlbnVtIHZhbHVlIGZyb20gdGhlIFNWR1ZhbHVlLgorCisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3Vy
cmVudEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1h
dGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk6OlNWR1N5bmNocm9uaXphYmxlQW5p
bWF0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRp
Y1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRT
dGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OnNldEJhc2VWYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVk
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRp
b25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYpOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5
VGVhck9mZi5oOgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3Jh
cHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3Jl
VmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojpj
YW5SZXBsYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxh
Y2VJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFj
ZUl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OmNhblJlbW92ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojpy
ZW1vdmVJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVt
b3ZlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eTo6YXBwZW5kSXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OmFwcGVuZEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6OnZhbHVlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OnZhbHVlc1Byb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6U1ZHTGlzdFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eTo6dmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eTo6flNWR0xpc3RQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIE5vIG5lZWQgZm9yIG1fb3du
c1ZhbHVlcyBhbnltb3JlLiBtX3ZhbHVlcyBpcyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LiBJdAor
ICAgICAgICB3aWxsIGJlIGRlbGV0ZWQgb25jZSB0aGUgcmVmLWNvdW50IGJlY29tZXMgemVyby4K
KworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpmaW5kSXRlbSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHTGlzdFByb3Bl
cnR5VGVhck9mZik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2YWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnByb3BlcnR5UmVmZXJlbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVydHlUZWFyT2ZmKToKKworICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPGZsb2F0Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6cGFyc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD46OnRvU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmluaXRpYWxWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojpmcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFN0cmluZz46
OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5n
Pjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6
dG9TdHJpbmcpOgorICAgICAgICBIYXZlIGFsbCB0aGUgU1ZHUHJvcGVydHlUcmFpdHMgd2l0aCBu
byBzcGVjaWZpYyBTVkcgdHlwZSBiZSBpbiBvbmUgZmlsZS4KKworICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJP
ZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5o
OgorCiAyMDE4LTAyLTE1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBIYXJmQnV6ekZhY2U6IHJld29yayBjYWNoZSBlbnRyeSByZWZlcmVuY2UgaG9sZGlu
ZwpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMDcxLDcgKzIwNzEsNiBAQCBzdmcvU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAK
IHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKIHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qu
Y3BwCi1zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmNwcAogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5j
cHAKQEAgLTIxMzUsNiArMjEzNCw3IEBAIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAogc3Zn
L1NWR0xlbmd0aFZhbHVlLmNwcAogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAogc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5jcHAKK3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xvY2F0
YWJsZS5jcHAKIHN2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCiBzdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTYzMiw3ICsxNjMyLDE1
IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTUwQ0I0MTFFOTU1RTNDMDAx
MTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3Q0NDQ0IwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTEz
MDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0
MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5o
ICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU2MjdCNzYyMDI4
RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1h
Z2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5ODIwMjU0NTZEMDA0RDc1
RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAvKiBTVkdWYWx1ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTk5MjAyNTQ1QUMw
MDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFERDNCM0I5MDBFOTJEQTMgLyogU1ZHQW5nbGVWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2OTFEREI4NkQzMDBG
RUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlDMjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQ
YXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAwRkVGQjI5IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4
QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkIxRERCODcxQzAwRkVG
QjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlFMjAyNTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0QxQzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMz
NkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0
MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5o
ICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4
MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVB
QSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE5MzAsNyArMTkz
OCw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0FuaW1hdGlvbkVmZmVjdFRp
bWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1
NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpTQW5pbWF0aW9uRWZmZWN0VGltaW5nLmggKi87IH07
CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQwOCAvKiBKU0tleWZyYW1lRWZmZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTU1NkNCNzFGOUYwOUZD
MDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVjdC5oICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3
MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFE
RUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdz
LmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdE
RjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdE
RjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAv
KiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFEQ0I3MDAxNTY4MTk3NjAw
ODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oICovOyB9OwogCQk3MUUyMTgzQTE3MzU5RkI4MDA2
RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4MzgxNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNv
dXJjZXMuaCAqLzsgfTsKQEAgLTIwMzIsNyArMjA0MCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMw
MDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25h
bC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBE
MzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAw
RkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5n
dGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdM
ZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlD
Mzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZC
MjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9h
cmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNC
Nzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0
N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjE2NCwxMCArMjE3Miw5
IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZDMUYy
QUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1vZGUuaCAqLzsgfTsKIAkJN0NFMTkxN0Ix
RjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3
OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIw
MDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07
Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RDFERDY5NEZFMDAx
Mjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovOyB9OwogCQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1
NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggKi87IH07Ci0J
CTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAw
MTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMw
MDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZh
bHVlLmggKi87IH07CisJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1W
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NF
NThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0NFNThENUMxREQ3RUM5QzAw
MTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0
MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgKi87
IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNj
cmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4
MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQ2
MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjMwOSw3
ICsyMzE2LDcgQEAKIAkJODNGRTdDQTcxREE5RjFBNzAwMzcyMzdDIC8qIFVJRXZlbnRJbml0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFE
QTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZFN0NBODFEQTlGMUI2MDAzNzIzN0MgLyogRXZl
bnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU5MDI3
MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAv
KiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsgfTsKLQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhG
IC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJl
YW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5
RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CiAJCTg0MTlEMkFEMTIwRDkyRkMwMDE0MUY4
RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQUIxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhC
eXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJCTg0MTlEMkJBMTIwRTBDNzYwMDE0MUY4RiAvKiBT
VkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWls
ZGVyLmggKi87IH07CkBAIC0yMzM2LDcgKzIzNDMsNyBAQAogCQk4NDczMEQ5MzEyNDhGMEIzMDBE
M0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291
cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCAqLzsg
fTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFODExREY2QTI5
MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsgfTsKLQkJODQ3NkM5RUMxMURGNkEyOTAw
NTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25z
dW1lci5oICovOyB9OworCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1
bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2
QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQ3NkM5RjAxMURGNkE1ODAwNTU1
QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmgg
Ki87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4MDE5NTMxMDhC
QUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggKi87IH07CiAJCTg0ODJCNzQ2MTE5OEMz
NTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hh
bmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyODEsOSArMzI4OCw5IEBACiAJCUIyMjI3QTRCMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdN
ZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdBNEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oICovOyB9
OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QkIwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2Vy
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87IH07
CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMxMEQwMEJG
MjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1OTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oICovOyB9
OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsKKwkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNUUwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJj
LmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ2xvc2VQ
YXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIy
NzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oICovOyB9OwogCQlC
MjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4Q0YwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaCAqLzsgfTsKQEAgLTcyODMsNyAr
NzI5MCw2IEBACiAJCTQzOUQzMzQxMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmltYXRlZFR5cGVB
bmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFR5
cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzlEMzM0MjEzQTY5
MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWROdW1iZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1iZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYw
QTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVk
Q29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0
ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNjY2MTNCM0Qx
MTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC04MTc0LDEwICs4MTgwLDEzIEBACiAJCTU1MEEwQkM4MDg1RjYwMzkwMDcz
NTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNC
MTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBC
MCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NTUwNEU5NDIwMkNERkQyMDA1MDdDNzMgLyogU1ZHTGlz
dFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MENCNDExRTk1NUUzQzAwMTExQUEwIC8qIEltYWdl
VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VUeXBlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTUxMzAwMDFFN0NDQ0NBMDBBNjlFMzggLyog
RGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY29k
aW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQTFDQUFG
MEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RW
YWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFya2VyVHlwZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIElt
YWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VG
cmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NzZBNTYzMUQ4OEE3MDgw
MENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjYxRDgy
MDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTg1
LDYgKzgxOTQsNyBAQAogCQk1NUFGMTRFMzFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUwIC8qIFNWR0ltYWdlQ2xpZW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNsaWVudHMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ZhbHVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3MUU1Mzg1MTYwMDM1NjYwMSAvKiBDcnlwdG9BbGdv
cml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBZXNDYmNDZmJQYXJhbXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNUIxRTUzOTM3OTAwMzU2NjAxIC8qIEpTQWVz
Q2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
QWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk0NjYs
NyArOTQ3Niw2IEBACiAJCTdDRTE5MTZFMUYyQUI3MEQwMDI3MkY3QiAvKiBKU0NhY2hlUXVlcnlP
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FjaGVRdWVyeU9wdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0UxOTE2RjFGMkFCNzBGMDAyNzJGNzggLyog
SlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVx
dWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENDkx
REQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDRTU4RDRE
MURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAwMTI4NTUyIC8qIFNWR0xlbmd0aFZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0xlbmd0aFZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNDMxLDcgKzIyNDQwLDYgQEAKIAkJCQk3
MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAq
LywKIAkJCQkwODI1MDkzODEyOEJENEQ4MDBFMkVEOEUgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmggKi8sCiAJCQkJQjIyMjc3RjgwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJNDNBMEYwQjUxM0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0Fu
aW1hdGVkVHlwZS5jcHAgKi8sCiAJCQkJNDM5RDMzNDAxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0Fu
aW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZCQ0U5MTc4QzExMzIwMEIyMUExNSAvKiBTVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJCQkJNDM5RDMzNDExM0E2OTExQzAwQzIwRjRGIC8q
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCkBAIC0yMjYzMiwxMSArMjI2NDAsMTQgQEAK
IAkJCQlCMjIyNzhBNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1lbnQuY3BwICovLAog
CQkJCUIyMjI3OEE2MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oICovLAogCQkJ
CUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5pZGwgKi8sCisJCQkJ
NTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8qIFNWR0xpc3RWYWx1ZXMuY3BwICovLAorCQkJCTU1
NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggKi8sCiAJCQkJQjIyMjc4
QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5jcHAgKi8sCiAJCQkJQjIyMjc4QUIw
RDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5oICovLAogCQkJCUIyMjI3OEFEMEQwMEJG
MjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzhBRTBEMDBC
RjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEFGMEQwMEJG
MjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmlkbCAqLywKKwkJCQk1NTc1MDU2QzFFNTNC
MzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLywKIAkJCQlCMjIyNzhCMDBEMDBCRjIw
MDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEIxMEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEIyMEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdNYXNrRWxlbWVudC5pZGwgKi8sCkBAIC0yMjc3MCw3ICsyMjc4MSw2IEBACiAJ
CQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmNwcCAqLywKIAkJ
CQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuaCAqLywKIAkJCQlC
MjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVjdEVsZW1lbnQuaWRsICovLAotCQkJCTdD
RTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRzLmggKi8sCiAJCQkJQjIyMjc5
MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlbmRlcmluZ0ludGVudC5oICovLAogCQkJCUIyMjI3
OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaWRsICovLAogCQkJCUIy
MjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdTY3JpcHRFbGVtZW50LmNwcCAqLywKQEAgLTIy
ODQ3LDYgKzIyODU3LDcgQEAKIAkJCQlCMjIyNzk1NjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNl
RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NTcwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVs
ZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1ODBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVu
dC5pZGwgKi8sCisJCQkJNTVFNDRBRTAxRTRCRkJDNTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8s
CiAJCQkJQjIyMjc5NTkwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1ZpZXdFbGVtZW50LmNwcCAqLywK
IAkJCQlCMjIyNzk1QTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuaCAqLywKIAkJ
CQlCMjIyNzk1QjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuaWRsICovLApAQCAt
Mjk2OTMsNiArMjk3MDQsNyBAQAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdB
bHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQy
MTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
Nzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1
OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1h
dGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAv
KiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovLApAQCAtMjk4MDQsNiArMjk4MTYs
NyBAQAogCQkJCUIyMjI3QTNDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDgxMDc2NDQxMjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9w
ZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1NjI3Qjc4MjAyOTJC
RjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0
MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MzY3MDhFRTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBNDQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjk4MTYsNiArMjk4MjksNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUw
MURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNW
R1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTky
OTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODU0LDYgKzI5ODY4
LDcgQEAKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZB
RiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUMy
MDI1NDYwNTAwNEQ3NUY0IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdN
b3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAv
KiBTVkdQYXRoU2VnV2l0aENvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4NjUsMTAgKzI5
ODgwLDEyIEBACiAJCQkJQjIyMjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZH
UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVG
NCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OUUyMDI1NDYyQjAwNEQ3
NUY0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFy
T2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODc2LDcgKzI5ODkzLDYgQEAKIAkJCQlCMjIyN0E5
QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0RTFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRy
YWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNW
R1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUEwMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3
NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTkyMSw2ICsyOTkzNyw3IEBACiAJCQkJQjIyMjdBREEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1RyYW5zZm9ybWFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUREMEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
REYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybUxpc3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVGNCAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNm
b3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUUyMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTUwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyOCw2ICsy
OTk0NSw3IEBACiAJCQkJMzdDNzM4RUQxRURCRDVCQzAwM0YyQjBCIC8qIFNWR1Vua25vd25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
VVJJUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFRDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHVXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTU4QjY5OTgyMDI1NDU2
RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FGMDBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3U3BlYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODQ4NTIyOEIxMTkwMTczQzAwNkVEQzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNw
cAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQ
YXRoRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxNiArMTAwLDE2IEBAIHN0YXRpYyBQ
YXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZHRWxlbWUKIAogc3RhdGljIFBhdGggcGF0aEZyb21Q
b2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9
IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52
YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5Z29uRWxlbWVudD4o
ZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzUHJvcGVydHkoKTsKICAgICBpZiAocG9p
bnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0aDsKLSAg
ICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZp
cnN0UHJvcGVydHkoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExp
bmVUbyhwb2ludHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMucHJvcGVy
dHlBdChpKSk7CiAKICAgICBwYXRoLmNsb3NlU3VicGF0aCgpOwogICAgIHJldHVybiBwYXRoOwpA
QCAtMTE3LDE2ICsxMTcsMTYgQEAgc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChT
VkdFbAogCiBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlsaW5lRWxlbWVudChTVkdFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlsaW5lRWxlbWVu
dD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVzKCk7CisgICAgYXV0byYgcG9pbnRz
ID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygp
LT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJz
dCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RQcm9wZXJ0eSgpKTsKIAogICAgIHVu
c2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5hdChpKSk7CisgICAg
ICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5wcm9wZXJ0eUF0KGkpKTsKICAgICByZXR1cm4gcGF0
aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsMTUgKzE2MywxNSBAQCB2b2lk
IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6YnVpCiBzdGF0aWMgaW5saW5lIHZvaWQg
dXBkYXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBpLCBmbG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdD
aGFyYWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBTVkdMZW5ndGhDb250ZXh0JiBsZW5ndGhDb250ZXh0
LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiB4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIGR4TGlzdCwgY29uc3QgU1ZH
TGVuZ3RoTGlzdFZhbHVlcyogZHlMaXN0LCBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzKiByb3Rh
dGVMaXN0KQogewogICAgIGlmICh4TGlzdCkKLSAgICAgICAgZGF0YS54ID0geExpc3QtPmF0KGkp
LnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLnggPSB4TGlzdC0+cHJvcGVydHlB
dChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0gICAgICAgIGRhdGEu
eSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS55ID0g
eUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR4TGlz
dCkKLSAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7
CisgICAgICAgIGRhdGEuZHggPSBkeExpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29u
dGV4dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAgICAgICAgZGF0YS5keSA9IGR5TGlzdC0+YXQoaSku
dmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHkgPSBkeUxpc3QtPnByb3BlcnR5
QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAg
ICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAgICAgZGF0YS5yb3RhdGUg
PSByb3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkpOwogICAgICAgICBsYXN0Um90YXRpb24gPSBkYXRh
LnJvdGF0ZTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbmdsZSA6IHB1
YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAg
c3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKGFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShpbml0aWFsVmFsdWUp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoY29uc3QgU1ZHQW5n
bGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdBbmdsZT4+IGNyZWF0ZShFeGNlcHRpb25P
cjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFz
RXhjZXB0aW9uKCkpCkBAIC0xMzYsNyArMTMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBTVkdBbmdsZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5
VGVhck9mZjxTVkdBbmdsZVZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAg
ICAgewogICAgIH0KQEAgLTE0NSwxMSArMTQwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9
Ci0KLSAgICBleHBsaWNpdCBTVkdBbmdsZShjb25zdCBTVkdBbmdsZVZhbHVlKiBpbml0aWFsVmFs
dWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxW
YWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMzEgKzEzNiw2IEBAIHZvaWQgU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW0KICAgICB1cGRhdGVBbmltYXRpb25Nb2RlKCk7CiB9
CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBzLCBGbG9hdFBvaW50JiBw
b2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRD
aGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNoYXIqIGN1ciA9IHVwY29udmVydGVkQ2hhcmFjdGVy
czsKLSAgICBjb25zdCBVQ2hhciogZW5kID0gY3VyICsgcy5sZW5ndGgoKTsKLSAgICAKLSAgICBp
ZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsKLSAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5k
LCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZsb2F0IHkgPSAwOwotICAg
IGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOwotICAgIAotICAgIC8vIGRpc2FsbG93
IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVuZAotICAgIHJldHVybiAhc2tpcE9wdGlv
bmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0KLSAgICAKIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKIHsKICAgICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRl
VHlwZSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwyMiArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1h
dG9yOjpTVkdBbmltYXRlZEFuZwogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5n
bGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAgICBhdXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRl
ZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7
Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYg
KG9yaWVudFR5cGUgPiAwKQotICAgICAgICBhbmltYXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlw
ZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAg
YW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7Ci0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwor
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6
OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0K
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0
ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJl
dHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xl
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU3LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVgogCiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJl
c2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJh
dGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc1LDEzICs2NSwxMyBAQCB2b2lk
IFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0CiAgICAgQVNTRVJUKGZyb20tPnR5
cGUoKSA9PSBBbmltYXRlZEFuZ2xlKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50
eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24gPSBmcm9t
LT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9u
ID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUg
PSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29u
c3QgYXV0byYgZnJvbUVudW1lcmF0aW9uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQmPigqZnJvbS0+
dmFsdWVzWzFdKTsKKyAgICBhdXRvJiB0b0FuZ2xlID0gc3RhdGljX2Nhc3Q8U1ZHQW5nbGVWYWx1
ZSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0VudW1lcmF0aW9uID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQmPigqdG8tPnZhbHVlc1sxXSk7CiAgICAgLy8gT25seSByZXNwZWN0IGJ5IGFu
aW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmllZCBpbiBhbmdsZXMgKGFu
ZCBub3QgZWcuICdhdXRvJykuCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29u
ZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKKyAgICBpZiAoZnJvbUVudW1lcmF0
aW9uICE9IHRvRW51bWVyYXRpb24gfHwgZnJvbUVudW1lcmF0aW9uICE9IFNWR01hcmtlck9yaWVu
dEFuZ2xlKQogICAgICAgICByZXR1cm47Ci0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlID0gZnJv
bUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7Ci0gICAgYXV0byYgdG9BbmdsZSA9IHRvQW5nbGVB
bmRFbnVtZXJhdGlvbi5maXJzdDsKICAgICB0b0FuZ2xlLnNldFZhbHVlKHRvQW5nbGUudmFsdWUo
KSArIGZyb21BbmdsZS52YWx1ZSgpKTsKIH0KIApAQCAtOTAsNDggKzgwLDQ5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRv
JiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKSA6
IGZyb20tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVy
YXRpb24gPSB0by0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8mIHRvQXRFbmRPZkR1
cmF0aW9uQW5nbGVBbmRFbnVtZXJhdGlvbiA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hbmdsZUFuZEVu
dW1lcmF0aW9uKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5p
bWF0ZWQtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUg
PSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0
YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNf
Y2FzdDxTVkdBbmdsZVZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYg
ZnJvbUVudW1lcmF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFd
KSA6IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAgYXV0byYg
dG9BbmdsZSA9IHN0YXRpY19jYXN0PFNWR0FuZ2xlVmFsdWUmPigqdG8tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgdG9FbnVtZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKnRvLT52YWx1
ZXNbMV0pOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGUgPSBzdGF0aWNfY2FzdDxT
VkdBbmdsZVZhbHVlJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8m
IGFuaW1hdGVkQW5nbGUgPSBzdGF0aWNfY2FzdDxTVkdBbmdsZVZhbHVlJj4oKmFuaW1hdGVkLT52
YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkRW51bWVyYXRpb24gPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKTsKIAotICAgIGlmIChmcm9tQW5nbGVBbmRF
bnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCkgeworICAg
IGlmIChmcm9tRW51bWVyYXRpb24gIT0gdG9FbnVtZXJhdGlvbikgewogICAgICAgICAvLyBEaXNj
cmV0ZSBhbmltYXRpb24gLSBubyBsaW5lYXIgaW50ZXJwb2xhdGlvbiBwb3NzaWJsZSBiZXR3ZWVu
IHZhbHVlcyAoZS5nLiBhdXRvIHRvIGFuZ2xlKS4KICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPCAw
LjVmKSB7Ci0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0g
ZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOwotICAgICAgICAgICAgaWYgKGZyb21Bbmds
ZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAg
ICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3QgPSBmcm9tQW5nbGVBbmRF
bnVtZXJhdGlvbi5maXJzdDsKKyAgICAgICAgICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBmcm9t
RW51bWVyYXRpb247CisgICAgICAgICAgICBpZiAoZnJvbUVudW1lcmF0aW9uID09IFNWR01hcmtl
ck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUgPSBmcm9tQW5nbGU7
CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uLmZpcnN0LnNldFZhbHVlKDApOworICAgICAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUu
c2V0VmFsdWUoMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgYW5p
bWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9IHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5z
ZWNvbmQ7Ci0gICAgICAgIGlmICh0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01h
cmtlck9yaWVudEFuZ2xlKQotICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9u
LmZpcnN0ID0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OworICAgICAgICBhbmltYXRlZEVu
dW1lcmF0aW9uID0gdG9FbnVtZXJhdGlvbjsKKyAgICAgICAgaWYgKHRvRW51bWVyYXRpb24gPT0g
U1ZHTWFya2VyT3JpZW50QW5nbGUpCisgICAgICAgICAgICBhbmltYXRlZEFuZ2xlID0gdG9Bbmds
ZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9u
LmZpcnN0LnNldFZhbHVlKDApOworICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZSgw
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChmcm9tQW5nbGVBbmRFbnVtZXJh
dGlvbi5zZWNvbmQgPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpIHsKKyAgICBpZiAoZnJvbUVudW1l
cmF0aW9uID09IFNWR01hcmtlck9yaWVudEFuZ2xlKSB7CiAgICAgICAgIC8vIFJlZ3VsYXIgZnJv
bSBhbmdsZSB0byBhbmdsZSBhbmltYXRpb24sIHdpdGggc3VwcG9ydCBmb3Igc21vb3RoIGludGVy
cG9sYXRpb24sIGFuZCBhZGRpdGl2ZSBhbmQgYWNjdW11bGF0ZWQgYW5pbWF0aW9uLgotICAgICAg
ICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gU1ZHTWFya2VyT3JpZW50QW5n
bGU7CisgICAgICAgIGFuaW1hdGVkRW51bWVyYXRpb24gPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsK
IAotICAgICAgICBhdXRvJiBhbmltYXRlZFNWR0FuZ2xlID0gYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uLmZpcnN0OwotICAgICAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0Fu
Z2xlID0gdG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uLmZpcnN0OwotICAgICAg
ICBmbG9hdCBhbmltYXRlZEFuZ2xlID0gYW5pbWF0ZWRTVkdBbmdsZS52YWx1ZSgpOwotICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9Bbmds
ZUFuZEVudW1lcmF0aW9uLmZpcnN0LnZhbHVlKCksIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUu
dmFsdWUoKSwgYW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIGFuaW1hdGVkU1ZHQW5nbGUuc2V0VmFs
dWUoYW5pbWF0ZWRBbmdsZSk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkQW5nbGVWYWx1ZSA9IGFu
aW1hdGVkQW5nbGUudmFsdWUoKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21BbmdsZS52YWx1ZSgp
LCB0b0FuZ2xlLnZhbHVlKCksIHRvQXRFbmRPZkR1cmF0aW9uQW5nbGUudmFsdWUoKSwgYW5pbWF0
ZWRBbmdsZVZhbHVlKTsKKyAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRWYWx1ZShhbmltYXRlZEFu
Z2xlVmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gYXV0bywgYXV0by1z
dGFydC1yZXZlcnNlLCBvciB1bmtub3duLgotICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlv
bi5maXJzdC5zZXRWYWx1ZSgwKTsKKyAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwogCi0g
ICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRB
dXRvIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRB
dXRvU3RhcnRSZXZlcnNlKQotICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vj
b25kID0gZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kOworICAgIGlmIChmcm9tRW51bWVy
YXRpb24gPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCBmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFy
a2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9
IGZyb21FbnVtZXJhdGlvbjsKICAgICBlbHNlCi0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVt
ZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJPcmllbnRVbmtub3duOworICAgICAgICBhbmltYXRl
ZEVudW1lcmF0aW9uID0gU1ZHTWFya2VyT3JpZW50VW5rbm93bjsKIH0KIAogZmxvYXQgU1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21T
dHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICsz
MSwxMiBAQCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6U1ZHQW5pbWF0ZWRCCiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpj
b25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5p
bWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKHN0ZDo6bWFrZV91bmlx
dWU8Ym9vbD4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5ib29sZWFuKCkgPSAoc3RyaW5nID09ICJ0
cnVlIik7IC8vIHdhdD8KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhz
dHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1h
dGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ2LDcg
QEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaQogCiB2b2lkIFNWR0Fu
aW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUm
IHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5p
bWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6Ym9vbGVhbik7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcx
LDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYQogICAg
IEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50
KTsKIAotICAgIGJvb2wgZnJvbUJvb2xlYW4gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlv
bk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5ib29sZWFuKCkgOiBmcm9tLT5ib29s
ZWFuKCk7Ci0gICAgYm9vbCB0b0Jvb2xlYW4gPSB0by0+Ym9vbGVhbigpOwotICAgIGJvb2wmIGFu
aW1hdGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5ib29sZWFuKCk7CisgICAgYm9vbCBmcm9tQm9vbGVh
biA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
c3RhdGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGJv
b2wmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBib29sIHRvQm9vbGVhbiA9IHN0YXRpY19jYXN0
PGJvb2wmPigqdG8tPnZhbHVlc1swXSk7CisgICAgYm9vbCYgYW5pbWF0ZWRCb29sZWFuID0gc3Rh
dGljX2Nhc3Q8Ym9vbCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxib29sPihwZXJjZW50YWdlLCBmcm9tQm9vbGVh
biwgdG9Cb29sZWFuLCBhbmltYXRlZEJvb2xlYW4pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBAIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6U1ZHQW5pbWF0ZWRDb2wKIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6bWFrZV91bmlxdWU8Q29sb3I+KENTU1BhcnNlcjo6
cGFyc2VDb2xvcihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpKSk7CisgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0cmluZyhz
dHJpbmcpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvKQpAQCAtNDQs
OCArNDQsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6YWRkQW5pbWF0CiAgICAg
QVNTRVJUKHRvLT50eXBlKCkgPT0gQW5pbWF0ZWRDb2xvcik7CiAKICAgICAvLyBJZ25vcmVzIGFu
eSBhbHBoYSBhbmQgc2V0cyBhbHBoYSBvbiByZXN1bHQgdG8gMTAwJSBvcGFxdWUuCi0gICAgYXV0
byYgZnJvbUNvbG9yID0gZnJvbS0+Y29sb3IoKTsKLSAgICBhdXRvJiB0b0NvbG9yID0gdG8tPmNv
bG9yKCk7CisgICAgYXV0byYgZnJvbUNvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqZnJvbS0+
dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b0NvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqdG8t
PnZhbHVlc1swXSk7CiAgICAgdG9Db2xvciA9IHsgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbCh0
b0NvbG9yLnJlZCgpICsgZnJvbUNvbG9yLnJlZCgpKSwKICAgICAgICAgcm91bmRBbmRDbGFtcENv
bG9yQ2hhbm5lbCh0b0NvbG9yLmdyZWVuKCkgKyBmcm9tQ29sb3IuZ3JlZW4oKSksCiAgICAgICAg
IHJvdW5kQW5kQ2xhbXBDb2xvckNoYW5uZWwodG9Db2xvci5ibHVlKCkgKyBmcm9tQ29sb3IuYmx1
ZSgpKSB9OwpAQCAtNjksOCArNjksOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6
Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOwogCi0gICAgQ29sb3IgZnJvbUNvbG9yID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Y29sb3IoKSA6
IGZyb20tPmNvbG9yKCk7Ci0gICAgQ29sb3IgdG9Db2xvciA9IHRvLT5jb2xvcigpOworICAgIENv
bG9yIGZyb21Db2xvciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8Q29sb3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBz
dGF0aWNfY2FzdDxDb2xvciY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIENvbG9yIHRvQ29sb3Ig
PSBzdGF0aWNfY2FzdDxDb2xvciY+KCp0by0+dmFsdWVzWzBdKTsKIAogICAgIC8vIEFwcGx5IENT
UyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZvcklu
aGVyaXRhbmNlPENvbG9yPihwYXJzZUNvbG9yRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50
LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUNvbG9yLCBtX2NvbnRleHRFbGVtZW50KTsK
QEAgLTgyLDggKzgyLDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmNhbGN1bGF0
ZQogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPnRvUHJvcGVydHlWYWx1ZVR5cGUoKSA9PSBD
dXJyZW50Q29sb3JWYWx1ZSkKICAgICAgICAgdG9Db2xvciA9IGN1cnJlbnRDb2xvcigqbV9jb250
ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkNvbG9yID0gdG9BdEVu
ZE9mRHVyYXRpb24tPmNvbG9yKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IGFuaW1hdGVk
LT5jb2xvcigpOworICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQ29sb3IgPSBzdGF0aWNfY2Fz
dDxDb2xvciY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiBhbmlt
YXRlZENvbG9yID0gc3RhdGljX2Nhc3Q8Q29sb3ImPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAK
ICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xvciAtIHRoaXMgd2lsbCBuZWVkIHRvIGhhbmRsZSBi
bGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBkaWZmZXJlbnQgY29sb3Igc3BhY2VzLAogICAgIC8v
IGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBbMC0yNTVdIENvbG9ycy4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA5LDE0ICsxMDksMTIgQEAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFu
aW1hdG9yOjpTVkdBbmltYQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihzdGQ6Om1h
a2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmVudW1lcmF0aW9uKCkg
PSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+
dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3Ry
aW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9u
RWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5h
bWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVFbnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRl
ZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0b3BB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjQsNyBAQCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRp
b25BbmltYXRvcjo6c3RvCiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZT
VkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC0xNDksOSArMTQ3
LDkgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbAogICAgIEFTU0VS
VChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAot
ICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmVudW1lcmF0aW9uKCkgOiBmcm9t
LT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVkIHRvRW51bWVyYXRpb24gPSB0by0+ZW51bWVy
YXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5l
bnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8dW5z
aWduZWQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZCY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIHVuc2lnbmVkIHRvRW51bWVyYXRpb24gPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVt
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwog
CiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlRGlzY3JldGVUeXBlPHVuc2lnbmVkPihw
ZXJjZW50YWdlLCBmcm9tRW51bWVyYXRpb24sIHRvRW51bWVyYXRpb24sIGFuaW1hdGVkRW51bWVy
YXRpb24pOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5j
cHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZElu
dGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRJ
bnRlZ2VyQW5pbWF0b3I6OlNWR0FuaW1hdGVkSQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPGludD4oKSk7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5pbnRlZ2VyKCkgPSBzdHJpbmcudG9JbnRTdHJpY3QoKTsKLSAgICByZXR1cm4g
YW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9w
ZXJ0eVRyYWl0czxpbnQ+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3RhcnRBbmlt
VmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzKSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihh
bmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6c3Rv
cEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFu
aW1hdG9yOjpzdG9wQW5pCiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnJlc2V0
QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRJbnRlZ2VyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0
ZWRUeXBlOjppbnRlZ2VyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRJbnRl
Z2VyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJB
bmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsNyArNjYsNyBAQCB2b2lkIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmlt
YXRlZEludGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAK
LSAgICB0by0+aW50ZWdlcigpICs9IGZyb20tPmludGVnZXIoKTsKKyAgICBzdGF0aWNfY2FzdDxp
bnQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1sw
XSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQgdG9J
bnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50ZWdl
cikKQEAgLTgzLDEwICs4MSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpj
YWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOwogCi0gICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlcigpIDog
ZnJvbS0+aW50ZWdlcigpOwotICAgIGludCB0b0ludGVnZXIgPSB0by0+aW50ZWdlcigpOwotICAg
IGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50ZWdl
cigpOwotICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWQtPmludGVnZXIoKTsKKyAg
ICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9
PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGludCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6
IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGludCB0b0ludGVnZXIg
PSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1swXSk7CisgICAgaW50IHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCp0b0F0RW5kT2ZEdXJhdGlvbi0+dmFs
dWVzWzBdKTsKKyAgICBpbnQmIGFuaW1hdGVkSW50ZWdlciA9IHN0YXRpY19jYXN0PGludCY+KCph
bmltYXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIGNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2Fu
aW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdlciwgdG9J
bnRlZ2VyLCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGFuaW1hdGVkSW50ZWdlcik7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDIzICszMywxMiBAQCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbmlt
YXRvCiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGlu
dCwgaW50Pj4oKSk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyID0g
YW5pbWF0ZWRUeXBlLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgZmxvYXQgZmlyc3RO
dW1iZXIgPSAwOwotICAgIGZsb2F0IHNlY29uZE51bWJlciA9IDA7Ci0gICAgaWYgKCFwYXJzZU51
bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpIHsK
LSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0ZWRJbnRl
Z2VyLnNlY29uZCA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYW5pbWF0ZWRJbnRlZ2VyLmZp
cnN0ID0gc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoZmlyc3ROdW1iZXIpKTsKLSAgICAgICAgYW5p
bWF0ZWRJbnRlZ2VyLnNlY29uZCA9IHN0YXRpY19jYXN0PGludD4ocm91bmRmKHNlY29uZE51bWJl
cikpOwotICAgIH0KLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCBpbnQ+Pjo6
ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OnN0YXJ0QW5pbVZh
bEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50ZWdlck9wdGlv
bmFsSW50ZWdlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNW
R0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZEludGVnZXJPcHRpb25hbEludGVnZXJBbgogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUm
IHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZEludGVnZXIsIFNW
R0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6
aW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmlt
YXRlZEludGVnZXIsIFNWR0FuaW1hdGVkSW50ZWdlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTc3LDExICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsK
IAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGludD4mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20t
PmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0lu
dGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLQotICAgIHRvSW50ZWdl
clBhaXIuZmlyc3QgKz0gZnJvbUludGVnZXJQYWlyLmZpcnN0OwotICAgIHRvSW50ZWdlclBhaXIu
c2Vjb25kICs9IGZyb21JbnRlZ2VyUGFpci5zZWNvbmQ7CisgICAgc3RhdGljX2Nhc3Q8aW50Jj4o
KnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNbMF0pOwor
ICAgIHN0YXRpY19jYXN0PGludCY+KCp0by0+dmFsdWVzWzFdKSArPSBzdGF0aWNfY2FzdDxpbnQm
PigqZnJvbS0+dmFsdWVzWzFdKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRl
ZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRl
ZFR5cGUqIGFuaW1hdGVkKQpAQCAtODksMTMgKzc1LDE3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAg
ICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBp
bnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCkgOiBm
cm9tLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwg
aW50PiYgdG9JbnRlZ2VyUGFpciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAg
Y29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9
IHRvQXRFbmRPZkR1cmF0aW9uLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpw
YWlyPGludCwgaW50PiYgYW5pbWF0ZWRJbnRlZ2VyUGFpciA9IGFuaW1hdGVkLT5pbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyKCk7CisgICAgY29uc3QgaW50JiBmb3JtRmlyc3QgPSBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGludCY+
KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PGludCY+KCpmcm9tLT52YWx1ZXNb
MF0pOworICAgIGNvbnN0IGludCYgZm9ybVNlY29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8aW50Jj4oKmFuaW1hdGVk
LT52YWx1ZXNbMV0pIDogc3RhdGljX2Nhc3Q8aW50Jj4oKmZyb20tPnZhbHVlc1sxXSk7CisgICAg
Y29uc3QgaW50JiB0b0ZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50Jj4oKnRvLT52YWx1ZXNbMF0pOwor
ICAgIGNvbnN0IGludCYgdG9TZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG8tPnZhbHVlc1sx
XSk7CisgICAgY29uc3QgaW50JiB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0ID0gc3RhdGljX2Nhc3Q8
aW50Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGludCYgdG9B
dEVuZE9mRHVyYXRpb25TZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQmPigqdG9BdEVuZE9mRHVyYXRp
b24tPnZhbHVlc1sxXSk7CisgICAgaW50JiBhbmltYXRlZEZpcnN0ID0gc3RhdGljX2Nhc3Q8aW50
Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOworICAgIGludCYgYW5pbWF0ZWRTZWNvbmQgPSBzdGF0
aWNfY2FzdDxpbnQmPigqYW5pbWF0ZWQtPnZhbHVlc1sxXSk7CiAKLSAgICBTVkdBbmltYXRlZElu
dGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVu
dCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFpci5maXJzdCwgdG9JbnRl
Z2VyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0
ZWRJbnRlZ2VyUGFpci5maXJzdCk7Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNh
bGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJl
cGVhdENvdW50LCBmcm9tSW50ZWdlclBhaXIuc2Vjb25kLCB0b0ludGVnZXJQYWlyLnNlY29uZCwg
dG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5zZWNvbmQsIGFuaW1hdGVkSW50ZWdlclBhaXIu
c2Vjb25kKTsKKyAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0
ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZv
cm1GaXJzdCwgdG9GaXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7
CisgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25k
LCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0K
IAogZmxvYXQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1
bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDEyICszMywxMiBAQCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExl
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAg
cmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZH
TGVuZ3RoVmFsdWU+KG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlKFNWR0xlbmd0aFZhbHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTGVuZ3RoKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFu
aW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhB
bmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJl
c2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwg
JlNWR0FuaW1hdGVkVHlwZTo6bGVuZ3RoKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
TGVuZ3RoQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDggKzY3LDggQEAgdm9pZCBTVkdB
bmltYXRlZExlbmd0aEFuaW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gdG8tPnR5cGUoKSk7CiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9j
b250ZXh0RWxlbWVudCk7Ci0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0
aCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8m
IGZyb21MZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCpmcm9tLT52YWx1ZXNb
MF0pOworICAgIGF1dG8mIHRvTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigq
dG8tPnZhbHVlc1swXSk7CiAKICAgICB0b0xlbmd0aC5zZXRWYWx1ZSh0b0xlbmd0aC52YWx1ZShs
ZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCksIGxlbmd0aENv
bnRleHQpOwogfQpAQCAtODUsMTAgKzg1LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NF
UlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21TVkdMZW5ndGggPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5s
ZW5ndGgoKSA6IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8gdG9TVkdMZW5ndGggPSB0by0+bGVu
Z3RoKCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25TVkdMZW5ndGggPSB0b0F0
RW5kT2ZEdXJhdGlvbi0+bGVuZ3RoKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBh
bmltYXRlZC0+bGVuZ3RoKCk7CisgICAgYXV0byBmcm9tU1ZHTGVuZ3RoID0gbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdM
ZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR0xlbmd0
aFZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byB0b1NWR0xlbmd0aCA9IHN0YXRp
Y19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8m
IHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUm
PigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRTVkdM
ZW5ndGggPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCphbmltYXRlZC0+dmFsdWVzWzBd
KTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFkanVzdEZvckluaGVyaXRhbmNlPFNWR0xlbmd0aFZhbHVlPihwYXJzZUxlbmd0
aEZyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVudC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCks
IGZyb21TVkdMZW5ndGgsIG1fY29udGV4dEVsZW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMywxNCArMzMsMTIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OlNWR0Fu
aW1hdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZExlbmd0
aExpc3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3Ro
TGlzdChzdGQ6Om1ha2VfdW5pcXVlPFNWR0xlbmd0aExpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1h
dGVkVHlwZS0+bGVuZ3RoTGlzdCgpLnBhcnNlKHN0cmluZywgbV9sZW5ndGhNb2RlKTsKLSAgICBy
ZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShT
VkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcs
IG1fbGVuZ3RoTW9kZSkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVMZW5ndGhMaXN0KGNvbnN0cnVjdEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJu
IGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5
cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6c3RvcEFuaW1W
YWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRl
ZFR5cGVzKQpAQCAtNTAsNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1h
dG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFs
dWU8U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0
ZWRUeXBlOjpsZW5ndGhMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRM
ZW5ndGhMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZExl
bmd0aExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjgsOCArNjYsOCBAQCB2b2lkIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBCiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTGVuZ3RoTGlzdCA9IGZyb20tPmxlbmd0
aExpc3QoKTsKLSAgICBhdXRvJiB0b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOworICAg
IGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZh
bHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHN0YXRp
Y19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1bnNp
Z25lZCBmcm9tTGVuZ3RoTGlzdFNpemUgPSBmcm9tTGVuZ3RoTGlzdC5zaXplKCk7CiAgICAgaWYg
KCFmcm9tTGVuZ3RoTGlzdFNpemUgfHwgZnJvbUxlbmd0aExpc3RTaXplICE9IHRvTGVuZ3RoTGlz
dC5zaXplKCkpCkBAIC03Nyw3ICs3NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5p
bWF0b3I6OmFkZEEKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRl
eHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbUxlbmd0aExpc3RT
aXplOyArK2kpCi0gICAgICAgIHRvTGVuZ3RoTGlzdFtpXS5zZXRWYWx1ZSh0b0xlbmd0aExpc3Rb
aV0udmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhD
b250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CisgICAgICAgIHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0
KGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRl
eHQpICsgZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwg
bGVuZ3RoQ29udGV4dCk7CiB9CiAKIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFsdWVzIHBhcnNlTGVu
Z3RoTGlzdEZyb21TdHJpbmcoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC05MiwxMCArOTAsMTAgQEAgdm9pZCBTVkdBbmltYXRl
ZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbUxlbmd0aExp
c3QgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkLT5sZW5ndGhMaXN0KCkgOiBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byB0
b0xlbmd0aExpc3QgPSB0by0+bGVuZ3RoTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5sZW5ndGhMaXN0KCk7Ci0g
ICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0ZWQtPmxlbmd0aExpc3QoKTsKKyAg
ICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVzJj4oKmFu
aW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoTGlzdFZhbHVlcyY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8gdG9MZW5ndGhMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZH
TGVuZ3RoTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0
RW5kT2ZEdXJhdGlvbkxlbmd0aExpc3QgPSBzdGF0aWNfY2FzdDxTVkdMZW5ndGhMaXN0VmFsdWVz
Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkTGVu
Z3RoTGlzdCA9IHN0YXRpY19jYXN0PFNWR0xlbmd0aExpc3RWYWx1ZXMmPigqYW5pbWF0ZWQtPnZh
bHVlc1swXSk7CiAKICAgICAvLyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9h
bmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTVkdMZW5ndGhMaXN0VmFsdWVz
PihwYXJzZUxlbmd0aExpc3RGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Qcm9w
ZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTGVuZ3RoTGlzdCwgbV9jb250ZXh0RWxlbWVudCk7CkBAIC0x
MTAsMTggKzEwOCwxOCBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxj
CiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTGVuZ3RoTGlzdFNpemU7ICsraSkgewot
ICAgICAgICBmbG9hdCBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkTGVuZ3RoTGlzdFtpXS52YWx1
ZShsZW5ndGhDb250ZXh0KTsKLSAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9IHRvTGVu
Z3RoTGlzdFtpXS51bml0VHlwZSgpOworICAgICAgICBmbG9hdCBhbmltYXRlZE51bWJlciA9IGFu
aW1hdGVkTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAg
ICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSku
dW5pdFR5cGUoKTsKICAgICAgICAgZmxvYXQgZWZmZWN0aXZlRnJvbSA9IDA7CiAgICAgICAgIGlm
IChmcm9tTGVuZ3RoTGlzdFNpemUpIHsKICAgICAgICAgICAgIGlmIChwZXJjZW50YWdlIDwgMC41
KQotICAgICAgICAgICAgICAgIHVuaXRUeXBlID0gZnJvbUxlbmd0aExpc3RbaV0udW5pdFR5cGUo
KTsKLSAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShs
ZW5ndGhDb250ZXh0KTsKKyAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhMaXN0
LnByb3BlcnR5QXQoaSkudW5pdFR5cGUoKTsKKyAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBm
cm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgICAg
ICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRp
b25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhD
b250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVu
ZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdC5wcm9wZXJ0
eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpIDogMDsKIAotICAgICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZm
ZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpLCBlZmZlY3Rp
dmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7Ci0gICAgICAgIGFuaW1hdGVkTGVuZ3RoTGlzdFtp
XS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1
bml0VHlwZSk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVt
YmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b0xlbmd0aExpc3Qu
cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5p
bWF0ZWROdW1iZXIpOworICAgICAgICBhbmltYXRlZExlbmd0aExpc3QucHJvcGVydHlBdChpKS5z
ZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0
VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRO
dW1iZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51
bWJlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZE51bWJlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE2ICszMiwxMiBAQCBTVkdBbmlt
YXRlZE51bWJlckFuaW1hdG9yOjpTVkdBbmltYXRlZE51CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihzdGQ6Om1ha2VfdW5pcXVlPGZsb2F0PigpKTsKLSAg
ICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZFR5cGUtPm51bWJlcigpOwotICAgIGlm
ICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgYW5pbWF0ZWROdW1iZXIpKQotICAgICAg
ICBhbmltYXRlZE51bWJlciA9IDA7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+Ojpmcm9t
U3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVy
biBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlcihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTUxLDcgKzQ3
LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNW
R0FuaW1hdGVkTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlw
ZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXI+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlcik7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0K
IAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OSwx
NCArNjUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjphZGRBbmltYQogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWROdW1iZXIpOwogICAgIEFTU0VSVChmcm9t
LT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICB0by0+bnVtYmVyKCkgKz0gZnJvbS0+bnVt
YmVyKCk7CisgICAgc3RhdGljX2Nhc3Q8ZmxvYXQmPigqdG8tPnZhbHVlc1swXSkgKz0gc3RhdGlj
X2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsKIH0KIAogc3RhdGljIGZsb2F0IHBhcnNl
TnVtYmVyRnJvbVN0cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiwgY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7Ci0gICAgZmxvYXQgbnVtYmVyID0gMDsKLSAgICBwYXJzZU51bWJlckZyb21TdHJpbmco
c3RyaW5nLCBudW1iZXIpOwotICAgIHJldHVybiBudW1iZXI7CisgICAgcmV0dXJuIFNWR1Byb3Bl
cnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFn
ZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0
ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0
ZWRUeXBlKiBhbmltYXRlZCkKQEAgLTg0LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVt
YmVyQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgZmxvYXQgZnJvbU51bWJlciA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0
ZWQtPm51bWJlcigpIDogZnJvbS0+bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9OdW1iZXIgPSB0by0+
bnVtYmVyKCk7Ci0gICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXIgPSB0b0F0RW5kT2ZE
dXJhdGlvbi0+bnVtYmVyKCk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWQt
Pm51bWJlcigpOworICAgIGZsb2F0IGZyb21OdW1iZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1h
dGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbS0+dmFsdWVzWzBdKTsK
KyAgICBmbG9hdCB0b051bWJlciA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMF0p
OworICAgIGZsb2F0IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQm
PigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgZmxvYXQmIGFuaW1hdGVkTnVt
YmVyID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAv
LyBBcHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5h
ZGp1c3RGb3JJbmhlcml0YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2FuaW1h
dGlvbkVsZW1lbnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2NvbnRl
eHRFbGVtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxp
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJl
ckxpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDEyIEBAIFNW
R0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxT
VkdOdW1iZXJMaXN0VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPm51bWJlckxpc3QoKS5w
YXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+
Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KGNvbnN0cnVjdEZy
b21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAg
cmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0Pihhbmlt
YXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3Rv
cEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQpAQCAtNDksNyArNDcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlz
dEFuaW1hdG9yOjpzdG9wCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJl
c2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21C
YXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZH
QW5pbWF0ZWRUeXBlOjpudW1iZXJMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZE51bWJlckxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsMjUgKzY1LDI1IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJv
bS0+bnVtYmVyTGlzdCgpOwotICAgIGF1dG8mIHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0
KCk7CisgICAgY29uc3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBzdGF0aWNfY2FzdDxTVkdOdW1i
ZXJMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9OdW1iZXJMaXN0
ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKIAog
ICAgIHVuc2lnbmVkIGZyb21OdW1iZXJMaXN0U2l6ZSA9IGZyb21OdW1iZXJMaXN0LnNpemUoKTsK
ICAgICBpZiAoIWZyb21OdW1iZXJMaXN0U2l6ZSB8fCBmcm9tTnVtYmVyTGlzdFNpemUgIT0gdG9O
dW1iZXJMaXN0LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGZyb21OdW1iZXJMaXN0U2l6ZTsgKytpKQotICAgICAgICB0b051bWJlckxpc3Rb
aV0gKz0gZnJvbU51bWJlckxpc3RbaV07CisgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRv
TnVtYmVyTGlzdFtpXSkgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJvbU51bWJlckxpc3RbaV0p
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9B
dEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJU
KG1fYW5pbWF0aW9uRWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPm51bWJlckxpc3QoKSA6IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRv
JiB0b051bWJlckxpc3QgPSB0by0+bnVtYmVyTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRF
bmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7
Ci0gICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsK
KyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZh
bHVlcyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PFNWR051bWJlckxpc3RW
YWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b051bWJlckxpc3Qg
PSBzdGF0aWNfY2FzdDxTVkdOdW1iZXJMaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOworICAg
IGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHN0YXRpY19jYXN0PFNW
R051bWJlckxpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAg
YXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHTnVtYmVyTGlzdFZhbHVl
cyY+KCphbmltYXRlZC0+dmFsdWVzWzBdKTsKICAgICBpZiAoIW1fYW5pbWF0aW9uRWxlbWVudC0+
YWRqdXN0RnJvbVRvTGlzdFZhbHVlczxTVkdOdW1iZXJMaXN0VmFsdWVzPihmcm9tTnVtYmVyTGlz
dCwgdG9OdW1iZXJMaXN0LCBhbmltYXRlZE51bWJlckxpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTk0LDkgKzkyLDkgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6Y2FsYwogICAgIHVuc2lnbmVkIHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA9IHRvQXRF
bmRPZkR1cmF0aW9uTnVtYmVyTGlzdC5zaXplKCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgdG9OdW1iZXJMaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAg
IGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9B
dEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0W2ldIDogMDsKLSAgICAgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVj
dGl2ZUZyb20sIHRvTnVtYmVyTGlzdFtpXSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1i
ZXJMaXN0W2ldKTsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlRnJvbSA9IGZyb21OdW1iZXJMaXN0
U2l6ZSA/IGZyb21OdW1iZXJMaXN0LnByb3BlcnR5QXQoaSkgOiAwOworICAgICAgICBmbG9hdCBl
ZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVm
ZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpLCBlZmZlY3RpdmVUb0F0RW5k
LCBhbmltYXRlZE51bWJlckxpc3QucHJvcGVydHlBdChpKSk7CiAgICAgfQogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE4ICsz
MywxMiBAQCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1i
ZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyT3B0
aW9uYWxOdW1iZXIoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKSk7
Ci0gICAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRU
eXBlLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRpb25h
bE51bWJlcihzdHJpbmcsIGFuaW1hdGVkTnVtYmVyLmZpcnN0LCBhbmltYXRlZE51bWJlci5zZWNv
bmQpKSB7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLmZpcnN0ID0gMDsKLSAgICAgICAgYW5pbWF0
ZWROdW1iZXIuc2Vjb25kID0gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAg
ICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpw
YWlyPGZsb2F0LCBmbG9hdD4+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5p
bWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0
dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBTVkdBbmltYXRl
ZE51bWJlcj4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01NCw3ICs0OCw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW0KIAogdm9pZCBTVkdBbmltYXRl
ZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1h
dGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVt
YmVyLCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVk
VHlwZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZH
QW5pbWF0ZWROdW1iZXIsIFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKQEAgLTcyLDExICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlckFuaW0KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAK
LSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgZnJvbU51bWJlclBhaXIgPSBmcm9t
LT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiB0
b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLQotICAgIHRvTnVtYmVy
UGFpci5maXJzdCArPSBmcm9tTnVtYmVyUGFpci5maXJzdDsKLSAgICB0b051bWJlclBhaXIuc2Vj
b25kICs9IGZyb21OdW1iZXJQYWlyLnNlY29uZDsKKyAgICBzdGF0aWNfY2FzdDxmbG9hdCY+KCp0
by0+dmFsdWVzWzBdKSArPSBzdGF0aWNfY2FzdDxmbG9hdCY+KCpmcm9tLT52YWx1ZXNbMF0pOwor
ICAgIHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvLT52YWx1ZXNbMV0pICs9IHN0YXRpY19jYXN0PGZs
b2F0Jj4oKmZyb20tPnZhbHVlc1sxXSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRh
Z2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1h
dGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1h
dGVkVHlwZSogYW5pbWF0ZWQpCkBAIC04NCwxMyArNzUsMTcgQEAgdm9pZCBTVkdBbmltYXRlZE51
bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwog
ICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9h
dCwgZmxvYXQ+JiBmcm9tTnVtYmVyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9u
TW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPm51bWJlck9wdGlvbmFsTnVtYmVyKCkg
OiAgZnJvbS0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0gdG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0g
ICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVy
UGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIHN0
ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+bnVt
YmVyT3B0aW9uYWxOdW1iZXIoKTsKKyAgICBjb25zdCBhdXRvJiBmb3JtRmlyc3QgPSBtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0
PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8ZmxvYXQmPigqZnJv
bS0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiBmb3JtU2Vjb25kID0gbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBzdGF0aWNfY2FzdDxmbG9h
dCY+KCphbmltYXRlZC0+dmFsdWVzWzFdKSA6IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmZyb20tPnZh
bHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYgdG9GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4o
KnRvLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvU2Vjb25kID0gc3RhdGljX2Nhc3Q8
ZmxvYXQmPigqdG8tPnZhbHVlc1sxXSk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25GaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNb
MF0pOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kID0gc3RhdGljX2Nh
c3Q8ZmxvYXQmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1sxXSk7CisgICAgYXV0byYgYW5p
bWF0ZWRGaXJzdCA9IHN0YXRpY19jYXN0PGZsb2F0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwor
ICAgIGF1dG8mIGFuaW1hdGVkU2Vjb25kID0gc3RhdGljX2Nhc3Q8ZmxvYXQmPigqYW5pbWF0ZWQt
PnZhbHVlc1sxXSk7CiAKLSAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51
bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbU51bWJlclBhaXIuZmlyc3QsIHRvTnVt
YmVyUGFpci5maXJzdCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLmZpcnN0LCBhbmltYXRl
ZE51bWJlclBhaXIuZmlyc3QpOwotICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0
aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5zZWNvbmQs
IHRvTnVtYmVyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpci5zZWNvbmQs
IGFuaW1hdGVkTnVtYmVyUGFpci5zZWNvbmQpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtRmlyc3QsIHRv
Rmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QsIGFuaW1hdGVkRmlyc3QpOworICAgIG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENv
dW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1h
dGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFu
aW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMiw3ICsyMiw2IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2Uu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCi0j
aW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTMzLDkgKzMyLDcgQEAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0aAog
CiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRv
IGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAg
IGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgKmJ5dGVTdHJlYW0sIFVu
YWx0ZXJlZFBhcnNpbmcpOwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgo
V1RGTW92ZShieXRlU3RyZWFtKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyhzdHJpbmcp
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRo
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00Myw5ICs0MCw5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5z
aXplKCkgPj0gMSk7CiAKICAgICAvLyBCdWlsZCBpbml0aWFsIHBhdGggYnl0ZSBzdHJlYW0uCi0g
ICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4o
KTsKLSAgICByZXNldEFuaW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgYnl0ZVN0cmVhbS5n
ZXQoKSk7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5
dGVTdHJlYW0pKTsKKyAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlPFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmlt
YXRlZFR5cGVzLCAqYW5pbWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwogfQog
CiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OCw3
ICs1NSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBS
ZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gcHJvcGVydHkgPSBj
YXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJv
cGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwogICAg
IGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAK
LSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGJhc2VW
YWx1ZSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIGJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmPigqYmFzZVZhbHVlKSwgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwog
CiAgICAgVmVjdG9yPFJlZlB0cjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
Pj4gcmVzdWx0OwogCkBAIC03Miw3ICs2OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0
b3I6OnJlc2V0QW5pbVYKICAgICBpZiAoIXJlc3VsdC5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZH
RWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2NrZXIoKnByb3BlcnR5LT5jb250ZXh0
RWxlbWVudCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBzZWdtZW50IDogcmVzdWx0KQotICAgICAg
ICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlKTsK
KyAgICAgICAgICAgIHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJnN0YXRp
Y19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKmJhc2VWYWx1ZSkpOwogICAgIH0KIH0KIApA
QCAtODAsNyArNzcsNyBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1W
CiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwogICAgIEFTU0VSVCh0
eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRl
ZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVk
VHlwZXMsICZzdGF0aWNfY2FzdDxTVkdQYXRoQnl0ZVN0cmVhbSY+KCp0eXBlLnZhbHVlc1swXSkp
OwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC05
OCwxMiArOTUsMTIgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZQog
ICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRQYXRoKTsKICAgICBBU1NFUlQoZnJv
bS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGZyb21Q
YXRoID0gZnJvbS0+cGF0aCgpOwotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiB0b1BhdGggPSB0by0+
cGF0aCgpOwotICAgIHVuc2lnbmVkIGZyb21QYXRoU2l6ZSA9IGZyb21QYXRoLT5zaXplKCk7Ci0g
ICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC0+c2l6ZSgpKQor
ICAgIGNvbnN0IGF1dG8mIGZyb21QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0m
PigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1BhdGggPSBzdGF0aWNfY2FzdDxTVkdQ
YXRoQnl0ZVN0cmVhbSY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICB1bnNpZ25lZCBmcm9tUGF0aFNp
emUgPSBmcm9tUGF0aC5zaXplKCk7CisgICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhT
aXplICE9IHRvUGF0aC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRUb1NWR1BhdGhC
eXRlU3RyZWFtKCp0b1BhdGgsICpmcm9tUGF0aCk7CisgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVh
bSh0b1BhdGgsIGZyb21QYXRoKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmlt
YXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpA
QCAtMTExLDM2ICsxMDgsMzMgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3Vs
YXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBh
dGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICBT
VkdQYXRoQnl0ZVN0cmVhbSogdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gdG9BdEVuZE9mRHVyYXRp
b24tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0gYW5pbWF0
ZWQtPnBhdGgoKTsKKyAgICBhdXRvJiBmcm9tUGF0aCA9IHN0YXRpY19jYXN0PFNWR1BhdGhCeXRl
U3RyZWFtJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9QYXRoID0gc3RhdGljX2Nh
c3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG8tPnZhbHVlc1swXSk7CisgICAgYXV0byYgdG9BdEVu
ZE9mRHVyYXRpb25QYXRoID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqdG9BdEVu
ZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRQYXRoID0gc3RhdGlj
X2Nhc3Q8U1ZHUGF0aEJ5dGVTdHJlYW0mPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IHVuZGVybHlpbmdQYXRoOwogICAgIGJv
b2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uOwotICAgIGlmIChpc1RvQW5pbWF0aW9uKSB7Ci0gICAgICAgIHVuZGVybHlp
bmdQYXRoID0gYW5pbWF0ZWRQYXRoLT5jb3B5KCk7Ci0gICAgICAgIGZyb21QYXRoID0gdW5kZXJs
eWluZ1BhdGguZ2V0KCk7Ci0gICAgfQorICAgIGlmIChpc1RvQW5pbWF0aW9uKQorICAgICAgICBm
cm9tUGF0aCA9IGFuaW1hdGVkUGF0aDsKIAogICAgIC8vIENhY2hlIHRoZSBjdXJyZW50IGFuaW1h
dGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCkgY2xl
YXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+
IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+c2l6ZSgpIHx8IChtX2FuaW1h
dGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCi0gICAgICAgIGxh
c3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKKyAgICBTVkdQYXRoQnl0ZVN0
cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBhdGguc2l6ZSgpIHx8IChtX2Fu
aW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCisgICAgICAg
IGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRv
ICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5pbWF0aW9u
IGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0aEJ5dGVT
dHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1l
bnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9tUGF0aCwg
KnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFsc2UpKQorICAgIGlmICghbV9h
bmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRlU3RyZWFt
Pihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCpmcm9t
UGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CisgICAgYnVpbGRBbmlt
YXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0aCwgcGVy
Y2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1bScuCi0gICAgaWYgKGxhc3RB
bmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0
aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFuaW1hdGVkUGF0aC5pc0VtcHR5
KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBsYXN0QW5p
bWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRlPSdzdW0nLgogICAgIGlmICht
X2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkKLSAgICAg
ICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9mRHVyYXRp
b25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5p
bWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVhdENvdW50KTsKIH0KIAogZmxv
YXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
b2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE0ICszNCwxMiBA
QCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlCiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5pcXVl
PFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFuaW1h
dGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
UG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExp
c3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRU
eXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9p
bnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFu
aW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEKIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAg
cmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVzLCB0
eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMjUgKzY3
LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW4KICAgICBBU1NF
UlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUG9pbnRzKTsKICAgICBBU1NFUlQoZnJvbS0+dHlw
ZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IGZy
b20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlzdCgp
OworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExp
c3RWYWx1ZXMmPigqZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1BvaW50TGlzdCA9ICBz
dGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7CiAKICAgICB1
bnNpZ25lZCBmcm9tUG9pbnRMaXN0U2l6ZSA9IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlm
ICghZnJvbVBvaW50TGlzdFNpemUgfHwgZnJvbVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Qu
c2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbVBvaW50TGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBv
aW50TGlzdFtpXTsKKyAgICAgICAgdG9Qb2ludExpc3QucHJvcGVydHlBdChpKSArPSBmcm9tUG9p
bnRMaXN0LnByb3BlcnR5QXQoaSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnBvaW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7
Ci0gICAgY29uc3QgYXV0byYgdG9Qb2ludExpc3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29u
c3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+
cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9p
bnRMaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUG9p
bnRMaXN0VmFsdWVzJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUG9p
bnRMaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYgdG9Qb2lu
dExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG8tPnZhbHVlc1swXSk7
CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSBzdGF0aWNfY2Fz
dDxTVkdQb2ludExpc3RWYWx1ZXMmPigqdG9BdEVuZE9mRHVyYXRpb24tPnZhbHVlc1swXSk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRQb2ludExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RWYWx1
ZXMmPigqYW5pbWF0ZWQtPnZhbHVlc1swXSk7CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQt
PmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUG9pbnRMaXN0VmFsdWVzPihmcm9tUG9pbnRMaXN0
LCB0b1BvaW50TGlzdCwgYW5pbWF0ZWRQb2ludExpc3QsIHBlcmNlbnRhZ2UpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTk4LDE0ICs5NiwxNCBAQCB2b2lkIFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5p
bWF0b3I6OmNhbGN1CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvUG9pbnRMaXN0U2l6
ZTsgKytpKSB7CiAgICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlRnJvbTsKICAgICAgICAgaWYg
KGZyb21Qb2ludExpc3RTaXplKQotICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21Qb2lu
dExpc3RbaV07Ci0gICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0
RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdFtpXSA6IEZsb2F0
UG9pbnQoKTsKKyAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0LnByb3Bl
cnR5QXQoaSk7CisgICAgICAgIEZsb2F0UG9pbnQgZWZmZWN0aXZlVG9BdEVuZCA9IGkgPCB0b0F0
RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvblBvaW50TGlzdC5wcm9wZXJ0eUF0
KGkpIDogRmxvYXRQb2ludCgpOwogCi0gICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVk
UG9pbnRMaXN0W2ldLngoKTsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2lu
dExpc3RbaV0ueSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2
ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9p
bnRMaXN0W2ldLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAg
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJl
cGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3Rp
dmVUb0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsKLSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0g
PSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0
ZWRYID0gYW5pbWF0ZWRQb2ludExpc3QucHJvcGVydHlBdChpKS54KCk7CisgICAgICAgIGZsb2F0
IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5QXQoaSkueSgpOworICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0LnByb3BlcnR5QXQoaSku
eCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLnkoKSwgZWZmZWN0
aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7CisgICAgICAgIGFuaW1hdGVkUG9pbnRMaXN0LnBy
b3BlcnR5QXQoaSkgPSBGbG9hdFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0ZWRZKTsKICAgICB9CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsMTQgKzMxLDEyIEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjoK
IAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBy
ZXNlcnZlQXNwZWN0UmF0aW8oc3RkOjptYWtlX3VuaXF1ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+cHJlc2VydmVBc3BlY3RSYXRpbygpLnBhcnNl
KHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2VydmVB
c3BlY3RSYXRpbyhjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTQ4LDcgKzQ2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW9BbmltYQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcywg
dHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBl
cywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0
b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTcxLDkgKzY5LDkgQEAgdm9pZCBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVzZXJ2
ZUFzcGVjdFJhdGlvID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZC0+cHJlc2VydmVBc3BlY3RSYXRpbygpIDogZnJvbS0+cHJlc2Vy
dmVBc3BlY3RSYXRpbygpOwotICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9
IHRvLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvID0gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKKyAgICBjb25zdCBh
dXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pIDogc3RhdGljX2Nhc3Q8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlJj4oKmZyb20tPnZhbHVlc1swXSk7CisgICAgY29uc3QgYXV0byYg
dG9QcmVzZXJ2ZUFzcGVjdFJhdGlvID0gc3RhdGljX2Nhc3Q8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJj4oKnRvLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbyA9IHN0YXRpY19jYXN0PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSY+KCphbmlt
YXRlZC0+dmFsdWVzWzBdKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2Ny
ZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZlQXNwZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNw
cAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFJlY3RB
bmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRSZWN0PigpKTsKLSAgICBwYXJzZVJl
Y3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJlY3QoKSk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUmVjdChjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcyk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5
LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6c3RvcEFuaW1WYQogCiB2
b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRl
ZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4o
YW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6cmVjdCk7CisgICAgcmVzZXRG
cm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAK
IHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTY3LDcgKzY1
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YWRkQW5pbWF0ZQogICAgIEFTU0VS
VChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRSZWN0KTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgp
ID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPnJlY3QoKSArPSBmcm9tLT5yZWN0KCk7CisgICAg
c3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKnRvLT52YWx1ZXNbMF0pICs9IHN0YXRpY19jYXN0PEZs
b2F0UmVjdCY+KCpmcm9tLT52YWx1ZXNbMF0pOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8s
IFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5p
bWF0ZWQpCkBAIC03NSwxMCArNzMsMTAgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6
Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVCht
X2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IEZsb2F0UmVjdCYgZnJvbVJlY3QgPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVk
LT5yZWN0KCkgOiBmcm9tLT5yZWN0KCk7Ci0gICAgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QgPSB0
by0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0g
dG9BdEVuZE9mRHVyYXRpb24tPnJlY3QoKTsKLSAgICBGbG9hdFJlY3QmIGFuaW1hdGVkUmVjdCA9
IGFuaW1hdGVkLT5yZWN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVJlY3QgPSBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IHN0YXRpY19jYXN0PEZs
b2F0UmVjdCY+KCphbmltYXRlZC0+dmFsdWVzWzBdKSA6IHN0YXRpY19jYXN0PEZsb2F0UmVjdCY+
KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGNvbnN0IGF1dG8mIHRvUmVjdCA9IHN0YXRpY19jYXN0
PEZsb2F0UmVjdCY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZE
dXJhdGlvblJlY3QgPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqdG9BdEVuZE9mRHVyYXRpb24t
PnZhbHVlc1swXSk7CisgICAgYXV0byYgYW5pbWF0ZWRSZWN0ID0gc3RhdGljX2Nhc3Q8RmxvYXRS
ZWN0Jj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5p
bWF0ZWRSZWN0LngoKTsKICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFJlY3QueSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zMSwxNCArMzIsMTIgQEAgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6U1ZH
QW5pbWF0ZWRTdAogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJp
bmcoc3RkOjptYWtlX3VuaXF1ZTxTdHJpbmc+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+c3RyaW5n
KCkgPSBzdHJpbmc7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmluZyhz
dHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRl
ZFN0cmluZz4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Nyw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihhbmltYXRlZFR5
cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzYsOSArNzUsOSBA
QCB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1f
YW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAg
U3RyaW5nIGZyb21TdHJpbmcgPSBmcm9tLT5zdHJpbmcoKTsKLSAgICBTdHJpbmcgdG9TdHJpbmcg
PSB0by0+c3RyaW5nKCk7Ci0gICAgU3RyaW5nJiBhbmltYXRlZFN0cmluZyA9IGFuaW1hdGVkLT5z
dHJpbmcoKTsKKyAgICBTdHJpbmcgZnJvbVN0cmluZyA9IHN0YXRpY19jYXN0PFN0cmluZyY+KCpm
cm9tLT52YWx1ZXNbMF0pOworICAgIFN0cmluZyB0b1N0cmluZyA9IHN0YXRpY19jYXN0PFN0cmlu
ZyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBTdHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gc3RhdGlj
X2Nhc3Q8U3RyaW5nJj4oKmFuaW1hdGVkLT52YWx1ZXNbMF0pOwogCiAgICAgLy8gQXBwbHkgQ1NT
IGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5o
ZXJpdGFuY2U8U3RyaW5nPihwYXJzZVN0cmluZ0Zyb21TdHJpbmcsIG1fYW5pbWF0aW9uRWxlbWVu
dC0+ZnJvbVByb3BlcnR5VmFsdWVUeXBlKCksIGZyb21TdHJpbmcsIG1fY29udGV4dEVsZW1lbnQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxNSArNDEsMTIgQEAgU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OlNWR0FuaQogCiBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y29uc3Ry
dWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGFuaW1hdGVk
VHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6Om1ha2VfdW5p
cXVlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkpOwotICAgIGFuaW1hdGVkVHlwZS0+dHJhbnNm
b3JtTGlzdCgpLnBhcnNlKG1fdHJhbnNmb3JtVHlwZVN0cmluZyArIHN0cmluZyArICcpJyk7Ci0g
ICAgQVNTRVJUKGFuaW1hdGVkVHlwZS0+dHJhbnNmb3JtTGlzdCgpLnNpemUoKSA8PSAxKTsKLSAg
ICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyht
X3RyYW5zZm9ybVR5cGVTdHJpbmcgKyBzdHJpbmcgKyAnKScpKTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
IGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJh
bnNmb3JtTGlzdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dD4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTU5LDcgKzU2
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6cwogCiB2b2lkIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmlt
YXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNm
b3JtTGlzdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTc3LDE1ICs3NCwxNSBAQCB2b2lkIFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjphCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSBBbmltYXRlZFRyYW5zZm9ybUxpc3QpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8t
PnR5cGUoKSk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtTGlzdCA9IGZyb20tPnRy
YW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSB0by0+dHJhbnNmb3Jt
TGlzdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCpmcm9tLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIHRv
VHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqdG8t
PnZhbHVlc1swXSk7CiAgICAgYXV0byBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNm
b3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRy
YW5zZm9ybUxpc3RTaXplICE9IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtTGlzdFNpemUgPT0gMSk7Ci0gICAgY29uc3Qg
YXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGF1dG8mIHRv
VHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFu
c2Zvcm0gPSBmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApOworICAgIGF1dG8mIHRvVHJh
bnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCk7CiAKICAgICBBU1NFUlQoZnJv
bVRyYW5zZm9ybS50eXBlKCkgPT0gdG9UcmFuc2Zvcm0udHlwZSgpKTsKICAgICB0b1RyYW5zZm9y
bSA9IFNWR1RyYW5zZm9ybURpc3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1zKGZyb21UcmFuc2Zvcm0s
IHRvVHJhbnNmb3JtKTsKQEAgLTk4LDEwICs5NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdEFuaW1hdG9yOjpjCiAgICAgLy8gU3BlYzogVG8gYW5pbWF0aW9ucyBwcm92aWRlIHNw
ZWNpZmljIGZ1bmN0aW9uYWxpdHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5nZSBmcm9tIHRoZSB1bmRl
cmx5aW5nIHZhbHVlIHRvIHRoZQogICAgIC8vIOKAmHRv4oCZIGF0dHJpYnV0ZSB2YWx1ZSwgd2hp
Y2ggY29uZmxpY3RzIG1hdGhlbWF0aWNhbGx5IHdpdGggdGhlIHJlcXVpcmVtZW50IGZvciBhZGRp
dGl2ZSB0cmFuc2Zvcm0gYW5pbWF0aW9ucwogICAgIC8vIHRvIGJlIHBvc3QtbXVsdGlwbGllZC4g
QXMgYSBjb25zZXF1ZW5jZSwgaW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Igb2YgdG8gYW5pbWF0aW9u
cyBmb3Ig4oCYYW5pbWF0ZVRyYW5zZm9ybeKAmSBpcyB1bmRlZmluZWQuCi0gICAgY29uc3QgYXV0
byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3Qg
YXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBh
dXRvJiB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+
dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1h
dGVkLT50cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3Qg
PSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKmZyb20tPnZhbHVlc1swXSk7
CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gc3RhdGljX2Nhc3Q8U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyY+KCp0by0+dmFsdWVzWzBdKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvblRyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFs
dWVzJj4oKnRvQXRFbmRPZkR1cmF0aW9uLT52YWx1ZXNbMF0pOworICAgIGF1dG8mIGFuaW1hdGVk
VHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigqYW5p
bWF0ZWQtPnZhbHVlc1swXSk7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRvICdyZXNpemVBbmltYXRl
ZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHNwZWNpYWwgcG9zdC1tdWx0aXBsaWNhdGlvbiBi
ZWhhdmlvciBvZiA8YW5pbWF0ZVRyYW5zZm9ybT4gbmVlZHMgdG8gYmUgcmVzcGVjdGVkIGJlbG93
LgogICAgIGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGZyb21UcmFuc2Zvcm1MaXN0LCB0b1RyYW5zZm9ybUxpc3Qs
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCwgcGVyY2VudGFnZSwgZmFsc2UpKQpAQCAtMTEyLDE0ICsx
MDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgICAg
ICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1dG8gZnJvbVRyYW5zZm9y
bUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAgIGNvbnN0IGF1dG8mIHRv
VHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZl
RnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1MaXN0WzBdIDogU1ZH
VHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29u
c3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1Ry
YW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKTsKKyAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20g
PSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDAp
IDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1
ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBjdXJyZW50VHJhbnNmb3JtID0g
U1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9UcmFuc2Zvcm0pLnNjYWxlZERp
c3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVmZmVjdGl2ZUZyb20pOwogICAg
IGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkg
ewotICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlv
blRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0WzBd
IDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1
ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlz
dC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRy
YW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKTsKKyAgICAgICAgY29uc3Qg
YXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNp
emUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApIDogU1ZH
VHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29u
c3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oU1ZHVHJhbnNmb3JtRGlzdGFu
Y2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwg
cmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlz
dC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oY3VycmVudFRyYW5z
Zm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2Fs
Y3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRv
U3RyaW5nKQpAQCAtMTMxLDIwICsxMjgsMjAgQEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OgogICAgIGF1dG8gZnJvbSA9IGNvbnN0cnVjdEZyb21TdHJpbmcoZnJvbVN0
cmluZyk7CiAgICAgYXV0byB0byA9IGNvbnN0cnVjdEZyb21TdHJpbmcodG9TdHJpbmcpOwogCi0g
ICAgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAg
YXV0byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKKyAgICBhdXRvJiBm
cm9tVHJhbnNmb3JtTGlzdCA9IHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmPigq
ZnJvbS0+dmFsdWVzWzBdKTsKKyAgICBhdXRvJiB0b1RyYW5zZm9ybUxpc3QgPSBzdGF0aWNfY2Fz
dDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKnRvLT52YWx1ZXNbMF0pOwogICAgIHVuc2lnbmVk
IGl0ZW1zQ291bnQgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAgICAgaWYgKCFpdGVtc0Nv
dW50IHx8IGl0ZW1zQ291bnQgIT0gdG9UcmFuc2Zvcm1MaXN0LnNpemUoKSkKICAgICAgICAgcmV0
dXJuIC0xOwogCiAgICAgQVNTRVJUKGl0ZW1zQ291bnQgPT0gMSk7Ci0gICAgaWYgKGZyb21UcmFu
c2Zvcm1MaXN0WzBdLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3RbMF0udHlwZSgpKQorICAgIGlm
IChmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxp
c3QucHJvcGVydHlBdCgwKS50eXBlKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIC8vIFNw
ZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0bWwjY29tcGxleERpc3RhbmNl
cwogICAgIC8vIFBhY2VkIGFuaW1hdGlvbnMgYXNzdW1lIGEgbm90aW9uIG9mIGRpc3RhbmNlIGJl
dHdlZW4gdGhlIHZhcmlvdXMgYW5pbWF0aW9uIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSDigJh0b+KA
mSwg4oCYZnJvbeKAmSwg4oCYYnnigJkgYW5kIOKAmHZhbHVlc+KAmSBhdHRyaWJ1dGVzLgogICAg
IC8vIERpc3RhbmNlIGlzIGRlZmluZWQgb25seSBmb3Igc2NhbGFyIHR5cGVzIChzdWNoIGFzIDxs
ZW5ndGg+KSwgY29sb3JzIGFuZCB0aGUgc3Vic2V0IG9mIHRyYW5zZm9ybWF0aW9uIHR5cGVzIHRo
YXQgYXJlIHN1cHBvcnRlZCBieSDigJhhbmltYXRlVHJhbnNmb3Jt4oCZLgotICAgIHJldHVybiBT
VkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdFswXSwgdG9UcmFuc2Zvcm1MaXN0
WzBdKS5kaXN0YW5jZSgpOworICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJh
bnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLCB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKSku
ZGlzdGFuY2UoKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFR5cGUuY3BwCShub25leGlzdGVudCkKQEAgLTEsMzI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFR5cGUuaCIKLQot
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgot
I2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
U1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlw
ZSkKLSAgICA6IG1fdHlwZSh0eXBlKQotewotfQotCi1TVkdBbmltYXRlZFR5cGU6On5TVkdBbmlt
YXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBBbmltYXRlZEFu
Z2xlOgotICAgICAgICBkZWxldGUgbV9kYXRhLmFuZ2xlQW5kRW51bWVyYXRpb247Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAgICAgICBkZWxldGUgbV9kYXRh
LmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAg
ICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRl
ZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxldGUgbV9kYXRhLmVudW1lcmF0aW9uOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0
YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBkZWxl
dGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0
aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoTGlzdDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgICAgICBk
ZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5udW1iZXJPcHRp
b25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAg
ICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRl
ZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wb2ludExpc3Q7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgICAgICBkZWxldGUg
bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5p
bWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnJlY3Q7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEuc3RyaW5nOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICAgICAg
ZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6
OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PiBhbmdsZUFuZEVudW1lcmF0aW9uKQotewot
ICAgIEFTU0VSVChhbmdsZUFuZEVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEFuZ2xlKTsKLSAgICBh
bmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uID0gYW5nbGVBbmRFbnVtZXJh
dGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFuKHN0
ZDo6dW5pcXVlX3B0cjxib29sPiBib29sZWFuKQotewotICAgIEFTU0VSVChib29sZWFuKTsKLSAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihB
bmltYXRlZEJvb2xlYW4pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmJvb2xlYW4gPSBib29s
ZWFuLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUNvbG9yKHN0ZDo6
dW5pcXVlX3B0cjxDb2xvcj4gY29sb3IpCi17Ci0gICAgQVNTRVJUKGNvbG9yKTsKLSAgICBhdXRv
IGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRl
ZENvbG9yKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5jb2xvciA9IGNvbG9yLnJlbGVhc2Uo
KTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVl
X3B0cjx1bnNpZ25lZD4gZW51bWVyYXRpb24pCi17Ci0gICAgQVNTRVJUKGVudW1lcmF0aW9uKTsK
LSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5lbnVtZXJh
dGlvbiA9IGVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwot
fQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRyPGludD4gaW50ZWdlcikKLXsKLSAgICBBU1NFUlQo
aW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5p
bnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVh
dGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8aW50LCBp
bnQ+PiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKQotewotICAgIEFTU0VSVChpbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgIGFuaW1h
dGVkVHlwZS0+bV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXIgPSBpbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aChz
dGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFsdWU+IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobGVu
Z3RoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3Ro
ID0gbGVuZ3RoLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0
aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+IGxlbmd0aExpc3QpCi17
Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjpt
YWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgYW5p
bWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlzdCA9IGxlbmd0aExpc3QucmVsZWFzZSgpOwotICAg
IHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4g
bnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXIpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTnVtYmVyKTsKLSAgICBh
bmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIgPSBudW1iZXIucmVsZWFzZSgpOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTnVtYmVy
TGlzdFZhbHVlcz4gbnVtYmVyTGlzdCkKLXsKLSAgICBBU1NFUlQobnVtYmVyTGlzdCk7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWROdW1iZXJMaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXJMaXN0ID0g
bnVtYmVyTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1i
ZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+
IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXJPcHRpb25hbE51bWJl
cik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVk
VHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYW5pbWF0ZWRUeXBlLT5t
X2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIgPSBudW1iZXJPcHRpb25hbE51bWJlci5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxT
VkdQYXRoQnl0ZVN0cmVhbT4gcGF0aCkKLXsKLSAgICBBU1NFUlQocGF0aCk7Ci0gICAgYXV0byBh
bmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRQ
YXRoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wYXRoID0gcGF0aC5yZWxlYXNlKCk7Ci0g
ICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNW
R1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0KQotewotICAgIEFTU0VSVChwb2ludExpc3QpOwot
ICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+
KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wb2ludExpc3QgPSBw
b2ludExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUHJlc2Vy
dmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
PiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotICAgIEFTU0VSVChwcmVzZXJ2ZUFzcGVjdFJhdGlv
KTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRU
eXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9k
YXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3RkOjp1bmlxdWVfcHRyPEZsb2F0
UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQocmVjdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRSZWN0KTsKLSAgICBh
bmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFu
aW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRyPFN0cmluZz4gc3RyaW5nKQot
ewotICAgIEFTU0VSVChzdHJpbmcpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkU3RyaW5nKTsKLSAgICBhbmltYXRlZFR5
cGUtPm1fZGF0YS5zdHJpbmcgPSBzdHJpbmcucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9wdHI8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsKLSAgICBBU1NFUlQodHJhbnNmb3JtTGlzdCk7Ci0g
ICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS50cmFuc2Zv
cm1MaXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotU3RyaW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZygpCi17Ci0gICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgICAgIEFTU0VS
VChtX2RhdGEuY29sb3IpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmNvbG9yLT5zZXJpYWxpemVk
KCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aDoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5sZW5n
dGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aC0+dmFsdWVBc1N0cmluZygpOwotICAg
IGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExp
c3QpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aExpc3QtPnZhbHVlQXNTdHJpbmcoKTsK
LSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NFUlQobV9kYXRhLm51bWJlcik7
Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRhLm51bWJlcik7Ci0gICAgY2Fz
ZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHJl
dHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eCgpKSArICcgJyArIFN0cmluZzo6bnVt
YmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAnCi0gICAgICAgICAgICAgKyBTdHJpbmc6Om51bWJl
cihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVj
dC0+aGVpZ2h0KCkpOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIEFTU0VSVCht
X2RhdGEuc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuc3RyaW5nOwotCi0gICAgLy8g
VGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBpbiBTVkdFbGVtZW50Ojpjc3NQ
cm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQgdmFsdWVBc1N0cmluZygpIHN1
cHBvcnQuCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFu
OgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdl
cjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICBjYXNlIEFu
aW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6
Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICBj
YXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNm
b3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgLy8gT25seSBTVkcg
RE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVzIC0gdGhhdCBtZWFucyB2YWx1
ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIFNWR0FuaW1hdGVkVHlwZTo6c2V0
VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgQW5pbWF0ZWRDb2xv
cjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7Ci0gICAgICAgICptX2RhdGEuY29sb3Ig
PSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoOgotICAgICAgICBBU1NFUlQo
bV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiAhbV9kYXRhLmxlbmd0aC0+c2V0VmFsdWVB
c1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVGb3JBbmltYXRlZExlbmd0
aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOwotICAgIGNhc2UgQW5pbWF0ZWRM
ZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICBt
X2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFsdWUsIFNWR0xlbmd0aFZhbHVlOjpsZW5ndGhNb2Rl
Rm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5udW1i
ZXIpOwotICAgICAgICBwYXJzZU51bWJlckZyb21TdHJpbmcodmFsdWUsICptX2RhdGEubnVtYmVy
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAg
IEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHBhcnNlUmVjdCh2YWx1ZSwgKm1fZGF0YS5y
ZWN0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAg
ICAgICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICAqbV9kYXRhLnN0cmluZyA9IHZh
bHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIFRoZXNlIHR5cGVzIGRvbid0IGFw
cGVhciBpbiB0aGUgdGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJvcGVydHlUb1R5cGVNYXAoKSBh
bmQgdGh1cyBkb24ndCBuZWVkIHNldFZhbHVlQXNTdHJpbmcoKSBzdXBwb3J0LiAKLSAgICBjYXNl
IEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAgY2FzZSBBbmlt
YXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgotICAgIGNhc2UgQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0
OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICBjYXNlIEFuaW1h
dGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgotICAgIGNhc2UgQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OgotICAgIGNh
c2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICAvLyBPbmx5IFNWRyBET00gYW5pbWF0aW9ucyB1
c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0aGF0IG1lYW5zIHNldFZhbHVlQXNTdHJpbmcoKSBp
cyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTVkdBbmlt
YXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbChBbmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKQotewot
ICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0
aW9ucy4KLSAgICByZXR1cm4gdHlwZSAhPSBBbmltYXRlZFVua25vd24gJiYgdHlwZSAhPSBBbmlt
YXRlZENvbG9yOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRl
bGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTksMjg0ICsyMCwxMjkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR0Fu
Z2xlVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAi
U1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCi0jaW5j
bHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlJbmZvLmgiCi0jaW5jbHVkZSAiU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0aEJ5dGVTdHJlYW07Ci0KLWNsYXNzIFNWR0FuaW1h
dGVkVHlwZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU1ZH
QW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLSAgICB2aXJ0dWFsIH5TVkdBbmlt
YXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZH
QW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdB
bmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVfcHRyPGJvb2w+KTsKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlQ29sb3Ioc3RkOjp1
bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4pOwotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVJbnRlZ2VyKHN0
ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6OnVuaXF1ZV9wdHI8c3Rk
OjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aFZhbHVlPik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUxlbmd0aExp
c3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVtYmVyKHN0ZDo6dW5pcXVlX3B0
cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdOdW1iZXJMaXN0VmFsdWVzPik7Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZU51bWJlck9w
dGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4pOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQYXRoKHN0
ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQb2ludExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNW
R1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6dW5pcXVlX3B0cjxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRSZWN0Pik7Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVN0cmluZyhzdGQ6
OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0FuaW1WYWwoQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8gTm9uLW11dGFibGUgYWNjZXNzb3JzLgotICAgIGNv
bnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4mIGFuZ2xlQW5kRW51bWVyYXRp
b24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEFuZ2xl
KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVtZXJhdGlvbjsKLSAgICB9Ci0K
LSAgICBjb25zdCBib29sJiBib29sZWFuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVh
bjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAgICAgICAgcmV0dXJuICptX2Rh
dGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwotICAgIH0KLQotICAgIGNvbnN0
IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFu
aW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7Ci0gICAgfQot
Ci0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgaW50ZWdlck9wdGlvbmFsSW50ZWdlcigp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXJPcHRpb25hbElu
dGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0aCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTGVuZ3RoKTsKLSAgICAg
ICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0xlbmd0aExp
c3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGhM
aXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZsb2F0JiBudW1iZXIoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBu
dW1iZXJMaXN0KCkgY29uc3QKK3N0cnVjdCBTVkdBbmltYXRlZFR5cGUgeworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTVkdBbmltYXRlZFR5cGUoUHJvcGVydHlUeXBl
JiYgcHJvcGVydHkpCisgICAgICAgIDogdmFsdWVzIHsgU1ZHVmFsdWU6OmNyZWF0ZShXVEZNb3Zl
KHByb3BlcnR5KSkgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51
bWJlckxpc3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJMaXN0OwogICAgIH0KIAot
ICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJlcigp
IGNvbnN0CisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZSkKKyAg
ICAgICAgOiB2YWx1ZXMgeyBXVEZNb3ZlKHZhbHVlKSB9CiAgICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIpOwotICAgICAgICByZXR1cm4g
Km1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKICAgICB9CiAKLSAgICBjb25zdCBTVkdQYXRo
Qnl0ZVN0cmVhbSogcGF0aCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAg
OiB2YWx1ZXMgeyBTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuZmlyc3QpLCBTVkdWYWx1ZTo6
Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSB9CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0aDsKICAgICB9CiAK
LSAgICBjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0CisgICAgU1ZH
QW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1ZT4m
JiB2YWx1ZTIpCisgICAgICAgIDogdmFsdWVzIHsgV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZh
bHVlMikgfQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKICAgICB9CiAKLSAgICBjb25zdCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJuICpt
X2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0
aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAgY29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShQcm9wZXJ0eVR5cGUmJiBwcm9wZXJ0eSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRSZWN0KTsKLSAgICAgICAg
cmV0dXJuICptX2RhdGEucmVjdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZH
QW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7CiAgICAgfQogCi0gICAgY29uc3QgU3Ry
aW5nJiBzdHJpbmcoKSBjb25zdAorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnN0cmluZzsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihXVEZNb3ZlKHZhbHVlKSk7CiAgICAgfQogCi0gICAgY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyYgdHJhbnNmb3JtTGlzdCgpIGNvbnN0CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEudHJh
bnNmb3JtTGlzdDsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRU
eXBlPihTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlU
eXBlMj4+Ojppbml0aWFsVmFsdWUoKSk7CiAgICAgfQogCi0gICAgLy8gTXV0YWJsZSBhY2Nlc3Nv
cnMuCi0gICAgc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiYgYW5nbGVBbmRFbnVt
ZXJhdGlvbigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUg
UHJvcGVydHlUeXBlMj4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY3JlYXRlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3Bl
cnRpZXMpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQW5nbGUpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUocHJvcGVydGllcykp
OwogICAgIH0KIAotICAgIGJvb2wmIGJvb2xlYW4oKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVm
UHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
QW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVhbjsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVl
MSksIFdURk1vdmUodmFsdWUyKSk7CiAgICAgfQogCi0gICAgQ29sb3ImIGNvbG9yKCkKKyAgICBB
bmltYXRlZFByb3BlcnR5VHlwZSB0eXBlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9yOwot
ICAgIH0KLQotICAgIHVuc2lnbmVkJiBlbnVtZXJhdGlvbigpCi0gICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkRW51bWVyYXRpb24pOwotICAgICAgICByZXR1cm4gKm1fZGF0
YS5lbnVtZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBpbnQmIGludGVnZXIoKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS5pbnRlZ2VyOwotICAgIH0KLQotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJP
cHRpb25hbEludGVnZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyOwotICAgIH0KLQotICAgIFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgoKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aCk7Ci0gICAgICAg
IHJldHVybiAqbV9kYXRhLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBTVkdMZW5ndGhMaXN0VmFsdWVz
JiBsZW5ndGhMaXN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRM
ZW5ndGhMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoTGlzdDsKLSAgICB9Cisg
ICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0pOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRlZFR5cGUoKnZhbHVlc1swXSk7CisgICAgICAgIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkVHlwZTIgPSB2YWx1ZXNbMV0gPyB2YWx1ZUFuaW1h
dGVkVHlwZSgqdmFsdWVzWzFdKSA6IEFuaW1hdGVkVW5rbm93bjsKIAotICAgIGZsb2F0JiBudW1i
ZXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRl
ZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsKKyAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5
cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVk
QW5nbGU7CisgICAgICAgIH0KIAotICAgIFNWR051bWJlckxpc3RWYWx1ZXMmIG51bWJlckxpc3Qo
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlckxpc3QpOwot
ICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJMaXN0OwotICAgIH0KKyAgICAgICAgaWYgKGFu
aW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRJbnRlZ2VyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0
ZWRJbnRlZ2VyKQorICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlcjsKIAotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBudW1iZXJPcHRpb25hbE51bWJl
cigpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsK
LSAgICB9CisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFu
aW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlcjsKIAotICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBwYXRoKCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRQYXRoKTsKLSAgICAgICAg
cmV0dXJuIG1fZGF0YS5wYXRoOworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmlt
YXRlZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKLSAg
ICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpCisgICAgU3RyaW5nIHZhbHVlQXNTdHJp
bmcoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50
cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnBvaW50TGlzdDsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1swXSAmJiAhdmFsdWVzWzFdKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1swXS0+dG9TdHJp
bmcoKTsKICAgICB9CiAKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZl
QXNwZWN0UmF0aW8oKQorICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewotICAgICAgICBBU1NF
UlQobV90eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7Ci0gICAgICAgIHJldHVy
biAqbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgIEFTU0VSVCh2YWx1ZXNbMF0g
JiYgIXZhbHVlc1sxXSk7CisgICAgICAgIHJldHVybiB2YWx1ZXNbMF0tPnBhcnNlKGF0dHJOYW1l
LCBzdHJpbmcpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCYgcmVjdCgpCisgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCiAgICAgewotICAg
ICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVjdCk7Ci0gICAgICAgIHJldHVybiAqbV9k
YXRhLnJlY3Q7CisgICAgICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBDU1Mg
cHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtu
b3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLSAgICBTdHJpbmcmIHN0cmlu
ZygpCisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBlKGNv
bnN0IFNWR1ZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRTdHJpbmcpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5zdHJpbmc7CisgICAgICAgIHJl
dHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBT
VkdBbmdsZVZhbHVlJikgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRBbmdsZTsgfSwK
KyAgICAgICAgICAgIFtdKGNvbnN0IGJvb2wmKSAgICAgICAgICAgICAgICAgICAgICAgICB7IHJl
dHVybiBBbmltYXRlZEJvb2xlYW47IH0sCisgICAgICAgICAgICBbXShjb25zdCBDb2xvciYpICAg
ICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRDb2xvcjsgfSwKKyAgICAgICAg
ICAgIFtdKGNvbnN0IHVuc2lnbmVkJikgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmlt
YXRlZEVudW1lcmF0aW9uOyB9LAorICAgICAgICAgICAgW10oY29uc3QgaW50JikgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkSW50ZWdlcjsgfSwKKyAgICAgICAgICAg
IFtdKGNvbnN0IFNWR0xlbmd0aFZhbHVlJikgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRl
ZExlbmd0aDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmKSAg
ICAgICAgICB7IHJldHVybiBBbmltYXRlZExlbmd0aExpc3Q7IH0sCisgICAgICAgICAgICBbXShj
b25zdCBmbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWROdW1i
ZXI7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgICAgICAg
ICAgeyByZXR1cm4gQW5pbWF0ZWROdW1iZXJMaXN0OyB9LAorICAgICAgICAgICAgW10oY29uc3Qg
U1ZHUGF0aEJ5dGVTdHJlYW0mKSAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkUGF0aDsgfSwK
KyAgICAgICAgICAgIFtdKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpICB7IHJl
dHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87IH0sCisgICAgICAgICAgICBbXShjb25z
dCBTVkdQb2ludExpc3RWYWx1ZXMmKSAgICAgICAgICAgeyByZXR1cm4gQW5pbWF0ZWRQb2ludHM7
IH0sCisgICAgICAgICAgICBbXShjb25zdCBGbG9hdFJlY3QmKSAgICAgICAgICAgICAgICAgICAg
eyByZXR1cm4gQW5pbWF0ZWRSZWN0OyB9LAorICAgICAgICAgICAgW10oY29uc3QgU3RyaW5nJikg
ICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOyB9LAorICAgICAg
ICAgICAgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpICAgICAgIHsgcmV0dXJuIEFu
aW1hdGVkVHJhbnNmb3JtTGlzdDsgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IGF1dG8mKSAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHJldHVybiBBbmltYXRlZFVua25vd247IH0KKyAgICAgICAg
KSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUpKTsKICAgICB9CiAK
LSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZygpOwotICAgIGJvb2wgc2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV90
eXBlOwotCi0gICAgdW5pb24gRGF0YVVuaW9uIHsKLSAgICAgICAgRGF0YVVuaW9uKCkKLSAgICAg
ICAgICAgIDogbGVuZ3RoKG51bGxwdHIpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qIGFuZ2xlQW5kRW51bWVyYXRpb247
Ci0gICAgICAgIGJvb2wqIGJvb2xlYW47Ci0gICAgICAgIENvbG9yKiBjb2xvcjsKLSAgICAgICAg
dW5zaWduZWQqIGVudW1lcmF0aW9uOwotICAgICAgICBpbnQqIGludGVnZXI7Ci0gICAgICAgIHN0
ZDo6cGFpcjxpbnQsIGludD4qIGludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgICAgIFNWR0xl
bmd0aFZhbHVlKiBsZW5ndGg7Ci0gICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMqIGxlbmd0aExp
c3Q7Ci0gICAgICAgIGZsb2F0KiBudW1iZXI7Ci0gICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMq
IG51bWJlckxpc3Q7Ci0gICAgICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiBudW1iZXJPcHRp
b25hbE51bWJlcjsKLSAgICAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHBhdGg7Ci0gICAgICAgIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogcHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICAgICAg
U1ZHUG9pbnRMaXN0VmFsdWVzKiBwb2ludExpc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCogcmVjdDsK
LSAgICAgICAgU3RyaW5nKiBzdHJpbmc7Ci0gICAgICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMq
IHRyYW5zZm9ybUxpc3Q7Ci0gICAgfSBtX2RhdGE7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1
ZXNbMl07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC02MywyOCArNjQsMjggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gSGVs
cGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBqdXN0
IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5
cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlw
ZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUgQW5p
bVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0
eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBBbmltVmFsVHlwZSog
YW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5
cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0
byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5
cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0
YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAgICAg
ICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9
IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAg
ICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFu
aW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShhbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWUo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdB
bmltYXRlZFR5cGUmIHR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYgKFNW
R0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1ZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0Fu
aW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVzWzBd
LnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkgPT0g
bV90eXBlKTsKLSAgICAgICAgYXV0byogcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRv
QWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdl
dCgpKTsKLSAgICAgICAgcHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwor
ICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5n
ZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVk
KCk7CiAKLSAgICAgICAgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRl
ZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVl
ID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0aW9u
PEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFu
aW1hdGVkVHlwZVZhbHVlKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUgPSBh
bmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVl
PiBhbmltYXRlZFZhbHVlID0gdHlwZS52YWx1ZXNbMF07CisgICAgICAgIHN0YXRpY19jYXN0PHR5
cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSY+KCphbmltYXRlZFZhbHVlKSA9IHN0YXRp
Y19jYXN0PHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSY+KCpiYXNlVmFsdWUpOwor
ICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwg
YW5pbWF0ZWRUeXBlcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQW5pbVZhbFR5cGU+CkBAIC0xMTAsMzQgKzExMSwzOCBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICAvLyBIZWxwZXJzIGZvciBhbmltYXRvcnMgdGhhdCBvcGVyYXRlIG9uIHBhaXIgdHlwZXMs
IGVnLiBhIHBhaXIgb2YgU1ZHQW5pbWF0ZWRJbnRlZ2Vycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1l
IEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+PiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZXMoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7
Ci0gICAgICAgIGNvbnN0IHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUmIGZpcnN0
VHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5p
bWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOwot
ICAgICAgICBjb25zdCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBlJiBzZWNvbmRU
eXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUyPihhbmlt
YXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Cisg
ICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMSogZmlyc3RBbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0
ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGNvbnN0IEFuaW1WYWxUeXBlMiogc2Vjb25kQW5p
bWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUy
PihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8g
Y29weSA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6
Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+PihmaXJzdFR5
cGUsIHNlY29uZFR5cGUpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsICZjb3B5LT5maXJzdCk7Ci0gICAg
ICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5p
bWF0ZWRUeXBlcywgMSwgJmNvcHktPnNlY29uZCk7Ci0gICAgICAgIHJldHVybiBjb3B5OworICAg
ICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVh
dGUoKmZpcnN0QW5pbWF0ZWRUeXBlLT5jdXJyZW50QmFzZVZhbHVlKCkpOworICAgICAgICBSZWZQ
dHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpzZWNv
bmRBbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
Zmlyc3RBbmltYXRlZFZhbHVlKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+
KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZh
bHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmly
c3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlw
ZTI+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlLCBzdGQ6
OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZh
bFR5cGUyOjpDb250ZW50VHlwZT4mIChTVkdBbmltYXRlZFR5cGU6OipnZXR0ZXIpKCkpCisgICAg
dm9pZCByZXNldEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllcy5zaXplKCkgPT0gMik7CiAgICAg
ICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgICAgICBhdXRvKiBmaXJzdFBy
b3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihh
bmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwotICAgICAgICBhdXRvKiBzZWNv
bmRQcm9wZXJ0eSA9ICBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlw
ZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7Ci0gICAgICAgIGZpcnN0
UHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwotICAgICAgICBzZWNvbmRQ
cm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgc3RkOjpw
YWlyPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxU
eXBlMjo6Q29udGVudFR5cGU+JiBhbmltYXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7
Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZhbHVlLmZpcnN0ID0gZmlyc3RQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOwotICAgICAgICBhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQgPSBzZWNvbmRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotCi0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5p
bVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwgJmFuaW1h
dGVkVHlwZVZhbHVlLmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+
KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmYW5pbWF0ZWRUeXBlVmFs
dWUuc2Vjb25kKTsKKyAgICAgICAgQW5pbVZhbFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKKyAgICAgICAgQW5pbVZhbFR5cGUyKiBzZWNvbmRB
bmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlw
ZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sxXS5nZXQoKSk7CisgICAgICAgIGZpcnN0
QW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKyAgICAgICAgc2Vj
b25kQW5pbWF0ZWRUeXBlLT5zeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKKworICAgICAg
ICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QmFzZVZhbHVlID0gZmlyc3RBbmltYXRlZFR5cGUtPmN1
cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBmaXJzdEFuaW1hdGVk
VmFsdWUgPSB0eXBlLnZhbHVlc1swXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5p
bVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEFuaW1hdGVkVmFsdWUpID0gc3RhdGljX2Nh
c3Q8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSY+KCpmaXJzdEJhc2VWYWx1ZSk7
CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlv
biwgYW5pbWF0ZWRUeXBlcywgMCwgZmlyc3RBbmltYXRlZFZhbHVlKTsKKworICAgICAgICBSZWZQ
dHI8U1ZHVmFsdWU+IHNlY29uZEJhc2VWYWx1ZSA9IHNlY29uZEFuaW1hdGVkVHlwZS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IHNlY29uZEFuaW1hdGVkVmFs
dWUgPSB0eXBlLnZhbHVlc1sxXTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8dHlwZW5hbWUgQW5pbVZh
bFR5cGUyOjpDb250ZW50VHlwZSY+KCpzZWNvbmRBbmltYXRlZFZhbHVlKSA9IHN0YXRpY19jYXN0
PHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmPigqc2Vjb25kQmFzZVZhbHVlKTsK
KyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9u
LCBhbmltYXRlZFR5cGVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAg
LTE5MCwzMyArMTk1LDMzIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEFuaW1WYWxUeXBlPgotICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24g
YWN0aW9uLCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZSogdHlwZSA9IDApCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBh
Y3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cywgdW5zaWduZWQgd2hpY2hQcm9wZXJ0eSwgUmVmUHRyPFNWR1ZhbHVlPiBhbmltYXRlZFZhbHVl
ID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVu
dDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVu
ZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFu
Y2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRUeXBlc1swXS5lbGVtZW50LCB0cnVlKTsKIAogICAg
ICAgICBmb3IgKGF1dG8mIGFuaW1hdGVkVHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKICAgICAgICAg
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdoaWNoUHJvcGVydHkgPCBhbmlt
YXRlZFR5cGUucHJvcGVydGllcy5zaXplKCkpOwotICAgICAgICAgICAgQW5pbVZhbFR5cGUqIHBy
b3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFu
aW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVydHldLmdldCgpKTsKKyAgICAgICAgICAg
IEFuaW1WYWxUeXBlKiBhbmltYXRlZFByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0Fj
dHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZS5wcm9wZXJ0aWVzW3doaWNoUHJvcGVy
dHldLmdldCgpKTsKIAogICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgICAg
IGNhc2UgU3RhcnRBbmltYXRpb25BY3Rpb246Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHR5cGUp
OwotICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCi0gICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25TdGFydGVkKHR5cGUpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFuaW1h
dGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVk
UHJvcGVydHktPmFuaW1hdGlvblN0YXJ0ZWQoYW5pbWF0ZWRWYWx1ZSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN0b3BBbmltYXRpb25BY3Rpb246Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKCF0eXBlKTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHktPmlz
QW5pbWF0aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltYXRpb25FbmRl
ZCgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgaWYgKGFuaW1hdGVkUHJvcGVydHktPmlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICAg
ICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1hdGlvbkVuZGVkKCk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFuaW1WYWxXaWxsQ2hhbmdlQWN0aW9uOgotICAg
ICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHktPmFu
aW1WYWxXaWxsQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmltYXRlZFZhbHVl
KTsKKyAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsV2lsbENoYW5nZSgp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsRGlkQ2hh
bmdlQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAg
ICAgcHJvcGVydHktPmFuaW1WYWxEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
IWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAgIGFuaW1hdGVkUHJvcGVydHktPmFuaW1W
YWxEaWRDaGFuZ2UoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7
CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBB
bmltYXRpb25Nb2RlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDcgKzEzNyw3IEBAIENvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb24gU1ZHQ29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVk
ZSgpOwogICAgIGZ1bmMuZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0g
b2Zmc2V0KCk7Ci0gICAgZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVu
Yy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCkucHJvcGVydGllcygpOwogICAgIHJldHVybiBm
dW5jOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVE
X1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDog
U1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgp
Ci0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpjdXJzb3JUYWcpKTsKICAg
ICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0N1cnNvckVsZW1lbnQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDgsMTAgKzQ4LDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhp
Y3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9jeChMZW5ndGhNb2RlV2lkdGgp
Ci0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3J4KExlbmd0aE1vZGVXaWR0
aCkKLSAgICAsIG1fcnkoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1fY3goU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZUhlaWdodCkpCisgICAgLCBtX3J4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisg
ICAgLCBtX3J5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKFNWR05hbWVzOjplbGxpcHNlVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRl
ZFByb3BlcnRpZXNGb3JTVkdFbGxpcHNlRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckUKICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgICAg
ICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFR5cGUodHlwZSgpKTsKICAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCi0gICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0
VmFsdWVzKHZhbHVlcygpKTsKKyAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRWYWx1ZXMo
dmFsdWVzKCkucHJvcGVydGllcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiBmYWxzZTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBT
VkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAgICBmaWx0ZXJW
YWx1ZXMgPSB2YWx1ZXMoKS5wcm9wZXJ0aWVzKCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBm
aWx0ZXJWYWx1ZXMuc2l6ZSgpOwogCiAgICAgICAgIGlmICgoZmlsdGVyVHlwZSA9PSBGRUNPTE9S
TUFUUklYX1RZUEVfTUFUUklYICYmIHNpemUgIT0gMjApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4MiwxMiArMjgyLDEyIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IFNWR0ZFQ29udm9sdmVNYXRyaXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFo
YXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OmRpdmlzb3JBdHRyKSkgewogICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGtlcm5lbE1hdHJpeFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1
ZSArPSBrZXJuZWxNYXRyaXguYXQoaSk7CisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0ga2Vy
bmVsTWF0cml4LnByb3BlcnR5QXQoaSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAg
ICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZF
Q29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVy
WVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFy
Z2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVl
LCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgp
OworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50
U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50
UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50
KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2
ZUFscGhhKCksIGtlcm5lbE1hdHJpeC5wcm9wZXJ0aWVzKCkpOwogICAgIGVmZmVjdC0+aW5wdXRF
ZmZlY3RzKCkuYXBwZW5kKGlucHV0MSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZWZmZWN0KTsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDEwIEBAIGlubGluZSBTVkdGaWx0ZXJFbGVtZW50OjpTVkdG
aWx0ZXJFbGVtZW4KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBt
X2ZpbHRlclVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JP
WCkKICAgICAsIG1fcHJpbWl0aXZlVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VT
RVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwg
bV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwg
bV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dp
ZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVp
Z2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8g
U3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJ
ZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChM
ZW5ndGhNb2RlV2lkdGgsICIwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikK
LSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX2hlaWdodChM
ZW5ndGhNb2RlSGVpZ2h0LCAiMTAwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoLCAiMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRo
LCAiMTAwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdo
dCwgIjEwMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNp
ZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3Bl
Y2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MywxMCArNTMsMTAgQEAg
RU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV95KExl
bmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1f
aGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkK
KyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1f
aGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmlt
YXRlZFByb3BlcnRpZXNGb3JTVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwx
MCArNTUsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNW
R0ltYWdlRWxlbWVudDo6U1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3Ro
TW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWln
aHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
V2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAg
ICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWln
aHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiAgICAgLCBtX2ltYWdlTG9hZGVy
KCp0aGlzKQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHSW1hZ2VFbGVt
ZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3
LDcgQEAgcHVibGljOgogICAgICAgICBTVkdfTEVOR1RIVFlQRV9QQyA9IExlbmd0aFR5cGVQQwog
ICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhW
YWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdMZW5ndGgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBA
IC01NywxMSArNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R0xlbmd0aChpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0
aD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7Ci0gICAg
fQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdM
ZW5ndGg+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAg
ICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtMTUzLDcgKzE0OCw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdMZW5ndGhW
YWx1ZSYgdmFsdWUpCisgICAgU1ZHTGVuZ3RoKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KCZhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtMTYyLDExICsxNTcs
NiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhWYWx1
ZT4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdMZW5ndGgo
Y29uc3QgU1ZHTGVuZ3RoVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlz
dC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5n
IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0g
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3Rh
dGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVm
PFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2
YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aExpc3Qo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hl
JiB3cmFwcGVycykKKyAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDog
U1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0VmFsdWVzPihhbmltYXRlZFByb3Bl
cnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVzLmgiCiAK
ICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDYsNyArNDcsNyBAQCB2b2lkIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0
IFN0CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChsZW5ndGguc2V0VmFsdWVBc1N0
cmluZyh2YWx1ZVN0cmluZykuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIGFwcGVuZChsZW5ndGgpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxT
VkdMZW5ndGhWYWx1ZT4obGVuZ3RoKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09y
RGVsaW1pdGVyKHB0ciwgZW5kKTsKICAgICB9CiB9CkBAIC02MCw3ICs2MSw3IEBAIFN0cmluZyBT
VkdMZW5ndGhMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChh
dChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0
KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwyNiArMjIsMzkgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNWR0xlbmd0aDsKIGNsYXNzIFNWR0xlbmd0aExpc3Q7CiAKLWNsYXNzIFNWR0xlbmd0aExp
c3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiB7CitjbGFzcyBT
VkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3Ro
VmFsdWU+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNW
R0xlbmd0aE1vZGUpOwogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhMaXN0VmFsdWVzPiB7
Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVl
cz4geworICAgIHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuICB7IH07IH0KKyAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgeworICAg
ICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5n
LCBsZW5ndGhNb2RlKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR0xl
bmd0aExpc3RWYWx1ZXMgbGlzdDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcsIFNWR0xlbmd0
aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsK
KyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3Ry
aW5nKCk7IH0KKyAgICAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdMZW5ndGhWYWx1ZTsK
ICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdMZW5ndGg7CiAgICAgdXNpbmcgTGlzdFBy
b3BlcnR5VGVhck9mZiA9IFNWR0xlbmd0aExpc3Q7Ci0KLSAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9Ci0gICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiB0eXBlKSB7IHJldHVybiB0eXBl
LnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aFZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNyAr
MTQ3LDEzIEBAIHByaXZhdGU6CiAKIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR0xlbmd0aFZhbHVlPiB7CiAgICAgc3RhdGljIFNWR0xlbmd0aFZhbHVlIGluaXRpYWxWYWx1
ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZH
TGVuZ3RoVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmluZygpOyB9CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTGVuZ3RoVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNW
R0xlbmd0aFZhbHVlIGxlbmd0aDsKKyAgICAgICAgbGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcoc3Ry
aW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRl
KGF0dHJOYW1lKSkuaGFzRXhjZXB0aW9uKCk7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAg
fQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGxlbmd0
aCkgeyByZXR1cm4gbGVuZ3RoLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAogV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDEwICs1MSwxMCBAQCBFTkRf
UkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV94MShMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kxKExl
bmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3gyKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQotICAg
ICwgbV95MihMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV95MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0
KSkKKyAgICAsIG1feDIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpKQor
ICAgICwgbV95MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAvLyBT
cGVjOiBJZiB0aGUgeDIgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMg
YXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpc3RWYWx1ZXMuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCisKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+
Cit2b2lkIFNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6cmVzaXplKHNpemVfdCBuZXdTaXpl
KQoreworICAgIHNpemVfdCBpbmRleCA9IHNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1Zh
bHVlPj46OnJlc2l6ZShuZXdTaXplKTsKKyAgICBmb3IgKDsgaW5kZXggPCBuZXdTaXplOyArK2lu
ZGV4KQorICAgICAgICBhdChpbmRleCkgPSBTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4o
KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK1ZlY3RvcjxSZWZQdHI8
U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5KCkgY29uc3QK
K3sKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gdmFsdWVzOworICAgIGZvciAoY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUgOiAqdGhpcykKKyAgICAgICAgdmFsdWVzLmFwcGVuZChT
VkdWYWx1ZTo6Y3JlYXRlKCp2YWx1ZSkpOworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy8vIFRl
bXBsYXRlIGZ1bmN0aW9uIGV4cGxpY2l0IGluc3RhbnRpYXRpb24uCit0ZW1wbGF0ZSB2b2lkIFNW
R0xpc3RWYWx1ZXM8ZmxvYXQ+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlz
dFZhbHVlczxGbG9hdFBvaW50Pjo6cmVzaXplKHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xp
c3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQg
U1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT46OnJlc2l6ZShzaXplX3QpOworCit0ZW1w
bGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxmbG9hdD46OmRlZXBD
b3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZh
bHVlczxTdHJpbmc+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxT
VkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD46OmRlZXBDb3B5KCkgY29uc3Q7Cit0
ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhW
YWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVl
Pj4gU1ZHTGlzdFZhbHVlczxSZWZQdHI8U1ZHUGF0aFNlZz4+OjpkZWVwQ29weSgpIGNvbnN0Owor
dGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNm
b3JtVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aXN0VmFsdWVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RW
YWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitjbGFzcyBTVkdWYWx1
ZTsKKyAgICAKK3RlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RW
YWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBT
VkdMaXN0VmFsdWVzKCkgPSBkZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdM
aXN0VmFsdWVzJiBvdGhlcikKKyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3Ro
ZXIuZGVlcENvcHkoKSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCByZXNpemUoc2l6ZV90KTsK
KyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gZGVlcENvcHkoKSBjb25zdDsKKworICAgIGNv
bnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHlBdChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCphdChpbmRleCkpOyB9CisgICAgUHJvcGVydHlU
eXBlJiBwcm9wZXJ0eUF0KHNpemVfdCBpbmRleCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVy
dHlUeXBlJj4oKmF0KGluZGV4KSk7IH0KKworICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgZmlyc3RQ
cm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQoMCk7IH0KKyAgICBQcm9wZXJ0eVR5
cGUmIGZpcnN0UHJvcGVydHkoKSB7IHJldHVybiBwcm9wZXJ0eUF0KDApOyB9CisKKyAgICBjb25z
dCBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnR5QXQo
c2l6ZSgpIC0gMSk7IH0KKyAgICBQcm9wZXJ0eVR5cGUmIGxhc3RQcm9wZXJ0eSgpIHsgcmV0dXJu
IHByb3BlcnR5QXQoc2l6ZSgpIC0gMSk7IH0KKworICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHBy
b3BlcnRpZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gcHJv
cGVydGllczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAg
ICAgICAgcHJvcGVydGllcy5hcHBlbmQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKnZhbHVl
KSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzOworICAgIH0KK307CisKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzEsMTAgKzcxLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlu
bGluZSBTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCi0gICAgLCBtX3JlZlgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9yZWZZ
KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX21hcmtlcldpZHRoKExlbmd0aE1vZGVXaWR0aCwg
IjMiKQotICAgICwgbV9tYXJrZXJIZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjMiKSAKKyAgICAs
IG1fcmVmWChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9yZWZZKFNW
R0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV9tYXJrZXJXaWR0aChTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIzIikpCisgICAgLCBtX21hcmtlckhlaWdodChT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMyIpKQogICAgICwgbV9tYXJrZXJVbml0
cyhTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoKQogICAgICwgbV9vcmllbnRUeXBlKFNWR01hcmtl
ck9yaWVudEFuZ2xlKQogewpAQCAtMjM4LDEyICsyMzgsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVt
ZW50OjpzeW5jaHJvbml6ZU9yaWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNT
dHJpbmc+IGF1dG9TdGFydFJldmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5v
dCBhdXRvIG9yIGF1dG8tc3RhcnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hy
b25pemVPcmllbnRBbmdsZSBhbHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQg
YW5nbGUuCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2Vy
T3JpZW50QXV0bykgeworICAgIGlmIChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4o
Km93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsK
ICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBv
cmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFs
dWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAoc3RhdGljX2Nh
c3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KCpvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlKSA9
PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9v
cmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8o
KS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI1OSwx
MSArMjU5LDExIEBAIFNWR01hcmtlck9yaWVudFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsK
ICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBl
cjxVc2VPd25lclR5cGUsIFNWR0FuaW1hdGVkRW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQ
cm9wZXJ0eUluZm8oKSkpIHsKICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsK
LSAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZH
TWFya2VyT3JpZW50TWF4KTsKLSAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNW
R01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAg
ICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBw
ZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4oKndyYXBwZXIt
PmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBt
X29yaWVudFR5cGUudmFsdWU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR01hcmtlck9yaWVu
dFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVlKTsKIH0KIAogUmVmPFNWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+IFNWR01hcmtlckVsZW1l
bnQ6Om9yaWVudFR5cGVBbmltYXRlZCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc1ICsyOSwxMCBAQAogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgi
CiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCisjaW5jbHVkZSAiU1ZHTWFya2VyVHlwZXMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFNWR01hcmtlclVuaXRzVHlwZSB7Ci0g
ICAgU1ZHTWFya2VyVW5pdHNVbmtub3duID0gMCwKLSAgICBTVkdNYXJrZXJVbml0c1VzZXJTcGFj
ZU9uVXNlLAotICAgIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgKLX07Ci0KLWVudW0gU1ZHTWFy
a2VyT3JpZW50VHlwZSB7Ci0gICAgU1ZHTWFya2VyT3JpZW50VW5rbm93biA9IDAsCi0gICAgU1ZH
TWFya2VyT3JpZW50QXV0bywKLSAgICBTVkdNYXJrZXJPcmllbnRBbmdsZSwKLSAgICBTVkdNYXJr
ZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlLAotCi0gICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZv
cmUgaGVyZS4KLSAgICBTVkdNYXJrZXJPcmllbnRNYXgKLX07Ci0KLXRlbXBsYXRlPD4KLXN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+IHsKLSAgICBzdGF0aWMgdW5z
aWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg7IH0KLQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoU1ZHTWFya2VyVW5pdHNUeXBlIHR5
cGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBTVkdNYXJr
ZXJVbml0c1Vua25vd246Ci0gICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICAg
ICAgY2FzZSBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOgotICAgICAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgidXNlclNwYWNlT25Vc2UiKTsKLSAgICAgICAgY2FzZSBTVkdNYXJrZXJV
bml0c1N0cm9rZVdpZHRoOgotICAgICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3Ryb2tl
V2lkdGgiKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgU1ZHTWFya2Vy
VW5pdHNUeXBlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IGlmICh2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01h
cmtlclVuaXRzVXNlclNwYWNlT25Vc2U7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAic3Ryb2tlV2lk
dGgiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGg7Ci0gICAg
ICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1Vua25vd247Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8
PgotaW5saW5lIHVuc2lnbmVkIFNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46
OmhpZ2hlc3RFeHBvc2VkRW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QW5nbGU7
IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50
VHlwZT4gewotICAgIHN0YXRpYyB1bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4g
U1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsgfQotCi0gICAgLy8gdG9TdHJpbmcgaXMg
bm90IG5lZWRlZCwgc3luY2hyb25pemVPcmllbnRUeXBlKCkgaGFuZGxlcyB0aGlzIG9uIGl0cyBv
d24uCi0KLSAgICBzdGF0aWMgU1ZHTWFya2VyT3JpZW50VHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYgdmFsdWUsIFNWR0FuZ2xlVmFsdWUmIGFuZ2xlKQotICAgIHsKLSAgICAgICAgaWYgKHZh
bHVlID09ICJhdXRvIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvOwot
ICAgICAgICBpZiAodmFsdWUgPT0gImF1dG8tc3RhcnQtcmV2ZXJzZSIpCi0gICAgICAgICAgICBy
ZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZTsKLSAgICAgICAgYXV0byBzZXRW
YWx1ZVJlc3VsdCA9IGFuZ2xlLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICBpZiAo
c2V0VmFsdWVSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gU1ZHTWFy
a2VyT3JpZW50VW5rbm93bjsKLSAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOwot
ICAgIH0KLX07Ci0KIGNsYXNzIFNWR01hcmtlckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHRml0VG9WaWV3Qm94IHsKQEAgLTE2NCw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwog
ICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRU
eXBlV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3Jp
ZW50VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9y
aWVudFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0K
LSAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlw
ZSYgdHlwZSkgeyBtX29yaWVudFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3Jp
ZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PFNWR01hcmtlck9yaWVudFR5cGUmPigqbV9vcmllbnRUeXBlLnZhbHVlKTsgfQorICAgIHZvaWQg
c2V0T3JpZW50VHlwZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7
IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFu
aW1hdGVkKCk7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
VHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1Byb3Bl
cnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTVkdNYXJrZXJVbml0
c1R5cGUgeworICAgIFNWR01hcmtlclVuaXRzVW5rbm93biA9IDAsCisgICAgU1ZHTWFya2VyVW5p
dHNVc2VyU3BhY2VPblVzZSwKKyAgICBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoCit9OworCitl
bnVtIFNWR01hcmtlck9yaWVudFR5cGUgeworICAgIFNWR01hcmtlck9yaWVudFVua25vd24gPSAw
LAorICAgIFNWR01hcmtlck9yaWVudEF1dG8sCisgICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCisg
ICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSwKKyAgICAKKyAgICAvLyBBZGQgbmV3
IGVsZW1lbnRzIGJlZm9yZSBoZXJlLgorICAgIFNWR01hcmtlck9yaWVudE1heAorfTsKKyAgICAK
K3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+
IHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01h
cmtlclVuaXRzU3Ryb2tlV2lkdGg7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFNWR01h
cmtlclVuaXRzVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
ICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgorICAgICAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CisgICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZToKKyAg
ICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJTcGFjZU9uVXNlIik7CisgICAgICAg
IGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInN0cm9rZVdpZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9
CisgICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
dmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKKyAg
ICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9uVXNlOworICAgICAgICBp
ZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKKyAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJV
bml0c1N0cm9rZVdpZHRoOworICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNVbmtub3duOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJPcmllbnRUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFsdWUoKSB7
IHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOyB9CisgICAgc3RhdGljIFNW
R01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmds
ZVZhbHVlJiBhbmdsZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCisgICAg
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKKyAgICAgICAgaWYgKHZhbHVlID09
ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVu
dEF1dG9TdGFydFJldmVyc2U7CisgICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5z
ZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKKyAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247Cisg
ICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKKyAgICB9Cit9OworCit0ZW1wbGF0
ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVu
c2lnbmVkPj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdBbmds
ZVZhbHVlIGFuZ2xlOworICAgICAgICBTVkdNYXJrZXJPcmllbnRUeXBlIG9yaWVudFR5cGUgPSBT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6ZnJvbVN0cmluZyhzdHJpbmcs
IGFuZ2xlKTsKKyAgICAgICAgaWYgKG9yaWVudFR5cGUgIT0gU1ZHTWFya2VyT3JpZW50QW5nbGUp
CisgICAgICAgICAgICBhbmdsZSA9IHsgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOworICAgIH0KK307CisKK3Rl
bXBsYXRlPD4KK2lubGluZSB1bnNpZ25lZCBTVkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVu
dFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVu
dEFuZ2xlOyB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsMTAgKzYwLDEwIEBA
IGlubGluZSBTVkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNW
R19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMo
U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExl
bmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAl
IikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdo
dChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUg
aXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3
ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUi
IHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhp
cyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNs
YXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRy
aXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9
CkBAIC0xODAsNyArMTgwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0
ZSh4LCB5KTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkudHJhbnNsYXRlKHgsIHkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOyAgICAgICAgCisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZShzY2FsZUZhY3Rvcik7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNy
ZWF0ZShyZXN1bHQpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKS5zY2FsZU5vblVuaWZvcm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOyAgICAgICAg
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZU5vblVuaWZv
cm0oc2NhbGVGYWN0b3JYLCBzY2FsZUZhY3RvclkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
IAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxMyw3ICsy
MTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xlKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlKGFuZ2xl
KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6
Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMjQsNyArMjI0LDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZUZyb21WZWN0b3IoeCwgeSk7CiAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgCkBAIC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBYKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjQ4LDcgKzI0
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWSgpOyAgICAgICAgCisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWSgpOwogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0
KTsKQEAgLTI1OSw3ICsyNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJy
b3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1go
YW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5za2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjcwLDE0ICsyNzAsMTQgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsK
ICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2
YWx1ZSkKKyAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1ZT4oJmFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJl
ci5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdOdW1iZXIgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQor
ICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVy
KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDEsMTEgKzQxLDYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIoaW5pdGlh
bFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShjb25z
dCBmbG9hdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTnVtYmVyPj4gY3JlYXRlKEV4Y2VwdGlv
bk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5o
YXNFeGNlcHRpb24oKSkKQEAgLTcwLDcgKzY1LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBTVkdOdW1iZXIoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9m
ZjxmbG9hdD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBA
IC03OSwxMSArNzQsNiBAQCBwcml2YXRlOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxm
bG9hdD4oaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdOdW1i
ZXIoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJM
aXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1i
ZXJMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+
IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHTnVtYmVyTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
TnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAg
ICBTVkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1
ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5
LDcgQEAgdm9pZCBTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgIHdoaWxl
IChwdHIgPCBlbmQpIHsKICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgbnVtYmVy
KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKG51bWJlcik7CisgICAgICAg
IGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPGZsb2F0PihudW1iZXIpKTsKICAgICB9CiB9CiAKQEAg
LTUyLDcgKzUyLDcgQEAgU3RyaW5nIFNWR051bWJlckxpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgog
ICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF0KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIocHJvcGVydHlBdChpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjQgKzIwLDMwIEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRz
LmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNWR051bWJlcjsKIGNsYXNzIFNWR051bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxp
c3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJM
aXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoK
ICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5n
KCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdDsgICAKIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+IHsK
K3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOdW1iZXJMaXN0VmFsdWVz
PiB7CiAgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4geyB9OyB9CisgICAgc3RhdGljIFNWR051bWJlckxpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR051bWJlckxpc3RWYWx1ZXMgbGlz
dDsKKyAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOworICAgICAgICByZXR1cm4gbGlzdDsKKyAg
ICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVz
JiBsaXN0KSB7IHJldHVybiBsaXN0LnZhbHVlQXNTdHJpbmcoKTsgfQotCiAgICAgdXNpbmcgTGlz
dEl0ZW1UeXBlID0gZmxvYXQ7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZHTnVtYmVy
OwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdOdW1iZXJMaXN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTksNiArMjE5LDMxIEBAIGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJl
cihjb25zdCBTdHIKICAgICByZXR1cm4gY3VyID09IGVuZDsKIH0KIAorYm9vbCBwYXJzZVBvaW50
KGNvbnN0IFN0cmluZyYgcywgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgaWYgKHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3Rl
cnMgPSBTdHJpbmdWaWV3KHMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpOworICAgIGNvbnN0IFVD
aGFyKiBjdXIgPSB1cGNvbnZlcnRlZENoYXJhY3RlcnM7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9
IGN1ciArIHMubGVuZ3RoKCk7CisKKyAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIs
IGVuZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZsb2F0IHggPSAwOworICAgIGlm
ICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB5KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkpOworCisgICAg
Ly8gRGlzYWxsb3cgYW55dGhpbmcgZXhjZXB0IHNwYWNlcyBhdCB0aGUgZW5kLgorICAgIHJldHVy
biAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKK30KKwogYm9vbCBwYXJzZVJlY3Qo
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBhdXRvIHVwY29u
dmVydGVkQ2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcoc3RyaW5nKS51cGNvbnZlcnRlZENoYXJhY3Rl
cnMoKTsKQEAgLTI2NCw3ICsyODksNyBAQCBib29sIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShTVkdQ
b2ludExpc3RWCiAgICAgICAgIH0KICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwg
ZW5kKTsKIAotICAgICAgICBwb2ludHNMaXN0LmFwcGVuZChGbG9hdFBvaW50KHhQb3MsIHlQb3Mp
KTsKKyAgICAgICAgcG9pbnRzTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50
PihGbG9hdFBvaW50KHhQb3MsIHlQb3MpKSk7CiAgICAgfQogICAgIHJldHVybiBjdXIgPT0gZW5k
ICYmICFkZWxpbVBhcnNlZDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRp
bGl0aWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJz
ZXJVdGlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBib29sIHBhcnNl
TnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3QgU3RyCiBib29sIHBhcnNlQXJjRmxhZyhjb25zdCBM
Q2hhciomIHB0ciwgY29uc3QgTENoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBib29sIHBhcnNlQXJj
RmxhZyhjb25zdCBVQ2hhciomIHB0ciwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCYgZmxhZyk7CiBi
b29sIHBhcnNlUmVjdChjb25zdCBTdHJpbmcmLCBGbG9hdFJlY3QmKTsKK2Jvb2wgcGFyc2VQb2lu
dChjb25zdCBTdHJpbmcmLCBGbG9hdFBvaW50Jik7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPgogYm9vbCBwYXJzZUZsb2F0UG9pbnQoY29uc3QgQ2hhcmFjdGVyVHlwZSomIGN1
cnJlbnQsIGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgRmxvYXRQb2ludCYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw2ICsxOSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHUGF0aFV0aWxpdGll
cy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwzNCArNDgsNDIgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgRGF0YTo6Y29uc3RfaXRlcmF0b3IgRGF0YUl0ZXJhdG9yOwogCiAgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0oKSB7IH0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBEYXRhJiBk
YXRhKSA6IG1fZGF0YShkYXRhKSB7IH0KKyAgICBTVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0
ZVN0cmVhbSYmIG90aGVyKQorICAgICAgICA6IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkp
CisgICAgeworICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5
dGVTdHJlYW0mIG90aGVyKSBjb25zdAorICAgIFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1Bh
dGhCeXRlU3RyZWFtJiBvdGhlcikKKyAgICAgICAgOiBtX2RhdGEob3RoZXIubV9kYXRhKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7CiAgICAgfQogCi0gICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSYgb3BlcmF0b3I9KFNWR1BhdGhCeXRlU3RyZWFtJiYgb3RoZXIp
CisgICAgeworICAgICAgICBtX2RhdGEgPSBXVEZNb3ZlKG90aGVyLm1fZGF0YSk7CisgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICB9CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShj
b25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gISgq
dGhpcyA9PSBvdGhlcik7CisgICAgICAgIG1fZGF0YSA9IG90aGVyLm1fZGF0YTsKKyAgICAgICAg
cmV0dXJuICp0aGlzOwogICAgIH0KIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTVkdQYXRo
Qnl0ZVN0cmVhbSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA9PSBvdGhlci5tX2RhdGE7
IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBj
b25zdCB7IHJldHVybiBtX2RhdGEgIT0gb3RoZXIubV9kYXRhOyB9CisKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+IGNvcHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHUGF0aEJ5dGVTdHJlYW0+KG1fZGF0YSk7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigqdGhpcyk7CiAgICAg
fQogCiAgICAgRGF0YUl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmJlZ2lu
KCk7IH0KICAgICBEYXRhSXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmVuZCgp
OyB9CiAKICAgICB2b2lkIGFwcGVuZCh1bnNpZ25lZCBjaGFyIGJ5dGUpIHsgbV9kYXRhLmFwcGVu
ZChieXRlKTsgfQotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhl
cikKLSAgICB7Ci0gICAgICAgIGZvciAoYXV0byBzdHJlYW0gOiBvdGhlcikKLSAgICAgICAgICAg
IGFwcGVuZChzdHJlYW0pOwotICAgIH0KKyAgICB2b2lkIGFwcGVuZChjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpIHsgbV9kYXRhLmFwcGVuZFZlY3RvcihvdGhlci5tX2RhdGEpOyB9CiAg
ICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiAhbV9kYXRhLnNpemUoKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YS5pc0VtcHR5KCk7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQogCiAgICAgLy8gT25seSBkZWZpbmVkIHRvIGxldCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvciB1c2UgdGhlIHN0YW5kYXJkIGxpc3QgY29kZSBwYXRocyAt
IHRoaXMgbWV0aG9kIGlzIG5ldmVyIGNhbGxlZC4KQEAgLTgyLDUgKzkyLDE2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgRGF0YSBtX2RhdGE7CiB9OworICAgIAordGVtcGxhdGU8Pgorc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPiB7CisgICAgc3RhdGljIFNWR1Bh
dGhCeXRlU3RyZWFtIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1BhdGhCeXRlU3RyZWFtKCk7
IH0KKyAgICBzdGF0aWMgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICB7CisgICAgICAgIFNWR1BhdGhCeXRlU3RyZWFtIGJ5dGVTdHJlYW07Cisg
ICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgIHJldHVybiBieXRlU3RyZWFtOworICAgIH0K
K307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBFTkRfUkVH
SVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1Bh
dGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1f
cGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpCisgICAgLCBtX3BhdGhTZWdMaXN0KFNW
R1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdVbmFsdGVyZWRSb2xlKSkKICAgICAsIG1faXNBbmlt
VmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBh
dGhUYWcpKTsKQEAgLTI1NSw3ICsyNTUsNyBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmIChtX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXpl
ICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBT
VkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZv
KCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAgICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBu
ZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3BhdGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlz
dCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAgICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0g
bmV3TGlzdDsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4o
Km1fcGF0aFNlZ0xpc3QudmFsdWUpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMyNyw4ICszMjcsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQ
cm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAgICAgaWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmlt
YXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBh
dGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQog
ICAgICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0gICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdM
aXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zy
b21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVy
VHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICBpZiAoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Qu
dmFsdWUpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21C
eXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVl
KSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVyVHlwZSwgZFBy
b3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBAIC0zMzks
NyArMzM5LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNWR0VsZQogICAg
IFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQYXRoRWxlbWVudD4oKmNv
bnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnNob3VsZFN5
bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Qu
c3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBv
d25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG93bmVy
VHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8o
KS0+YXR0cmlidXRlTmFtZSwgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqb3du
ZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5Miwx
MCArMzkyLDEwIEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYg
KGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAg
ICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBh
cHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUu
bGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7Cisg
ICAgICAgICAgICBBU1NFUlQoIXN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVzJj4oKm1f
cGF0aFNlZ0xpc3QudmFsdWUpLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRo
Qnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaXN0VmFsdWVz
Jj4oKm1fcGF0aFNlZ0xpc3QudmFsdWUpLmxhc3RQcm9wZXJ0eSgpLmNvcHlSZWYoKSwgbV9wYXRo
Qnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhtX3BhdGhT
ZWdMaXN0LnZhbHVlLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICAg
ICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmPigqbV9wYXRoU2VnTGlzdC52YWx1ZSksIG1f
cGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICBtX2NhY2hlZFBhdGgg
PSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuZGVmaW5l
ZFJvbGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDE1ICsyOCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQg
U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyQ29udGV4dEFuZFJvbGVzKCkKIHsKLSAgICBBU1NFUlQobV92
YWx1ZXMpOwotICAgIGZvciAoYXV0byYgaXRlbSA6ICptX3ZhbHVlcykKKyAgICBmb3IgKGF1dG8m
IGl0ZW0gOiB2YWx1ZXNQcm9wZXJ0eSgpLnByb3BlcnRpZXMoKSkKICAgICAgICAgc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Kj4oaXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xl
KG51bGxwdHIsIFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4g
U1ZHUGF0aFNlZ0xpc3Q6OmNsZWFyKCkKIHsKLSAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgIGlm
IChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGNsZWFyQ29udGV4dEFuZFJvbGVzKCk7CkBA
IC01MCw4ICs0OCw4IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMK
IAogRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFj
ZUl0ZW0oUmVmPFNWR1BhdGhTZWc+JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAg
aWYgKGluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSkgewotICAgICAgICBMaXN0SXRlbVR5cGUgcmVw
bGFjZWRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSkgeworICAgICAgICBMaXN0SXRlbVR5cGUgcmVwbGFjZWRJdGVtID0g
dmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGluZGV4KTsKICAgICAgICAgQVNTRVJUKHJlcGxh
Y2VkSXRlbSk7CiAgICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KHJl
cGxhY2VkSXRlbS5nZXQoKSktPnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRl
ZmluZWRSb2xlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwxMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR1BhdGhTZWdMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdQcm9w
ZXJ0eVRyYWl0czxTVkdQYXRoU2VnTGlzdFZhbHVlcz46Okxpc3RJdGVtVHlwZTsKIAotICAgIHN0
YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9s
ZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgcGF0aFNlZ1JvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxT
VkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNl
Z0xpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgUGF0aFNlZ1VuZGVmaW5lZFJvbGUsIHZhbHVl
cywgd3JhcHBlcnMpKTsKQEAgLTQ1LDExICs0NSw5IEBAIHB1YmxpYzoKIAogICAgIGludCBmaW5k
SXRlbShjb25zdCBMaXN0SXRlbVR5cGUmIGl0ZW0pIGNvbnN0CiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6ZSgp
OworICAgICAgICB1bnNpZ25lZCBzaXplID0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAo
aXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisgICAgICAgICAgICBpZiAoaXRlbSA9PSB2YWx1ZXNQ
cm9wZXJ0eSgpLnByb3BlcnR5QXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAg
ICAgIH0KIApAQCAtNTgsMTAgKzU2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVt
RnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJz
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwgbV92YWx1ZXMtPnNpemUoKSk7CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXRlbUluZGV4IDwg
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRl
bUluZGV4KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAog
ICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwpAQCAtOTMsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xl
LCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2Vn
Um9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+
KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgm
YW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpA
QCAtMTE3LDE0ICsxMTQsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkg
ZmluYWwKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVz
LT5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgTGlz
dE1vZGlmaWNhdGlvblVua25vd24pOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNvbW1pdENo
YW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0TW9kaWZpY2F0
aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNh
dGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5hbAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5
LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9kaWZpY2F0aW9uKTsKKyAgICAgICAgdmFsdWVzUHJv
cGVydHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQo
KSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4
VG9Nb2RpZnkpIGZpbmFsOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aXN0QnVpbGRlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzgg
QEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpTVkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9v
bCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVD
b29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1Jv
bGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRo
U2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAg
ICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2Rl
IG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3Qu
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7
CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwo
eCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlm
IChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1f
cGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9W
ZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQog
CiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwg
dGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2lu
dDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNl
Z1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50
Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Nt
b290aChjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBv
aW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0
ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsK
KyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQy
LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3Qu
YXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnko
KSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNW
R1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBw
b2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUg
bW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgp
LCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAg
IGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4o
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQ
b2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRo
U2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFk
cmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRl
TW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAg
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55
KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
UmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkp
OwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0
IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAg
ICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVw
RmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFu
Z2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmds
ZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0
aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgo
KQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFz
TW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRU
eXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3Bh
dGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xp
c3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAgICBwYXRoU2VnVHlwZSA9IHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9p
dGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdQ
YXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdTZWdtZQogCiBTVkdQYXRoU2VnVHlwZSBTVkdQYXRo
U2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQoU1ZHUGF0aFNlZ1R5cGUpCiB7Ci0gICAgbV9zZWdt
ZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21lbnQgPSBt
X3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9pdGVtQ3VycmVudCk7CiAgICAgU1ZHUGF0aFNlZ1R5
cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9zZWdtZW50LT5w
YXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJuIHBhdGhTZWdU
eXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSwxMCArMTksOSBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIK
ICNpbmNsdWRlICJTVkdQYXRoU2VnLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIK
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDcgKzMyLDcgQEAgY2xhc3MgU1ZHUGF0aFNl
Z0xpc3Q7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsK
IAotY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdQ
YXRoU2VnPj4geworY2xhc3MgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgOiBwdWJsaWMgU1ZHTGlzdFZh
bHVlczxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTVkdQYXRo
U2VnTGlzdFZhbHVlcyhTVkdQYXRoU2VnUm9sZSByb2xlKQogICAgICAgICA6IG1fcm9sZShyb2xl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgYm9vbCBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVh
bUZyb21TVkdQYXRoUwogICAgIEFTU0VSVChwYXJzaW5nTW9kZSA9PSBVbmFsdGVyZWRQYXJzaW5n
KTsKIAogICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzIGFwcGVuZGVkSXRlbUxpc3QoUGF0aFNlZ1Vu
YWx0ZXJlZFJvbGUpOwotICAgIGFwcGVuZGVkSXRlbUxpc3QuYXBwZW5kKFdURk1vdmUocGF0aFNl
ZykpOworICAgIGFwcGVuZGVkSXRlbUxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihXVEZNb3ZlKHBhdGhTZWcpKSk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVh
bSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAgU1ZHUGF0aFNlZ0xpc3RTb3VyY2Ugc291cmNlKGFw
cGVuZGVkSXRlbUxpc3QpOwpAQCAtMjA2LDE1ICsyMDYsMTQgQEAgYm9vbCBidWlsZEFuaW1hdGVk
U1ZHUGF0aEJ5dGVTdHJlYW0oY29ucwogCiBib29sIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oU1ZH
UGF0aEJ5dGVTdHJlYW0mIHN0cmVhbVRvQXBwZW5kVG8sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBieVN0cmVhbSwgdW5zaWduZWQgcmVwZWF0Q291bnQpCiB7Ci0gICAgLy8gV2h5IHJldHVybiB3
aGVuIHN0cmVhbVRvQXBwZW5kVG8gaXMgZW1wdHk/IERvbid0IHdlIHN0aWxsIG5lZWQgdG8gYXBw
ZW5kPworICAgIC8vIFRoZSBieVN0cmVhbSB3aWxsIGJlIGJsZW5kZWQgd2l0aCBzdHJlYW1Ub0Fw
cGVuZFRvLiBTbyBzdHJlYW1Ub0FwcGVuZFRvIGhhcyB0byBoYXZlIGVsZW1lbnRzLgogICAgIGlm
IChzdHJlYW1Ub0FwcGVuZFRvLmlzRW1wdHkoKSB8fCBieVN0cmVhbS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gSXMgaXQgT0sgdG8gbWFrZSB0aGUgU1ZHUGF0aEJ5
dGVTdHJlYW1CdWlsZGVyIGZyb20gYSBzdHJlYW0sIGFuZCB0aGVuIGNsZWFyIHRoYXQgc3RyZWFt
PworICAgIC8vIGJ1aWxkZXIgaXMgdGhlIGRlc3RpbmF0aW9uIG9mIGJsZW5kaW5nIGZyb21Tb3Vy
Y2UgYW5kIGJ5U291cmNlLiBUaGUgc3RyZWFtIG9mIGJ1aWxkZXIKKyAgICAvLyAoaS5lLiBzdHJl
YW1Ub0FwcGVuZFRvKSBoYXMgdG8gYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyBhZGRBbmltYXRl
ZFBhdGguCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyIGJ1aWxkZXIoc3RyZWFtVG9BcHBl
bmRUbyk7Ci0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSBmcm9tU3RyZWFtQ29weSA9IHN0cmVhbVRv
QXBwZW5kVG87Ci0gICAgc3RyZWFtVG9BcHBlbmRUby5jbGVhcigpOworICAgIFNWR1BhdGhCeXRl
U3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gV1RGTW92ZShzdHJlYW1Ub0FwcGVuZFRvKTsKIAogICAg
IFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGZyb21Tb3VyY2UoZnJvbVN0cmVhbUNvcHkpOwogICAg
IFNWR1BhdGhCeXRlU3RyZWFtU291cmNlIGJ5U291cmNlKGJ5U3RyZWFtKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNWR1BvaW50IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBv
aW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9h
dFBvaW50JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUG9pbnQoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBA
IC00MywxMSArNDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1BvaW50KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+
IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50KiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1BvaW50Pj4g
Y3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYg
KGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTk5LDEyICs5NCwxMiBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVl
KQorICAgIFNWR1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJv
bGUsIHZhbHVlKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5
VGVhck9mZjxGbG9hdFBvaW50PihudWxscHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpA
QCAtMTEzLDExICsxMDgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPEZsb2F0UG9pbnQ+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQotCi0gICAgZXhwbGlj
aXQgU1ZHUG9pbnQoY29uc3QgRmxvYXRQb2ludCogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2ludExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMgKzM3LDEzIEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0g
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3Rh
dGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxT
VkdQb2ludExpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
cywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUG9pbnRMaXN0KEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKKyAgICBTVkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIFN0cmluZyBTVkdQb2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcKICAgICAg
ICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6
IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFzIHRvIHNlcGVyYXRlPwogCi0gICAgICAgIGNvbnN0IGF1
dG8mIHBvaW50ID0gYXQoaSk7CisgICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gcHJvcGVydHlB
dChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueCgpKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQu
eSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjEsMjIgKzIxLDI4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAi
U1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUG9pbnQ7CiBjbGFzcyBTVkdQb2ludExpc3Q7CiAKLWNs
YXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4g
eworY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8
RmxvYXRQb2ludD4gewogcHVibGljOgogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RW
YWx1ZXM+IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExp
c3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQotCisgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFs
dWVzIGxpc3Q7CisgICAgICAgIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOwor
ICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxv
YXRQb2ludDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2lu
ZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHUG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBA
IHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1
dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVs
ZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkp
CiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3
cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBt
X3BvaW50cy52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1BvaW50TGlz
dFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSkgPSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6
c3luY2hyb25pemVQb2ludHMoUwogICAgIFNWR1BvbHlFbGVtZW50JiBvd25lclR5cGUgPSBkb3du
Y2FzdDxTVkdQb2x5RWxlbWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlw
ZS5tX3BvaW50cy5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVy
VHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUluZm8o
KS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmco
KSk7CisgICAgb3duZXJUeXBlLm1fcG9pbnRzLnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50
c1Byb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBzdGF0aWNfY2FzdDxTVkdQb2ludExpc3RW
YWx1ZXMmPigqb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlKS52YWx1ZUFzU3RyaW5nKCkpOwogfQog
CiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUG9seUVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRl
UG9pbnRzV3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5RWxlbWVudC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBw
dWJsaWM6CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gcG9pbnRzKCk7CiAgICAgUmVmPFNWR1BvaW50
TGlzdD4gYW5pbWF0ZWRQb2ludHMoKTsKIAotICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRM
aXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludHMudmFsdWU7IH0KKyAgICBTVkdQb2ludExpc3RW
YWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1BvaW50TGlz
dFZhbHVlcyY+KCptX3BvaW50cy52YWx1ZSk7IH0KIAogICAgIHN0YXRpYyBjb25zdCBTVkdQcm9w
ZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5mbygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAg
ICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhpbml0aWFsVmFsdWUpKTsKLSAg
ICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFs
dWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAt
OTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xMDAs
MTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAg
IGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDExIEBAIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZTo6U1ZHUHJlc2VydmUKIHsKIH0KIAorU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcGFy
c2Uoc3RyaW5nKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlOjpzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCBhbGlnbikKIHsKICAgICBpZiAoYWxpZ24g
PT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiB8fCBhbGlnbiA+IFNWR19QUkVTRVJW
RUFTUEVDVFJBVElPX1hNQVhZTUFYKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0
cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQp
OwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpA
QCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKICAgICBzdGF0aWMgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZh
bHVlQXNTdHJpbmcoKTsgfQogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NSwxMiArNTUsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5s
aW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNW
R0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3RoTW9k
ZVdpZHRoLCAiNTAlIikKLSAgICAsIG1fY3koTGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpCi0gICAg
LCBtX3IoTGVuZ3RoTW9kZU90aGVyLCAiNTAlIikKLSAgICAsIG1fZngoTGVuZ3RoTW9kZVdpZHRo
KQotICAgICwgbV9meShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9mcihMZW5ndGhNb2RlT3Ro
ZXIsICIwJSIpCisgICAgLCBtX2N4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjUw
JSIpKQorICAgICwgbV9jeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikp
CisgICAgLCBtX3IoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiNTAlIikpCisgICAg
LCBtX2Z4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2Z5KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV9mcihTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlT3RoZXIsICIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSBjeC9jeS9yL2Zy
IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUg
b2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6
OnJhZGlhbEdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwLDEzICsyMCwxMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRl
YXJPZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVy
dHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdSZWN0IDogcHVi
bGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVm
PFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtMzYsMTEgKzM2LDYgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCogaW5pdGlhbFZh
bHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChpbml0aWFs
VmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPFNWR1JlY3Q+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUp
CiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtMTEz
LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
RmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTEyMiwxMSArMTE3LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0Pihpbml0
aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1JlY3QoY29uc3QgRmxv
YXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0
UmVjdD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUg
IlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPD4KLXN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgRmxvYXRSZWN0IGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRS
ZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueSgpKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS53
aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMSArNzEs
MTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1NWR0Vs
ZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0
KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQot
ICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdM
ZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkpCisgICAgLCBtX2hlaWdo
dChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkp
CiAgICAgLCBtX3RpbWVDb250YWluZXIoU01JTFRpbWVDb250YWluZXI6OmNyZWF0ZSgqdGhpcykp
CisgICAgLCBtX2N1cnJlbnRUcmFuc2xhdGUoU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFBvaW50Pigp
KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcpKTsKICAgICByZWdp
c3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1NWR0VsZW1lbnQoKTsKQEAgLTE5Nyw5ICsxOTgs
OSBAQCBSZWY8U1ZHUG9pbnQ+IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuCiAKIHZvaWQgU1ZH
U1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZShjb25zdCBGbG9hdFBvaW50JiB0cmFuc2xh
dGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRlID09IHRyYW5zbGF0aW9uKQorICAg
IGlmIChzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0ZSkgPT0gdHJh
bnNsYXRpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRUcmFuc2xhdGUgPSB0cmFu
c2xhdGlvbjsKKyAgICBzdGF0aWNfY2FzdDxGbG9hdFBvaW50Jj4oKm1fY3VycmVudFRyYW5zbGF0
ZSkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDcg
KzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUN1cnJlbnRWaWV3IHsgZmFsc2UgfTsK
ICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlm
eSB9OwogICAgIFJlZjxTTUlMVGltZUNvbnRhaW5lcj4gbV90aW1lQ29udGFpbmVyOwotICAgIEZs
b2F0UG9pbnQgbV9jdXJyZW50VHJhbnNsYXRlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9jdXJy
ZW50VHJhbnNsYXRlOwogICAgIFJlZlB0cjxTVkdWaWV3U3BlYz4gbV92aWV3U3BlYzsKICAgICBT
dHJpbmcgbV9jdXJyZW50Vmlld0ZyYWdtZW50SWRlbnRpZmllcjsKIH07CkBAIC0xNzUsNyArMTc1
LDcgQEAgaW5saW5lIGJvb2wgU1ZHU1ZHRWxlbWVudDo6dXNlQ3VycmVudFZpZQogCiBpbmxpbmUg
RmxvYXRQb2ludCBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUoKQogewotICAg
IHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZsb2F0
UG9pbnQmPigqbV9jdXJyZW50VHJhbnNsYXRlKTsKIH0KIAogaW5saW5lIFNWR1pvb21BbmRQYW5U
eXBlIFNWR1NWR0VsZW1lbnQ6Onpvb21BbmRQYW4oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsMTIgQEAgcHVibGlj
OgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdTdHJpbmdMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3Jh
cHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hl
OwogCi0gICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29u
dGV4dEVsZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVm
PFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHU3RyaW5nTGlzdCgmY29udGV4dEVsZW1lbnQsIHZhbHVlcykpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYsIFNWR1Byb3BlcnR5Um9sZSwgU1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJikKKyAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCiAgICAgewogICAgICAgICAv
LyBGSVhNRTogRmluZCBhIHdheSB0byByZW1vdmUgdGhpcy4gSXQncyBvbmx5IG5lZWRlZCB0byBr
ZWVwIFdpbmRvd3MgY29tcGlsaW5nLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdHJpbmdM
aXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIHZhbHVlcykKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVz
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xp
c3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU1ZHU3Ry
aW5nTGlzdFZhbHVlczo6cmVzZXQoY29uc3QgU3QKIAogICAgIC8vIEFkZCBlbXB0eSBzdHJpbmcs
IGlmIGxpc3QgaXMgZW1wdHkuCiAgICAgaWYgKGlzRW1wdHkoKSkKLSAgICAgICAgYXBwZW5kKGVt
cHR5U3RyaW5nKCkpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KGVt
cHR5U3RyaW5nKCkpKTsKIH0KIAogdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25z
dCBTdHJpbmcmIGRhdGEsIFVDaGFyIGRlbGltaXRlcikKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBT
VkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAgICAgcHRyKys7CiAg
ICAgICAgIGlmIChwdHIgPT0gc3RhcnQpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgYXBw
ZW5kKFN0cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8U3RyaW5nPihTdHJpbmcoc3RhcnQsIHB0ciAtIHN0YXJ0KSkpOwogICAgICAgICBz
a2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCwgZGVsaW1pdGVyKTsKICAg
ICB9CiB9CkBAIC03MCw3ICs3MCw3IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHByb3BlcnR5QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDggKzIxLDggQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKICNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3Q7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKIGNsYXNzIFNWR1Byb3BlcnR5VGVhck9mZjsKIAotY2xh
c3MgU1ZHU3RyaW5nTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U3RyaW5nPiB7Citj
bGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8U3Ry
aW5nPiB7CiBwdWJsaWM6CiAgICAgU1ZHU3RyaW5nTGlzdFZhbHVlcyhjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQogICAgICAgICA6IG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVO
YW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSAr
MTA3LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbgogfQogCiBT
VkdUZXN0czo6U1ZHVGVzdHMoKQotICAgIDogbV9yZXF1aXJlZEZlYXR1cmVzKHJlcXVpcmVkRmVh
dHVyZXNBdHRyKQotICAgICwgbV9yZXF1aXJlZEV4dGVuc2lvbnMocmVxdWlyZWRFeHRlbnNpb25z
QXR0cikKLSAgICAsIG1fc3lzdGVtTGFuZ3VhZ2Uoc3lzdGVtTGFuZ3VhZ2VBdHRyKQorICAgIDog
bV9yZXF1aXJlZEZlYXR1cmVzKFNWR1N0cmluZ0xpc3RWYWx1ZXMocmVxdWlyZWRGZWF0dXJlc0F0
dHIpKQorICAgICwgbV9yZXF1aXJlZEV4dGVuc2lvbnMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1
aXJlZEV4dGVuc2lvbnNBdHRyKSkKKyAgICAsIG1fc3lzdGVtTGFuZ3VhZ2UoU1ZHU3RyaW5nTGlz
dFZhbHVlcyhzeXN0ZW1MYW5ndWFnZUF0dHIpKQogewogfQogCkBAIC0xNTQsMTUgKzE1NCwyMCBA
QCBib29sIFNWR1Rlc3RzOjpoYXNFeHRlbnNpb24oY29uc3QgU3RyaW5nCiAKIGJvb2wgU1ZHVGVz
dHM6OmlzVmFsaWQoKSBjb25zdAogewotICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IG1fcmVxdWly
ZWRGZWF0dXJlcy52YWx1ZSkgeworICAgIGF1dG8gZmVhdHVyZXMgPSBzdGF0aWNfY2FzdDxTVkdT
dHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSkucHJvcGVydGllcygp
OworICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IGZlYXR1cmVzKSB7CiAgICAgICAgIGlmIChmZWF0
dXJlLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZXMoKS5jb250YWlucyhmZWF0dXJl
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBsYW5n
dWFnZSA6IG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUpIHsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0g
c3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3N5c3RlbUxhbmd1YWdlLnZhbHVl
KS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IGxhbmd1YWdlcykgewog
ICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gZGVmYXVsdExhbmd1YWdlKCkuc3Vic3RyaW5nKDAsIDIp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGV4dGVu
c2lvbiA6IG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlKSB7CisKKyAgICBhdXRvIGV4dGVuc2lv
bnMgPSBzdGF0aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRFeHRlbnNp
b25zLnZhbHVlKS5wcm9wZXJ0aWVzKCk7CisgICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBleHRl
bnNpb25zKSB7CiAgICAgICAgIGlmICghaGFzRXh0ZW5zaW9uKGV4dGVuc2lvbikpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTcyLDExICsxNzcsMTEgQEAgYm9vbCBTVkdU
ZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB2b2lkIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQogewogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHJlcXVpcmVkRmVhdHVyZXNBdHRyKQotICAg
ICAgICBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBzdGF0
aWNfY2FzdDxTVkdTdHJpbmdMaXN0VmFsdWVzJj4oKm1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZSku
cmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHJlcXVpcmVkRXh0ZW5zaW9u
c0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLnJlc2V0KHZhbHVlKTsK
KyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHU3RyaW5nTGlzdFZhbHVlcyY+KCptX3JlcXVpcmVkRXh0
ZW5zaW9ucy52YWx1ZSkucmVzZXQodmFsdWUpOwogICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHN5
c3RlbUxhbmd1YWdlQXR0cikKLSAgICAgICAgbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZS5yZXNldCh2
YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV9zeXN0
ZW1MYW5ndWFnZS52YWx1ZSkucmVzZXQodmFsdWUpOwogfQogCiBib29sIFNWR1Rlc3RzOjppc0tu
b3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCkBAIC0yMDgs
NyArMjEzLDcgQEAgdm9pZCBTVkdUZXN0czo6c3luY2hyb25pemVBdHRyaWJ1dGUoU1ZHRQogewog
ICAgIGlmICghcHJvcGVydHkuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAg
ICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1
dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG1fcmVxdWlyZWRG
ZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIHN0YXRp
Y19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqcHJvcGVydHkudmFsdWUpLnZhbHVlQXNTdHJp
bmcoKSk7CiB9CiAKIHZvaWQgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyhT
VkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
OCArNjYsOCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3RleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQotICAg
ICwgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKKyAgICAsIG1fdGV4dExl
bmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIpKQorICAgICwgbV9zcGVjaWZpZWRU
ZXh0TGVuZ3RoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCiAgICAgLCBtX2xlbmd0
aEFkanVzdChTVkdMZW5ndGhBZGp1c3RTcGFjaW5nKQogewogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQ
cm9wZXJ0aWVzRm9yU1ZHVGV4dENvbnRlbnRFbGVtZW50KCk7CkBAIC05NSw3ICs5NSw3IEBAIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gU1ZHVGV4dENvbnRlbnRFbGUKIHsKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U1ZHTGVuZ3RoVmFsdWU+IGRlZmF1bHRUZXh0TGVuZ3RoKExlbmd0aE1vZGVP
dGhlcik7CiAgICAgaWYgKG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9PSBkZWZhdWx0VGV4dExlbmd0
aCkKLSAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoTGVu
Z3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOworICAgICAgICBzdGF0aWNf
Y2FzdDxTVkdMZW5ndGhWYWx1ZSY+KCptX3RleHRMZW5ndGgudmFsdWUpLm5ld1ZhbHVlU3BlY2lm
aWVkVW5pdHMoTGVuZ3RoVHlwZU51bWJlciwgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkpOwogCiAg
ICAgbV90ZXh0TGVuZ3RoLnNob3VsZFN5bmNocm9uaXplID0gdHJ1ZTsKICAgICByZXR1cm4gc3Rh
dGljX3JlZmVyZW5jZV9jYXN0PFNWR0FuaW1hdGVkTGVuZ3RoPihsb29rdXBPckNyZWF0ZVRleHRM
ZW5ndGhXcmFwcGVyKHRoaXMpKTsKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIFNWR1RleHRDb250
ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1CiAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID4gMCkK
ICAgICAgICAgICAgIHNldExlbmd0aEFkanVzdEJhc2VWYWx1ZShwcm9wZXJ0eVZhbHVlKTsKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRleHRMZW5ndGhBdHRyKQotICAgICAgICBt
X3RleHRMZW5ndGgudmFsdWUgPSBTVkdMZW5ndGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0aE1vZGVP
dGhlciwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CisgICAgICAg
IHN0YXRpY19jYXN0PFNWR0xlbmd0aFZhbHVlJj4oKm1fdGV4dExlbmd0aC52YWx1ZSkgPSBTVkdM
ZW5ndGhWYWx1ZTo6Y29uc3RydWN0KExlbmd0aE1vZGVPdGhlciwgdmFsdWUsIHBhcnNlRXJyb3Is
IEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocyk7CiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJy
b3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBT
VkdUZXh0Q29udGVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZQogICAgIH0KIAogICAgIGlmIChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fc3BlY2lmaWVkVGV4
dExlbmd0aCA9IG1fdGV4dExlbmd0aC52YWx1ZTsKKyAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVu
Z3RoID0gc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVmFsdWUmPigqbV90ZXh0TGVuZ3RoLnZhbHVlKTsK
IAogICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICBJ
bnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNyArNDYsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUg
U1ZHVGV4dFBhdGhFbGVtZW50OjpTVkdUZXh0UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHVGV4dENvbnRlbnRFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9zdGFydE9mZnNldChMZW5ndGhNb2RlT3Ro
ZXIpCisgICAgLCBtX3N0YXJ0T2Zmc2V0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikp
CiAgICAgLCBtX21ldGhvZChTVkdUZXh0UGF0aE1ldGhvZEFsaWduKQogICAgICwgbV9zcGFjaW5n
KFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RyYW5zZm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm0uaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFu
c2Zvcm1WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVh
dGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5z
Zm9ybT4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybShhbmltYXRlZFByb3BlcnR5
LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQzLDExICs0Myw2IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNm
b3JtVmFsdWUqIGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1RyYW5zZm9ybShpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZShF
eGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFs
VmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0xMzQsNyArMTI5LDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybVZhbHVlJiB2YWx1
ZSkKKyAgICBTVkdUcmFuc2Zvcm0oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oJmFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkBAIC0xNDMsMTEgKzEzOCw2IEBA
IHByaXZhdGU6CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVl
Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1RyYW5zZm9y
bShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgICAgICA6IFNWR1By
b3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1WYWx1ZT4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAg
ICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm1MaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTMxLDIwICszMiwxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9y
bUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3Jt
TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywg
d3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4g
Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUHJv
cGVydHkoKS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG1hdHJpeCk7CiAgICAgfQogCiAg
ICAgRXhjZXB0aW9uT3I8UmVmUHRyPFNWR1RyYW5zZm9ybT4+IGNvbnNvbGlkYXRlKCkKICAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsK
IAogICAgICAgICBhdXRvIHJlc3VsdCA9IGNhbkFsdGVyTGlzdCgpOwpAQCAtNTIsMjMgKzUxLDIz
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsK
IAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgbGlzdCB3YXMgZW1wdHksIHRoZW4gYSB2YWx1ZSBv
ZiBudWxsIGlzIHJldHVybmVkLgotICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAg
ICAgICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAg
ICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0
ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUHJvcGVy
dHkoKS5jb25zb2xpZGF0ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQod3JhcHBlci0+
Y3JlYXRlV2Vha1B0cigpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBt
X3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUod3JhcHBl
cik7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cykKKyAgICBTVkdUcmFuc2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5
LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAg
ICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1Ry
YW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1
bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBwcm9wZXJ0eUF0KGkpLm1h
dHJpeCgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02NSw3ICs2NSw3IEBAIFN0cmluZyBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3QKICAgICAgICAgaWYgKGkgPiAwKQogICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZChh
dChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChwcm9wZXJ0eUF0
KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjEsMTYgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9y
bS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgi
CisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKLQor
Y2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3Jt
TGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0
b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMg
ZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGlj
OgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZH
TWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAg
LTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwog
fTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0LnBhcnNlKHN0cmluZyk7Cisg
ICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8PSAxKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7Cisg
ICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5n
IExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw0ICs5MSw5IEBA
IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU1ZHVHJhbnNmb3IKICAgICByZXR1cm4gIShh
ID09IGIpOwogfQogCit0ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFu
c2Zvcm1WYWx1ZT4geworICAgIHN0YXRpYyBTVkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUo
KSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1Ry
YW5zZm9ybVZhbHVlJiB0cmFuc2Zvcm0pIHsgcmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5n
KCk7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5
Nyw3IEBAIGJvb2wgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAgICAg
aWYgKCFwYXJzZVRyYW5zZm9ybVZhbHVlKHR5cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNm
b3JtKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0
cmFuc2Zvcm0pOworICAgICAgICBsaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5z
Zm9ybVZhbHVlPih0cmFuc2Zvcm0pKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1
cnJUcmFuc2Zvcm0sIGVuZCk7CiAgICAgICAgIGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpj
dXJyVHJhbnNmb3JtID09ICcsJykgewogICAgICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MiwxMCArNjIsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5s
aW5lIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5n
dGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hl
aWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hl
aWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1fc3ZnTG9hZEV2
ZW50VGltZXIoKnRoaXMsICZTVkdFbGVtZW50OjpzdmdMb2FkRXZlbnRUaW1lckZpcmVkKQogewog
ICAgIEFTU0VSVChoYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFs
dWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNv
bG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgor
I2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFsdWVz
LmgiCisjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdNYXRyaXhWYWx1
ZS5oIgorI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQYXRo
Qnl0ZVN0cmVhbS5oIgorI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdT
dHJpbmdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgor
I2luY2x1ZGUgIlNWR1RyYW5zZm9ybVZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJpYW50
PAorICAgIFNWR0FuZ2xlVmFsdWUsCisgICAgYm9vbCwKKyAgICBDb2xvciwKKyAgICB1bnNpZ25l
ZCwKKyAgICBpbnQsCisgICAgU1ZHTGVuZ3RoVmFsdWUsCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVl
cywKKyAgICBTVkdNYXRyaXhWYWx1ZSwKKyAgICBmbG9hdCwKKyAgICBTVkdOdW1iZXJMaXN0VmFs
dWVzLAorICAgIFNWR1BhdGhCeXRlU3RyZWFtLAorICAgIFJlZlB0cjxTVkdQYXRoU2VnPiwKKyAg
ICBTVkdQYXRoU2VnTGlzdFZhbHVlcywKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUs
CisgICAgRmxvYXRQb2ludCwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgRmxvYXRSZWN0
LAorICAgIFN0cmluZywKKyAgICBTVkdTdHJpbmdMaXN0VmFsdWVzLAorICAgIFNWR1RyYW5zZm9y
bVZhbHVlLAorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKKz47CisKK3RlbXBsYXRlIDx0eXBl
bmFtZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdUcmFpdEhhc1RvU3RyaW5nIHsKKyAgICB0eXBl
ZGVmIGNoYXIgb25lOworICAgIHR5cGVkZWYgbG9uZyB0d287CisKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gc3RhdGljIG9uZSB0ZXN0KGRlY2x0eXBlKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6
dG9TdHJpbmcpKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3byB0ZXN0KC4u
Lik7CisKK3B1YmxpYzoKKyAgICBlbnVtIHsgVmFsdWUgPSBzaXplb2YodGVzdDxQcm9wZXJ0eVR5
cGU+KG51bGxwdHIpKSA9PSBzaXplb2YoY2hhcikgfTsKK307CisgICAgCitzdHJ1Y3QgdG9TdHJp
bmdWaXNpdG9yIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5h
YmxlX2lmX3Q8U1ZHVHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0eVR5cGU+OjpWYWx1ZT4qID0gbnVs
bHB0cj4KKyAgICBTdHJpbmcgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRv
U3RyaW5nKHZhbHVlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5
cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6
VmFsdWU+KiA9IG51bGxwdHI+CisgICAgU3RyaW5nIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlU
eXBlJikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4geyB9OworICAgIH0KK307CisgICAgCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBl
PgorY2xhc3MgU1ZHVHJhaXRIYXNQYXJzZSB7CisgICAgdHlwZWRlZiBjaGFyIG9uZTsKKyAgICB0
eXBlZGVmIGxvbmcgdHdvOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBvbmUg
dGVzdChkZWNsdHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnBhcnNlKSk7CisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyB0d28gdGVzdCguLi4pOworCitwdWJsaWM6CisgICAgZW51
bSB7IFZhbHVlID0gc2l6ZW9mKHRlc3Q8UHJvcGVydHlUeXBlPihudWxscHRyKSkgPT0gc2l6ZW9m
KGNoYXIpIH07Cit9OworCitzdHJ1Y3QgcGFyc2VWaXNpdG9yIHsKKyAgICBwYXJzZVZpc2l0b3Io
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBTVkdW
YWx1ZVZhcmlhbnQmIHZhcmlhbnQpCisgICAgICAgIDogbV9hdHRyTmFtZShhdHRyTmFtZSkKKyAg
ICAgICAgLCBtX3N0cmluZyhzdHJpbmcpCisgICAgICAgICwgbV92YXJpYW50KHZhcmlhbnQpCisg
ICAgeworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0
ZDo6ZW5hYmxlX2lmX3Q8U1ZHVHJhaXRIYXNQYXJzZTxQcm9wZXJ0eVR5cGU+OjpWYWx1ZT4qID0g
bnVsbHB0cj4KKyAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8UHJvcGVydHlUeXBlPiByZXN1bHQgPSBTVkdQcm9wZXJ0
eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpwYXJzZShtX2F0dHJOYW1lLCBtX3N0cmluZyk7CisgICAg
ICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX3Zh
cmlhbnQuZW1wbGFjZTxQcm9wZXJ0eVR5cGU+KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzUGFyc2U8UHJvcGVy
dHlUeXBlPjo6VmFsdWU+KiA9IG51bGxwdHI+CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFBy
b3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIG1fYXR0
ck5hbWU7CisgICAgY29uc3QgU3RyaW5nJiBtX3N0cmluZzsKKyAgICBTVkdWYWx1ZVZhcmlhbnQm
IG1fdmFyaWFudDsKK307CisgICAgCitjbGFzcyBTVkdWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFNWR1ZhbHVlPiwgcHVibGljIFNWR1ZhbHVlVmFyaWFudCB7CitwdWJsaWM6CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlPFByb3BlcnR5VHlwZT4oU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOworICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
ZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNW
R1ZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dW5zaWduZWQmPihwcm9wZXJ0eSkpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJv
cGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6
dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFJlZjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0
IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdWYWx1ZShwcm9wZXJ0eSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVmPFNW
R1ZhbHVlPiBjcmVhdGUoY29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUodmFsdWUpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgYm9vbCBpcygpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGU+KCp0aGlzKSB8
fCAoc3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlICYmIFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFBy
b3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6
dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgY29uc3QgUHJvcGVydHlUeXBlJigpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25l
ZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUHJvcGVy
dHlUeXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxh
dGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFBy
b3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIG9wZXJhdG9yIGNvbnN0IFByb3Bl
cnR5VHlwZSYoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4o
KSk7CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0
ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBvcGVyYXRv
ciBQcm9wZXJ0eVR5cGUmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgb3BlcmF0b3IgUHJv
cGVydHlUeXBlJigpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsK
KyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKwor
ICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2
aXNpdCh0b1N0cmluZ1Zpc2l0b3IoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50
Jj4oKnRoaXMpKTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHJldHVybiBX
VEY6OnZpc2l0KHBhcnNlVmlzaXRvcihhdHRyTmFtZSwgc3RyaW5nLCBzdGF0aWNfY2FzdDxTVkdW
YWx1ZVZhcmlhbnQmPigqdGhpcykpLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQm
PigqdGhpcykpOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CisgICAgZXhwbGljaXQgU1ZHVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1
ZSkKKyAgICAgICAgOiBTVkdWYWx1ZVZhcmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NF
UlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICB9CisgICAgCisgICAgU1ZHVmFsdWUoY29uc3Qg
U1ZHVmFsdWUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFyaWFudChzdGF0aWNfY2FzdDxj
b25zdCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaW5k
ZXgoKSA9PSB2YWx1ZS5pbmRleCgpKTsKKyAgICB9Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiBpbmxpbmUgU1ZHVmlld0VsZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3pvb21BbmRQYW4oU1ZHWm9vbUFuZFBhbk1hZ25pZnkp
Ci0gICAgLCBtX3ZpZXdUYXJnZXQoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQorICAgICwgbV92
aWV3VGFyZ2V0KFNWR1ZhbHVlOjpjcmVhdGUoU1ZHU3RyaW5nTGlzdFZhbHVlcyhTVkdOYW1lczo6
dmlld1RhcmdldEF0dHIpKSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6dmll
d1RhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHVmlld0VsZW1lbnQo
KTsKQEAgLTYwLDcgKzYwLDcgQEAgUmVmPFNWR1N0cmluZ0xpc3Q+IFNWR1ZpZXdFbGVtZW50Ojp2
aWV3VAogdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9
PSBTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCi0gICAgICAgIG1fdmlld1RhcmdldC5yZXNldCh2
YWx1ZSk7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR1N0cmluZ0xpc3RWYWx1ZXMmPigqbV92aWV3
VGFyZ2V0KS5yZXNldCh2YWx1ZSk7CiAKICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJz
ZUF0dHJpYnV0ZSh0aGlzLCBuYW1lLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiAKICAgICBTVkdab29tQW5kUGFuVHlw
ZSBtX3pvb21BbmRQYW47Ci0gICAgU1ZHU3RyaW5nTGlzdFZhbHVlcyBtX3ZpZXdUYXJnZXQ7Cisg
ICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZpZXdUYXJnZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHJldmlzaW9uIDIyODM5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5LDYgKzc5LDkgQEAgY29uc3QgU1ZHUHJvcGVydHlJbmZvKiBTVkdWaWV3U3BlYzo6dHJh
bgogCiBTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQp
CiAgICAgOiBtX2NvbnRleHRFbGVtZW50KCZjb250ZXh0RWxlbWVudCkKKyAgICAsIG1fdHJhbnNm
b3JtKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSkKKyAgICAsIG1f
dmlld0JveChTVkdWYWx1ZTo6Y3JlYXRlPEZsb2F0UmVjdD4oKSkKKyAgICAsIG1fcHJlc2VydmVB
c3BlY3RSYXRpbyhTVkdWYWx1ZTo6Y3JlYXRlPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4o
KSkKIHsKIH0KIApAQCAtMTA4LDE3ICsxMTEsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVmll
d1NwZWM6OnNldFpvb21BbgogCiBTdHJpbmcgU1ZHVmlld1NwZWM6OnRyYW5zZm9ybVN0cmluZygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM+Ojp0b1N0cmluZyhtX3RyYW5zZm9ybSk7CisgICAgcmV0dXJuIG1fdHJhbnNmb3JtLT50
b1N0cmluZygpOwogfQogCiBTdHJpbmcgU1ZHVmlld1NwZWM6OnZpZXdCb3hTdHJpbmcoKSBjb25z
dAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyht
X3ZpZXdCb3gpOworICAgIHJldHVybiBtX3ZpZXdCb3gtPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmlu
ZyBTVkdWaWV3U3BlYzo6cHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OnRv
U3RyaW5nKG1fcHJlc2VydmVBc3BlY3RSYXRpbyk7CisgICAgcmV0dXJuIG1fcHJlc2VydmVBc3Bl
Y3RSYXRpby0+dG9TdHJpbmcoKTsKIH0KIAogU1ZHRWxlbWVudCogU1ZHVmlld1NwZWM6OnZpZXdU
YXJnZXQoKSBjb25zdApAQCAtMTc3LDkgKzE4MCw5IEBAIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5
PiBTVkdWaWV3U3BlYzo6bG8KIHZvaWQgU1ZHVmlld1NwZWM6OnJlc2V0KCkKIHsKICAgICBtX3pv
b21BbmRQYW4gPSBTVkdab29tQW5kUGFuTWFnbmlmeTsKLSAgICBtX3RyYW5zZm9ybS5jbGVhcigp
OwotICAgIG1fdmlld0JveCA9IHsgfTsKLSAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSB7IH07
CisgICAgc3RhdGljX2Nhc3Q8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyY+KCptX3RyYW5zZm9ybSku
Y2xlYXIoKTsKKyAgICBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94KSA9IHsgfTsK
KyAgICBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvKSA9IHsgfTsKICAgICBtX3ZpZXdUYXJnZXRTdHJpbmcgPSBlbXB0eVN0cmlu
ZygpOwogfQogCkBAIC0yNjEsNyArMjY0LDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3
U3BlYyhjb25zdCBTdAogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1
cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgY3VyclZpZXdTcGVjKys7Ci0gICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJz
ZVRyYW5zZm9ybUF0dHJpYnV0ZShtX3RyYW5zZm9ybSwgY3VyclZpZXdTcGVjLCBlbmQsIFNWR1Ry
YW5zZm9ybWFibGU6OkRvTm90Q2xlYXJMaXN0KTsKKyAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFi
bGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKHN0YXRpY19jYXN0PFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMmPigqbV90cmFuc2Zvcm0pLCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJs
ZTo6RG9Ob3RDbGVhckxpc3QpOwogICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQg
fHwgKmN1cnJWaWV3U3BlYyAhPSAnKScpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgY3VyclZpZXdTcGVjKys7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDdXN0
b20gbm9uLWFuaW1hdGVkICd0cmFuc2Zvcm0nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdUcmFu
c2Zvcm1MaXN0PiB0cmFuc2Zvcm0oKTsKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5z
Zm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtOyB9CisgICAgU1ZHVHJh
bnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJj4oKm1fdHJhbnNmb3JtKTsgfQogCiAgICAg
Ly8gQ3VzdG9tIGFuaW1hdGVkICd2aWV3Qm94JyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHQW5p
bWF0ZWRSZWN0PiB2aWV3Qm94QW5pbWF0ZWQoKTsKLSAgICBGbG9hdFJlY3QmIHZpZXdCb3goKSB7
IHJldHVybiBtX3ZpZXdCb3g7IH0KLSAgICB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3Qg
RmxvYXRSZWN0JiB2aWV3Qm94KSB7IG1fdmlld0JveCA9IHZpZXdCb3g7IH0KKyAgICBGbG9hdFJl
Y3QmIHZpZXdCb3goKSB7IHJldHVybiBzdGF0aWNfY2FzdDxGbG9hdFJlY3QmPigqbV92aWV3Qm94
KTsgfQorICAgIHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdC
b3gpIHsgc3RhdGljX2Nhc3Q8RmxvYXRSZWN0Jj4oKm1fdmlld0JveCkgPSB2aWV3Qm94OyB9CiAK
ICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHByb3BlcnR5Lgog
ICAgIFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0
UmF0aW9BbmltYXRlZCgpOwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2Vy
dmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotICAgIHZv
aWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlv
ID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSY+KCptX3ByZXNlcnZlQXNwZWN0UmF0aW8pOyB9CisgICAgdm9pZCBz
ZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyBzdGF0aWNfY2FzdDxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUmPigqbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKSA9IHByZXNlcnZlQXNwZWN0
UmF0aW87IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTVkdWaWV3U3BlYyhTVkdFbGVtZW50
Jik7CkBAIC04NCw5ICs4NCw5IEBAIHByaXZhdGU6CiAKICAgICBTVkdFbGVtZW50KiBtX2NvbnRl
eHRFbGVtZW50OwogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pvb21B
bmRQYW5NYWduaWZ5IH07Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBtX3RyYW5zZm9ybTsK
LSAgICBGbG9hdFJlY3QgbV92aWV3Qm94OwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3RyYW5zZm9y
bTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld0JveDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKICAgICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5nOwog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwyMiAr
NTUsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY8dW5zaWduZWQ+OjpzZXRCYXNlVmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+
PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBFbnVtVHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgYmFz
ZVZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9m
ZjxFbnVtVHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkJj4ocHJvcGVydHkpKSk7Ci0gICAgfQot
Ci0gICAgRW51bVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHVu
c2lnbmVkJiBhbmltYXRlZFZhbHVlID0gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8
dW5zaWduZWQ+OjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOwotICAgICAgICBBU1NFUlQoYW5pbWF0
ZWRWYWx1ZSA8PSBTVkdQcm9wZXJ0eVRyYWl0czxFbnVtVHlwZT46OmhpZ2hlc3RFbnVtVmFsdWUo
KSk7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEVudW1UeXBlJj4oYW5pbWF0ZWRW
YWx1ZSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkRW51bWVyYXRp
b25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB1bnNpZ25lZCYgcHJvcGVydHkpCi0g
ICAgICAgIDogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNvbnRl
eHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkp
CisgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIGJhc2VWYWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBiYXNlVmFsdWUpCiAgICAgewogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFyT2ZmID0g
dHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdFByb3BlcnR5VGVh
ck9mZjsKICAgICB1c2luZyBDb250ZW50VHlwZSA9IFByb3BlcnR5VHlwZTsKIAotICAgIHN0YXRp
YyBSZWY8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0
ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3Bl
cnR5VHlwZSYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAg
ICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVz
KSk7CkBAIC04NSw0NCArODUsNTAgQEAgcHVibGljOgogICAgICAgICBMaXN0UHJvcGVydHk6OmRl
dGFjaExpc3RXcmFwcGVyc0FuZFJlc2l6ZSgmbV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAg
IH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0
cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGlzQW5pbWF0aW5nKCkpOwogICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXMoKTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUo
KSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUo
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICBy
ZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKKyAgICB9CisKKyAgICBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAg
cmV0dXJuIG1fdmFsdWVzOwogICAgIH0KIAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9w
ZXJ0eVR5cGUqIG5ld0FuaW1WYWwsIGJvb2wgc2hvdWxkT3duVmFsdWVzID0gZmFsc2UpCisgICAg
dm9pZCBhbmltYXRpb25TdGFydGVkKFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmlt
VmFsKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUo
KSk7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3VycmVudEJh
c2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFdyYXBwZXJzLmlzRW1wdHkoKSk7CiAKICAgICAgICAgLy8gU3dpdGNoIHRvIG5l
dyBwYXNzZWQgaW4gdmFsdWUgdHlwZSAmIG5ldyB3cmFwcGVycyBsaXN0LiBUaGUgbmV3IHdyYXBw
ZXJzIGxpc3QgbXVzdCBiZSBjcmVhdGVkIGZvciB0aGUgbmV3IHZhbHVlLgotICAgICAgICBpZiAo
IW5ld0FuaW1WYWwtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5m
aWxsKDAsIG5ld0FuaW1WYWwtPnNpemUoKSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IHN0
YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCpuZXdBbmltVmFsKS5zaXplKCkpCisgICAgICAgICAg
ICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKIAogICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFs
dWVzQW5kV3JhcHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxkT3du
VmFsdWVzKTsKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6
ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2Fu
aW1hdGVkV3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXpl
KCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmlt
YXRpb25FbmRlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAg
ICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKmN1cnJlbnRCYXNlVmFsdWUoKSku
c2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1By
b3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkp
OwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9
PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKIAotICAgICAgICBtX2FuaW1hdGVkUHJvcGVy
dHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKCZtX3ZhbHVlcywgJm1fd3JhcHBlcnMsIGZhbHNlKTsK
LSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG1fdmFsdWVzLCAmbV93cmFwcGVycyk7Cisg
ICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgp
ID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NF
UlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNp
emUoKSk7CiAKICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmNsZWFyKCk7CkBAIC0xNDIsMzQg
KzE0OCwzNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEFsc28gZXhpc3Rpbmcgd3JhcHBlcnMgd2hp
Y2ggcG9pbnQgZGlyZWN0bHkgYXQgZWxlbWVudHMgaW4gdGhlIGV4aXN0aW5nIFNWR0xlbmd0aExp
c3RWYWx1ZXMgaGF2ZSB0byBiZSBkZXRhY2hlZCAoc28gYSBjb3B5CiAgICAgICAgIC8vIG9mIHRo
ZW0gaXMgY3JlYXRlZCwgc28gZXhpc3RpbmcgYW5pbVZhbCB2YXJpYWJsZXMgaW4gSlMgYXJlIGtl
cHQtYWxpdmUpLiBJZiB3ZSdkIGRldGFjaCB0aGVtIGxhdGVyIHRoZSB1bmRlcmx5aW5nCiAgICAg
ICAgIC8vIFNWR0xlbmd0aExpc3RWYWx1ZXMgd2FzIGFscmVhZHkgbXV0YXRlZCwgYW5kIG91ciBs
aXN0IGl0ZW0gd3JhcHBlciB0ZWFyIG9mZnMgd291bGQgcG9pbnQgbm93aGVyZS4gQXNzZXJ0aW9u
cyB3b3VsZCBmaXJlLgotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFw
cGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSk7CisgICAgICAgIG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzUHJvcGVydHkoKS5zaXplKCkpOwogCi0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHko
KS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAg
ICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5p
bWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFu
Z2UoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJz
LnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqY3Vy
cmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBz
eW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxE
aWRDaGFuZ2UoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxQcm9wZXJ0eVR5cGUm
PigqY3VycmVudEJhc2VWYWx1ZSgpKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAg
ICAgICBzeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQoKTsKICAgICB9CiAKIHByb3RlY3RlZDoK
LSAgICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAg
ICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCiAgICAgICAgICwgbV92YWx1ZXModmFsdWVzKQogICAg
IHsKLSAgICAgICAgaWYgKCF2YWx1ZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV93cmFwcGVy
cy5maWxsKDAsIHZhbHVlcy5zaXplKCkpOworICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBzdGF0
aWNfY2FzdDxQcm9wZXJ0eVR5cGUmPigqdmFsdWVzKS5zaXplKCkpCisgICAgICAgICAgICBtX3dy
YXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVl
czsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogCiAgICAgTGlzdFdyYXBwZXJDYWNo
ZSBtX3dyYXBwZXJzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV9hbmltYXRlZFdyYXBwZXJzOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRo
U2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAx
Mi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw3ICszMiw3
IEBAIGNsYXNzIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXIKIHB1YmxpYzoKICAg
ICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdM
aXN0VmFsdWVzPjsKIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCB2YWx1ZXMpKTsKQEAgLTc1LDkgKzc2LDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
IW1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0
cmVhbSA9IGJ5dGVTdHJlYW07CiAKLSAgICAgICAgLy8gUGFzcyBzaG91bGRPd25WYWx1ZXM9dHJ1
ZSwgYXMgdGhlIFNWR1BhdGhTZWdMaXN0VmFsdWVzIGxpZmV0aW1lIGlzIHNvbGVseSBtYW5hZ2Vk
IGJ5IGl0cyB0ZWFyIG9mZiBjbGFzcy4KLSAgICAgICAgYXV0byogY29weSA9IG5ldyBTVkdQYXRo
U2VnTGlzdFZhbHVlcygqYmFzZVZhbHVlKTsKLSAgICAgICAgQmFzZTo6YW5pbWF0aW9uU3RhcnRl
ZChjb3B5LCB0cnVlKTsKKyAgICAgICAgYXV0byBjb3B5ID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYmFz
ZVZhbHVlKTsKKyAgICAgICAgQmFzZTo6YW5pbWF0aW9uU3RhcnRlZChjb3B5LnB0cigpKTsKICAg
ICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGlj
OgogICAgICAgICAvLyBJZiB0aGUgYW5pbVZhbCBpcyBvYnNlcnZlZCBmcm9tIEpTLCB3ZSBoYXZl
IHRvIHVwZGF0ZSBpdCBvbiBlYWNoIGFuaW1hdGlvbiBzdGVwLgogICAgICAgICAvLyBUaGlzIGlz
IGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gYW5kIG9ubHkgZG9uZSwgaWYgc29tZW9uZSBhY3R1YWxs
eSBvYnNlcnZlcyB0aGUgYW5pbWF0ZWRQYXRoU2VnTGlzdCgpIHdoaWxlIGFuIGFuaW1hdGlvbiBp
cyBydW5uaW5nLgogICAgICAgICBpZiAocGF0aEVsZW1lbnQtPmlzQW5pbVZhbE9ic2VydmVkKCkp
IHsKLSAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IGN1cnJlbnRBbmltYXRlZFZhbHVl
KCk7CisgICAgICAgICAgICBhdXRvJiBhbmltYXRlZExpc3QgPSBzdGF0aWNfY2FzdDxTVkdQYXRo
U2VnTGlzdFZhbHVlcyY+KCpjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKICAgICAgICAgICAgIGFu
aW1hdGVkTGlzdC5jbGVhcigpOwogICAgICAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVl
c0Zyb21CeXRlU3RyZWFtKCptX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0sICpwYXRoRWxlbWVudCwg
YW5pbWF0ZWRMaXN0LCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgfQpAQCAtMTA2LDcgKzEw
Niw3IEBAIHB1YmxpYzoKICAgICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoQnl0ZVN0
cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbTsgfQogCiBwcml2
YXRlOgotICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZh
bHVlcyYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogQmFzZShjb250ZXh0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykKICAgICAgICAgLCBt
X2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0obnVsbHB0cikKICAgICB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBTVkdWYWx1ZTsKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBT
VkdQcm9wZXJ0eTsKIApAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZH
QW5pbWF0ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0
eXBlbmFtZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBS
ZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQs
IGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAg
ICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBl
KiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZm8pOwogICAgICAgICBTVkdB
bmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRl
bnRpZmllcik7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQu
aXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+
KCpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAotICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9w
ZXJ0eT4gd3JhcHBlciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmli
dXRlTmFtZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAg
UmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVs
ZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2
YWx1ZSk7CiAgICAgICAgIGlmIChpbmZvLT5hbmltYXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVy
dHlJc1JlYWRPbmx5KQogICAgICAgICAgICAgd3JhcHBlci0+c2V0SXNSZWFkT25seSgpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFj
cm9zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDYgKzI2LDcgQEAKICNpbmNsdWRlICJT
VkdBbmltYXRlZFByb3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1h
cC5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUu
aCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKQEAgLTM0LDI1ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmlt
YXRlZFByb3BlcnR5IHsKICAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoKQot
ICAgICAgICA6IHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxW
YWx1ZSgpKQotICAgICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlz
VmFsaWQoZmFsc2UpCisgICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5
cGU+KCkpCiAgICAgewogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9y
UGFyYW1ldGVyMT4KLSAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3Qg
Q29uc3RydWN0b3JQYXJhbWV0ZXIxJiB2YWx1ZTEpCi0gICAgICAgIDogdmFsdWUodmFsdWUxKQot
ICAgICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFs
c2UpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnN0cnVjdG9yUGFy
YW1ldGVyMSwgdHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIyPgotICAgIFNWR1N5bmNocm9u
aXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVl
MSwgY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIyJiB2YWx1ZTIpCi0gICAgICAgIDogdmFsdWUo
dmFsdWUxLCB2YWx1ZTIpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAg
ICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVy
dHkoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6
Y3JlYXRlPFByb3BlcnR5VHlwZT4odmFsdWUpKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDkgKzUw
LDkgQEAgc3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eQogICAgICAgICBv
d25lckVsZW1lbnQtPnNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoYXR0ck5hbWUsIHZhbHVl
KTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUgdmFsdWU7Ci0gICAgYm9vbCBzaG91bGRTeW5j
aHJvbml6ZSA6IDE7Ci0gICAgYm9vbCBpc1ZhbGlkIDogMTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IHZhbHVlOworICAgIGJvb2wgc2hvdWxkU3luY2hyb25pemUgeyBmYWxzZSB9OworICAgIGJvb2wg
aXNWYWxpZCB7IGZhbHNlIH07CiB9OwogCiAvLyBQcm9wZXJ0eSByZWdpc3RyYXRpb24gaGVscGVy
cwpAQCAtMTI0LDE5ICsxMTMsMTkgQEAgcHVibGljOiBcCiAgICAgeyBcCiAgICAgICAgIGlmIChh
dXRvIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFVzZU93bmVy
VHlwZSwgVGVhck9mZlR5cGU+KHRoaXMsIExvd2VyUHJvcGVydHkjI1Byb3BlcnR5SW5mbygpKSkg
eyBcCiAgICAgICAgICAgICBpZiAod3JhcHBlci0+aXNBbmltYXRpbmcoKSkgXAotICAgICAgICAg
ICAgICAgIHJldHVybiB3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpOyBcCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCp3cmFwcGVyLT5jdXJy
ZW50QW5pbWF0ZWRWYWx1ZSgpKTsgXAogICAgICAgICB9IFwKLSAgICAgICAgcmV0dXJuIG1fIyNM
b3dlclByb3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0
eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpOyBcCiAgICAgfSBcCiBcCiAgICAgUHJv
cGVydHlUeXBlJiBMb3dlclByb3BlcnR5IyNCYXNlVmFsdWUoKSBjb25zdCBPdmVycmlkZVNwZWNp
ZmllciBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsg
XAorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclBy
b3BlcnR5LnZhbHVlKTsgXAogICAgIH0gXAogXAotICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5
IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB0eXBlLCBjb25zdCBib29sIHZhbGlkVmFs
dWUgPSB0cnVlKSBPdmVycmlkZVNwZWNpZmllciBcCisgICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVy
dHkjI0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBjb25zdCBib29sIHZhbGlk
VmFsdWUgPSB0cnVlKSBPdmVycmlkZVNwZWNpZmllciBcCiAgICAgeyBcCi0gICAgICAgIG1fIyNM
b3dlclByb3BlcnR5LnZhbHVlID0gdHlwZTsgXAorICAgICAgICBzdGF0aWNfY2FzdDxQcm9wZXJ0
eVR5cGUmPigqbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpID0gdmFsdWU7IFwKICAgICAgICAgbV8j
I0xvd2VyUHJvcGVydHkuaXNWYWxpZCA9IHZhbGlkVmFsdWU7IFwKICAgICB9IFwKIFwKQEAgLTE1
Niw3ICsxNDUsNyBAQCBwcml2YXRlOiBcCiAgICAgeyBcCiAgICAgICAgIGlmICghbV8jI0xvd2Vy
UHJvcGVydHkuc2hvdWxkU3luY2hyb25pemUpIFwKICAgICAgICAgICAgIHJldHVybjsgXAotICAg
ICAgICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6
dG9TdHJpbmcobV8jI0xvd2VyUHJvcGVydHkudmFsdWUpKTsgXAorICAgICAgICBBdG9taWNTdHJp
bmcgdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcoc3RhdGlj
X2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSkpOyBcCiAgICAg
ICAgIG1fIyNMb3dlclByb3BlcnR5LnN5bmNocm9uaXplKHRoaXMsIExvd2VyUHJvcGVydHkjI1By
b3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCB2YWx1ZSk7IFwKICAgICB9IFwKIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNyArMzIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0gdHlw
ZW5hbWUgUHJvcGVydHlUZWFyT2ZmOjpQcm9wZXJ0eVR5cGU7CiAgICAgdXNpbmcgQ29udGVudFR5
cGUgPSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVh
dGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiBwcm9wZXJ0eSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250
ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJv
cGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSkpOwpAQCAtNjAsMjMgKzYwLDI5IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVk
VmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKQogICAg
IHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gbV9hbmlt
YXRlZFByb3BlcnR5LT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gbV9hbmlt
YXRlZFByb3BlcnR5LT52YWx1ZSgpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYg
Y3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJy
ZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNBbmltYXRp
bmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CisgICAg
fQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5OwogICAgIH0KIAotICAgIHZvaWQgYW5p
bWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9pZCBhbmltYXRp
b25TdGFydGVkKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIG5ld0FuaW1WYWwpCiAgICAgewogICAg
ICAgICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7
CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmlt
YXRlZFByb3BlcnR5LT5zZXRWYWx1ZSgqbmV3QW5pbVZhbCk7CisgICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+c2V0VmFsdWUobmV3QW5pbVZhbCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRp
b25FbmRlZCgpCkBAIC0xMDQsMTMgKzExMCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5
VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBT
VkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHByb3BlcnR5KQogICAg
ICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUs
IGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCiAg
ICAgewogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fcHJvcGVydHk7CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJv
cGVydHlUeXBlPj4gbV9iYXNlVmFsOwogICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFBy
b3BlcnR5VHlwZT4+IG1fYW5pbVZhbDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTMyLDQzICszMyw0OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0
IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0
eTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3Byb3BlcnR5
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAg
ICAgewogICAgICAgICBpZiAobV9hbmltYXRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJu
ICptX2FuaW1hdGVkUHJvcGVydHk7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX2FuaW1hdGVkUHJvcGVy
dHkpOworICAgICAgICByZXR1cm4gYmFzZVZhbCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQog
ICAgIHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgICBzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVR5cGUmPigqbV9wcm9wZXJ0eSkgPSBwcm9wZXJ0eTsKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgYm9vbCBpc0FuaW1h
dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5
cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRT
dGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgcHJvcGVydHkpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
ZjxQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFBy
b3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0
dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICB9CisKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChp
c0FuaW1hdGluZygpKTsKLSAgICAgICAgcmV0dXJuICptX2FuaW1hdGVkUHJvcGVydHk7CisgICAg
ICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVy
dHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fcHJv
cGVydHk7CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSog
bmV3QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUmVmUHRyPFNWR1ZhbHVlPiBu
ZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAg
ICAgQVNTRVJUKG5ld0FuaW1WYWwpOwpAQCAtOTksMTYgKzEwNiwxNiBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5
cGUmIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgcHJvcGVydHkpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCiAgICAgICAg
ICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKLSAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHkobnVs
bHB0cikKICAgICB7CisgICAgICAgIEFTU0VSVF9JTVBMSUVTKG1fcHJvcGVydHksIG1fcHJvcGVy
dHktPmlzPFByb3BlcnR5VHlwZT4oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFByb3BlcnR5
VHlwZSYgbV9wcm9wZXJ0eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9wZXJ0eTsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fcHJvcGVydHk7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X2FuaW1hdGVkUHJvcGVydHk7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2Zm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYgZmluYWwgOiBw
dWJsaWMgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFBy
b3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRp
YyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1l
bnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmYoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPihjb250ZXh0RWxl
bWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykKICAgICB7
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3Bl
cnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlz
dFByb3BlcnR5LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCArMjUsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gTGlzdE1vZGlmaWNhdGlvbiB7Ci0gICAg
TGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAotICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQg
PSAxLAotICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKLSAgICBMaXN0TW9kaWZpY2F0
aW9uUmVtb3ZlID0gMywKLSAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAotfTsKLQogdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOwogCkBAIC03NSwxOSArNjcsMTYgQEAgcHVibGljOgogICAgICAgICBkZXRhY2hM
aXN0V3JhcHBlcnNBbmRSZXNpemUobV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoUHJvcGVydHlUeXBlKiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUqIHdyYXBwZXJzLCBib29sIHNob3VsZE93blZhbHVlcykKKyAgICB2b2lkIHNl
dFZhbHVlc0FuZFdyYXBwZXJzKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSogd3JhcHBlcnMpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIG9ubHkgdXNl
ZCBmb3IgYW5pbVZhbCBzdXBwb3J0LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlpbmcgdmFsdWVzICYg
d3JhcHBlcnMKICAgICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQgdmFsdWVzLCBvbmNl
IGFuaW1hdGlvbiBmb3IgYSBsaXN0IHN0YXJ0cy4KICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsK
ICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogICAgICAgICBBU1NFUlQobV9yb2xlID09IEFu
aW1WYWxSb2xlKTsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAgICAgICAgICAgIGRlbGV0
ZSBtX3ZhbHVlczsKICAgICAgICAgbV92YWx1ZXMgPSB2YWx1ZXM7Ci0gICAgICAgIG1fb3duc1Zh
bHVlcyA9IHNob3VsZE93blZhbHVlczsKICAgICAgICAgbV93cmFwcGVycyA9IHdyYXBwZXJzOwot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKICAgICB9CiAKICAgICAvLyBTVkdMaXN0OjpjbGVhcigpCkBAIC05OCw3ICs4Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBt
X3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTEs
NyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFs
dWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTExOSw3ICsx
MDgsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6bnVtYmVyT2ZJdGVtcygpCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1
ZXMtPnNpemUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogICAg
IH0KIAogICAgIC8vIFNWR0xpc3Q6OmluaXRpYWxpemUoKQpAQCAtMTM0LDggKzEyMyw4IEBAIHB1
YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAwKTsK
IAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJv
bSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xl
IGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCi0gICAgICAgIG1fdmFsdWVzLT5jbGVh
cigpOwotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXNQ
cm9wZXJ0eSgpLmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0xNTAs
NyArMTM5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwog
Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAK
QEAgLTE1OSw5ICsxNDgsOSBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogQ2xlYXJzIGFs
bCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJlLWluaXRpYWxpemVz
IHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBieSB0aGUgcGFyYW1l
dGVyLgogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFsdWVzLT5j
bGVhcigpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmNsZWFyKCk7CiAKLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFs
dWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAgICAgIG1fd3JhcHBl
cnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwpAQCAtMTcxLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdMaXN0OjpnZXRJ
dGVtKCkKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5HZXRJdGVtKHVuc2lnbmVkIGluZGV4KQog
ICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlm
IChpbmRleCA+PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
MTg1LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogUmV0dXJucyB0aGUgc3BlY2lmaWVkIGl0
ZW0gZnJvbSB0aGUgbGlzdC4gVGhlIHJldHVybmVkIGl0ZW0gaXMgdGhlIGl0ZW0gaXRzZWxmIGFu
ZCBub3QgYSBjb3B5LgotICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbV92YWx1ZXMtPmF0
KGluZGV4KSB9OworICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgc3RhdGljX2Nhc3Q8TGlz
dEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKSB9OwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPFJlZjxMaXN0SXRlbVRlYXJPZmY+PiBnZXRJdGVtVmFsdWVzQW5kV3JhcHBl
cnMoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZExpc3QsIHVuc2lnbmVkIGlu
ZGV4KQpAQCAtMTk5LDEzICsxODgsMTMgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IFJl
dHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSByZXR1cm5lZCBpdGVt
IGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KICAgICAgICAgLy8gQW55IGNoYW5n
ZXMgbWFkZSB0byB0aGUgaXRlbSBhcmUgaW1tZWRpYXRlbHkgcmVmbGVjdGVkIGluIHRoZSBsaXN0
LgotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3JhcHBlciA9IHN0YXRp
Y19jYXN0PExpc3RJdGVtVGVhck9mZio+KG1fd3JhcHBlcnMtPmF0KGluZGV4KS5nZXQoKSk7CiAg
ICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyB3cmFwcGVy
LCB3aGljaCBpcyBhbGxvd2VkIHRvIGRpcmVjdGx5IG1vZGlmeSB0aGUgaXRlbSBpbiB0aGUgbGlz
dCwgdy9vIGNvcHlpbmcgYW5kIGNhY2hlIHRoZSB3cmFwcGVyIGluIG91ciBtYXAuCiAgICAgICAg
ICAgICAvLyBJdCBpcyBhbHNvIGFzc29jaWF0ZWQgd2l0aCBvdXIgYW5pbWF0ZWQgcHJvcGVydHks
IHNvIGl0IGNhbiBub3RpZnkgdGhlIFNWRyBFbGVtZW50IHdoaWNoIGhvbGRzIHRoZSBTVkdBbmlt
YXRlZCpMaXN0CiAgICAgICAgICAgICAvLyB0aGF0IGl0IGhhcyBiZWVuIG1vZGlmaWVkIChhbmQg
dGh1cyBjYW4gY2FsbCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1l
KSkuCi0gICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0
ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAgICAg
IHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5l
ZFJvbGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKICAgICAgICAgICAgIG1fd3JhcHBl
cnMtPmF0KGluZGV4KSA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgfQogCkBA
IC0yMjEsOCArMjEwLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFw
cGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFs
dWVzLT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAg
ICAgIGlmIChpbmRleCA+IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5k
ZXggPSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJ
dGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3Vz
IGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICBpZiAo
IXByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgJmluZGV4KSkgewpAQCAtMjMy
LDcgKzIyMSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJbnNlcnRzIGEgbmV3IGl0
ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBUaGUgaW5kZXggb2Yg
dGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQogICAgICAgICAvLyBp
bnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBpbmRleCBpcyBlcXVh
bCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUgZnJvbnQgb2YgdGhl
IGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0pOworICAgICAg
ICB2YWx1ZXNQcm9wZXJ0eSgpLmluc2VydChpbmRleCwgU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRl
bVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTI0OCwxMCArMjM3LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAg
ICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1i
ZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRo
ZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAg
ICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNQ
cm9wZXJ0eSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUHJvcGVydHkoKS5z
aXplKCk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3Jh
cHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShp
dGVtKTsKIApAQCAtMjYxLDcgKzI1MCw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJ
bnNlcnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9u
LiBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBi
ZQogICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRo
ZSBpbmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0
aGUgZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5l
d0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmlu
c2VydChpbmRleCwgbmV3SXRlbS0+dmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3RvcmUgbmV3IHdy
YXBwZXIgYXQgcG9zaXRpb24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5aW5nIHZhbHVlLCBz
byBtdXRhdGlvbnMgb2YgbmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBpdGVtIGluIHRoZSBs
aXN0LgogICAgICAgICBtX3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPmNyZWF0ZVdl
YWtQdHIoKSk7CkBAIC0yNzgsNyArMjY3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgp
KQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTI5OCwxMyArMjg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV92
YWx1ZXMtPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUHJvcGVydHkoKS5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBsaXN0
LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVyZSdz
IG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRl
eFNpemVFcnJvciB9OwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBh
dCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGlu
ZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIHN0YXRpY19jYXN0PExpc3RJdGVtVHlwZSY+KCp2YWx1
ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSkgPSBuZXdJdGVtOwogCiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMzE5LDcg
KzMwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBA
IC0zMjgsNyArMzE3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIXByb2Nlc3NJbmNvbWluZ0xp
c3RJdGVtV3JhcHBlcihuZXdJdGVtLCAmaW5kZXgpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUobmV3SXRlbSk7CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgaWYgKHZhbHVlc1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQo
bV93cmFwcGVycy0+aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5
IGxpdmVkIGluIG91ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3
aGljaCBtZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwpAQCAtMzQwLDcgKzMyOSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKIAogICAgICAgICAvLyBV
cGRhdGUgdGhlIHZhbHVlIGFuZCB0aGUgd3JhcHBlciBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAn
aW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPnByb3BlcnR5
UmVmZXJlbmNlKCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpID0gbmV3SXRl
bS0+dmFsdWUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXQoaW5kZXgpID0gbmV3SXRlbS0+Y3Jl
YXRlV2Vha1B0cigpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtMzU1LDcgKzM0NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAg
ICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
ZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsOCArMzU3LDgg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAg
IExpc3RJdGVtVHlwZSBvbGRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKLSAgICAgICAgbV92
YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gc3Rh
dGljX2Nhc3Q8TGlzdEl0ZW1UeXBlJj4oKnZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKKyAg
ICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShvbGRJdGVtKTsKQEAgLTM4NCwxNiArMzcz
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
ICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKIAogICAgICAgICAvLyBEZXRhY2ggdGhlIGV4aXN0aW5nIHdyYXBwZXIuCiAgICAgICAgIFJl
ZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG9sZEl0ZW0gPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJP
ZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBpZiAoIW9sZEl0ZW0p
Ci0gICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRM
aXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+YXQoaW5kZXgpKTsKKyAgICAgICAgICAgIG9s
ZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJv
bGUsIHZhbHVlc1Byb3BlcnR5KCkuYXQoaW5kZXgpKTsKIAogICAgICAgICBvbGRJdGVtLT5kZXRh
Y2hXcmFwcGVyKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpbmRleCk7Ci0gICAgICAg
IG1fdmFsdWVzLT5yZW1vdmUoaW5kZXgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLnJlbW92
ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBvbGRJ
dGVtLnJlbGVhc2VOb25OdWxsKCk7CkBAIC00MTEsNyArNDAwLDcgQEAgcHVibGljOgogICAgICAg
ICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8v
IEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1
ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQoU1ZH
VmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRD
aGFuZ2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5
cGUgeyBuZXdJdGVtIH07CkBAIC00MjYsNyArNDE1LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgp
ID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0eSgp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRlbVRl
YXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTQzNCwxOSArNDIzLDI1IEBAIHB1YmxpYzoKICAg
ICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5ld0l0ZW0sIDApOwogCiAgICAg
ICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYW5kIHdyYXBwZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlz
dC4KLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgp
KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAg
ICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAg
ICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0
dXJuIFdURk1vdmUobmV3SXRlbSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMo
KQorICAgIFJlZjxTVkdWYWx1ZT4gdmFsdWVzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3ZhbHVlcyk7CiAgICAgICAgIHJldHVybiAqbV92YWx1ZXM7CiAgICAgfQogCisgICAgUHJv
cGVydHlUeXBlJiB2YWx1ZXNQcm9wZXJ0eSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
bV92YWx1ZXMpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHJvcGVydHlUeXBlJj4oKm1f
dmFsdWVzKTsKKyAgICB9CisKICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycygpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CkBAIC00NTksMjAgKzQ1NCwxMyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5KFNWR1By
b3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSog
d3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQog
ICAgICAgICA6IG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fb3duc1ZhbHVlcyhmYWxzZSkKLSAg
ICAgICAgLCBtX3ZhbHVlcygmdmFsdWVzKQorICAgICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAg
ICAgICAgLCBtX3dyYXBwZXJzKHdyYXBwZXJzKQogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IH5TVkdMaXN0UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAg
ICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlczsKLSAgICB9Ci0KICAgICB2b2lkIGNvbW1pdENoYW5n
ZSgpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKExpc3RNb2Rp
ZmljYXRpb24pCiAgICAgewpAQCAtNDgzLDggKzQ3MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKFJlZjxMaXN0SXRlbVRlYXJP
ZmY+JiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlmeSkgPSAwOwogCiAgICAgU1ZHUHJv
cGVydHlSb2xlIG1fcm9sZTsKLSAgICBib29sIG1fb3duc1ZhbHVlczsKLSAgICBQcm9wZXJ0eVR5
cGUqIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7CiAgICAgTGlzdFdy
YXBwZXJDYWNoZSogbV93cmFwcGVyczsKICAgICBXZWFrUHRyRmFjdG9yeTxTVkdMaXN0UHJvcGVy
dHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVh
ck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwyMiArMzUsMjEgQEAgcHVibGljOgogICAgIHVz
aW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSB0eXBl
bmFtZSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6TGlzdFdy
YXBwZXJDYWNoZTsKIAorICAgIHVzaW5nIEJhc2U6OnZhbHVlc1Byb3BlcnR5OwogICAgIHVzaW5n
IEJhc2U6Om1fcm9sZTsKLSAgICB1c2luZyBCYXNlOjptX3ZhbHVlczsKICAgICB1c2luZyBCYXNl
OjptX3dyYXBwZXJzOwogCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0
YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpKTsKICAgICB9CiAKICAgICBpbnQgZmluZEl0ZW0oTGlzdEl0ZW1UZWFyT2ZmKiBpdGVt
KSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJU
KG1fd3JhcHBlcnMpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXpl
KCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBB
U1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3dy
YXBwZXJzLT5hdChpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKQEAgLTYxLDE1ICs2MCwx
NCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlbW92ZUl0ZW1Gcm9tTGlzdChzaXplX3QgaXRlbUlu
ZGV4LCBib29sIHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VS
VCh2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCBtX3dyYXBwZXJz
LT5zaXplKCkpOwogCiAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGl0ZW1JbmRl
eCk7CiAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+
cmVtb3ZlKGl0ZW1JbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRlbUluZGV4KTsK
KyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBp
ZiAoc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgp
OwpAQCAtMTEyLDcgKzExMCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBT
VkdMaXN0UHJvcGVydHlUZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4ocm9s
ZSwgdmFsdWVzLCAmd3JhcHBlcnMpCiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KGFuaW1h
dGVkUHJvcGVydHkpCiAgICAgewpAQCAtMTI5LDE4ICsxMjcsMTcgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogCiAgICAgICAgIC8vIFVwZGF0
ZSBleGlzdGluZyB3cmFwcGVycywgYXMgdGhlIGluZGV4IGluIHRoZSB2YWx1ZXMgbGlzdCBoYXMg
Y2hhbmdlZC4KICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMtPnNpemUoKTsKLSAg
ICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVChz
aXplID09IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVy
cy0+YXQoaSk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0pCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBpdGVtLT5zZXRBbmltYXRlZFByb3BlcnR5KG1fYW5pbWF0ZWRQcm9w
ZXJ0eS5wdHIoKSk7Ci0gICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZShtX3ZhbHVlcy0+YXQoaSkp
OworICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUodmFsdWVzUHJvcGVydHkoKS5hdChpKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJP
ZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHTWF0cml4VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHB1Ymxp
YzoKIAogICAgIFNWR01hdHJpeFZhbHVlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0
dXJuIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CiAKLSAgICB2
b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlS
ZWZlcmVuY2UoKS5zZXRNYXRyaXgoc3RhdGljX2Nhc3Q8U1ZHTWF0cml4VmFsdWUmPigqdmFsdWUp
KTsgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbAogICAgIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1
ZGUgIlNWR1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSwxNyArNjYsMTYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJl
bmNlKCkgeyByZXR1cm4gKm1fdmFsdWU7IH0KKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFByb3BlcnR5VHlwZSY+KCptX3Zh
bHVlKTsgfQogICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25z
dCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZShQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChtX3Zh
bHVlSXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0
YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAg
ICAgICAgIG1fdmFsdWVJc0NvcHkgPSBmYWxzZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2YWx1ZTsK
KyAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIHZvaWQgc2V0QW5pbWF0ZWRQ
cm9wZXJ0eShTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KQpAQCAtMTA5LDcg
KzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gaXRlbS52YWx1ZSBzdGlsbCBoYXMgdG8gcmVw
b3J0ICc1MCcgYW5kIGl0IGhhcyB0byBiZSBwb3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0nCiAgICAg
ICAgIC8vIHcvbyBjaGFuZ2luZyB0aGUgIm5ldyBpdGVtIiAod2l0aCB4PTEwMCkgaW4gdGhlIHRl
eHQgZWxlbWVudC4KICAgICAgICAgLy8gV2hlbmV2ZXIgdGhlIFhNTCBET00gbW9kaWZpZXMgdGhl
ICJ4IiBhdHRyaWJ1dGUsIGFsbCBleGlzdGluZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQsIHVzaW5n
IHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIG1fdmFsdWUgPSBuZXcgUHJvcGVydHlUeXBlKCptX3Zh
bHVlKTsKKyAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8UHJv
cGVydHlUeXBlJj4oKm1fdmFsdWUpKTsKICAgICAgICAgbV92YWx1ZUlzQ29weSA9IHRydWU7CiAg
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IG51bGxwdHI7CiAgICAgfQpAQCAtMTM2LDEwICsx
MzYsMTAgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1Byb3BlcnR5VGVh
ck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9w
ZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAgICAgICAs
IG1fdmFsdWUoJnZhbHVlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAgICwgbV92
YWx1ZUlzQ29weShmYWxzZSkKICAgICB7CiAgICAgfQpAQCAtMTUyLDE3ICsxNTIsMTYgQEAgcHJv
dGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUqIGluaXRp
YWxWYWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAgICAgICAg
LCBtX3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxWYWx1ZSA/
IG5ldyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAgICAsIG1f
dmFsdWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUpCisgICAg
ICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAgICAgaWYg
KG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAg
ICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAg
IH0KICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3NiwxMCArMTc1LDEw
IEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBtX2FuaW1h
dGVkUHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9wZXJ0eVR5
cGUqIG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZlY3RvcjxX
ZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAgICAgV2Vh
a1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIGJv
b2wgbV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9OwogfTsK
IAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwyMCArMjAs
NDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRl
ICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gTGlzdE1v
ZGlmaWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAgIExpc3RN
b2RpZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwK
KyAgICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0aW9uQXBw
ZW5kID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9OwogCiB0
ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+IHsKKyAgICBzdGF0aWMg
Q29sb3IgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gQ29sb3IoKTsgfQorICAgIHN0YXRpYyBDb2xv
ciBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBDU1NQYXJzZXI6OnBh
cnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENvbG9yPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xv
cihzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkpOworICAgICAgICByZXR1cm4gY29sb3IuaXNWYWxp
ZCgpID8gY29sb3IgOiBzdGQ6Om9wdGlvbmFsPENvbG9yPigpOworICAgIH0KKyAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IENvbG9yJiB0eXBlKSB7IHJldHVybiB0eXBlLnNlcmlhbGl6
ZWQoKTsgfQorfTsKKwordGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2ln
bmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0K
ICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHVuc2lnbmVkIHR5cGUpIHsgcmV0dXJuIFN0cmlu
Zzo6bnVtYmVyKHR5cGUpOyB9CkBAIC00MiwxOSArNzAsMTA5IEBAIHN0cnVjdCBTVkdQcm9wZXJ0
eVRyYWl0czx1bnNpZ25lZD4gewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PGludD4gewogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAg
IHN0YXRpYyBpbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVybiBzdHJp
bmcudG9JbnRTdHJpY3QoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5cGUp
IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OworICAgIAordGVtcGxhdGU8Pgor
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIGludD4+IHsKKyAgICBzdGF0
aWMgc3RkOjpwYWlyPGludCwgaW50PiBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAg
ICBzdGF0aWMgc3RkOjpwYWlyPGludCwgaW50PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1iZXIg
PSAwOworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBmaXJz
dE51bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IAorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYo
Zmlyc3ROdW1iZXIpKSwgc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYoc2Vjb25kTnVtYmVyKSkpOwor
ICAgIH0KK307CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxmbG9hdD4g
ewogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CisgICAgc3Rh
dGljIGZsb2F0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAg
ICBmbG9hdCB0eXBlID0gMDsKKyAgICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhz
dHJpbmcsIHR5cGUpID8gdHlwZSA6IDA7CisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcp
CisgICAgeworICAgICAgICBmbG9hdCBudW1iZXI7CisgICAgICAgIHJldHVybiBwYXJzZU51bWJl
ckZyb21TdHJpbmcoc3RyaW5nLCBudW1iZXIpID8gbnVtYmVyIDogc3RkOjpvcHRpb25hbDxmbG9h
dD4oKTsKKyAgICB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhmbG9hdCB0eXBlKSB7IHJl
dHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3RydWN0IFNW
R1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiB7CisgICAgc3RhdGljIHN0
ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAg
IHN0YXRpYyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgZmlyc3ROdW1iZXIgPSAwLCBzZWNvbmROdW1i
ZXIgPSAwOworICAgICAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5nLCBm
aXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBv
aW50PiB7CisgICAgc3RhdGljIEZsb2F0UG9pbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxv
YXRQb2ludCgpOyB9CisgICAgc3RhdGljIEZsb2F0UG9pbnQgZnJvbVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQ7CisgICAgICAgIHJl
dHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8gcG9pbnQgOiBGbG9hdFBvaW50KCk7Cisg
ICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IHBhcnNlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEZsb2F0
UG9pbnQgcG9pbnQ7CisgICAgICAgIHJldHVybiBwYXJzZVBvaW50KHN0cmluZywgcG9pbnQpID8g
cG9pbnQgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+KCk7CisgICAgfQorICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgRmxvYXRQb2ludCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54
KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcih0eXBlLnkoKSk7CisgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVj
dD4geworICAgIHN0YXRpYyBGbG9hdFJlY3QgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gRmxvYXRS
ZWN0KCk7IH0KKyAgICBzdGF0aWMgRmxvYXRSZWN0IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJlY3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBh
cnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6IEZsb2F0UmVjdCgpOworICAgICAgICAKKyAg
ICB9CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBwYXJzZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFJl
Y3QgcmVjdDsKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVjdChzdHJpbmcsIHJlY3QpID8gcmVjdCA6
IHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgdHlwZSkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS54KCkpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0
eXBlLnkoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKHR5cGUud2lkdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUuaGVpZ2h0KCkpOworICAgICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+IHsKICAgICBzdGF0aWMgU3RyaW5nIGluaXRpYWxW
YWx1ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0KKyAgICBzdGF0aWMgU3RyaW5nIGZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZzsgfQorICAgIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KIH07CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0SXRlbVRlYXJPZmY7CiAKICAgICB1c2luZyBC
YXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92YWx1ZXM7CisgICAgdXNpbmcgQmFzZTo6
dmFsdWVzUHJvcGVydHk7CiAKICAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVtZW50
JiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCiAgICAgewpAQCAtNzYsNyAr
NzYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHU3RhdGljTGlzdFBy
b3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2
YWx1ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJh
c2UoVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAgICAsIG1fY29udGV4dEVs
ZW1lbnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzg5LDcgQEAgcHJvdGVjdGVk
OgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRF
bGVtZW50KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jb21taXRDaGFuZ2UobV9jb250ZXh0
RWxlbWVudCk7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVl
KGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRo
YXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwg
bm9yIHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZH
RWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUo
Q29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRh
dGVNZXRob2QgdXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVt
ZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0
ZU1ldGhvZCB1cGRhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxm
KGNvbnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2NvbnRleHRFbGVt
ZW50LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUm
IHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9m
ZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4m
IHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5VGVhck9mZihV
bmRlZmluZWRSb2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUpCiAgICAgICAg
ICwgbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334060</attachid>
            <date>2018-02-16 12:41:13 -0800</date>
            <delta_ts>2018-03-25 22:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180216124112.patch</filename>
            <type>text/plain</type>
            <size>348104</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODU2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzMSBAQAorMjAxOC0wMi0xNiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSB3aGljaCBoYXZlIGJlZW4K
KyAgICAgICAgZGlmZmljdWx0IHRvIHRyYWNrLiBUaGUgU1ZHIHRlYXItb2ZmIG9iamVjdHMgYXJl
IGNyZWF0ZWQgb24gZGVtYW5kLiBNb3JlCisgICAgICAgIHNwZWNpZmljYWxseSwgdGhleSBhcmUg
Y3JlYXRlZCB3aGVuIGFuaW1hdGluZyB0aGUgU1ZHRWxlbWVudCdzIGF0dHJpYnV0ZQorICAgICAg
ICBvciB3aGVuIGNyZWF0aW5nIGEgRE9NIG9iamVjdCBmb3IgdGhhdCBhdHRyaWJ1dGUuIFRoZSBw
cm9ibGVtIGlzIHRoZXNlCisgICAgICAgIHRlYXItb2ZmIG9iamVjdHMgaG9sZCBhIHJhdyByZWZl
cmVuY2UgdG8gdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUuIFRvCisgICAgICAgIGtlZXAgdGhp
cyByZWZlcmVuY2UgdmFsaWQsIGJvdGggdGhlIFNWR0VsZW1lbnQgYW5kIHRoZSB0ZWFyLW9mZiBv
YmplY3QKKyAgICAgICAgdXNlZCB0byBob2xkIGEgUmVmUHRyIHRvIGVhY2ggb3RoZXIgd2hpY2gg
d2FzIGNhdXNpbmcgYSBtZW1vcnkgbGVhay4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvZGUgY2FuIG5v
dCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IG9mIHRoZSByZWZlcmVuY2UKKyAgICAgICAgd2hpY2gg
aXMgaGVsZCBieSB0aGUgdGVhci1vZmYgb2JqZWN0IHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmli
dXRlLiBUbyBmaXgKKyAgICAgICAgdGhpcyBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVtZW50J3MgYXR0
cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQgb2JqZWN0cy4KKworICAgICAgICBDcmVhdGlu
ZyBkaWZmZXJlbnQgY2xhc3NlcyBmb3IgZXZlcnkgZGF0YSB0eXBlIG9mIHRoZSBTVkcgYXR0cmli
dXRlcyBkb2VzCisgICAgICAgIG5vdCBsb29rIHRoZSBjbGVhbmVzdCBzb2x1dGlvbi4gQmVzaWRl
cywgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSB1bmlvbgorICAgICAgICBTVkdBbmltYXRlZFR5
cGUgaXMgdXNlZCB0byByZXByZXNlbnQgYWxsIHRoZSBkYXRhIHR5cGVzLiBTbyBoZXJlIGlzIHRo
ZQorICAgICAgICBvdXRsaW5lIG9mIHRoaXMgcGF0Y2g6CisKKyAgICAgICAgLS0gQ3JlYXRlIHRo
ZSBjbGFzcyBTVkdWYWx1ZSB3aGljaCBpcyBhIHZhcmlhbnQgb2YgYWxsIHRoZSBTVkcgYXR0cmli
dXRlCisgICAgICAgIGJhc2ljIGRhdGEgdHlwZXMgaW5jbHVkaW5nIHRoZSB0eXBlIG9mIHRoZSBl
bGVtZW50cyBpbiB0aGUgU1ZHIGF0dHJpYnV0ZQorICAgICAgICBsaXN0cy4KKworICAgICAgICAt
LSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdvIFNWR1ZhbHVlcy4gVGhlIHNlY29u
ZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkgdXNlZCBmb3IgYW5pbWF0ZWQgdHlw
ZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisKKyAgICAgICAgLS0gQ2hhbmdlIGFs
bCB0aGUgYXR0cmlidXRlcyBvZiBhbGwgdGhlIFNWR0VsZW1lbnQgdG8gYmUgb2YgdHlwZSBSZWZQ
dHI8U1ZHVmFsdWU+LgorCisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGxpc3QgYXR0cmlidXRl
cyB0byBiZSBvZiB0eXBlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+Pi4KKworICAgICAgICAtLSBD
aGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRvIGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBp
bnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcgcmVmZXJlbmNlLgorCisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICBBZGQgbmV3IGZpbGVzIGZvciBTVkdWYWx1ZSBhbmQgU1ZHTGlzdFZhbHVlcy4g
TW92ZSBkZWZpbml0aW9ucyBmcm9tCisgICAgICAgIFNWR01hcmtlckVsZW1lbnQuaCB0byBTVkdN
YXJrZXJUeXBlcy5oLiBNb3ZlIGRlZmluaXRpb25zIG9mIFNWR1JlY3RUcmFpdHMuaAorICAgICAg
ICB0byBTVkdQcm9wZXJ0eVRyYWl0cy5oLgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQ
YXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOiBSZXBsYWNlIHRoZSBwYXJh
bWV0ZXIgU1ZHQW5nbGVWYWx1ZSYgYnkKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpTVkdBbmdsZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlUG9pbnQpOiBEZWxl
dGVkLiBNb3ZlZCB0byBTVkdQYXJzZXJVdGlsaXRpZXMuY3BwLgorCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgVXNlIHRoZSBTVkdQcm9wZXJ0
eVRyYWl0czo6ZnJvbVN0cmluZyB0byBjcmVhdGUgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUKKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmds
ZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICBjb25zdHJ1Y3RGcm9t
QmFzZVZhbHVlcygpIG5vdyByZXR1cm5zIGEgdW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+Lgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpyZXNldEFuaW1WYWxU
b0Jhc2VWYWwpOgorICAgICAgICBEb24ndCBwYXNzIFNWR0FuaW1hdGVkVHlwZSBnZXR0ZXIgdG8g
cmVzZXRGcm9tQmFzZVZhbHVlcygpLiBUaGUgUHJvcGVydHlUeXBlCisgICAgICAgIGNhbiBiZSB1
c2VkIHRvIGdldCB0aGUgZGF0YSBlbGVtZW50IGZyb20gdGhlIFNWR0FuaW1hdGVkVHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyk6CisgICAgICAgIENhc3QgdGhlIFNWR1ZhbHVlIGVsZW1lbnRzIHRvIHRoZSByZXF1aXJlZCBk
YXRhIG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6
OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOiBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRCb29sZWFuQW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xv
ckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIERpdHRv
LgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRW51
bWVyYXRpb25BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y29uc3Ry
dWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkSW50ZWdlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhBbmlt
YXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAg
ICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aExpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlZE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6YWRkQW5pbWF0ZWRU
eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZU51bWJlckZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6Y29uc3RydWN0RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51
bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEFu
aW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5p
bWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcjo6Y29uc3RydWN0
RnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFy
dEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
IERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21T
dHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9p
bnRMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRS
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUmVjdEFuaW1h
dG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRSZWN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6
CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmNvbnN0cnVjdEZy
b21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3Ry
aW5nQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAg
ICAgRGl0dG8uCisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YWRk
QW5pbWF0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UpOgorICAg
ICAgICBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6U1ZHQW5pbWF0ZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnZhbHVlQXNT
dHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzZXRWYWx1
ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3VwcG9ydHNB
bmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBbmltYXRl
ZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjphbmdsZUFuZEVudW1l
cmF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6Ym9vbGVhbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGU6OmNvbG9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkVHlwZTo6ZW51bWVyYXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjppbnRlZ2VyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6aW50ZWdlck9wdGlvbmFsSW50ZWdlciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6Omxlbmd0aExpc3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1iZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpudW1i
ZXJMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlw
ZTo6bnVtYmVyT3B0aW9uYWxOdW1iZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjpwYXRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6cG9pbnRMaXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cHJlc2VydmVBc3BlY3RSYXRpbyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnJlY3QgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpzdHJpbmcgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0cmFuc2Zvcm1M
aXN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
YW5nbGVBbmRFbnVtZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUeXBlOjpjb2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OmVudW1lcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZTo6aW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5
cGU6OmludGVnZXJPcHRpb25hbEludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRUeXBlOjpsZW5ndGhMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVHlwZTo6bnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkVHlwZTo6bnVtYmVyTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6Om51bWJlck9wdGlvbmFsTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6cGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnBvaW50TGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjpyZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6c3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6dHJhbnNmb3JtTGlzdCk6IERlbGV0ZWQuCisgICAgICAgIFNp
bXBsaWZ5IFNWR0FuaW1hdGVkVHlwZS4gSXQgaXMgbm93IGEgc3RydWN0IHdoaWNoIGhhcyB0d28g
UmVmUHRyPFNWR1ZhbHVlPi4KKyAgICAgICAgVGhlIHNlY29uZCBwb2ludGVyIGNhbiBiZSBudWxs
IGV4cGVjdCB3aXRoIHRoZSB0eXBlcyB3aXRoIHR3byB2YWx1ZXMuCisKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKTogQ29uc3RydWN0IHRoZSAKKyAg
ICAgICAgYW5pbWF0ZWQgU1ZHVmFsdWUgZnJvbSB0aGUgU1ZHVmFsdWUgb2YgdGhlIGJhc2UgdmFs
dWUgYmVmb3JlIHN0YXJ0aW5nIHRoZQorICAgICAgICBhbmltYXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6cmVzZXRGcm9tQmFzZVZhbHVlKTogUmVzZXQg
dGhlIGFuaW1hdGVkCisgICAgICAgIFNWR1ZBbHVlIHRvIHRoZSBTVkdWYWx1ZSBvZiB0aGUgYmFz
ZSB2YWx1ZSBiZWZvcmUgZW5kaW5nIHRoZSBhbmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFz
IAorICAgICAgICBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlKCkgYnV0IGZvciB0d28tU1ZHQXZsdWVz
IGFuaW1hdGVkIHR5cGVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOiBTYW1lIGFzCisgICAgICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZSgpIGJ1dCBmb3IgdHdvLVNWR0F2bHVlcyBhbmltYXRlZCB0eXBlcy4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yOjpleGVjdXRlQWN0aW9uKToKKworICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
dXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KTogRXhwbGljaXRseSBjcmVhdGUgYW4KKyAg
ICAgICAgU1ZHTGVuZ3RoVmFsdWUgd2hpY2ggd2lsbCBpbXBsaWNpdGx5IGZvcmNlIGNhbGxpbmcg
dGhlIGNvbnN0cnVjdG9yIG9mCisgICAgICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9w
ZXJ0eS4KKworICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQpOgorICAgICAgICAq
IHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbG9yTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3Zn
L1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVy
RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAg
ICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudCk6CisgICAgICAg
ICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVs
ZW1lbnQ6OlNWR0ltYWdlRWxlbWVudCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogc3Zn
L1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpTVkdMZW5ndGgpOgorICAgICAgICAqIHN2Zy9TVkdM
ZW5ndGhMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAg
ICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdFZhbHVlczo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZh
bHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RW
YWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExp
c3RWYWx1ZXM+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlU
cmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz46OnBhcnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojp0b1N0
cmluZyk6CisgICAgICAgIFNWR0xlbmd0aExpc3RWYWx1ZXMgaXMgbm93IGEgdmVjdG9yIG9mIFJl
ZlB0cjxTVkdWYWx1ZT4uIEhvd2V2ZXIgdGhlCisgICAgICAgIG9ubHkgZXhwZWN0ZWQgdmFsdWUg
aW4gdGhlIGVsZW1lbnRzIG9mIHRoaXMgdmVjdG9yIGlzIFNWR0xlbmd0aFZhbHVlLgorCisgICAg
ICAgICogc3ZnL1NWR0xlbmd0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPFNWR0xlbmd0aFZhbHVlPjo6dG9TdHJpbmcpOgorICAgICAgICAqIHN2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdMaXN0VmFsdWVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzPFByb3BlcnR5VHlwZT46OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFs
dWVzPFByb3BlcnR5VHlwZT46OmRlZXBDb3B5IGNvbnN0KToKKworICAgICAgICAqIHN2Zy9TVkdM
aXN0VmFsdWVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZH
TGlzdFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpwcm9wZXJ0eUF0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnByb3BlcnR5QXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6Zmlyc3RQcm9wZXJ0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpmaXJzdFByb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6Omxhc3RQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpsYXN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFZhbHVlczo6cHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIFRoaXMgaXMgdGhlIGJh
c2UgY2xhc3Mgb2YgYWxsIHRoZSBTVkcgbGlzdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHRvIGhhdmUK
KyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIHNvbWUgZnVuY3Rpb24gYmUgaW4gYSBzb3Vy
Y2UgZmlsZSB0byB3b3JrIGFyb3VuZAorICAgICAgICBoZWFkZXIgZmlsZSBkZXBlbmRlbmN5IGlz
c3Vlcy4gVGhlIFNWRyBsaXN0IGF0dHJpYnV0ZXMgY2FuIGJlIG9uZSBvZgorICAgICAgICBTVkdW
YWx1ZSBkYXRhIG1lbWJlcnMgYnV0IGF0IHRoZSBzYW1lIHRpbWUgaXQgaXMgdmVjdG9yIG9mIFJl
ZlB0cjxTVkdWYWx1ZT4uCisKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0
c1R5cGU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hl
c3RFeHBvc2VkRW51bVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5
cGU+Ojpmcm9tU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgVGhpcyBjb2RlIGlzIG1vdmVkIHRv
IHRoZSBuZXcgZmlsZSBTVkdNYXJrZXJUeXBlcy5oLgorCisgICAgICAgICogc3ZnL1NWR01hcmtl
clR5cGVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZH
TWFya2VyVW5pdHNUeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojp0b1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVu
dFR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0lETEVudW1MaW1pdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmhpZ2hlc3RFeHBvc2Vk
RW51bVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KToKKyAgICAgICAgKiBzdmcv
U1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGVOb25V
bmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6cm90YXRlRnJvbVZlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmZsaXBYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6ZmxpcFkp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OnNrZXdZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6U1ZHTWF0
cml4KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdO
dW1iZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OlNWR051bWJlcik6
CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051
bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpTVkdO
dW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OnRvU3RyaW5nKToK
KworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VQb2ludCk6IFRoaXMgZnVuY3Rpb24gd2FzIG1vdmVkIGZyb20gU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6cG9pbnRzTGlzdEZyb21TVkdEYXRh
KToKKworICAgICAgICAqIHN2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaDoKKworICAgICAgICAqIHN2
Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJl
YW06OlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCeXRlU3Ry
ZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9w
ZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06Om9w
ZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmNv
cHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJ5dGVTdHJlYW06OmFwcGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQnl0ZVN0cmVhbTo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46Omlu
aXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRo
Qnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgorICAgICAgICBBZGQgY29weSBjb25zdHJ1Y3RvciBh
bmQgYXNzaWdubWVudCBvcGVyYXRvci4KKworICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlRFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN5bmNocm9uaXplRCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6cGF0aFNlZ0xpc3RDaGFuZ2VkKToKKworICAg
ICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRo
U2VnTGlzdDo6Y2xlYXJDb250ZXh0QW5kUm9sZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZXBs
YWNlSXRlbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgIEFjY2Vz
cyBTVkdQYXRoU2VnTGlzdFZhbHVlcyB0aHJvdWdoIHZhbHVlc1Byb3BlcnR5KCkgaW5zdGVhZCBv
ZiBtX3ZhbHVlcworICAgICAgICB3aGljaCBpcyBub3cgYSBSZWZQdHI8U1ZHVmFsdWU+LgorCisg
ICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9WZXJ0aWNhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgpOgorICAgICAgICBTdG9y
ZSBhIG5ldyBSZWZQdHI8U1ZHVmFsdWU+IGZvciBldmVyeSBTVkdQYXRoU2VnLgorCisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhTZWdMaXN0VmFsdWVzLmg6CisKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2Vn
KToKKyAgICAgICAgKFdlYkNvcmU6OmFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICBB
bnN3ZXIgU2ltb24ncyBxdWVzdGlvbnMgd2hpY2ggd2VyZSBhZGRlZCBpbiByMTkwODQ0LgorCisg
ICAgICAgICogc3ZnL1NWR1BvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpTVkdQb2ludCk6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpTVkdQb2ludExpc3QpOgorICAg
ICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZH
UG9pbnRMaXN0VmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdQb2ludExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpzeW5jaHJvbml6ZVBvaW50
cyk6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6cG9pbnRMaXN0IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRp
bzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8pOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisKKyAgICAgICAgKiBzdmcvU1ZH
UmVjdFRyYWl0cy5oOiBSZW1vdmVkLiBUaGlzIHN0cnVjdCB3YXMgbW92ZWQgdG8gU1ZHUHJvcGVy
dHlUcmFpdHMuaAorCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
U1ZHRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRy
YW5zbGF0ZVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdC5oOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmlu
Z0xpc3RWYWx1ZXM6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1
ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVl
QXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmg6Cisg
ICAgICAgICogc3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpT
VkdUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGVzdHM6OnN5bmNocm9uaXplQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50
RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0aEFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQ
YXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3ZnL1NW
R1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1
ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtVmFsdWU+Ojpp
bml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJh
bnNmb3JtVmFsdWU+Ojp0b1N0cmluZyk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1B
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQpOgorCisgICAgICAgICogc3ZnL1NW
R1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9TdHJpbmdWaXNpdG9yOjpvcGVy
YXRvcigpKTogVGhpcyB2aXNpdG9yIHJldHVybnMgdGhlIHN0cmluZworICAgICAgICBvZiB0aGUg
YWx0ZXJuYXRpdmUgb2YgU1ZHVmFsdWVWYXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VW
aXNpdG9yOjpwYXJzZVZpc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VWaXNpdG9yOjpv
cGVyYXRvcigpKTogVGhpcyByZXBsYWNlcyB0aGUgYWx0ZXJuYXRpdmUgb2YKKyAgICAgICAgU1ZH
VmFsdWVWYXJpYW50IHdpdGggdGhlIHZhbHVlIHdlIGdldCBmcm9tIHBhcnNpbmcgdGhlIHN0cmlu
ZyBvZiBhbgorICAgICAgICBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZTo6YXMgY29uc3QpOiBDYXN0aW5nIG9wZXJhdG9yLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWU6OmFzKTogQ2FzdGluZyBvcGVyYXRvci4KKyAgICAgICAgKFdl
YkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
YWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OlNWR1ZhbHVlKToKKwor
ICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
aWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaDoK
KworICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
aWV3U3BlYzo6U1ZHVmlld1NwZWMpOiBJbml0aWFsaXplIHBvaW50ZXJzIHdpdGggdGhlIGRlZmF1
bHQKKyAgICAgICAgdmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnRyYW5z
Zm9ybVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmlld0Jv
eFN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cHJlc2VydmVB
c3BlY3RSYXRpb1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6
cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMpOgor
ICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICBObyBuZWVk
IGZvciB0aGUgY2FzdGluZyBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIG1ldGhvZCBzaW5jZSB0aGUg
YmFzZSBjbGFzcworICAgICAgICBtZXRob2Qgbm93IHJldHVybnMgYSBSZWZQdHI8U1ZHVmFsdWU+
LiBUaGUgY2FzdGluZyB3aWxsIGhhcHBlbiB3aGVuIGdldHRpbmcKKyAgICAgICAgdGhlIGVudW0g
dmFsdWUgZnJvbSB0aGUgU1ZHVmFsdWUuCisKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0
ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6OmN1cnJlbnRCYXNlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uRW5kZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpzeW5j
aHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWxEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBy
b3BlcnR5Ojpsb29rdXBPckNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3Bl
cnR5KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9m
Zi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjo6YmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6YW5pbVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRp
Y1Byb3BlcnR5VGVhck9mZjo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVu
dEFuaW1hdGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY6OmN1cnJlbnRCYXNlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblN0YXJ0ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmFu
aW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6
CisKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6c2V0VmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjbGVhclZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdMaXN0UHJvcGVydHk6OmNsZWFyVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpudW1iZXJPZkl0ZW1zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5pdGlhbGl6ZVZhbHVlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXNBbmRXcmFwcGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhbkdldEl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpnZXRJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6aW5zZXJ0SXRlbUJlZm9yZVZhbHVlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXNBbmRX
cmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlcGxhY2VJ
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZXBsYWNlSXRlbVZhbHVl
c0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2FuUmVt
b3ZlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlbW92ZUl0ZW1W
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFs
dWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjphcHBl
bmRJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5k
SXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eTo6dmFsdWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFs
dWVzUHJvcGVydHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpT
VkdMaXN0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp2YWx1
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5Ojp+U1ZHTGlz
dFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgTm8gbmVlZCBmb3IgbV9vd25zVmFsdWVzIGFu
eW1vcmUuIG1fdmFsdWVzIGlzIG5vdyBhIFJlZlB0cjxTVkdWYWx1ZT4uIEl0CisgICAgICAgIHdp
bGwgYmUgZGVsZXRlZCBvbmNlIHRoZSByZWYtY291bnQgYmVjb21lcyB6ZXJvLgorCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmZpbmRJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY6OnJlbW92ZUl0ZW1Gcm9tTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5VGVhck9mZjo6cHJvcGVydHlSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUZWFyT2ZmOjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eVRlYXJPZmY6OlNWR1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRlYXJPZmY6On5TVkdQcm9wZXJ0eVRlYXJPZmYpOgorCisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPENvbG9yPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eVRyYWl0czxDb2xvcj46OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPENvbG9yPjo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxmbG9hdD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8ZmxvYXQ+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRy
YWl0czxGbG9hdFBvaW50Pjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UG9pbnQ+OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFBvaW50Pjo6dG9TdHJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6aW5pdGlhbFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OmZyb21TdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+OjpwYXJzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+Ojp0b1N0cmluZyk6
CisgICAgICAgIEhhdmUgYWxsIHRoZSBTVkdQcm9wZXJ0eVRyYWl0cyB3aXRoIG5vIHNwZWNpZmlj
IFNWRyB0eXBlIGJlIGluIG9uZSBmaWxlLgorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RhdGlj
TGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisKIDIwMTgt
MDItMTYgIE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjI4NTQ2LgpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIy
ODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
MDcxLDcgKzIwNzEsNiBAQCBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAog
c3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKIHN2Zy9T
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCi1zdmcvU1ZHQW5pbWF0ZWRUeXBlLmNwcAogc3Zn
L1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcAogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTIxMzUsNiArMjEzNCw3IEBAIHN2Zy9TVkdM
ZW5ndGhMaXN0VmFsdWVzLmNwcAogc3ZnL1NWR0xlbmd0aFZhbHVlLmNwcAogc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcAogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKK3N2Zy9TVkdMaXN0
VmFsdWVzLmNwcAogc3ZnL1NWR0xvY2F0YWJsZS5jcHAKIHN2Zy9TVkdNUGF0aEVsZW1lbnQuY3Bw
CiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTYzMiw3ICsxNjMyLDE1IEBACiAJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAv
KiBJbWFnZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NTUwQ0I0MTFFOTU1RTNDMDAxMTFBQTAgLyogSW1hZ2VUeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1NTEzMDAxMUU3Q0NDQ0Iw
MEE2OUUzOCAvKiBEZWNvZGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1NTEzMDAwMUU3Q0NDQ0EwMEE2OUUzOCAvKiBEZWNvZGluZ09w
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1NUI4N0VCMUNBQUYwQUIwMDM0
OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovOyB9OworCQk1NTYyN0I3ODIwMjkyQkY0MDAyRDM5
N0QgLyogU1ZHTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTU2MjdCNzYyMDI4RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NTc2QTU2
NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdl
RnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk1NThCNjk5ODIwMjU0NTZEMDA0RDc1RjQgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RTQ0QUUwMUU0QkZCQzUwMDkyNDU3QiAv
KiBTVkdWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0MzFERDNCM0I5
MDBFOTJEQTMgLyogU1ZHQW5nbGVWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlCMjAyNTQ1RUEwMDRENzVGNCAvKiBTVkdOdW1i
ZXJMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzM5QzM2OTFEREI4NkQzMDBGRUZCMjkgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlD
MjAyNTQ2MDUwMDRENzVGNCAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkYxRERCQTNFMDAwRkVGQjI5
IC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTU4QjY5OUQyMDI1NDYxMjAwNEQ3NUY0IC8qIFNWR1BvaW50
TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0MzOUMzNkIxRERCODcxQzAwRkVGQjI5IC8qIFNWR1BvaW50TGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1OEI2OTlFMjAy
NTQ2MkIwMDRENzVGNCAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0QxQzUwMEU5
MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NThCNjk5RjIwMjU0Njc1MDA0RDc1RjQg
LyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0MzOUMzNkQxRERCOEJCMDAwRkVGQjI5IC8qIFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQw
MDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0
QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdT
dG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFB
IC8qIFVUSVJlZ2lzdHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE5MzAsNyArMTkzOCw3IEBACiAJCTcxNTU2Q0JEMUY5RjBBNDkwMEU3OEQw
OCAvKiBKU0FuaW1hdGlvbkVmZmVjdFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1NTZDQjkxRjlGMDlGRDAwRTc4RDA4IC8qIEpTQW5pbWF0
aW9uRWZmZWN0VGltaW5nLmggKi87IH07CiAJCTcxNTU2Q0JFMUY5RjBBNDkwMEU3OEQwOCAvKiBK
U0tleWZyYW1lRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MTU1NkNCNzFGOUYwOUZDMDBFNzhEMDggLyogSlNLZXlmcmFtZUVmZmVjdC5oICov
OyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRyb2xz
LWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNv
bnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVDMDAw
OUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGls
aXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcx
QTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAw
QUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAv
KiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFEQ0I3MDIxNTY4MTk3NjAwODYyMjcxIC8qIEpT
U1ZHWm9vbUFuZFBhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFEQ0I3MDAxNTY4MTk3NjAwODYyMjcxIC8qIEpTU1ZHWm9vbUFuZFBhbi5oICovOyB9
OwogCQk3MUUyMTgzQTE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFMjE4MzgxNzM1OUZC
ODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCAqLzsgfTsKQEAgLTIwMzIsNyArMjA0MCw3
IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMwRDk4MTFGODE1QUMx
MDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3QzMzMEEwMjFERjhGQUM2MDBE
MzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFERjhGQUM2MDBEMzM5NUMgLyog
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1MTAwRDMzOTVDIC8qIEpTUG9z
aXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCAqLzsg
fTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzYzMURE
QTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IH07CisJCTdDMzlDMzY1
MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2MzFEREE4NjQ5MDBGRUZCMjkg
LyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZFRkIyOSAvKiBTVkdTdHJpbmdM
aXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5nTGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0E5MUU2MUM5
NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAv
KiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwICov
OyB9OwpAQCAtMjE2NCwxMCArMjE3Miw5IEBACiAJCTdDRTE5MTc5MUYyQUJFNzEwMDI3MkY3OCAv
KiBKU0ZldGNoUmVxdWVzdE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTE5MTZDMUYyQUI3MEEwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdE1v
ZGUuaCAqLzsgfTsKIAkJN0NFMTkxN0IxRjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0
UmVkaXJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87
IH07CiAJCTdDRTU4RDRBMURENjRBNUIwMDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4
NTUyIC8qIFNWR1BvaW50LmggKi87IH07Ci0JCTdDRTU4RDRFMURENjk0RkUwMDEyODU1MiAvKiBT
VkdSZWN0VHJhaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3Q0U1OEQ0RDFERDY5NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oICovOyB9Owog
CQk3Q0U1OEQ1MDFERDY5QTFFMDAxMjg1NTIgLyogU1ZHTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ0RjFERDY5QTFFMDAxMjg1NTIg
LyogU1ZHTnVtYmVyLmggKi87IH07Ci0JCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggKi87
IH07Ci0JCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5
QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87IH07CisJCTdDRTU4RDU4MUREN0Q5NkQw
MDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTYxREQ3RDk2RDAwMTI4NTUyIC8qIFNWR1RyYW5z
Zm9ybVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdFQzlD
MDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MjE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VI
YW5kbGVyRGVzY3JpcHRvci5jcHAgKi87IH07CiAJCTdDRTY4MzQ1MTkyMTQzQTgwMEY0RDkyOCAv
KiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2ODM0MzE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1l
c3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ3MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQ2MTkyMTgyMTUwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhh
bmRsZXJEZXNjcmlwdG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjMwOSw3ICsyMzE2LDcgQEAKIAkJODNGRTdDQTcxREE5RjFBNzAw
MzcyMzdDIC8qIFVJRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0ZFN0NBNDFEQTlGMTY2MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0ZFN0NB
ODFEQTlGMUI2MDAzNzIzN0MgLyogRXZlbnRNb2RpZmllckluaXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0EzMURBOUYxNjUwMDM3MjM3QyAv
KiBFdmVudE1vZGlmaWVySW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTgzRkU5MDI3MUUzMDdDMzAwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1v
bml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
RkU5MDI2MUUzMDdDMUMwMDNFOTE5OSAvKiBQZXJmb3JtYW5jZU1vbml0b3IuaCAqLzsgfTsKLQkJ
ODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKKwkJODQxOUQyQTcxMjBEOTJEMDAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5
dGVTdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJB
NjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CiAJ
CTg0MTlEMkFEMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQUIxMjBE
OTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmggKi87IH07CiAJCTg0MTlE
MkJBMTIwRTBDNzYwMDE0MUY4RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQjgxMjBFMEM3NjAwMTQx
RjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggKi87IH07CkBAIC0yMzM2LDcgKzIzNDMsNyBA
QAogCQk4NDczMEQ5MzEyNDhGMEIzMDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDczMEQ3NjEyNDhGMEIz
MDBEM0E5QzkgLyogU3BvdExpZ2h0U291cmNlLmggKi87IH07CiAJCTg0NzZDOUU2MTFERjZBMEIw
MDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU0MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXIuaCAqLzsgfTsKIAkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8q
IFNWR1BhdGhCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDc2QzlFODExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aEJ1aWxkZXIuaCAqLzsg
fTsKLQkJODQ3NkM5RUMxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEy
OTAwNTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oICovOyB9OworCQk4NDc2QzlFQzExREY2QTI5
MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENv
bnN1bWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODQ3NkM5RjAxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUVFMTFERjZBNTgwMDU1
NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggKi87IH07CiAJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIx
RiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmgg
Ki87IH07CiAJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0NDJCQkY4MTE5
NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLzsgfTsKQEAgLTMyODEsOSArMzI4
OCw5IEBACiAJCUIyMjI3QTRCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEI1
MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJQjIyMjdB
NEUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR01QYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR01QYXRoRWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjIyMjc4QkIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjIyN0E1NzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZH
UGFyc2VyVXRpbGl0aWVzLmggKi87IH07CisJCUIyMjI3QTU3MEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjI3OEMxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIy
N0E1OTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEMzMEQwMEJGMjAwMDcxQjc4MiAv
KiBTVkdQYXRoRWxlbWVudC5oICovOyB9OwotCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCAqLzsgfTsKKwkJQjIy
MjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBT
VkdQYXRoU2VnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQjIyMjdBNUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEM4MEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggKi87IH07CiAJCUIyMjI3QTYyMEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDQzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNl
Z0Nsb3NlUGF0aC5oICovOyB9OwogCQlCMjIyN0E2NTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4Q0YwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWMuaCAqLzsgfTsKQEAgLTcyODMsNyArNzI5MCw2IEBACiAJCTQzOUQzMzQxMTNBNjkxMUMwMEMy
MEY0RiAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MzlEMzM0MjEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0b3JGYWN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdG9yRmFjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0EwRjBCMDEzQUM3RDZEMDBBNUYwQTcg
LyogU1ZHQW5pbWF0ZWROdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1ZHQW5pbWF0ZWROdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0M0EwRjBCNTEzQUNDQ0ZGMDBBNUYwQTcgLyogU1ZHQW5pbWF0ZWRUeXBlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdB
bmltYXRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1h
dGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0IzMzA0
MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTc0LDEwICs4MTgwLDEzIEBA
CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTUwNEU5NDIw
MkNERkQyMDA1MDdDNzMgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdMaXN0VmFsdWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU1MENCNDEx
RTk1NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW1hZ2VUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTUx
MzAwMDFFN0NDQ0NBMDBBNjlFMzggLyogRGVjb2RpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERlY29kaW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NTVCODdFQTFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQ0cuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUg
LyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VEZWNvZGVyQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTU2MjdCNzYyMDI4
RURDNDAwMkQzOTdEIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTGlzdFZh
bHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NTc1MDU2QzFFNTNCMzBDMDA4
REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHTWFya2VyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1
NjIxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTVBMzM2RjYxRDgyMDlGNDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04MTg1LDYgKzgxOTQsNyBAQAogCQk1NUFGMTRFMzFFQUFDNTlC
MDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRJUmVnaXN0
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFGMTRFNDFFQUFDNTlCMDAy
NkVFQUEgLyogVVRJUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRJUmVnaXN0cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENDA4RjcxQTdDNjMxODAwQzc4NDUwIC8qIFNW
R0ltYWdlQ2xpZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFn
ZUNsaWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVFNDRBRTAxRTRCRkJD
NTAwOTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3MUU1Mzg1
MTYwMDM1NjYwMSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1OTFFNTM5MzYyMDAzNTY2MDEgLyog
SlNBZXNDYmNDZmJQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
ZXNDYmNDZmJQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNUIx
RTUzOTM3OTAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWVzQ2JjQ2ZiUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTk0NjYsNyArOTQ3Niw2IEBACiAJCTdDRTE5MTZFMUYyQUI3MEQw
MDI3MkY3QiAvKiBKU0NhY2hlUXVlcnlPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
Q2FjaGVRdWVyeU9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Ux
OTE2RjFGMkFCNzBGMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0VHJhaXRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1JlY3RUcmFpdHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8qIFNW
R051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdOdW1iZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTExREQ3QjA5MzAwMTI4NTUyIC8q
IFNWR0xlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdMZW5ndGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNThENTIxREQ3QjA5MzAwMTI4NTUy
IC8qIFNWR0xlbmd0aFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNWR0xlbmd0aFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIy
NDMxLDcgKzIyNDQwLDYgQEAKIAkJCQk3MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQgLyogU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAqLywKIAkJCQkwODI1MDkzODEyOEJENEQ4MDBFMkVEOEUg
LyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8sCiAJCQkJQjIyMjc3RjgwRDAwQkYxRjAw
NzFCNzgyIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCi0JCQkJNDNBMEYwQjUx
M0FDQ0NGRjAwQTVGMEE3IC8qIFNWR0FuaW1hdGVkVHlwZS5jcHAgKi8sCiAJCQkJNDM5RDMzNDAx
M0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oICovLAogCQkJCTgzNkZCQ0U5MTc4
QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi8sCiAJCQkJNDM5
RDMzNDExM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8sCkBA
IC0yMjYzMiwxMSArMjI2NDAsMTQgQEAKIAkJCQlCMjIyNzhBNTBEMDBCRjIwMDA3MUI3ODIgLyog
U1ZHTGluZUVsZW1lbnQuY3BwICovLAogCQkJCUIyMjI3OEE2MEQwMEJGMjAwMDcxQjc4MiAvKiBT
VkdMaW5lRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEE3MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdM
aW5lRWxlbWVudC5pZGwgKi8sCisJCQkJNTU1MDRFOTQyMDJDREZEMjAwNTA3QzczIC8qIFNWR0xp
c3RWYWx1ZXMuY3BwICovLAorCQkJCTU1NjI3Qjc2MjAyOEVEQzQwMDJEMzk3RCAvKiBTVkdMaXN0
VmFsdWVzLmggKi8sCiAJCQkJQjIyMjc4QUEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJs
ZS5jcHAgKi8sCiAJCQkJQjIyMjc4QUIwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xvY2F0YWJsZS5o
ICovLAogCQkJCUIyMjI3OEFEMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmNw
cCAqLywKIAkJCQlCMjIyNzhBRTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5o
ICovLAogCQkJCUIyMjI3OEFGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50Lmlk
bCAqLywKKwkJCQk1NTc1MDU2QzFFNTNCMzBDMDA4REUzMEEgLyogU1ZHTWFya2VyVHlwZXMuaCAq
LywKIAkJCQlCMjIyNzhCMDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuY3BwICov
LAogCQkJCUIyMjI3OEIxMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oICovLAog
CQkJCUIyMjI3OEIyMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5pZGwgKi8sCkBA
IC0yMjc3MCw3ICsyMjc4MSw2IEBACiAJCQkJQjIyMjc5MDcwRDAwQkYyMTAwNzFCNzgyIC8qIFNW
R1JlY3RFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzkwODBEMDBCRjIxMDA3MUI3ODIgLyogU1ZH
UmVjdEVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzkwOTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHUmVj
dEVsZW1lbnQuaWRsICovLAotCQkJCTdDRTU4RDREMURENjk0RkUwMDEyODU1MiAvKiBTVkdSZWN0
VHJhaXRzLmggKi8sCiAJCQkJQjIyMjc5MEEwRDAwQkYyMTAwNzFCNzgyIC8qIFNWR1JlbmRlcmlu
Z0ludGVudC5oICovLAogCQkJCUIyMjI3OTBCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdSZW5kZXJp
bmdJbnRlbnQuaWRsICovLAogCQkJCUIyMjI3OTBDMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdTY3Jp
cHRFbGVtZW50LmNwcCAqLywKQEAgLTIyODQ3LDYgKzIyODU3LDcgQEAKIAkJCQlCMjIyNzk1NjBE
MDBCRjIxMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc5NTcwRDAw
QkYyMTAwNzFCNzgyIC8qIFNWR1VzZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1ODBEMDBCRjIx
MDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5pZGwgKi8sCisJCQkJNTVFNDRBRTAxRTRCRkJDNTAw
OTI0NTdCIC8qIFNWR1ZhbHVlLmggKi8sCiAJCQkJQjIyMjc5NTkwRDAwQkYyMTAwNzFCNzgyIC8q
IFNWR1ZpZXdFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzk1QTBEMDBCRjIxMDA3MUI3ODIgLyog
U1ZHVmlld0VsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzk1QjBEMDBCRjIxMDA3MUI3ODIgLyogU1ZH
Vmlld0VsZW1lbnQuaWRsICovLApAQCAtMjk2OTMsNiArMjk3MDQsNyBAQAogCQkJCTY1NjUzRjJF
MEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5nbGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTk5MjAyNTQ1QUMwMDRENzVGNCAvKiBTVkdBbmds
ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0OTYxMjcy
Q0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjk4MDQsNiArMjk4MTYsNyBAQAogCQkJCUIyMjI3QTNDMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxMDc2NDQxMjgyODU1
NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBF
MDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU1NjI3Qjc4MjAyOTJCRjQwMDJEMzk3RCAvKiBTVkdMaXN0VmFsdWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFy
a2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjk4MTYsNiArMjk4MjksNyBA
QAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdOdW1iZXJM
aXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NThCNjk5QjIwMjU0NUVBMDA0RDc1RjQgLyogU1ZH
TnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBF
MzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5ODU0LDYgKzI5ODY4LDcgQEAKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZB
MEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTU4QjY5OUMyMDI1NDYwNTAwNEQ3NUY0IC8qIFNWR1BhdGhTZWdMaXN0
VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyog
U1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzYxNzhENUFC
NTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjk4NjUsMTAgKzI5ODgwLDEyIEBACiAJCQkJQjIyMjdBODgwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ0
QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU1OEI2OTlEMjAyNTQ2MTIwMDRENzVGNCAvKiBTVkdQb2ludExpc3RWYWx1ZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHln
b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTU4QjY5OUUyMDI1NDYyQjAwNEQ3NUY0IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1By
b3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyog
U1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5
NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTI5ODc2LDcg
KzI5ODkzLDYgQEAKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3
OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3Q0U1OEQ0RTFERDY5
NEZFMDAxMjg1NTIgLyogU1ZHUmVjdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTk3QjE4
MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QUEwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMjI3NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdSZW5kZXJT
dHlsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkzNyw3IEBACiAJCQkJQjIyMjdB
REEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybWFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QUREMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1EaXN0YW5jZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9y
bUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1OEI2OTlGMjAyNTQ2NzUwMDRENzVGNCAvKiBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1ODFERDdE
OTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QUUyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBRTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yOTkyOCw2ICsyOTk0NSw3IEBACiAJCQkJMzdDNzM4RUQxRURCRDVCQzAw
M0YyQjBCIC8qIFNWR1Vua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FF
QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVVJJUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0FFRDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVXNlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTU4QjY5OTgyMDI1NDU2RDAwNEQ3NUY0IC8qIFNWR1ZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0FGMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3U3Bl
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4NTIyOEIxMTkwMTczQzAwNkVEQzdGIC8qIFNWR1ZL
ZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
MCwxNiArMTAwLDE2IEBAIHN0YXRpYyBQYXRoIHBhdGhGcm9tUGF0aEVsZW1lbnQoU1ZHRWxlbWUK
IAogc3RhdGljIFBhdGggcGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50
KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVtZW50PihlbGVt
ZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMgPSBkb3du
Y2FzdDxTVkdQb2x5Z29uRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFsdWVz
UHJvcGVydHkoKTsKICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7Cisg
ICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UHJvcGVydHkoKSk7CiAKICAgICB1bnNpZ25lZCBz
aXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsg
KytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQoaSkpOworICAgICAgICBwYXRo
LmFkZExpbmVUbyhwb2ludHMucHJvcGVydHlBdChpKSk7CiAKICAgICBwYXRoLmNsb3NlU3VicGF0
aCgpOwogICAgIHJldHVybiBwYXRoOwpAQCAtMTE3LDE2ICsxMTcsMTYgQEAgc3RhdGljIFBhdGgg
cGF0aEZyb21Qb2x5Z29uRWxlbWVudChTVkdFbAogCiBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHls
aW5lRWxlbWVudChTVkdFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8mIHBvaW50cyA9IGRv
d25jYXN0PFNWR1BvbHlsaW5lRWxlbWVudD4oZWxlbWVudCkuYW5pbWF0ZWRQb2ludHMoKS0+dmFs
dWVzKCk7CisgICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVtZW50Pihl
bGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNQcm9wZXJ0eSgpOwogICAgIGlmIChwb2lu
dHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAg
IHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmly
c3RQcm9wZXJ0eSgpKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBwb2ludHMuc2l6ZSgpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhdGguYWRkTGlu
ZVRvKHBvaW50cy5hdChpKSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHBvaW50cy5wcm9wZXJ0
eUF0KGkpKTsKICAgICByZXR1cm4gcGF0aDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNC
dWlsZGVyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjMsMTUgKzE2MywxNSBAQCB2b2lkIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6
YnVpCiBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBpLCBm
bG9hdCYgbGFzdFJvdGF0aW9uLCBTVkdDaGFyYWN0ZXJEYXRhJiBkYXRhLCBjb25zdCBTVkdMZW5n
dGhDb250ZXh0JiBsZW5ndGhDb250ZXh0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiB4TGlz
dCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogeUxpc3QsIGNvbnN0IFNWR0xlbmd0aExpc3RW
YWx1ZXMqIGR4TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHlMaXN0LCBjb25zdCBT
VkdOdW1iZXJMaXN0VmFsdWVzKiByb3RhdGVMaXN0KQogewogICAgIGlmICh4TGlzdCkKLSAgICAg
ICAgZGF0YS54ID0geExpc3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBk
YXRhLnggPSB4TGlzdC0+cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBp
ZiAoeUxpc3QpCi0gICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250
ZXh0KTsKKyAgICAgICAgZGF0YS55ID0geUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3Ro
Q29udGV4dCk7CiAgICAgaWYgKGR4TGlzdCkKLSAgICAgICAgZGF0YS5keCA9IGR4TGlzdC0+YXQo
aSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEuZHggPSBkeExpc3QtPnByb3Bl
cnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKGR5TGlzdCkKLSAgICAgICAg
ZGF0YS5keSA9IGR5TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRh
dGEuZHkgPSBkeUxpc3QtPnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAg
aWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChp
KTsKKyAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5wcm9wZXJ0eUF0KGkpOwogICAg
ICAgICBsYXN0Um90YXRpb24gPSBkYXRhLnJvdGF0ZTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5nbGUuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
Z2xlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTVkdBbmdsZSA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVW
YWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
QW5nbGVWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0FuZ2xlKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAg
fQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShpbml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0Fu
Z2xlPiBjcmVhdGUoY29uc3QgU1ZHQW5nbGVWYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUoaW5pdGlhbFZhbHVlKSk7Ci0gICAg
fQotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdB
bmdsZT4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAg
ICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC0xMzYsNyArMTMxLDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmdsZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHQW5nbGVWYWx1
ZSYgdmFsdWUpCisgICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmdsZVZhbHVlPigmYW5pbWF0ZWRQ
cm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTE0NSwxMSArMTQwLDYgQEAg
cHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oaW5p
dGlhbFZhbHVlKQogICAgIHsKICAgICB9Ci0KLSAgICBleHBsaWNpdCBTVkdBbmdsZShjb25zdCBT
VkdBbmdsZVZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR0FuZ2xlVmFsdWU+KGluaXRpYWxWYWx1ZSkKLSAgICB7Ci0gICAgfQogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMzEg
KzEzNiw2IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW0KICAgICB1
cGRhdGVBbmltYXRpb25Nb2RlKCk7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlUG9pbnQoY29uc3Qg
U3RyaW5nJiBzLCBGbG9hdFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAocy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBhdXRvIHVwY29udmVydGVkQ2hhcmFjdGVycyA9IFN0
cmluZ1ZpZXcocykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNoYXIqIGN1
ciA9IHVwY29udmVydGVkQ2hhcmFjdGVyczsKLSAgICBjb25zdCBVQ2hhciogZW5kID0gY3VyICsg
cy5sZW5ndGgoKTsKLSAgICAKLSAgICBpZiAoIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVu
ZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBmbG9hdCB4ID0gMDsKLSAgICBp
ZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IAotICAgIGZsb2F0IHkgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXIoY3VyLCBlbmQsIHkpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcG9pbnQgPSBGbG9hdFBvaW50KHgsIHkp
OwotICAgIAotICAgIC8vIGRpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBzcGFjZXMgYXQgdGhlIGVu
ZAotICAgIHJldHVybiAhc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1ciwgZW5kKTsKLX0KLSAgICAK
IHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKIHsKICAg
ICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkQW5nbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEFuZ2xlLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMSwgMjAx
Mi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMiwyMiArMzMs
MTIgQEAgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpTVkdBbmltYXRlZEFuZwogCiBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRl
ZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oc3RkOjpt
YWtlX3VuaXF1ZTxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PigpKTsKLSAgICBh
dXRvJiBhbmltYXRlZFBhaXIgPSBhbmltYXRlZFR5cGUtPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsK
LQotICAgIFNWR0FuZ2xlVmFsdWUgYW5nbGU7Ci0gICAgU1ZHTWFya2VyT3JpZW50VHlwZSBvcmll
bnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT46OmZyb21TdHJp
bmcoc3RyaW5nLCBhbmdsZSk7Ci0gICAgaWYgKG9yaWVudFR5cGUgPiAwKQotICAgICAgICBhbmlt
YXRlZFBhaXIuc2Vjb25kID0gb3JpZW50VHlwZTsKLSAgICBpZiAob3JpZW50VHlwZSA9PSBTVkdN
YXJrZXJPcmllbnRBbmdsZSkKLSAgICAgICAgYW5pbWF0ZWRQYWlyLmZpcnN0ID0gYW5nbGU7Ci0K
LSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+
Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAg
IHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUFuZ2xlQW5kRW51bWVyYXRpb24oY29uc3Ry
dWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRBbmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlczxT
VkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAg
LTU3LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OnN0b3BBbmltVgog
CiB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5p
bWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRB
bmdsZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0Fu
aW1hdGVkVHlwZTo6YW5nbGVBbmRFbnVtZXJhdGlvbik7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVl
czxTVkdBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVz
LCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFuaW1WYWxXaWxs
Q2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKQEAgLTc1LDEzICs2NiwxMyBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6YWRk
QW5pbWF0CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEFuZ2xlKTsKICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJv
bUFuZ2xlQW5kRW51bWVyYXRpb24gPSBmcm9tLT5hbmdsZUFuZEVudW1lcmF0aW9uKCk7Ci0gICAg
YXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51bWVyYXRpb24oKTsK
KyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGUgPSBmcm9tLT5maXJzdC0+YXM8U1ZHQW5nbGVWYWx1
ZT4oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tRW51bWVyYXRpb24gPSBmcm9tLT5zZWNvbmQtPmFz
PHVuc2lnbmVkPigpOworICAgIGF1dG8mIHRvQW5nbGUgPSB0by0+Zmlyc3QtPmFzPFNWR0FuZ2xl
VmFsdWU+KCk7CisgICAgYXV0byYgdG9FbnVtZXJhdGlvbiA9IHRvLT5zZWNvbmQtPmFzPHVuc2ln
bmVkPigpOwogICAgIC8vIE9ubHkgcmVzcGVjdCBieSBhbmltYXRpb25zLCBpZiBmcm9tIGFuZCBi
eSBhcmUgYm90aCBzcGVjaWZpZWQgaW4gYW5nbGVzIChhbmQgbm90IGVnLiAnYXV0bycpLgotICAg
IGlmIChmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gdG9BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCB8fCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgIT0gU1ZHTWFya2Vy
T3JpZW50QW5nbGUpCisgICAgaWYgKGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uIHx8
IGZyb21FbnVtZXJhdGlvbiAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0dXJu
OwotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZSA9IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0OwotICAgIGF1dG8mIHRvQW5nbGUgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CiAg
ICAgdG9BbmdsZS5zZXRWYWx1ZSh0b0FuZ2xlLnZhbHVlKCkgKyBmcm9tQW5nbGUudmFsdWUoKSk7
CiB9CiAKQEAgLTkwLDQ4ICs4MSw0OSBAQCB2b2lkIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6
Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlQW5kRW51bWVyYXRp
b24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkLT5hbmdsZUFuZEVudW1lcmF0aW9uKCkgOiBmcm9tLT5hbmdsZUFuZEVudW1lcmF0
aW9uKCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFuZ2xlQW5kRW51
bWVyYXRpb24oKTsKLSAgICBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRp
b24gPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YW5nbGVBbmRFbnVtZXJhdGlvbigpOwotICAgIGF1dG8m
IGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5hbmdsZUFuZEVudW1lcmF0
aW9uKCk7CisgICAgY29uc3QgYXV0byYgZnJvbUFuZ2xlID0gbV9hbmltYXRpb25FbGVtZW50LT5h
bmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Zmlyc3QtPmFzPFNWR0Fu
Z2xlVmFsdWU+KCkgOiBmcm9tLT5maXJzdC0+YXM8U1ZHQW5nbGVWYWx1ZT4oKTsKKyAgICBjb25z
dCBhdXRvJiBmcm9tRW51bWVyYXRpb24gPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1v
ZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5zZWNvbmQtPmFzPHVuc2lnbmVkPigpIDog
ZnJvbS0+c2Vjb25kLT5hczx1bnNpZ25lZD4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0FuZ2xlID0g
dG8tPmZpcnN0LT5hczxTVkdBbmdsZVZhbHVlPigpOworICAgIGNvbnN0IGF1dG8mIHRvRW51bWVy
YXRpb24gPSB0by0+c2Vjb25kLT5hczx1bnNpZ25lZD4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0
RW5kT2ZEdXJhdGlvbkFuZ2xlID0gdG9BdEVuZE9mRHVyYXRpb24tPmZpcnN0LT5hczxTVkdBbmds
ZVZhbHVlPigpOworICAgIGF1dG8mIGFuaW1hdGVkQW5nbGUgPSBhbmltYXRlZC0+Zmlyc3QtPmFz
PFNWR0FuZ2xlVmFsdWU+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGFuaW1h
dGVkLT5zZWNvbmQtPmFzPHVuc2lnbmVkPigpOwogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kKSB7CisgICAgaWYg
KGZyb21FbnVtZXJhdGlvbiAhPSB0b0VudW1lcmF0aW9uKSB7CiAgICAgICAgIC8vIERpc2NyZXRl
IGFuaW1hdGlvbiAtIG5vIGxpbmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFs
dWVzIChlLmcuIGF1dG8gdG8gYW5nbGUpLgogICAgICAgICBpZiAocGVyY2VudGFnZSA8IDAuNWYp
IHsKLSAgICAgICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBmcm9t
QW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7Ci0gICAgICAgICAgICBpZiAoZnJvbUFuZ2xlQW5k
RW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEFuZ2xlKQotICAgICAgICAgICAg
ICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdCA9IGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uLmZpcnN0OworICAgICAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGZyb21FbnVt
ZXJhdGlvbjsKKyAgICAgICAgICAgIGlmIChmcm9tRW51bWVyYXRpb24gPT0gU1ZHTWFya2VyT3Jp
ZW50QW5nbGUpCisgICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZSA9IGZyb21BbmdsZTsKICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uZmlyc3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICAgICAgYW5pbWF0ZWRBbmdsZS5zZXRW
YWx1ZSgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBhbmltYXRl
ZEFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID0gdG9BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29u
ZDsKLSAgICAgICAgaWYgKHRvQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPT0gU1ZHTWFya2Vy
T3JpZW50QW5nbGUpCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmly
c3QgPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7CisgICAgICAgIGFuaW1hdGVkRW51bWVy
YXRpb24gPSB0b0VudW1lcmF0aW9uOworICAgICAgICBpZiAodG9FbnVtZXJhdGlvbiA9PSBTVkdN
YXJrZXJPcmllbnRBbmdsZSkKKyAgICAgICAgICAgIGFuaW1hdGVkQW5nbGUgPSB0b0FuZ2xlOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRpb24uZmly
c3Quc2V0VmFsdWUoMCk7CisgICAgICAgICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKDApOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9u
LnNlY29uZCA9PSBTVkdNYXJrZXJPcmllbnRBbmdsZSkgeworICAgIGlmIChmcm9tRW51bWVyYXRp
b24gPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpIHsKICAgICAgICAgLy8gUmVndWxhciBmcm9tIGFu
Z2xlIHRvIGFuZ2xlIGFuaW1hdGlvbiwgd2l0aCBzdXBwb3J0IGZvciBzbW9vdGggaW50ZXJwb2xh
dGlvbiwgYW5kIGFkZGl0aXZlIGFuZCBhY2N1bXVsYXRlZCBhbmltYXRpb24uCi0gICAgICAgIGFu
aW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQgPSBTVkdNYXJrZXJPcmllbnRBbmdsZTsK
KyAgICAgICAgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFNWR01hcmtlck9yaWVudEFuZ2xlOwogCi0g
ICAgICAgIGF1dG8mIGFuaW1hdGVkU1ZHQW5nbGUgPSBhbmltYXRlZEFuZ2xlQW5kRW51bWVyYXRp
b24uZmlyc3Q7Ci0gICAgICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHQW5nbGUg
PSB0b0F0RW5kT2ZEdXJhdGlvbkFuZ2xlQW5kRW51bWVyYXRpb24uZmlyc3Q7Ci0gICAgICAgIGZs
b2F0IGFuaW1hdGVkQW5nbGUgPSBhbmltYXRlZFNWR0FuZ2xlLnZhbHVlKCk7Ci0gICAgICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5maXJzdC52YWx1ZSgpLCB0b0FuZ2xlQW5k
RW51bWVyYXRpb24uZmlyc3QudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25TVkdBbmdsZS52YWx1
ZSgpLCBhbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgYW5pbWF0ZWRTVkdBbmdsZS5zZXRWYWx1ZShh
bmltYXRlZEFuZ2xlKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRBbmdsZVZhbHVlID0gYW5pbWF0
ZWRBbmdsZS52YWx1ZSgpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRp
dGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUFuZ2xlLnZhbHVlKCksIHRv
QW5nbGUudmFsdWUoKSwgdG9BdEVuZE9mRHVyYXRpb25BbmdsZS52YWx1ZSgpLCBhbmltYXRlZEFu
Z2xlVmFsdWUpOworICAgICAgICBhbmltYXRlZEFuZ2xlLnNldFZhbHVlKGFuaW1hdGVkQW5nbGVW
YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBhdXRvLCBhdXRvLXN0YXJ0
LXJldmVyc2UsIG9yIHVua25vd24uCi0gICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uLmZp
cnN0LnNldFZhbHVlKDApOworICAgIGFuaW1hdGVkQW5nbGUuc2V0VmFsdWUoMCk7CiAKLSAgICBp
ZiAoZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEF1dG8g
fHwgZnJvbUFuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kID09IFNWR01hcmtlck9yaWVudEF1dG9T
dGFydFJldmVyc2UpCi0gICAgICAgIGFuaW1hdGVkQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQg
PSBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbi5zZWNvbmQ7CisgICAgaWYgKGZyb21FbnVtZXJhdGlv
biA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IGZyb21FbnVtZXJhdGlvbiA9PSBTVkdNYXJrZXJP
cmllbnRBdXRvU3RhcnRSZXZlcnNlKQorICAgICAgICBhbmltYXRlZEVudW1lcmF0aW9uID0gZnJv
bUVudW1lcmF0aW9uOwogICAgIGVsc2UKLSAgICAgICAgYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCA9IFNWR01hcmtlck9yaWVudFVua25vd247CisgICAgICAgIGFuaW1hdGVkRW51
bWVyYXRpb24gPSBTVkdNYXJrZXJPcmllbnRVbmtub3duOwogfQogCiBmbG9hdCBTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzEsMTQgKzMyLDEyIEBA
IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpTVkdBbmltYXRlZEIKIAogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5
cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUJvb2xlYW4oc3RkOjptYWtlX3VuaXF1ZTxib29s
PigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmJvb2xlYW4oKSA9IChzdHJpbmcgPT0gInRydWUiKTsg
Ly8gd2F0PwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5nKHN0cmluZykp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEJvb2xl
YW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVCb29sZWFuKGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29s
ZWFuPihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNDgsNyArNDcsNyBAQCB2b2lk
IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9wQW5pCiAKIHZvaWQgU1ZHQW5pbWF0ZWRC
b29sZWFuQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkK
IHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5
cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpib29sZWFuKTsKKyAgICByZXNldEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzEsOSArNzAs
OSBAQCB2b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjYWxjdWxhCiAgICAgQVNTRVJU
KG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0g
ICAgYm9vbCBmcm9tQm9vbGVhbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmJvb2xlYW4oKSA6IGZyb20tPmJvb2xlYW4oKTsK
LSAgICBib29sIHRvQm9vbGVhbiA9IHRvLT5ib29sZWFuKCk7Ci0gICAgYm9vbCYgYW5pbWF0ZWRC
b29sZWFuID0gYW5pbWF0ZWQtPmJvb2xlYW4oKTsKKyAgICBib29sIGZyb21Cb29sZWFuID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRl
ZC0+Zmlyc3QtPmFzPGJvb2w+KCkgOiBmcm9tLT5maXJzdC0+YXM8Ym9vbD4oKTsKKyAgICBib29s
IHRvQm9vbGVhbiA9IHRvLT5maXJzdC0+YXM8Ym9vbD4oKTsKKyAgICBib29sJiBhbmltYXRlZEJv
b2xlYW4gPSBhbmltYXRlZC0+Zmlyc3QtPmFzPGJvb2w+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8Ym9vbD4ocGVyY2VudGFnZSwgZnJvbUJvb2xlYW4s
IHRvQm9vbGVhbiwgYW5pbWF0ZWRCb29sZWFuKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZENvbG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRDb2xvci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzQsNyBAQCBT
VkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OlNWR0FuaW1hdGVkQ29sCiAKIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRU
eXBlOjpjcmVhdGVDb2xvcihzdGQ6Om1ha2VfdW5pcXVlPENvbG9yPihDU1NQYXJzZXI6OnBhcnNl
Q29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpKSkpOworICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcoc3RyaW5n
KSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVz
KFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bykKQEAgLTQ0LDggKzQ1
LDggQEAgdm9pZCBTVkdBbmltYXRlZENvbG9yQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VS
VCh0by0+dHlwZSgpID09IEFuaW1hdGVkQ29sb3IpOwogCiAgICAgLy8gSWdub3JlcyBhbnkgYWxw
aGEgYW5kIHNldHMgYWxwaGEgb24gcmVzdWx0IHRvIDEwMCUgb3BhcXVlLgotICAgIGF1dG8mIGZy
b21Db2xvciA9IGZyb20tPmNvbG9yKCk7Ci0gICAgYXV0byYgdG9Db2xvciA9IHRvLT5jb2xvcigp
OworICAgIGNvbnN0IGF1dG8mIGZyb21Db2xvciA9IGZyb20tPmZpcnN0LT5hczxDb2xvcj4oKTsK
KyAgICBhdXRvJiB0b0NvbG9yID0gdG8tPmZpcnN0LT5hczxDb2xvcj4oKTsKICAgICB0b0NvbG9y
ID0geyByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IucmVkKCkgKyBmcm9tQ29sb3Iu
cmVkKCkpLAogICAgICAgICByb3VuZEFuZENsYW1wQ29sb3JDaGFubmVsKHRvQ29sb3IuZ3JlZW4o
KSArIGZyb21Db2xvci5ncmVlbigpKSwKICAgICAgICAgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5l
bCh0b0NvbG9yLmJsdWUoKSArIGZyb21Db2xvci5ibHVlKCkpIH07CkBAIC02OSw4ICs3MCw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBD
b2xvciBmcm9tQ29sb3IgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBU
b0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5jb2xvcigpIDogZnJvbS0+Y29sb3IoKTsKLSAgICBDb2xv
ciB0b0NvbG9yID0gdG8tPmNvbG9yKCk7CisgICAgQ29sb3IgZnJvbUNvbG9yID0gbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Zmly
c3QtPmFzPENvbG9yPigpIDogZnJvbS0+Zmlyc3QtPmFzPENvbG9yPigpOworICAgIENvbG9yIHRv
Q29sb3IgPSB0by0+Zmlyc3QtPmFzPENvbG9yPigpOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVy
aXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFu
Y2U8Q29sb3I+KHBhcnNlQ29sb3JGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1lbnQtPmZyb21Q
cm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tQ29sb3IsIG1fY29udGV4dEVsZW1lbnQpOwpAQCAtODIs
OCArODMsOCBAQCB2b2lkIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAg
aWYgKG1fYW5pbWF0aW9uRWxlbWVudC0+dG9Qcm9wZXJ0eVZhbHVlVHlwZSgpID09IEN1cnJlbnRD
b2xvclZhbHVlKQogICAgICAgICB0b0NvbG9yID0gY3VycmVudENvbG9yKCptX2NvbnRleHRFbGVt
ZW50KTsKIAotICAgIGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uQ29sb3IgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+Y29sb3IoKTsKLSAgICBhdXRvJiBhbmltYXRlZENvbG9yID0gYW5pbWF0ZWQtPmNvbG9y
KCk7CisgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Db2xvciA9IHRvQXRFbmRPZkR1
cmF0aW9uLT5maXJzdC0+YXM8Q29sb3I+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRDb2xvciA9IGFu
aW1hdGVkLT5maXJzdC0+YXM8Q29sb3I+KCk7CiAKICAgICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xv
ciAtIHRoaXMgd2lsbCBuZWVkIHRvIGhhbmRsZSBibGVuZGluZyBiZXR3ZWVuIGNvbG9ycyBpbiBk
aWZmZXJlbnQgY29sb3Igc3BhY2VzLAogICAgIC8vIGFzIHdlbGwgYXMgd29yayB3aXRoIG5vbiBb
MC0yNTVdIENvbG9ycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTIuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA5LDE0ICsxMTAsMTIg
QEAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpTVkdBbmltYQogc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVFbnVtZXJhdGlvbihzdGQ6Om1ha2VfdW5pcXVlPHVuc2lnbmVkPigpKTsKLSAgICBh
bmltYXRlZFR5cGUtPmVudW1lcmF0aW9uKCkgPSBlbnVtZXJhdGlvblZhbHVlRm9yVGFyZ2V0QXR0
cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShlbnVtZXJhdGlvblZhbHVlRm9y
VGFyZ2V0QXR0cmlidXRlKG1fYW5pbWF0aW9uRWxlbWVudC0+dGFyZ2V0RWxlbWVudCgpLCBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmF0dHJpYnV0ZU5hbWUoKSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6
c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVF
bnVtZXJhdGlvbihjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+
KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdB
bmltYXRlZEVudW1lcmF0aW9uPihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTEyNiw3ICsxMjUsNyBA
QCB2b2lkIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BbmltYXRvcjo6c3RvCiAKIHZvaWQgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5
cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmVudW1lcmF0aW9uKTsK
KyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4oYW5pbWF0ZWRU
eXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yOjph
bmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC0xNDksOSArMTQ4LDkgQEAgdm9pZCBTVkdBbmltYXRlZEVudW1lcmF0
aW9uQW5pbWF0b3I6OmNhbAogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFT
U0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIHVuc2lnbmVkIGZyb21FbnVtZXJhdGlvbiA9
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5p
bWF0ZWQtPmVudW1lcmF0aW9uKCkgOiBmcm9tLT5lbnVtZXJhdGlvbigpOwotICAgIHVuc2lnbmVk
IHRvRW51bWVyYXRpb24gPSB0by0+ZW51bWVyYXRpb24oKTsKLSAgICB1bnNpZ25lZCYgYW5pbWF0
ZWRFbnVtZXJhdGlvbiA9IGFuaW1hdGVkLT5lbnVtZXJhdGlvbigpOworICAgIHVuc2lnbmVkIGZy
b21FbnVtZXJhdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRv
QW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5hczx1bnNpZ25lZD4oKSA6IGZyb20tPmZpcnN0
LT5hczx1bnNpZ25lZD4oKTsKKyAgICB1bnNpZ25lZCB0b0VudW1lcmF0aW9uID0gdG8tPmZpcnN0
LT5hczx1bnNpZ25lZD4oKTsKKyAgICB1bnNpZ25lZCYgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IGFu
aW1hdGVkLT5maXJzdC0+YXM8dW5zaWduZWQ+KCk7CiAKICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVEaXNjcmV0ZVR5cGU8dW5zaWduZWQ+KHBlcmNlbnRhZ2UsIGZyb21FbnVtZXJhdGlv
biwgdG9FbnVtZXJhdGlvbiwgYW5pbWF0ZWRFbnVtZXJhdGlvbik7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTMzLDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWRJ
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkSW50ZWdlckFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyKHN0ZDo6
bWFrZV91bmlxdWU8aW50PigpKTsKLSAgICBhbmltYXRlZFR5cGUtPmludGVnZXIoKSA9IHN0cmlu
Zy50b0ludFN0cmljdCgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNW
R0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGludD46OmZyb21TdHJpbmco
c3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1h
dGVkSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdB
bmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNW
R0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OSw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OnN0b3BBbmkKIAogdm9pZCBTVkdB
bmltYXRlZEludGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBl
JiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFu
aW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXIpOworICAgIHJlc2V0
RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02
OCw3ICs2Nyw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmFkZEFuaW0KICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlcik7CiAgICAgQVNTRVJUKGZy
b20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIHRvLT5pbnRlZ2VyKCkgKz0gZnJvbS0+
aW50ZWdlcigpOworICAgIHRvLT5maXJzdC0+YXM8aW50PigpICs9IGZyb20tPmZpcnN0LT5hczxp
bnQ+KCk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFu
aW1hdGVkSW50ZWdlcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgaW50IGZyb21JbnRlZ2VyLCBpbnQg
dG9JbnRlZ2VyLCBpbnQgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBpbnQmIGFuaW1hdGVkSW50
ZWdlcikKQEAgLTgzLDEwICs4MiwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9y
OjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOwogCi0gICAgaW50IGZyb21JbnRlZ2VyID0gbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+aW50ZWdlcigp
IDogZnJvbS0+aW50ZWdlcigpOwotICAgIGludCB0b0ludGVnZXIgPSB0by0+aW50ZWdlcigpOwot
ICAgIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+aW50
ZWdlcigpOwotICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWQtPmludGVnZXIoKTsK
KyAgICBpbnQgZnJvbUludGVnZXIgPSBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5maXJzdC0+YXM8aW50PigpIDogZnJvbS0+Zmly
c3QtPmFzPGludD4oKTsKKyAgICBpbnQgdG9JbnRlZ2VyID0gdG8tPmZpcnN0LT5hczxpbnQ+KCk7
CisgICAgaW50IHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5m
aXJzdC0+YXM8aW50PigpOworICAgIGludCYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5pbWF0ZWQtPmZp
cnN0LT5hczxpbnQ+KCk7CiAKICAgICBjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRp
b25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXIsIHRvSW50ZWdl
ciwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyLCBhbmltYXRlZEludGVnZXIpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMywy
MyArMzQsMTIgQEAgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0bwogCiBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXJBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlSW50
ZWdlck9wdGlvbmFsSW50ZWdlcihzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxpbnQsIGludD4+
KCkpOwotICAgIHN0ZDo6cGFpcjxpbnQsIGludD4mIGFuaW1hdGVkSW50ZWdlciA9IGFuaW1hdGVk
VHlwZS0+aW50ZWdlck9wdGlvbmFsSW50ZWdlcigpOwotICAgIGZsb2F0IGZpcnN0TnVtYmVyID0g
MDsKLSAgICBmbG9hdCBzZWNvbmROdW1iZXIgPSAwOwotICAgIGlmICghcGFyc2VOdW1iZXJPcHRp
b25hbE51bWJlcihzdHJpbmcsIGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpKSB7Ci0gICAgICAg
IGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IDA7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5zZWNv
bmQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFuaW1hdGVkSW50ZWdlci5maXJzdCA9IHN0
YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSk7Ci0gICAgICAgIGFuaW1hdGVkSW50
ZWdlci5zZWNvbmQgPSBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNvbmROdW1iZXIpKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGludCwgaW50Pj46OmZyb21TdHJp
bmcoc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQog
ewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXJPcHRpb25hbEludGVn
ZXIoY29uc3RydWN0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRl
ZEludGVnZXI+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VW
YWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlw
ZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9y
OjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OSw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyQW4KIAogdm9pZCBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXJBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQog
ewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRlZ2VyLCBTVkdBbmltYXRl
ZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OmludGVnZXJP
cHRpb25hbEludGVnZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZXM8U1ZHQW5pbWF0ZWRJbnRl
Z2VyLCBTVkdBbmltYXRlZEludGVnZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphbmltVmFsV2lsbENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMp
CkBAIC03NywxMSArNjcsOCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ckFuCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXIpOwogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBj
b25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiBmcm9tSW50ZWdlclBhaXIgPSBmcm9tLT5pbnRlZ2Vy
T3B0aW9uYWxJbnRlZ2VyKCk7Ci0gICAgc3RkOjpwYWlyPGludCwgaW50PiYgdG9JbnRlZ2VyUGFp
ciA9IHRvLT5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKCk7Ci0KLSAgICB0b0ludGVnZXJQYWlyLmZp
cnN0ICs9IGZyb21JbnRlZ2VyUGFpci5maXJzdDsKLSAgICB0b0ludGVnZXJQYWlyLnNlY29uZCAr
PSBmcm9tSW50ZWdlclBhaXIuc2Vjb25kOworICAgIHRvLT5maXJzdC0+YXM8aW50PigpICs9IGZy
b20tPmZpcnN0LT5hczxpbnQ+KCk7CisgICAgdG8tPnNlY29uZC0+YXM8aW50PigpICs9IGZyb20t
PnNlY29uZC0+YXM8aW50PigpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVk
VHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVk
VHlwZSogYW5pbWF0ZWQpCkBAIC04OSwxMyArNzYsMTcgQEAgdm9pZCBTVkdBbmltYXRlZEludGVn
ZXJPcHRpb25hbEludGVnZXJBbgogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IHN0ZDo6cGFpcjxpbnQsIGlu
dD4mIGZyb21JbnRlZ2VyUGFpciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmludGVnZXJPcHRpb25hbEludGVnZXIoKSA6IGZy
b20tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBjb25zdCBzdGQ6OnBhaXI8aW50LCBp
bnQ+JiB0b0ludGVnZXJQYWlyID0gdG8tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBj
b25zdCBzdGQ6OnBhaXI8aW50LCBpbnQ+JiB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXJQYWlyID0g
dG9BdEVuZE9mRHVyYXRpb24tPmludGVnZXJPcHRpb25hbEludGVnZXIoKTsKLSAgICBzdGQ6OnBh
aXI8aW50LCBpbnQ+JiBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmludGVnZXJPcHRp
b25hbEludGVnZXIoKTsKKyAgICBjb25zdCBpbnQmIGZvcm1GaXJzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5h
czxpbnQ+KCkgOiBmcm9tLT5maXJzdC0+YXM8aW50PigpOworICAgIGNvbnN0IGludCYgZm9ybVNl
Y29uZCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9u
ID8gYW5pbWF0ZWQtPnNlY29uZC0+YXM8aW50PigpIDogZnJvbS0+c2Vjb25kLT5hczxpbnQ+KCk7
CisgICAgY29uc3QgaW50JiB0b0ZpcnN0ID0gdG8tPmZpcnN0LT5hczxpbnQ+KCk7CisgICAgY29u
c3QgaW50JiB0b1NlY29uZCA9IHRvLT5zZWNvbmQtPmFzPGludD4oKTsKKyAgICBjb25zdCBpbnQm
IHRvQXRFbmRPZkR1cmF0aW9uRmlyc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+Zmlyc3QtPmFzPGlu
dD4oKTsKKyAgICBjb25zdCBpbnQmIHRvQXRFbmRPZkR1cmF0aW9uU2Vjb25kID0gdG9BdEVuZE9m
RHVyYXRpb24tPnNlY29uZC0+YXM8aW50PigpOworICAgIGludCYgYW5pbWF0ZWRGaXJzdCA9IGFu
aW1hdGVkLT5maXJzdC0+YXM8aW50PigpOworICAgIGludCYgYW5pbWF0ZWRTZWNvbmQgPSBhbmlt
YXRlZC0+c2Vjb25kLT5hczxpbnQ+KCk7CiAKLSAgICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRv
cjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1fYW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGZyb21JbnRlZ2VyUGFpci5maXJzdCwgdG9JbnRlZ2VyUGFpci5maXJz
dCwgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpci5maXJzdCwgYW5pbWF0ZWRJbnRlZ2VyUGFp
ci5maXJzdCk7Ci0gICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBm
cm9tSW50ZWdlclBhaXIuc2Vjb25kLCB0b0ludGVnZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVy
YXRpb25JbnRlZ2VyUGFpci5zZWNvbmQsIGFuaW1hdGVkSW50ZWdlclBhaXIuc2Vjb25kKTsKKyAg
ICBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRJbnRlZ2VyKG1f
YW5pbWF0aW9uRWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZvcm1GaXJzdCwgdG9G
aXJzdCwgdG9BdEVuZE9mRHVyYXRpb25GaXJzdCwgYW5pbWF0ZWRGaXJzdCk7CisgICAgU1ZHQW5p
bWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlv
bkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmb3JtU2Vjb25kLCB0b1NlY29uZCwg
dG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAogZmxvYXQgU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNl
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZExlbmd0aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDEyICszNCwxMiBA
QCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlCiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNvbnN0cnVj
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoVmFsdWU+KG1f
bGVuZ3RoTW9kZSwgc3RyaW5nKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRl
KFNWR0xlbmd0aFZhbHVlKG1fbGVuZ3RoTW9kZSwgc3RyaW5nKSk7CiB9CiAKIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTGVuZ3RoKGNv
bnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFuaW1hdGVkVHlwZXMpKTsK
KyAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6c3RvcEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQpAQCAtNDgsNyArNDksNyBAQCB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0
b3I6OnN0b3BBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6cmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1
ZTxTVkdBbmltYXRlZExlbmd0aD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVkVHlw
ZTo6bGVuZ3RoKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRMZW5ndGg+KGFu
aW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoQW5pbWF0b3I6
OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKQEAgLTY3LDggKzY4LDggQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjphZGRBbmltYQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7
CiAKICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQobV9jb250ZXh0RWxlbWVudCk7
Ci0gICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aCA9IGZyb20tPmxlbmd0aCgpOwotICAgIGF1dG8m
IHRvTGVuZ3RoID0gdG8tPmxlbmd0aCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGggPSBm
cm9tLT5maXJzdC0+YXM8U1ZHTGVuZ3RoVmFsdWU+KCk7CisgICAgYXV0byYgdG9MZW5ndGggPSB0
by0+Zmlyc3QtPmFzPFNWR0xlbmd0aFZhbHVlPigpOwogCiAgICAgdG9MZW5ndGguc2V0VmFsdWUo
dG9MZW5ndGgudmFsdWUobGVuZ3RoQ29udGV4dCkgKyBmcm9tTGVuZ3RoLnZhbHVlKGxlbmd0aENv
bnRleHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KQEAgLTg1LDEwICs4NiwxMCBAQCB2b2lkIFNWR0Fu
aW1hdGVkTGVuZ3RoQW5pbWF0b3I6OmNhbGN1bGF0CiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxl
bWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9tU1ZH
TGVuZ3RoID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRp
b24gPyBhbmltYXRlZC0+bGVuZ3RoKCkgOiBmcm9tLT5sZW5ndGgoKTsKLSAgICBhdXRvIHRvU1ZH
TGVuZ3RoID0gdG8tPmxlbmd0aCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9u
U1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRpb24tPmxlbmd0aCgpOwotICAgIGF1dG8mIGFuaW1h
dGVkU1ZHTGVuZ3RoID0gYW5pbWF0ZWQtPmxlbmd0aCgpOworICAgIGF1dG8gZnJvbVNWR0xlbmd0
aCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQtPmZpcnN0LT5hczxTVkdMZW5ndGhWYWx1ZT4oKSA6IGZyb20tPmZpcnN0LT5hczxT
VkdMZW5ndGhWYWx1ZT4oKTsKKyAgICBhdXRvIHRvU1ZHTGVuZ3RoID0gdG8tPmZpcnN0LT5hczxT
VkdMZW5ndGhWYWx1ZT4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvblNWR0xl
bmd0aCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5maXJzdC0+YXM8U1ZHTGVuZ3RoVmFsdWU+KCk7Cisg
ICAgYXV0byYgYW5pbWF0ZWRTVkdMZW5ndGggPSBhbmltYXRlZC0+Zmlyc3QtPmFzPFNWR0xlbmd0
aFZhbHVlPigpOwogCiAgICAgLy8gQXBwbHkgQ1NTIGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5oZXJpdGFuY2U8U1ZHTGVuZ3RoVmFsdWU+KHBh
cnNlTGVuZ3RoRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1
ZVR5cGUoKSwgZnJvbVNWR0xlbmd0aCwgbV9jb250ZXh0RWxlbWVudCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTMzLDE0ICszNCwxMiBAQCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6
U1ZHQW5pbWF0CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVM
ZW5ndGhMaXN0KHN0ZDo6bWFrZV91bmlxdWU8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKSk7Ci0gICAg
YW5pbWF0ZWRUeXBlLT5sZW5ndGhMaXN0KCkucGFyc2Uoc3RyaW5nLCBtX2xlbmd0aE1vZGUpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3Jl
YXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKHN0
cmluZywgbV9sZW5ndGhNb2RlKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewot
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3QoY29uc3RydWN0RnJv
bUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICBy
ZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1h
dGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC01MCw3ICs0OSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OnN0b3AKIAogdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQogewotICAgIHJlc2V0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdB
bmltYXRlZFR5cGU6Omxlbmd0aExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmlt
YXRlZExlbmd0aExpc3Q+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC02OCw4ICs2Nyw4IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9
PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21MZW5ndGhMaXN0ID0gZnJvbS0+
bGVuZ3RoTGlzdCgpOwotICAgIGF1dG8mIHRvTGVuZ3RoTGlzdCA9IHRvLT5sZW5ndGhMaXN0KCk7
CisgICAgY29uc3QgYXV0byYgZnJvbUxlbmd0aExpc3QgPSBmcm9tLT5maXJzdC0+YXM8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiB0b0xlbmd0aExpc3QgPSB0by0+Zmlyc3QtPmFz
PFNWR0xlbmd0aExpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tTGVuZ3RoTGlzdFNp
emUgPSBmcm9tTGVuZ3RoTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTGVuZ3RoTGlzdFNpemUg
fHwgZnJvbUxlbmd0aExpc3RTaXplICE9IHRvTGVuZ3RoTGlzdC5zaXplKCkpCkBAIC03Nyw3ICs3
Niw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmFkZEEKIAogICAgIFNW
R0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbUxlbmd0aExpc3RTaXplOyArK2kpCi0gICAgICAgIHRv
TGVuZ3RoTGlzdFtpXS5zZXRWYWx1ZSh0b0xlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4
dCkgKyBmcm9tTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4
dCk7CisgICAgICAgIHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnNldFZhbHVlKHRvTGVuZ3Ro
TGlzdC5wcm9wZXJ0eUF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpICsgZnJvbUxlbmd0aExpc3Qu
cHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgbGVuZ3RoQ29udGV4dCk7CiB9CiAK
IHN0YXRpYyBTVkdMZW5ndGhMaXN0VmFsdWVzIHBhcnNlTGVuZ3RoTGlzdEZyb21TdHJpbmcoU1ZH
QW5pbWF0aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcp
CkBAIC05MiwxMCArOTEsMTAgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6
Y2FsYwogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIGF1dG8gZnJvbUxlbmd0aExpc3QgPSBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkLT5sZW5ndGhMaXN0
KCkgOiBmcm9tLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byB0b0xlbmd0aExpc3QgPSB0by0+bGVu
Z3RoTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9
IHRvQXRFbmRPZkR1cmF0aW9uLT5sZW5ndGhMaXN0KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRMZW5n
dGhMaXN0ID0gYW5pbWF0ZWQtPmxlbmd0aExpc3QoKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0
ID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBh
bmltYXRlZC0+Zmlyc3QtPmFzPFNWR0xlbmd0aExpc3RWYWx1ZXM+KCkgOiBmcm9tLT5maXJzdC0+
YXM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvIHRvTGVuZ3RoTGlzdCA9IHRvLT5m
aXJzdC0+YXM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5k
T2ZEdXJhdGlvbkxlbmd0aExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+Zmlyc3QtPmFzPFNWR0xl
bmd0aExpc3RWYWx1ZXM+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gYW5pbWF0
ZWQtPmZpcnN0LT5hczxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwogCiAgICAgLy8gQXBwbHkgQ1NT
IGluaGVyaXRhbmNlIHJ1bGVzLgogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YWRqdXN0Rm9ySW5o
ZXJpdGFuY2U8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4ocGFyc2VMZW5ndGhMaXN0RnJvbVN0cmluZywg
bV9hbmltYXRpb25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbUxlbmd0aExp
c3QsIG1fY29udGV4dEVsZW1lbnQpOwpAQCAtMTEwLDE4ICsxMDksMTggQEAgdm9pZCBTVkdBbmlt
YXRlZExlbmd0aExpc3RBbmltYXRvcjo6Y2FsYwogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5n
dGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCB0b0xlbmd0aExpc3RTaXplOyArK2kpIHsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIg
PSBhbmltYXRlZExlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7Ci0gICAgICAgIFNW
R0xlbmd0aFR5cGUgdW5pdFR5cGUgPSB0b0xlbmd0aExpc3RbaV0udW5pdFR5cGUoKTsKKyAgICAg
ICAgZmxvYXQgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZExlbmd0aExpc3QucHJvcGVydHlBdChp
KS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgU1ZHTGVuZ3RoVHlwZSB1bml0VHlwZSA9
IHRvTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVm
ZmVjdGl2ZUZyb20gPSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAg
ICAgICAgICBpZiAocGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9
IGZyb21MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9t
ID0gZnJvbUxlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAg
ICAgdW5pdFR5cGUgPSBmcm9tTGVuZ3RoTGlzdC5wcm9wZXJ0eUF0KGkpLnVuaXRUeXBlKCk7Cisg
ICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0aExpc3QucHJvcGVydHlBdChpKS52
YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICAgICAgfQotICAgICAgICBmbG9hdCBlZmZlY3RpdmVU
b0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5kT2ZEdXJhdGlv
bkxlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCkgOiAwOworICAgICAgICBmbG9hdCBl
ZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uTGlzdFNpemUgPyB0b0F0RW5k
T2ZEdXJhdGlvbkxlbmd0aExpc3QucHJvcGVydHlBdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6
IDA7CiAKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIo
cGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52
YWx1ZShsZW5ndGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwot
ICAgICAgICBhbmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5p
bWF0ZWROdW1iZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwg
ZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkudmFsdWUobGVuZ3RoQ29u
dGV4dCksIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyKTsKKyAgICAgICAgYW5pbWF0
ZWRMZW5ndGhMaXN0LnByb3BlcnR5QXQoaSkuc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0
ZWROdW1iZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOwogICAgIH0KIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9u
IExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMiwxNiArMzMsMTIgQEAgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6U1ZHQW5pbWF0ZWRO
dQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlckFu
aW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAg
IGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIoc3RkOjpt
YWtlX3VuaXF1ZTxmbG9hdD4oKSk7Ci0gICAgZmxvYXQmIGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0
ZWRUeXBlLT5udW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcs
IGFuaW1hdGVkTnVtYmVyKSkKLSAgICAgICAgYW5pbWF0ZWROdW1iZXIgPSAwOwotICAgIHJldHVy
biBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1By
b3BlcnR5VHJhaXRzPGZsb2F0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6c3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXIo
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykp
OworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkTnVtYmVyPihh
bmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC01MSw3ICs0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6c3RvcEFuaW0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZh
bHVlPFNWR0FuaW1hdGVkTnVtYmVyPihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRU
eXBlOjpudW1iZXIpOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZE51bWJlcj4o
YW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRv
cjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMTQgKzY2LDEyIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6YWRkQW5pbWEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVk
TnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAg
dG8tPm51bWJlcigpICs9IGZyb20tPm51bWJlcigpOworICAgIHRvLT5maXJzdC0+YXM8ZmxvYXQ+
KCkgKz0gZnJvbS0+Zmlyc3QtPmFzPGZsb2F0PigpOwogfQogCiBzdGF0aWMgZmxvYXQgcGFyc2VO
dW1iZXJGcm9tU3RyaW5nKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKLSAgICBmbG9hdCBudW1iZXIgPSAwOwotICAgIHBhcnNlTnVtYmVyRnJvbVN0cmluZyhz
dHJpbmcsIG51bWJlcik7Ci0gICAgcmV0dXJuIG51bWJlcjsKKyAgICByZXR1cm4gU1ZHUHJvcGVy
dHlUcmFpdHM8ZmxvYXQ+Ojpmcm9tU3RyaW5nKHN0cmluZyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0
ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRl
ZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRl
ZFR5cGUqIGFuaW1hdGVkKQpAQCAtODQsMTAgKzc5LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1i
ZXJBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAg
ICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBmbG9hdCBmcm9tTnVtYmVyID0gbV9h
bmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRl
ZC0+bnVtYmVyKCkgOiBmcm9tLT5udW1iZXIoKTsKLSAgICBmbG9hdCB0b051bWJlciA9IHRvLT5u
dW1iZXIoKTsKLSAgICBmbG9hdCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlciA9IHRvQXRFbmRPZkR1
cmF0aW9uLT5udW1iZXIoKTsKLSAgICBmbG9hdCYgYW5pbWF0ZWROdW1iZXIgPSBhbmltYXRlZC0+
bnVtYmVyKCk7CisgICAgZmxvYXQgZnJvbU51bWJlciA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5hczxmbG9hdD4o
KSA6IGZyb20tPmZpcnN0LT5hczxmbG9hdD4oKTsKKyAgICBmbG9hdCB0b051bWJlciA9IHRvLT5m
aXJzdC0+YXM8ZmxvYXQ+KCk7CisgICAgZmxvYXQgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXIgPSB0
b0F0RW5kT2ZEdXJhdGlvbi0+Zmlyc3QtPmFzPGZsb2F0PigpOworICAgIGZsb2F0JiBhbmltYXRl
ZE51bWJlciA9IGFuaW1hdGVkLT5maXJzdC0+YXM8ZmxvYXQ+KCk7CiAKICAgICAvLyBBcHBseSBD
U1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJ
bmhlcml0YW5jZTxmbG9hdD4ocGFyc2VOdW1iZXJGcm9tU3RyaW5nLCBtX2FuaW1hdGlvbkVsZW1l
bnQtPmZyb21Qcm9wZXJ0eVZhbHVlVHlwZSgpLCBmcm9tTnVtYmVyLCBtX2NvbnRleHRFbGVtZW50
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuY3Bw
CShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzIsMTQgKzMzLDEyIEBAIFNWR0FuaW1hdGVkTnVt
YmVyTGlzdEFuaW1hdG9yOjpTVkdBbmltYXQKIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmlt
YXRlZFR5cGU6OmNyZWF0ZU51bWJlckxpc3Qoc3RkOjptYWtlX3VuaXF1ZTxTVkdOdW1iZXJMaXN0
VmFsdWVzPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPm51bWJlckxpc3QoKS5wYXJzZShzdHJpbmcp
OwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5n
KHN0cmluZykpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmlt
YXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVOdW1iZXJMaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzKTsK
IH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQpAQCAtNDksNyArNDgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpz
dG9wCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRv
QmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlw
ZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZH
QW5pbWF0ZWROdW1iZXJMaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
OjpudW1iZXJMaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWROdW1iZXJM
aXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlckxp
c3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjcsMjUgKzY2LDI1IEBAIHZvaWQgU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmFkZEEKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09
IEFuaW1hdGVkTnVtYmVyTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlw
ZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gZnJvbS0+bnVtYmVyTGlz
dCgpOwotICAgIGF1dG8mIHRvTnVtYmVyTGlzdCA9IHRvLT5udW1iZXJMaXN0KCk7CisgICAgY29u
c3QgYXV0byYgZnJvbU51bWJlckxpc3QgPSBmcm9tLT5maXJzdC0+YXM8U1ZHTnVtYmVyTGlzdFZh
bHVlcz4oKTsKKyAgICBhdXRvJiB0b051bWJlckxpc3QgPSB0by0+Zmlyc3QtPmFzPFNWR051bWJl
ckxpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tTnVtYmVyTGlzdFNpemUgPSBmcm9t
TnVtYmVyTGlzdC5zaXplKCk7CiAgICAgaWYgKCFmcm9tTnVtYmVyTGlzdFNpemUgfHwgZnJvbU51
bWJlckxpc3RTaXplICE9IHRvTnVtYmVyTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTnVtYmVyTGlzdFNpemU7ICsraSkKLSAg
ICAgICAgdG9OdW1iZXJMaXN0W2ldICs9IGZyb21OdW1iZXJMaXN0W2ldOworICAgICAgICB0b051
bWJlckxpc3QucHJvcGVydHlBdChpKSArPSBmcm9tTnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpOwog
fQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRl
ZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVu
ZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCiB7CiAgICAgQVNTRVJUKG1f
YW5pbWF0aW9uRWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0
ZWQtPm51bWJlckxpc3QoKSA6IGZyb20tPm51bWJlckxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0
b051bWJlckxpc3QgPSB0by0+bnVtYmVyTGlzdCgpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRP
ZkR1cmF0aW9uTnVtYmVyTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5udW1iZXJMaXN0KCk7Ci0g
ICAgYXV0byYgYW5pbWF0ZWROdW1iZXJMaXN0ID0gYW5pbWF0ZWQtPm51bWJlckxpc3QoKTsKKyAg
ICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyTGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5hczxTVkdOdW1iZXJM
aXN0VmFsdWVzPigpIDogZnJvbS0+Zmlyc3QtPmFzPFNWR051bWJlckxpc3RWYWx1ZXM+KCk7Cisg
ICAgY29uc3QgYXV0byYgdG9OdW1iZXJMaXN0ID0gdG8tPmZpcnN0LT5hczxTVkdOdW1iZXJMaXN0
VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdCA9
IHRvQXRFbmRPZkR1cmF0aW9uLT5maXJzdC0+YXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKTsKKyAg
ICBhdXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBhbmltYXRlZC0+Zmlyc3QtPmFzPFNWR051bWJl
ckxpc3RWYWx1ZXM+KCk7CiAgICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21U
b0xpc3RWYWx1ZXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oZnJvbU51bWJlckxpc3QsIHRvTnVtYmVy
TGlzdCwgYW5pbWF0ZWROdW1iZXJMaXN0LCBwZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC05NCw5ICs5Myw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNh
bGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlv
bk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVt
YmVyTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51
bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxpc3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZl
Y3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0
aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0
b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7
CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9t
TnVtYmVyTGlzdC5wcm9wZXJ0eUF0KGkpIDogMDsKKyAgICAgICAgZmxvYXQgZWZmZWN0aXZlVG9B
dEVuZCA9IGkgPCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPyB0b0F0RW5kT2ZEdXJhdGlvbk51bWJl
ckxpc3QucHJvcGVydHlBdChpKSA6IDA7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9t
LCB0b051bWJlckxpc3QucHJvcGVydHlBdChpKSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWRO
dW1iZXJMaXN0LnByb3BlcnR5QXQoaSkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMywxOCArMzQsMTIgQEAgU1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOgogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0
ZDo6bWFrZV91bmlxdWU8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCkpOwotICAgIHN0ZDo6cGFp
cjxmbG9hdCwgZmxvYXQ+JiBhbmltYXRlZE51bWJlciA9IGFuaW1hdGVkVHlwZS0+bnVtYmVyT3B0
aW9uYWxOdW1iZXIoKTsKLSAgICBpZiAoIXBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoc3RyaW5n
LCBhbmltYXRlZE51bWJlci5maXJzdCwgYW5pbWF0ZWROdW1iZXIuc2Vjb25kKSkgewotICAgICAg
ICBhbmltYXRlZE51bWJlci5maXJzdCA9IDA7Ci0gICAgICAgIGFuaW1hdGVkTnVtYmVyLnNlY29u
ZCA9IDA7Ci0gICAgfQotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0Fu
aW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdCwgZmxv
YXQ+Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpzdGFydEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZU51bWJlck9w
dGlvbmFsTnVtYmVyKGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVyLCBT
VkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RG
cm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0ZWROdW1iZXI+KGFuaW1h
dGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmlt
YXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNTQsNyArNDksNyBAQCB2b2lkIFNWR0FuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25h
bE51bWJlckFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUp
CiB7Ci0gICAgcmVzZXRGcm9tQmFzZVZhbHVlczxTVkdBbmltYXRlZE51bWJlciwgU1ZHQW5pbWF0
ZWROdW1iZXI+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6Om51bWJlck9w
dGlvbmFsTnVtYmVyKTsKKyAgICByZXNldEZyb21CYXNlVmFsdWVzPFNWR0FuaW1hdGVkTnVtYmVy
LCBTVkdBbmltYXRlZE51bWJlcj4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03
MiwxMSArNjcsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAg
ICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3Qgc3Rk
OjpwYWlyPGZsb2F0LCBmbG9hdD4mIGZyb21OdW1iZXJQYWlyID0gZnJvbS0+bnVtYmVyT3B0aW9u
YWxOdW1iZXIoKTsKLSAgICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9OdW1iZXJQYWlyID0g
dG8tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0KLSAgICB0b051bWJlclBhaXIuZmlyc3QgKz0g
ZnJvbU51bWJlclBhaXIuZmlyc3Q7Ci0gICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBmcm9tTnVt
YmVyUGFpci5zZWNvbmQ7CisgICAgdG8tPmZpcnN0LT5hczxmbG9hdD4oKSArPSBmcm9tLT5maXJz
dC0+YXM8ZmxvYXQ+KCk7CisgICAgdG8tPnNlY29uZC0+YXM8ZmxvYXQ+KCkgKz0gZnJvbS0+c2Vj
b25kLT5hczxmbG9hdD4oKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5z
aWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBl
KiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvbiwgU1ZHQW5pbWF0ZWRUeXBl
KiBhbmltYXRlZCkKQEAgLTg0LDEzICs3NiwxNyBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3Qgc3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4mIGZyb21OdW1iZXJQYWlyID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKSA6ICBmcm9t
LT5udW1iZXJPcHRpb25hbE51bWJlcigpOwotICAgIGNvbnN0IHN0ZDo6cGFpcjxmbG9hdCwgZmxv
YXQ+JiB0b051bWJlclBhaXIgPSB0by0+bnVtYmVyT3B0aW9uYWxOdW1iZXIoKTsKLSAgICBjb25z
dCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyID0g
dG9BdEVuZE9mRHVyYXRpb24tPm51bWJlck9wdGlvbmFsTnVtYmVyKCk7Ci0gICAgc3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4mIGFuaW1hdGVkTnVtYmVyUGFpciA9IGFuaW1hdGVkLT5udW1iZXJPcHRp
b25hbE51bWJlcigpOworICAgIGNvbnN0IGF1dG8mIGZyb21GaXJzdCA9IG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5h
czxmbG9hdD4oKSA6IGZyb20tPmZpcnN0LT5hczxmbG9hdD4oKTsKKyAgICBjb25zdCBhdXRvJiBm
cm9tU2Vjb25kID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZC0+c2Vjb25kLT5hczxmbG9hdD4oKSA6IGZyb20tPnNlY29uZC0+YXM8
ZmxvYXQ+KCk7CisgICAgY29uc3QgYXV0byYgdG9GaXJzdCA9IHRvLT5maXJzdC0+YXM8ZmxvYXQ+
KCk7CisgICAgY29uc3QgYXV0byYgdG9TZWNvbmQgPSB0by0+c2Vjb25kLT5hczxmbG9hdD4oKTsK
KyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlvbkZpcnN0ID0gdG9BdEVuZE9mRHVyYXRp
b24tPmZpcnN0LT5hczxmbG9hdD4oKTsKKyAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJhdGlv
blNlY29uZCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5zZWNvbmQtPmFzPGZsb2F0PigpOworICAgIGF1
dG8mIGFuaW1hdGVkRmlyc3QgPSBhbmltYXRlZC0+Zmlyc3QtPmFzPGZsb2F0PigpOworICAgIGF1
dG8mIGFuaW1hdGVkU2Vjb25kID0gYW5pbWF0ZWQtPnNlY29uZC0+YXM8ZmxvYXQ+KCk7CiAKLSAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZnJvbU51bWJlclBhaXIuZmlyc3QsIHRvTnVtYmVyUGFpci5maXJzdCwgdG9B
dEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLmZpcnN0LCBhbmltYXRlZE51bWJlclBhaXIuZmlyc3Qp
OwotICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRh
Z2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5zZWNvbmQsIHRvTnVtYmVyUGFpci5zZWNv
bmQsIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpci5zZWNvbmQsIGFuaW1hdGVkTnVtYmVyUGFp
ci5zZWNvbmQpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVy
KHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tRmlyc3QsIHRvRmlyc3QsIHRvQXRFbmRPZkR1
cmF0aW9uRmlyc3QsIGFuaW1hdGVkRmlyc3QpOworICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tU2Vjb25kLCB0
b1NlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25TZWNvbmQsIGFuaW1hdGVkU2Vjb25kKTsKIH0KIAog
ZmxvYXQgU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVE
aXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMSwg
MjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw3ICsy
Myw2IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHUGF0
aFV0aWxpdGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDkgKzMzLDcgQEAg
U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OlNWR0FuaW1hdGVkUGF0aAogCiBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBhdXRvIGJ5dGVTdHJlYW0gPSBz
dGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU3RyaW5nKHN0cmluZywgKmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcp
OwotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGTW92ZShieXRlU3Ry
ZWFtKSk7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJh
aXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCkBAIC00Myw5ICs0MSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW0KICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0gMSk7CiAK
ICAgICAvLyBCdWlsZCBpbml0aWFsIHBhdGggYnl0ZSBzdHJlYW0uCi0gICAgYXV0byBieXRlU3Ry
ZWFtID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICByZXNldEFu
aW1WYWxUb0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgYnl0ZVN0cmVhbS5nZXQoKSk7Ci0gICAgcmV0
dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlUGF0aChXVEZNb3ZlKGJ5dGVTdHJlYW0pKTsKKyAg
ICBhdXRvIGFuaW1hdGVkVHlwZSA9IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlPFNWR1BhdGhCeXRl
U3RyZWFtPigpOworICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCAqYW5p
bWF0ZWRUeXBlKTsKKyAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwogfQogCiB2b2lkIFNWR0FuaW1h
dGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01OCw3ICs1Niw3IEBAIHZvaWQg
U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBSZWZQdHI8U1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9w
ZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPihh
bmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkpOwogICAgIGNvbnN0IGF1dG8mIGJh
c2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKLSAgICBidWlsZFNWR1Bh
dGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKGJhc2VWYWx1ZSwgKmJ5dGVTdHJl
YW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMoYmFzZVZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKSwg
KmJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPj4gcmVzdWx0OwogCkBAIC03Miw3ICs3
MCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVYKICAgICBpZiAo
IXJlc3VsdC5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVC
bG9ja2VyIGJsb2NrZXIoKnByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKICAgICAgICAgZm9y
IChhdXRvJiBzZWdtZW50IDogcmVzdWx0KQotICAgICAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9u
U3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIHNlZ21lbnQtPmFu
aW1hdGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJmJhc2VWYWx1ZS0+YXM8U1ZHUGF0aFNlZ0xpc3RW
YWx1ZXM+KCkpOwogICAgIH0KIH0KIApAQCAtODAsNyArNzgsNyBAQCB2b2lkIFNWR0FuaW1hdGVk
UGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6
ZSgpID49IDEpOwogICAgIEFTU0VSVCh0eXBlLnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIHJlc2V0
QW5pbVZhbFRvQmFzZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLnBhdGgoKSk7CisgICAgcmVzZXRB
bmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsICZ0eXBlLmZpcnN0LT5hczxTVkdQYXRoQnl0
ZVN0cmVhbT4oKSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRU
eXBlcykKQEAgLTk4LDEyICs5NiwxMiBAQCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjph
ZGRBbmltYXRlCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFBhdGgpOwogICAg
IEFTU0VSVChmcm9tLT50eXBlKCkgPT0gdG8tPnR5cGUoKSk7CiAKLSAgICBTVkdQYXRoQnl0ZVN0
cmVhbSogZnJvbVBhdGggPSBmcm9tLT5wYXRoKCk7Ci0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIHRv
UGF0aCA9IHRvLT5wYXRoKCk7Ci0gICAgdW5zaWduZWQgZnJvbVBhdGhTaXplID0gZnJvbVBhdGgt
PnNpemUoKTsKLSAgICBpZiAoIWZyb21QYXRoU2l6ZSB8fCBmcm9tUGF0aFNpemUgIT0gdG9QYXRo
LT5zaXplKCkpCisgICAgY29uc3QgYXV0byYgZnJvbVBhdGggPSBmcm9tLT5maXJzdC0+YXM8U1ZH
UGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgYXV0byYgdG9QYXRoID0gdG8tPmZpcnN0LT5hczxTVkdQ
YXRoQnl0ZVN0cmVhbT4oKTsKKyAgICB1bnNpZ25lZCBmcm9tUGF0aFNpemUgPSBmcm9tUGF0aC5z
aXplKCk7CisgICAgaWYgKCFmcm9tUGF0aFNpemUgfHwgZnJvbVBhdGhTaXplICE9IHRvUGF0aC5z
aXplKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRUb1NWR1BhdGhCeXRlU3RyZWFtKCp0b1Bh
dGgsICpmcm9tUGF0aCk7CisgICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSh0b1BhdGgsIGZyb21Q
YXRoKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0
ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRF
bmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQpAQCAtMTExLDM2ICsxMDks
MzUgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VS
VChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBmcm9tUGF0aCA9IGZyb20tPnBhdGgoKTsKLSAgICBTVkdQ
YXRoQnl0ZVN0cmVhbSogdG9QYXRoID0gdG8tPnBhdGgoKTsKLSAgICBTVkdQYXRoQnl0ZVN0cmVh
bSogdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gdG9BdEVuZE9mRHVyYXRpb24tPnBhdGgoKTsKLSAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSogYW5pbWF0ZWRQYXRoID0gYW5pbWF0ZWQtPnBhdGgoKTsKLQot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gdW5kZXJseWluZ1BhdGg7CiAg
ICAgYm9vbCBpc1RvQW5pbWF0aW9uID0gbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2Rl
KCkgPT0gVG9BbmltYXRpb247Ci0gICAgaWYgKGlzVG9BbmltYXRpb24pIHsKLSAgICAgICAgdW5k
ZXJseWluZ1BhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKLSAgICAgICAgZnJvbVBhdGggPSB1
bmRlcmx5aW5nUGF0aC5nZXQoKTsKLSAgICB9CisgICAgYXV0byYgYW5pbWF0ZWRQYXRoID0gYW5p
bWF0ZWQtPmZpcnN0LT5hczxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKKworICAgIFNWR1BhdGhCeXRl
U3RyZWFtIHVuZGVybHlpbmdBbmltYXRlZFBhdGg7CisgICAgaWYgKGlzVG9BbmltYXRpb24pCisg
ICAgICAgIHVuZGVybHlpbmdBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CisKKyAgICBjb25z
dCBhdXRvJiBmcm9tUGF0aCA9IGlzVG9BbmltYXRpb24gPyB1bmRlcmx5aW5nQW5pbWF0ZWRQYXRo
IDogZnJvbS0+Zmlyc3QtPmFzPFNWR1BhdGhCeXRlU3RyZWFtPigpOworICAgIGNvbnN0IGF1dG8m
IHRvUGF0aCA9IHRvLT5maXJzdC0+YXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KCk7CisgICAgY29uc3Qg
YXV0byYgdG9BdEVuZE9mRHVyYXRpb25QYXRoID0gdG9BdEVuZE9mRHVyYXRpb24tPmZpcnN0LT5h
czxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKIAogICAgIC8vIENhY2hlIHRoZSBjdXJyZW50IGFuaW1h
dGVkIHZhbHVlIGJlZm9yZSB0aGUgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCkgY2xl
YXJzIGFuaW1hdGVkUGF0aC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHUGF0aEJ5dGVTdHJlYW0+
IGxhc3RBbmltYXRlZFBhdGg7Ci0gICAgaWYgKCFmcm9tUGF0aC0+c2l6ZSgpIHx8IChtX2FuaW1h
dGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCi0gICAgICAgIGxh
c3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGgtPmNvcHkoKTsKKyAgICBTVkdQYXRoQnl0ZVN0
cmVhbSBsYXN0QW5pbWF0ZWRQYXRoOworICAgIGlmICghZnJvbVBhdGguc2l6ZSgpIHx8IChtX2Fu
aW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSAmJiAhaXNUb0FuaW1hdGlvbikpCisgICAgICAg
IGxhc3RBbmltYXRlZFBhdGggPSBhbmltYXRlZFBhdGg7CiAKICAgICAvLyBQYXNzIGZhbHNlIHRv
ICdyZXNpemVBbmltYXRlZExpc3RJZk5lZWRlZCcgaGVyZSwgYXMgdGhlIHBhdGggYW5pbWF0aW9u
IGlzIG5vdCBhIHJlZ3VsYXIgVmVjdG9yPFNWR1hYWD4gdHlwZSwgYnV0IGEgU1ZHUGF0aEJ5dGVT
dHJlYW0sIHRoYXQgd29ya3MgZGlmZmVyZW50bHkuCi0gICAgaWYgKCFtX2FuaW1hdGlvbkVsZW1l
bnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHUGF0aEJ5dGVTdHJlYW0+KCpmcm9tUGF0aCwg
KnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSwgZmFsc2UpKQorICAgIGlmICghbV9h
bmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BhdGhCeXRlU3RyZWFt
Pihmcm9tUGF0aCwgdG9QYXRoLCBhbmltYXRlZFBhdGgsIHBlcmNlbnRhZ2UsIGZhbHNlKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKCpmcm9t
UGF0aCwgKnRvUGF0aCwgKmFuaW1hdGVkUGF0aCwgcGVyY2VudGFnZSk7CisgICAgYnVpbGRBbmlt
YXRlZFNWR1BhdGhCeXRlU3RyZWFtKGZyb21QYXRoLCB0b1BhdGgsIGFuaW1hdGVkUGF0aCwgcGVy
Y2VudGFnZSk7CiAKICAgICAvLyBIYW5kbGUgYWRkaXRpdmU9J3N1bScuCi0gICAgaWYgKGxhc3RB
bmltYXRlZFBhdGgpCi0gICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oKmFuaW1hdGVkUGF0
aCwgKmxhc3RBbmltYXRlZFBhdGgpOworICAgIGlmICghbGFzdEFuaW1hdGVkUGF0aC5pc0VtcHR5
KCkpCisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5pbWF0ZWRQYXRoLCBsYXN0QW5p
bWF0ZWRQYXRoKTsKIAogICAgIC8vIEhhbmRsZSBhY2N1bXVsYXRlPSdzdW0nLgogICAgIGlmICht
X2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkKLSAgICAg
ICAgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbSgqYW5pbWF0ZWRQYXRoLCAqdG9BdEVuZE9mRHVyYXRp
b25QYXRoLCByZXBlYXRDb3VudCk7CisgICAgICAgIGFkZFRvU1ZHUGF0aEJ5dGVTdHJlYW0oYW5p
bWF0ZWRQYXRoLCB0b0F0RW5kT2ZEdXJhdGlvblBhdGgsIHJlcGVhdENvdW50KTsKIH0KIAogZmxv
YXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
b2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLCAyMDEy
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM0LDE0ICszNSwx
MiBAQCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpTVkdBbmltYXRlCiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgYXV0byBhbmlt
YXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBvaW50TGlzdChzdGQ6Om1ha2VfdW5p
cXVlPFNWR1BvaW50TGlzdFZhbHVlcz4oKSk7Ci0gICAgcG9pbnRzTGlzdEZyb21TVkdEYXRhKGFu
aW1hdGVkVHlwZS0+cG9pbnRMaXN0KCksIHN0cmluZyk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3Rh
cnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2lu
dExpc3QoY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0
ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVk
UG9pbnRMaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlz
dEFuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC01MSw3ICs1MCw3IEBAIHZvaWQgU1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6c3RvcEEKIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlz
dEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUG9pbnRMaXN0PihhbmltYXRlZFR5cGVz
LCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBlOjpwb2ludExpc3QpOworICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFBvaW50TGlzdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZv
aWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNjksMjUg
KzY4LDI1IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6YWRkQW4KICAgICBB
U1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkUG9pbnRzKTsKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9
IGZyb20tPnBvaW50TGlzdCgpOwotICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPnBvaW50TGlz
dCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21Qb2ludExpc3QgPSBmcm9tLT5maXJzdC0+YXM8U1ZH
UG9pbnRMaXN0VmFsdWVzPigpOworICAgIGF1dG8mIHRvUG9pbnRMaXN0ID0gdG8tPmZpcnN0LT5h
czxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CiAKICAgICB1bnNpZ25lZCBmcm9tUG9pbnRMaXN0U2l6
ZSA9IGZyb21Qb2ludExpc3Quc2l6ZSgpOwogICAgIGlmICghZnJvbVBvaW50TGlzdFNpemUgfHwg
ZnJvbVBvaW50TGlzdFNpemUgIT0gdG9Qb2ludExpc3Quc2l6ZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsraSkK
LSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAgdG9Q
b2ludExpc3QucHJvcGVydHlBdChpKSArPSBmcm9tUG9pbnRMaXN0LnByb3BlcnR5QXQoaSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqIHRvQXRFbmRP
ZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQogewogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQt
PnBvaW50TGlzdCgpIDogZnJvbS0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9Qb2lu
dExpc3QgPSB0by0+cG9pbnRMaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+cG9pbnRMaXN0KCk7Ci0gICAgYXV0byYg
YW5pbWF0ZWRQb2ludExpc3QgPSBhbmltYXRlZC0+cG9pbnRMaXN0KCk7CisgICAgY29uc3QgYXV0
byYgZnJvbVBvaW50TGlzdCA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPmZpcnN0LT5hczxTVkdQb2ludExpc3RWYWx1ZXM+KCkg
OiBmcm9tLT5maXJzdC0+YXM8U1ZHUG9pbnRMaXN0VmFsdWVzPigpOworICAgIGNvbnN0IGF1dG8m
IHRvUG9pbnRMaXN0ID0gdG8tPmZpcnN0LT5hczxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CisgICAg
Y29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlv
bi0+Zmlyc3QtPmFzPFNWR1BvaW50TGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiBhbmltYXRlZFBv
aW50TGlzdCA9IGFuaW1hdGVkLT5maXJzdC0+YXM8U1ZHUG9pbnRMaXN0VmFsdWVzPigpOwogICAg
IGlmICghbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGcm9tVG9MaXN0VmFsdWVzPFNWR1BvaW50
TGlzdFZhbHVlcz4oZnJvbVBvaW50TGlzdCwgdG9Qb2ludExpc3QsIGFuaW1hdGVkUG9pbnRMaXN0
LCBwZXJjZW50YWdlKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05OCwxNCArOTcsMTQgQEAgdm9p
ZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9hdFBvaW50IGVm
ZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAgICAgICAgICAg
IGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9hdFBvaW50IGVm
ZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVy
YXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBlZmZlY3RpdmVG
cm9tID0gZnJvbVBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpOworICAgICAgICBGbG9hdFBvaW50IGVm
ZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVy
YXRpb25Qb2ludExpc3QucHJvcGVydHlBdChpKSA6IEZsb2F0UG9pbnQoKTsKIAotICAgICAgICBm
bG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFBvaW50TGlzdFtpXS54KCk7Ci0gICAgICAgIGZsb2F0
IGFuaW1hdGVkWSA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLnkoKTsKLSAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20ueCgpLCB0b1BvaW50TGlzdFtpXS54KCksIGVmZmVjdGl2ZVRvQXRFbmQu
eCgpLCBhbmltYXRlZFgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRp
dGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS55KCksIHRv
UG9pbnRMaXN0W2ldLnkoKSwgZWZmZWN0aXZlVG9BdEVuZC55KCksIGFuaW1hdGVkWSk7Ci0gICAg
ICAgIGFuaW1hdGVkUG9pbnRMaXN0W2ldID0gRmxvYXRQb2ludChhbmltYXRlZFgsIGFuaW1hdGVk
WSk7CisgICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0LnByb3BlcnR5
QXQoaSkueCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlzdC5w
cm9wZXJ0eUF0KGkpLnkoKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRk
aXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueCgpLCB0
b1BvaW50TGlzdC5wcm9wZXJ0eUF0KGkpLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1h
dGVkWCk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVy
KHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3Qu
cHJvcGVydHlBdChpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOworICAg
ICAgICBhbmltYXRlZFBvaW50TGlzdC5wcm9wZXJ0eUF0KGkpID0gRmxvYXRQb2ludChhbmltYXRl
ZFgsIGFuaW1hdGVkWSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9BbmltYXRvcjo6CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6bWFrZV91bmlxdWU8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKTsKLSAgICBhbmltYXRlZFR5cGUtPnByZXNl
cnZlQXNwZWN0UmF0aW8oKS5wYXJzZShzdHJpbmcpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7
CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZVByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpKTsKKyAgICByZXR1
cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+
KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC00OCw3ICs0Nyw3IEBAIHZvaWQgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKIAogdm9pZCBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0
eXBlKQogewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUsICZTVkdBbmltYXRlZFR5cGU6OnByZXNlcnZlQXNw
ZWN0UmF0aW8pOworICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03MSw5ICs3MCw5IEBA
IHZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWEKICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBj
b25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQtPnByZXNlcnZlQXNwZWN0
UmF0aW8oKSA6IGZyb20tPnByZXNlcnZlQXNwZWN0UmF0aW8oKTsKLSAgICBjb25zdCBhdXRvJiB0
b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+cHJlc2VydmVBc3BlY3RSYXRpbygpOwotICAgIGF1
dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5wcmVzZXJ2ZUFzcGVj
dFJhdGlvKCk7CisgICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8gPSBtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVk
LT5maXJzdC0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpIDogZnJvbS0+Zmlyc3Qt
PmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsKKyAgICBjb25zdCBhdXRvJiB0b1By
ZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+Zmlyc3QtPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZT4oKTsKKyAgICBhdXRvJiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBhbmltYXRl
ZC0+Zmlyc3QtPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsKIAogICAgIG1fYW5p
bWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVzZXJ2ZUFzcGVjdFJhdGlvLCB0b1ByZXNlcnZlQXNw
ZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMyLDE0ICsz
MywxMiBAQCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0CiAKIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVSZWN0KHN0ZDo6bWFrZV91bmlxdWU8Rmxv
YXRSZWN0PigpKTsKLSAgICBwYXJzZVJlY3Qoc3RyaW5nLCBhbmltYXRlZFR5cGUtPnJlY3QoKSk7
Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5p
bWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6
Y3JlYXRlUmVjdChjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0
ZWRUeXBlcykpOworICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVk
UmVjdD4oYW5pbWF0ZWRUeXBlcyk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6
OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ5LDcgKzQ4LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RB
bmltYXRvcjo6c3RvcEFuaW1WYQogCiB2b2lkIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiB7Ci0gICAgcmVzZXRGcm9tQmFz
ZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlwZSwgJlNWR0FuaW1hdGVk
VHlwZTo6cmVjdCk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5p
bWF0ZWRUeXBlcywgdHlwZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFu
aW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcykKQEAgLTY3LDcgKzY2LDcgQEAgdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRv
cjo6YWRkQW5pbWF0ZQogICAgIEFTU0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRSZWN0KTsK
ICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgdG8tPnJlY3Qo
KSArPSBmcm9tLT5yZWN0KCk7CisgICAgdG8tPmZpcnN0LT5hczxGbG9hdFJlY3Q+KCkgKz0gZnJv
bS0+Zmlyc3QtPmFzPEZsb2F0UmVjdD4oKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFJlY3RBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBT
VkdBbmltYXRlZFR5cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1h
dGVkKQpAQCAtNzUsMTAgKzc0LDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNh
bGN1bGF0ZUEKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0ID0gbV9hbmlt
YXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+
cmVjdCgpIDogZnJvbS0+cmVjdCgpOwotICAgIGNvbnN0IEZsb2F0UmVjdCYgdG9SZWN0ID0gdG8t
PnJlY3QoKTsKLSAgICBjb25zdCBGbG9hdFJlY3QmIHRvQXRFbmRPZkR1cmF0aW9uUmVjdCA9IHRv
QXRFbmRPZkR1cmF0aW9uLT5yZWN0KCk7Ci0gICAgRmxvYXRSZWN0JiBhbmltYXRlZFJlY3QgPSBh
bmltYXRlZC0+cmVjdCgpOworICAgIGNvbnN0IGF1dG8mIGZyb21SZWN0ID0gbV9hbmltYXRpb25F
bGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBhbmltYXRlZC0+Zmlyc3Qt
PmFzPEZsb2F0UmVjdD4oKSA6IGZyb20tPmZpcnN0LT5hczxGbG9hdFJlY3Q+KCk7CisgICAgY29u
c3QgYXV0byYgdG9SZWN0ID0gdG8tPmZpcnN0LT5hczxGbG9hdFJlY3Q+KCk7CisgICAgY29uc3Qg
YXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPmZpcnN0LT5h
czxGbG9hdFJlY3Q+KCk7CisgICAgYXV0byYgYW5pbWF0ZWRSZWN0ID0gYW5pbWF0ZWQtPmZpcnN0
LT5hczxGbG9hdFJlY3Q+KCk7CiAKICAgICBmbG9hdCBhbmltYXRlZFggPSBhbmltYXRlZFJlY3Qu
eCgpOwogICAgIGZsb2F0IGFuaW1hdGVkWSA9IGFuaW1hdGVkUmVjdC55KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTMxLDE0ICszMiwxMiBAQCBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpTVkdBbmltYXRlZFN0
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkU3RyaW5nQW5p
bWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVN0cmluZyhzdGQ6Om1h
a2VfdW5pcXVlPFN0cmluZz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5zdHJpbmcoKSA9IHN0cmlu
ZzsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTdHJpbmc+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFN0cmluZ0Fu
aW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZVN0cmluZyhjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkU3RyaW5nPihh
bmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5n
QW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKQEAgLTQ4LDcgKzQ3LDcgQEAgdm9pZCBTVkdBbmlt
YXRlZFN0cmluZ0FuaW1hdG9yOjpzdG9wQW5pbQogCiB2b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMsIHR5cGUs
ICZTVkdBbmltYXRlZFR5cGU6OnN0cmluZyk7CisgICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0Fu
aW1hdGVkU3RyaW5nPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkBAIC03Niw5ICs3NSw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBTdHJpbmcgZnJv
bVN0cmluZyA9IGZyb20tPnN0cmluZygpOwotICAgIFN0cmluZyB0b1N0cmluZyA9IHRvLT5zdHJp
bmcoKTsKLSAgICBTdHJpbmcmIGFuaW1hdGVkU3RyaW5nID0gYW5pbWF0ZWQtPnN0cmluZygpOwor
ICAgIFN0cmluZyBmcm9tU3RyaW5nID0gZnJvbS0+Zmlyc3QtPmFzPFN0cmluZz4oKTsKKyAgICBT
dHJpbmcgdG9TdHJpbmcgPSB0by0+Zmlyc3QtPmFzPFN0cmluZz4oKTsKKyAgICBTdHJpbmcmIGFu
aW1hdGVkU3RyaW5nID0gYW5pbWF0ZWQtPmZpcnN0LT5hczxTdHJpbmc+KCk7CiAKICAgICAvLyBB
cHBseSBDU1MgaW5oZXJpdGFuY2UgcnVsZXMuCiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1
c3RGb3JJbmhlcml0YW5jZTxTdHJpbmc+KHBhcnNlU3RyaW5nRnJvbVN0cmluZywgbV9hbmltYXRp
b25FbGVtZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbVN0cmluZywgbV9jb250ZXh0
RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwx
MiBAQCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6U1ZHQW5pCiAKIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9y
Ojpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGF1dG8g
YW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVUcmFuc2Zvcm1MaXN0KHN0ZDo6
bWFrZV91bmlxdWU8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSk7Ci0gICAgYW5pbWF0ZWRUeXBl
LT50cmFuc2Zvcm1MaXN0KCkucGFyc2UobV90cmFuc2Zvcm1UeXBlU3RyaW5nICsgc3RyaW5nICsg
JyknKTsKLSAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlLT50cmFuc2Zvcm1MaXN0KCkuc2l6ZSgpIDw9
IDEpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7CisgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlw
ZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9t
U3RyaW5nKG1fdHJhbnNmb3JtVHlwZVN0cmluZyArIHN0cmluZyArICcpJykpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmlt
YXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKIHsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVUcmFuc2Zvcm1MaXN0KGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzKSk7CisgICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNl
VmFsdWU8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzKTsKIH0KIAogdm9p
ZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAt
NTksNyArNTYsNyBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpzCiAK
IHZvaWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMs
IFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKIHsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlLCAmU1ZHQW5pbWF0ZWRUeXBl
Ojp0cmFuc2Zvcm1MaXN0KTsKKyAgICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0PihhbmltYXRlZFR5cGVzLCB0eXBlKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpAQCAtNzcsMTUgKzc0LDE1IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICBBU1NFUlQoZnJvbS0+
dHlwZSgpID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm1MaXN0ID0g
ZnJvbS0+dHJhbnNmb3JtTGlzdCgpOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtTGlzdCA9IHRvLT50
cmFuc2Zvcm1MaXN0KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9t
LT5maXJzdC0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvJiB0b1RyYW5z
Zm9ybUxpc3QgPSB0by0+Zmlyc3QtPmFzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CiAgICAg
YXV0byBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7CiAg
ICAgaWYgKCFmcm9tVHJhbnNmb3JtTGlzdFNpemUgfHwgZnJvbVRyYW5zZm9ybUxpc3RTaXplICE9
IHRvVHJhbnNmb3JtTGlzdC5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChm
cm9tVHJhbnNmb3JtTGlzdFNpemUgPT0gMSk7Ci0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9y
bSA9IGZyb21UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFu
c2Zvcm1MaXN0WzBdOworICAgIGNvbnN0IGF1dG8mIGZyb21UcmFuc2Zvcm0gPSBmcm9tVHJhbnNm
b3JtTGlzdC5wcm9wZXJ0eUF0KDApOworICAgIGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zv
cm1MaXN0LnByb3BlcnR5QXQoMCk7CiAKICAgICBBU1NFUlQoZnJvbVRyYW5zZm9ybS50eXBlKCkg
PT0gdG9UcmFuc2Zvcm0udHlwZSgpKTsKICAgICB0b1RyYW5zZm9ybSA9IFNWR1RyYW5zZm9ybURp
c3RhbmNlOjphZGRTVkdUcmFuc2Zvcm1zKGZyb21UcmFuc2Zvcm0sIHRvVHJhbnNmb3JtKTsKQEAg
LTk4LDEwICs5NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpj
CiAgICAgLy8gU3BlYzogVG8gYW5pbWF0aW9ucyBwcm92aWRlIHNwZWNpZmljIGZ1bmN0aW9uYWxp
dHkgdG8gZ2V0IGEgc21vb3RoIGNoYW5nZSBmcm9tIHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIHRo
ZQogICAgIC8vIOKAmHRv4oCZIGF0dHJpYnV0ZSB2YWx1ZSwgd2hpY2ggY29uZmxpY3RzIG1hdGhl
bWF0aWNhbGx5IHdpdGggdGhlIHJlcXVpcmVtZW50IGZvciBhZGRpdGl2ZSB0cmFuc2Zvcm0gYW5p
bWF0aW9ucwogICAgIC8vIHRvIGJlIHBvc3QtbXVsdGlwbGllZC4gQXMgYSBjb25zZXF1ZW5jZSwg
aW4gU1ZHIDEuMSB0aGUgYmVoYXZpb3Igb2YgdG8gYW5pbWF0aW9ucyBmb3Ig4oCYYW5pbWF0ZVRy
YW5zZm9ybeKAmSBpcyB1bmRlZmluZWQuCi0gICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxp
c3QgPSBmcm9tLT50cmFuc2Zvcm1MaXN0KCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm1M
aXN0ID0gdG8tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJh
dGlvblRyYW5zZm9ybUxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+dHJhbnNmb3JtTGlzdCgpOwot
ICAgIGF1dG8mIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT50cmFuc2Zvcm1MaXN0
KCk7CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybUxpc3QgPSBmcm9tLT5maXJzdC0+YXM8
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybUxp
c3QgPSB0by0+Zmlyc3QtPmFzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CisgICAgY29uc3Qg
YXV0byYgdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0ID0gdG9BdEVuZE9mRHVyYXRpb24t
PmZpcnN0LT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOworICAgIGF1dG8mIGFuaW1hdGVk
VHJhbnNmb3JtTGlzdCA9IGFuaW1hdGVkLT5maXJzdC0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cz4oKTsKIAogICAgIC8vIFBhc3MgZmFsc2UgdG8gJ3Jlc2l6ZUFuaW1hdGVkTGlzdElmTmVlZGVk
JyBoZXJlLCBhcyB0aGUgc3BlY2lhbCBwb3N0LW11bHRpcGxpY2F0aW9uIGJlaGF2aW9yIG9mIDxh
bmltYXRlVHJhbnNmb3JtPiBuZWVkcyB0byBiZSByZXNwZWN0ZWQgYmVsb3cuCiAgICAgaWYgKCFt
X2FuaW1hdGlvbkVsZW1lbnQtPmFkanVzdEZyb21Ub0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz4oZnJvbVRyYW5zZm9ybUxpc3QsIHRvVHJhbnNmb3JtTGlzdCwgYW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0LCBwZXJjZW50YWdlLCBmYWxzZSkpCkBAIC0xMTIsMTQgKzEwOSwxNCBAQCB2b2lk
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjCiAgICAgICAgIGFuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jbGVhcigpOwogCiAgICAgYXV0byBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPSBm
cm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7Ci0gICAgY29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0
b1RyYW5zZm9ybUxpc3RbMF07Ci0gICAgY29uc3QgYXV0byBlZmZlY3RpdmVGcm9tID0gZnJvbVRy
YW5zZm9ybUxpc3RTaXplID8gZnJvbVRyYW5zZm9ybUxpc3RbMF0gOiBTVkdUcmFuc2Zvcm1WYWx1
ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJh
bnNmb3JtKTsKKyAgICBjb25zdCBhdXRvJiB0b1RyYW5zZm9ybSA9IHRvVHJhbnNmb3JtTGlzdC5w
cm9wZXJ0eUF0KDApOworICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zv
cm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkgOiBTVkdUcmFuc2Zv
cm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZhbHVlOjpDb25zdHJ1Y3Ra
ZXJvVHJhbnNmb3JtKTsKICAgICBhdXRvIGN1cnJlbnRUcmFuc2Zvcm0gPSBTVkdUcmFuc2Zvcm1E
aXN0YW5jZShlZmZlY3RpdmVGcm9tLCB0b1RyYW5zZm9ybSkuc2NhbGVkRGlzdGFuY2UocGVyY2Vu
dGFnZSkuYWRkVG9TVkdUcmFuc2Zvcm0oZWZmZWN0aXZlRnJvbSk7CiAgICAgaWYgKG1fYW5pbWF0
aW9uRWxlbWVudC0+aXNBY2N1bXVsYXRlZCgpICYmIHJlcGVhdENvdW50KSB7Ci0gICAgICAgIGNv
bnN0IGF1dG8gZWZmZWN0aXZlVG9BdEVuZCA9IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlz
dC5zaXplKCkgPyB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3RbMF0gOiBTVkdUcmFuc2Zv
cm1WYWx1ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZhbHVlOjpDb25zdHJ1Y3Ra
ZXJvVHJhbnNmb3JtKTsKLSAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmFwcGVuZChTVkdU
cmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJhbnNmb3JtcyhjdXJyZW50VHJhbnNmb3JtLCBlZmZl
Y3RpdmVUb0F0RW5kLCByZXBlYXRDb3VudCkpOworICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2
ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVu
ZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnByb3BlcnR5QXQoMCkgOiBTVkdUcmFuc2Zvcm1WYWx1
ZSh0b1RyYW5zZm9ybS50eXBlKCksIFNWR1RyYW5zZm9ybVZhbHVlOjpDb25zdHJ1Y3RaZXJvVHJh
bnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmFwcGVuZChTVkdWYWx1ZTo6
Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihTVkdUcmFuc2Zvcm1EaXN0YW5jZTo6YWRkU1ZHVHJh
bnNmb3JtcyhjdXJyZW50VHJhbnNmb3JtLCBlZmZlY3RpdmVUb0F0RW5kLCByZXBlYXRDb3VudCkp
KTsKICAgICB9IGVsc2UKLSAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmFwcGVuZChjdXJy
ZW50VHJhbnNmb3JtKTsKKyAgICAgICAgYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPihjdXJyZW50VHJhbnNmb3JtKSk7CiB9CiAK
IGZsb2F0IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5j
ZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCkBAIC0x
MzEsMjAgKzEyOCwyMCBAQCBmbG9hdCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6
CiAgICAgYXV0byBmcm9tID0gY29uc3RydWN0RnJvbVN0cmluZyhmcm9tU3RyaW5nKTsKICAgICBh
dXRvIHRvID0gY29uc3RydWN0RnJvbVN0cmluZyh0b1N0cmluZyk7CiAKLSAgICBhdXRvJiBmcm9t
VHJhbnNmb3JtTGlzdCA9IGZyb20tPnRyYW5zZm9ybUxpc3QoKTsKLSAgICBhdXRvJiB0b1RyYW5z
Zm9ybUxpc3QgPSB0by0+dHJhbnNmb3JtTGlzdCgpOworICAgIGF1dG8mIGZyb21UcmFuc2Zvcm1M
aXN0ID0gZnJvbS0+Zmlyc3QtPmFzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCk7CisgICAgYXV0
byYgdG9UcmFuc2Zvcm1MaXN0ID0gdG8tPmZpcnN0LT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
PigpOwogICAgIHVuc2lnbmVkIGl0ZW1zQ291bnQgPSBmcm9tVHJhbnNmb3JtTGlzdC5zaXplKCk7
CiAgICAgaWYgKCFpdGVtc0NvdW50IHx8IGl0ZW1zQ291bnQgIT0gdG9UcmFuc2Zvcm1MaXN0LnNp
emUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgQVNTRVJUKGl0ZW1zQ291bnQgPT0gMSk7
Ci0gICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0WzBdLnR5cGUoKSAhPSB0b1RyYW5zZm9ybUxpc3Rb
MF0udHlwZSgpKQorICAgIGlmIChmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLnR5cGUo
KSAhPSB0b1RyYW5zZm9ybUxpc3QucHJvcGVydHlBdCgwKS50eXBlKCkpCiAgICAgICAgIHJldHVy
biAtMTsKIAogICAgIC8vIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmltYXRlLmh0
bWwjY29tcGxleERpc3RhbmNlcwogICAgIC8vIFBhY2VkIGFuaW1hdGlvbnMgYXNzdW1lIGEgbm90
aW9uIG9mIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZhcmlvdXMgYW5pbWF0aW9uIHZhbHVlcyBkZWZp
bmVkIGJ5IHRoZSDigJh0b+KAmSwg4oCYZnJvbeKAmSwg4oCYYnnigJkgYW5kIOKAmHZhbHVlc+KA
mSBhdHRyaWJ1dGVzLgogICAgIC8vIERpc3RhbmNlIGlzIGRlZmluZWQgb25seSBmb3Igc2NhbGFy
IHR5cGVzIChzdWNoIGFzIDxsZW5ndGg+KSwgY29sb3JzIGFuZCB0aGUgc3Vic2V0IG9mIHRyYW5z
Zm9ybWF0aW9uIHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSDigJhhbmltYXRlVHJhbnNmb3Jt
4oCZLgotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdFsw
XSwgdG9UcmFuc2Zvcm1MaXN0WzBdKS5kaXN0YW5jZSgpOworICAgIHJldHVybiBTVkdUcmFuc2Zv
cm1EaXN0YW5jZShmcm9tVHJhbnNmb3JtTGlzdC5wcm9wZXJ0eUF0KDApLCB0b1RyYW5zZm9ybUxp
c3QucHJvcGVydHlBdCgwKSkuZGlzdGFuY2UoKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkVHlwZS5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFR5cGUuY3BwCShub25leGlzdGVudCkKQEAgLTEsMzI3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTVkdB
bmltYXRlZFR5cGUuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIlNWR1Bh
cnNlclV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRUeXBlOjpTVkdBbmltYXRlZFR5cGUoQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKLSAgICA6IG1fdHlwZSh0eXBlKQotewotfQotCi1TVkdBbmlt
YXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUoKQotewotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0g
ICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgICAgICBkZWxldGUgbV9kYXRhLmFuZ2xlQW5kRW51
bWVyYXRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRCb29sZWFuOgotICAg
ICAgICBkZWxldGUgbV9kYXRhLmJvb2xlYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5p
bWF0ZWRDb2xvcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5jb2xvcjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgICAgICBkZWxldGUgbV9kYXRhLmVu
dW1lcmF0aW9uOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAg
ICAgICAgZGVsZXRlIG1fZGF0YS5pbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcjoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5pbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkTGVu
Z3RoOgotICAgICAgICBkZWxldGUgbV9kYXRhLmxlbmd0aDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBbmltYXRlZExlbmd0aExpc3Q6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEubGVuZ3RoTGlz
dDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAgZGVs
ZXRlIG1fZGF0YS5udW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWROdW1i
ZXJMaXN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLm51bWJlckxpc3Q7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICAgICAgZGVsZXRl
IG1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBB
bmltYXRlZFBhdGg6Ci0gICAgICAgIGRlbGV0ZSBtX2RhdGEucGF0aDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBbmltYXRlZFBvaW50czoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS5wb2ludExp
c3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
OgotICAgICAgICBkZWxldGUgbV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgICAgICBkZWxldGUgbV9kYXRhLnJlY3Q7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6Ci0gICAgICAgIGRlbGV0
ZSBtX2RhdGEuc3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVHJhbnNm
b3JtTGlzdDoKLSAgICAgICAgZGVsZXRlIG1fZGF0YS50cmFuc2Zvcm1MaXN0OwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0
ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PiBhbmdsZUFu
ZEVudW1lcmF0aW9uKQotewotICAgIEFTU0VSVChhbmdsZUFuZEVudW1lcmF0aW9uKTsKLSAgICBh
dXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmlt
YXRlZEFuZ2xlKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9u
ID0gYW5nbGVBbmRFbnVtZXJhdGlvbi5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlw
ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBl
OjpjcmVhdGVCb29sZWFuKHN0ZDo6dW5pcXVlX3B0cjxib29sPiBib29sZWFuKQotewotICAgIEFT
U0VSVChib29sZWFuKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8
U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEJvb2xlYW4pOwotICAgIGFuaW1hdGVkVHlwZS0+bV9k
YXRhLmJvb2xlYW4gPSBib29sZWFuLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZUNvbG9yKHN0ZDo6dW5pcXVlX3B0cjxDb2xvcj4gY29sb3IpCi17Ci0gICAgQVNTRVJU
KGNvbG9yKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5p
bWF0ZWRUeXBlPihBbmltYXRlZENvbG9yKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5jb2xv
ciA9IGNvbG9yLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZUVudW1l
cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjx1bnNpZ25lZD4gZW51bWVyYXRpb24pCi17Ci0gICAgQVNT
RVJUKGVudW1lcmF0aW9uKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEVudW1lcmF0aW9uKTsKLSAgICBhbmltYXRlZFR5
cGUtPm1fZGF0YS5lbnVtZXJhdGlvbiA9IGVudW1lcmF0aW9uLnJlbGVhc2UoKTsKLSAgICByZXR1
cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZUludGVnZXIoc3RkOjp1bmlxdWVfcHRyPGludD4gaW50ZWdl
cikKLXsKLSAgICBBU1NFUlQoaW50ZWdlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRJbnRlZ2VyKTsKLSAgICBhbmlt
YXRlZFR5cGUtPm1fZGF0YS5pbnRlZ2VyID0gaW50ZWdlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJu
IGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRUeXBlOjpjcmVhdGVJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0
cjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKQotewotICAgIEFT
U0VSVChpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0
ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXIpOwotICAgIGFuaW1hdGVkVHlwZS0+bV9kYXRhLmludGVnZXJPcHRpb25hbEludGVnZXIg
PSBpbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRU
eXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5
cGU6OmNyZWF0ZUxlbmd0aChzdGQ6OnVuaXF1ZV9wdHI8U1ZHTGVuZ3RoVmFsdWU+IGxlbmd0aCkK
LXsKLSAgICBBU1NFUlQobGVuZ3RoKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZExlbmd0aCk7Ci0gICAgYW5pbWF0ZWRU
eXBlLT5tX2RhdGEubGVuZ3RoID0gbGVuZ3RoLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZFR5cGU6OmNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1
ZXM+IGxlbmd0aExpc3QpCi17Ci0gICAgQVNTRVJUKGxlbmd0aExpc3QpOwotICAgIGF1dG8gYW5p
bWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkTGVu
Z3RoTGlzdCk7Ci0gICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubGVuZ3RoTGlzdCA9IGxlbmd0aExp
c3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyKHN0ZDo6
dW5pcXVlX3B0cjxmbG9hdD4gbnVtYmVyKQotewotICAgIEFTU0VSVChudW1iZXIpOwotICAgIGF1
dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1h
dGVkTnVtYmVyKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5udW1iZXIgPSBudW1iZXIucmVs
ZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlTnVtYmVyTGlzdChzdGQ6OnVu
aXF1ZV9wdHI8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gbnVtYmVyTGlzdCkKLXsKLSAgICBBU1NFUlQo
bnVtYmVyTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5udW1iZXJMaXN0ID0gbnVtYmVyTGlzdC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1h
dGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGVOdW1iZXJPcHRpb25hbE51bWJlcihzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpw
YWlyPGZsb2F0LCBmbG9hdD4+IG51bWJlck9wdGlvbmFsTnVtYmVyKQotewotICAgIEFTU0VSVChu
dW1iZXJPcHRpb25hbE51bWJlcik7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcik7Ci0g
ICAgYW5pbWF0ZWRUeXBlLT5tX2RhdGEubnVtYmVyT3B0aW9uYWxOdW1iZXIgPSBudW1iZXJPcHRp
b25hbE51bWJlci5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQYXRo
KHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4gcGF0aCkKLXsKLSAgICBBU1NFUlQo
cGF0aCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkVHlwZT4oQW5pbWF0ZWRQYXRoKTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5wYXRoID0g
cGF0aC5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVQb2ludExpc3Qo
c3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4gcG9pbnRMaXN0KQotewotICAgIEFT
U0VSVChwb2ludExpc3QpOwotICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1
ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkUG9pbnRzKTsKLSAgICBhbmltYXRlZFR5cGUtPm1f
ZGF0YS5wb2ludExpc3QgPSBwb2ludExpc3QucmVsZWFzZSgpOwotICAgIHJldHVybiBhbmltYXRl
ZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVk
VHlwZTo6Y3JlYXRlUHJlc2VydmVBc3BlY3RSYXRpbyhzdGQ6OnVuaXF1ZV9wdHI8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotICAgIEFTU0VSVChw
cmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICBhdXRvIGFuaW1hdGVkVHlwZSA9IHN0ZDo6bWFrZV91
bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAg
IGFuaW1hdGVkVHlwZS0+bV9kYXRhLnByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVzZXJ2ZUFzcGVj
dFJhdGlvLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVJlY3Qoc3Rk
Ojp1bmlxdWVfcHRyPEZsb2F0UmVjdD4gcmVjdCkKLXsKLSAgICBBU1NFUlQocmVjdCk7Ci0gICAg
YXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oQW5p
bWF0ZWRSZWN0KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5yZWN0ID0gcmVjdC5yZWxlYXNl
KCk7Ci0gICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVTdHJpbmcoc3RkOjp1bmlxdWVfcHRy
PFN0cmluZz4gc3RyaW5nKQotewotICAgIEFTU0VSVChzdHJpbmcpOwotICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KEFuaW1hdGVkU3RyaW5n
KTsKLSAgICBhbmltYXRlZFR5cGUtPm1fZGF0YS5zdHJpbmcgPSBzdHJpbmcucmVsZWFzZSgpOwot
ICAgIHJldHVybiBhbmltYXRlZFR5cGU7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlVHJhbnNmb3JtTGlzdChzdGQ6OnVuaXF1ZV9w
dHI8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gdHJhbnNmb3JtTGlzdCkKLXsKLSAgICBBU1NFUlQo
dHJhbnNmb3JtTGlzdCk7Ci0gICAgYXV0byBhbmltYXRlZFR5cGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAgICBhbmltYXRlZFR5
cGUtPm1fZGF0YS50cmFuc2Zvcm1MaXN0ID0gdHJhbnNmb3JtTGlzdC5yZWxlYXNlKCk7Ci0gICAg
cmV0dXJuIGFuaW1hdGVkVHlwZTsKLX0KLQotU3RyaW5nIFNWR0FuaW1hdGVkVHlwZTo6dmFsdWVB
c1N0cmluZygpCi17Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQ29s
b3I6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuY29sb3IpOwotICAgICAgICByZXR1cm4gbV9kYXRh
LmNvbG9yLT5zZXJpYWxpemVkKCk7Ci0gICAgY2FzZSBBbmltYXRlZExlbmd0aDoKLSAgICAgICAg
QVNTRVJUKG1fZGF0YS5sZW5ndGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aC0+dmFs
dWVBc1N0cmluZygpOwotICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NF
UlQobV9kYXRhLmxlbmd0aExpc3QpOwotICAgICAgICByZXR1cm4gbV9kYXRhLmxlbmd0aExpc3Qt
PnZhbHVlQXNTdHJpbmcoKTsKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyOgotICAgICAgICBBU1NF
UlQobV9kYXRhLm51bWJlcik7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcigqbV9kYXRh
Lm51bWJlcik7Ci0gICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEu
cmVjdCk7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+eCgpKSAr
ICcgJyArIFN0cmluZzo6bnVtYmVyKG1fZGF0YS5yZWN0LT55KCkpICsgJyAnCi0gICAgICAgICAg
ICAgKyBTdHJpbmc6Om51bWJlcihtX2RhdGEucmVjdC0+d2lkdGgoKSkgKyAnICcgKyBTdHJpbmc6
Om51bWJlcihtX2RhdGEucmVjdC0+aGVpZ2h0KCkpOwotICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6
Ci0gICAgICAgIEFTU0VSVChtX2RhdGEuc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
c3RyaW5nOwotCi0gICAgLy8gVGhlc2UgdHlwZXMgZG9uJ3QgYXBwZWFyIGluIHRoZSB0YWJsZSBp
biBTVkdFbGVtZW50Ojpjc3NQcm9wZXJ0eVRvVHlwZU1hcCgpIGFuZCB0aHVzIGRvbid0IG5lZWQg
dmFsdWVBc1N0cmluZygpIHN1cHBvcnQuCi0gICAgY2FzZSBBbmltYXRlZEFuZ2xlOgotICAgIGNh
c2UgQW5pbWF0ZWRCb29sZWFuOgotICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKLSAgICBj
YXNlIEFuaW1hdGVkSW50ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50
ZWdlcjoKLSAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkTnVt
YmVyT3B0aW9uYWxOdW1iZXI6Ci0gICAgY2FzZSBBbmltYXRlZFBhdGg6Ci0gICAgY2FzZSBBbmlt
YXRlZFBvaW50czoKLSAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICBj
YXNlIEFuaW1hdGVkVHJhbnNmb3JtTGlzdDoKLSAgICBjYXNlIEFuaW1hdGVkVW5rbm93bjoKLSAg
ICAgICAgLy8gT25seSBTVkcgRE9NIGFuaW1hdGlvbnMgdXNlIHRoZXNlIHByb3BlcnR5IHR5cGVz
IC0gdGhhdCBtZWFucyB2YWx1ZUFzU3RyaW5nKCkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhvc2UuCi0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1ib29sIFNW
R0FuaW1hdGVkVHlwZTo6c2V0VmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAg
IGNhc2UgQW5pbWF0ZWRDb2xvcjoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5jb2xvcik7Ci0gICAg
ICAgICptX2RhdGEuY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IodmFsdWUuc3RyaXBXaGl0
ZVNwYWNlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3Ro
OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiAhbV9kYXRh
Lmxlbmd0aC0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSwgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1v
ZGVGb3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOwot
ICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGhMaXN0OgotICAgICAgICBBU1NFUlQobV9kYXRhLmxlbmd0
aExpc3QpOwotICAgICAgICBtX2RhdGEubGVuZ3RoTGlzdC0+cGFyc2UodmFsdWUsIFNWR0xlbmd0
aFZhbHVlOjpsZW5ndGhNb2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmltYXRlZE51bWJlcjoKLSAgICAgICAg
QVNTRVJUKG1fZGF0YS5udW1iZXIpOwotICAgICAgICBwYXJzZU51bWJlckZyb21TdHJpbmcodmFs
dWUsICptX2RhdGEubnVtYmVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBbmlt
YXRlZFJlY3Q6Ci0gICAgICAgIEFTU0VSVChtX2RhdGEucmVjdCk7Ci0gICAgICAgIHBhcnNlUmVj
dCh2YWx1ZSwgKm1fZGF0YS5yZWN0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBB
bmltYXRlZFN0cmluZzoKLSAgICAgICAgQVNTRVJUKG1fZGF0YS5zdHJpbmcpOwotICAgICAgICAq
bV9kYXRhLnN0cmluZyA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIFRo
ZXNlIHR5cGVzIGRvbid0IGFwcGVhciBpbiB0aGUgdGFibGUgaW4gU1ZHRWxlbWVudDo6Y3NzUHJv
cGVydHlUb1R5cGVNYXAoKSBhbmQgdGh1cyBkb24ndCBuZWVkIHNldFZhbHVlQXNTdHJpbmcoKSBz
dXBwb3J0LiAKLSAgICBjYXNlIEFuaW1hdGVkQW5nbGU6Ci0gICAgY2FzZSBBbmltYXRlZEJvb2xl
YW46Ci0gICAgY2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRl
Z2VyOgotICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgotICAgIGNhc2Ug
QW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
cjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgotICAg
IGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgotICAgIGNhc2UgQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0OgotICAgIGNhc2UgQW5pbWF0ZWRVbmtub3duOgotICAgICAgICAvLyBPbmx5IFNW
RyBET00gYW5pbWF0aW9ucyB1c2UgdGhlc2UgcHJvcGVydHkgdHlwZXMgLSB0aGF0IG1lYW5zIHNl
dFZhbHVlQXNTdHJpbmcoKSBpcyBuZXZlciB1c2VkIGZvciB0aG9zZS4KLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotYm9vbCBTVkdBbmltYXRlZFR5cGU6OnN1cHBvcnRzQW5pbVZhbChBbmltYXRlZFByb3Bl
cnR5VHlwZSB0eXBlKQotewotICAgIC8vIEFuaW1hdGVkQ29sb3IgaXMgb25seSB1c2VkIGZvciBD
U1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KLSAgICByZXR1cm4gdHlwZSAhPSBBbmltYXRlZFVua25v
d24gJiYgdHlwZSAhPSBBbmltYXRlZENvbG9yOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBl
LmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRUeXBlLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMjg0ICsyMCwxNTMgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgotI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdMZW5ndGhMaXN0VmFs
dWVzLmgiCi0jaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdOdW1iZXJM
aXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAiU1ZHUG9pbnRMaXN0VmFsdWVzLmgiCi0jaW5jbHVkZSAi
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlJbmZv
LmgiCi0jaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgorI2luY2x1ZGUgIlNWR1Zh
bHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUGF0aEJ5dGVTdHJlYW07
Ci0KLWNsYXNzIFNWR0FuaW1hdGVkVHlwZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKEFuaW1hdGVkUHJvcGVydHlUeXBlKTsKLSAg
ICB2aXJ0dWFsIH5TVkdBbmltYXRlZFR5cGUoKTsKLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVBbmdsZUFuZEVudW1lcmF0aW9uKHN0ZDo6dW5pcXVl
X3B0cjxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+Pik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUJvb2xlYW4oc3RkOjp1bmlxdWVf
cHRyPGJvb2w+KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y3JlYXRlQ29sb3Ioc3RkOjp1bmlxdWVfcHRyPENvbG9yPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZUVudW1lcmF0aW9uKHN0ZDo6dW5pcXVlX3B0
cjx1bnNpZ25lZD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBjcmVhdGVJbnRlZ2VyKHN0ZDo6dW5pcXVlX3B0cjxpbnQ+KTsKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlSW50ZWdlck9wdGlvbmFsSW50ZWdlcihz
dGQ6OnVuaXF1ZV9wdHI8c3RkOjpwYWlyPGludCwgaW50Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVMZW5ndGgoc3RkOjp1bmlxdWVfcHRyPFNW
R0xlbmd0aFZhbHVlPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZUxlbmd0aExpc3Qoc3RkOjp1bmlxdWVfcHRyPFNWR0xlbmd0aExpc3RWYWx1ZXM+
KTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlTnVt
YmVyKHN0ZDo6dW5pcXVlX3B0cjxmbG9hdD4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVOdW1iZXJMaXN0KHN0ZDo6dW5pcXVlX3B0cjxTVkdOdW1i
ZXJMaXN0VmFsdWVzPik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0Pj4pOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGVQYXRoKHN0ZDo6dW5pcXVlX3B0cjxTVkdQYXRoQnl0ZVN0cmVhbT4pOwotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQb2ludExpc3Qo
c3RkOjp1bmlxdWVfcHRyPFNWR1BvaW50TGlzdFZhbHVlcz4pOwotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKHN0ZDo6
dW5pcXVlX3B0cjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KTsKLSAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlUmVjdChzdGQ6OnVuaXF1ZV9wdHI8
RmxvYXRSZWN0Pik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNyZWF0ZVN0cmluZyhzdGQ6OnVuaXF1ZV9wdHI8U3RyaW5nPik7Ci0gICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZVRyYW5zZm9ybUxpc3Qoc3RkOjp1bmlx
dWVfcHRyPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KTsKLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0FuaW1WYWwoQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotCi0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgLy8gTm9uLW11dGFibGUg
YWNjZXNzb3JzLgotICAgIGNvbnN0IHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4m
IGFuZ2xlQW5kRW51bWVyYXRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZEFuZ2xlKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYW5nbGVBbmRFbnVt
ZXJhdGlvbjsKLSAgICB9Ci0KLSAgICBjb25zdCBib29sJiBib29sZWFuKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0
dXJuICptX2RhdGEuYm9vbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBj
b25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZENvbG9yKTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEuY29sb3I7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWduZWQm
IGVudW1lcmF0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5p
bWF0ZWRFbnVtZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOwot
ICAgIH0KLQotICAgIGNvbnN0IGludCYgaW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LmludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgaW50ZWdl
ck9wdGlvbmFsSW50ZWdlcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09
IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LmludGVnZXJPcHRpb25hbEludGVnZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHTGVuZ3RoVmFs
dWUmIGxlbmd0aCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEubGVuZ3RoOwotICAgIH0KLQotICAg
IGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZExlbmd0aExpc3QpOwotICAgICAgICByZXR1
cm4gKm1fZGF0YS5sZW5ndGhMaXN0OwotICAgIH0KLQotICAgIGNvbnN0IGZsb2F0JiBudW1iZXIo
KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7
Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlcjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdO
dW1iZXJMaXN0VmFsdWVzJiBudW1iZXJMaXN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWROdW1iZXJMaXN0KTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEu
bnVtYmVyTGlzdDsKLSAgICB9Ci0KLSAgICBjb25zdCBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiYg
bnVtYmVyT3B0aW9uYWxOdW1iZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKLSAgICAgICAgcmV0dXJuICptX2Rh
dGEubnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgfQotCi0gICAgY29uc3QgU1ZHUGF0aEJ5dGVT
dHJlYW0qIHBhdGgoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZFBhdGgpOwotICAgICAgICByZXR1cm4gbV9kYXRhLnBhdGg7Ci0gICAgfQotCi0gICAgY29u
c3QgU1ZHUG9pbnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZFBvaW50cyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRh
LnBvaW50TGlzdDsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotICAgICAgICByZXR1cm4gKm1f
ZGF0YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgIH0KLQotICAgIGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkUmVj
dCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnJlY3Q7Ci0gICAgfQotCi0gICAgY29uc3QgU3Ry
aW5nJiBzdHJpbmcoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmlt
YXRlZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0cmluZzsKLSAgICB9Ci0KLSAg
ICBjb25zdCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB0cmFuc2Zvcm1MaXN0KCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0KTsKLSAg
ICAgICAgcmV0dXJuICptX2RhdGEudHJhbnNmb3JtTGlzdDsKLSAgICB9Ci0KLSAgICAvLyBNdXRh
YmxlIGFjY2Vzc29ycy4KLSAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JiBh
bmdsZUFuZEVudW1lcmF0aW9uKCkKK3N0cnVjdCBTVkdBbmltYXRlZFR5cGUgeworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBTVkdBbmltYXRlZFR5cGUoUHJvcGVydHlU
eXBlJiYgcHJvcGVydHkpCisgICAgICAgIDogZmlyc3QoU1ZHVmFsdWU6OmNyZWF0ZShXVEZNb3Zl
KHByb3BlcnR5KSkpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkQW5n
bGUpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5hbmdsZUFuZEVudW1lcmF0aW9uOworICAgICAg
ICBBU1NFUlQodHlwZSgpICE9IEFuaW1hdGVkVW5rbm93bik7CiAgICAgfQogCi0gICAgYm9vbCYg
Ym9vbGVhbigpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZSkK
KyAgICAgICAgOiBmaXJzdChXVEZNb3ZlKHZhbHVlKSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gQW5pbWF0ZWRCb29sZWFuKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEuYm9vbGVh
bjsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwogICAgIH0KIAot
ICAgIENvbG9yJiBjb2xvcigpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwg
dHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBTVkdBbmltYXRlZFR5cGUoc3RkOjpwYWlyPFBy
b3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgcHJvcGVydGllcykKKyAgICAgICAgOiBmaXJz
dChTVkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuZmlyc3QpKQorICAgICAgICAsIHNlY29uZChT
VkdWYWx1ZTo6Y3JlYXRlKHByb3BlcnRpZXMuc2Vjb25kKSkKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRDb2xvcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmNvbG9y
OworICAgICAgICBBU1NFUlQodHlwZSgpICE9IEFuaW1hdGVkVW5rbm93bik7CiAgICAgfQogCi0g
ICAgdW5zaWduZWQmIGVudW1lcmF0aW9uKCkKKyAgICBTVkdBbmltYXRlZFR5cGUoUmVmUHRyPFNW
R1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikKKyAgICAgICAgOiBm
aXJzdChXVEZNb3ZlKHZhbHVlMSkpCisgICAgICAgICwgc2Vjb25kKFdURk1vdmUodmFsdWUyKSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7Ci0g
ICAgICAgIHJldHVybiAqbV9kYXRhLmVudW1lcmF0aW9uOworICAgICAgICBBU1NFUlQodHlwZSgp
ICE9IEFuaW1hdGVkVW5rbm93bik7CiAgICAgfQogCi0gICAgaW50JiBpbnRlZ2VyKCkKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkSW50ZWdlcik7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmludGVnZXI7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oU1ZHUHJvcGVy
dHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAgIHN0
ZDo6cGFpcjxpbnQsIGludD4mIGludGVnZXJPcHRpb25hbEludGVnZXIoKQorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5pbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFR5cGU+KFdURk1vdmUocHJvcGVydHkpKTsK
ICAgICB9CiAKLSAgICBTVkdMZW5ndGhWYWx1ZSYgbGVuZ3RoKCkKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1
ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gQW5pbWF0ZWRMZW5ndGgpOwotICAg
ICAgICByZXR1cm4gKm1fZGF0YS5sZW5ndGg7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAotICAgIFNWR0xl
bmd0aExpc3RWYWx1ZXMmIGxlbmd0aExpc3QoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV90
eXBlID09IEFuaW1hdGVkTGVuZ3RoTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLmxlbmd0
aExpc3Q7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
U1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+
Pjo6aW5pdGlhbFZhbHVlKCkpOwogICAgIH0KIAotICAgIGZsb2F0JiBudW1iZXIoKQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBh
aXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBbmltYXRlZE51bWJlcik7Ci0gICAgICAgIHJldHVybiAq
bV9kYXRhLm51bWJlcjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0
ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKLSAgICBTVkdOdW1iZXJMaXN0
VmFsdWVzJiBudW1iZXJMaXN0KCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gY3JlYXRlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZTEsIFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZTIpCiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVt
YmVyTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLm51bWJlckxpc3Q7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBX
VEZNb3ZlKHZhbHVlMikpOwogICAgIH0KIAotICAgIHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+JiBu
dW1iZXJPcHRpb25hbE51bWJlcigpCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNv
bnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXIpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5udW1iZXJPcHRpb25hbE51bWJlcjsK
LSAgICB9Ci0KLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSogcGF0aCgpCi0gICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IEFuaW1hdGVkUGF0aCk7Ci0gICAgICAgIHJldHVybiBtX2RhdGEucGF0
aDsKLSAgICB9CisgICAgICAgIEFTU0VSVChmaXJzdCk7CisgICAgICAgIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkVHlwZTEgPSB2YWx1ZUFuaW1hdGVkVHlwZSgqZmlyc3QpOworICAgICAg
ICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUyID0gc2Vjb25kID8gdmFsdWVBbmlt
YXRlZFR5cGUoKnNlY29uZCkgOiBBbmltYXRlZFVua25vd247CiAKLSAgICBTVkdQb2ludExpc3RW
YWx1ZXMmIHBvaW50TGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID09IEFuaW1h
dGVkUG9pbnRzKTsKLSAgICAgICAgcmV0dXJuICptX2RhdGEucG9pbnRMaXN0OwotICAgIH0KKyAg
ICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWRBbmdsZSkgeworICAgICAgICAgICAg
QVNTRVJUKGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbik7CisgICAgICAgICAg
ICByZXR1cm4gQW5pbWF0ZWRBbmdsZTsKKyAgICAgICAgfQogCi0gICAgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLSAgICAgICAgcmV0dXJu
ICptX2RhdGEucHJlc2VydmVBc3BlY3RSYXRpbzsKLSAgICB9CisgICAgICAgIGlmIChhbmltYXRl
ZFR5cGUxID09IEFuaW1hdGVkSW50ZWdlciAmJiBhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkSW50
ZWdlcikKKyAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI7
CiAKLSAgICBGbG9hdFJlY3QmIHJlY3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBBbmltYXRlZFJlY3QpOwotICAgICAgICByZXR1cm4gKm1fZGF0YS5yZWN0OwotICAgIH0KKyAg
ICAgICAgaWYgKGFuaW1hdGVkVHlwZTEgPT0gQW5pbWF0ZWROdW1iZXIgJiYgYW5pbWF0ZWRUeXBl
MiA9PSBBbmltYXRlZE51bWJlcikKKyAgICAgICAgICAgIHJldHVybiBBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyOwogCi0gICAgU3RyaW5nJiBzdHJpbmcoKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBBbmltYXRlZFN0cmluZyk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnN0
cmluZzsKKyAgICAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWRVbmtub3duKTsK
KyAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTE7CiAgICAgfQogCi0gICAgU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcyYgdHJhbnNmb3JtTGlzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV90eXBl
ID09IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCk7Ci0gICAgICAgIHJldHVybiAqbV9kYXRhLnRyYW5z
Zm9ybUxpc3Q7CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUKGZpcnN0ICYmICFzZWNvbmQpOworICAgICAgICByZXR1cm4gZmlyc3QtPnRvU3Ry
aW5nKCk7CisgICAgfQorCisgICAgYm9vbCBzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIEFT
U0VSVChmaXJzdCAmJiAhc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGZpcnN0LT5wYXJzZShhdHRy
TmFtZSwgc3RyaW5nKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0FuaW1WYWwo
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIC8vIEFuaW1hdGVkQ29s
b3IgaXMgb25seSB1c2VkIGZvciBDU1MgcHJvcGVydHkgYW5pbWF0aW9ucy4KKyAgICAgICAgcmV0
dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKKyAg
ICB9CisKKyAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdmFsdWVBbmltYXRlZFR5cGUo
Y29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQo
V1RGOjptYWtlVmlzaXRvcigKKyAgICAgICAgICAgIFtdKGNvbnN0IFNWR0FuZ2xlVmFsdWUmKSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgICAgICB9LCBb
XShjb25zdCBib29sJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEJvb2xlYW47
CisgICAgICAgICAgICB9LCBbXShjb25zdCBDb2xvciYpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQW5pbWF0ZWRDb2xvcjsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IHVuc2lnbmVkJikgewor
ICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEVudW1lcmF0aW9uOworICAgICAgICAgICAg
fSwgW10oY29uc3QgaW50JikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEludGVn
ZXI7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdMZW5ndGhWYWx1ZSYpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQW5pbWF0ZWRMZW5ndGg7CisgICAgICAgICAgICB9LCBbXShjb25zdCBT
VkdMZW5ndGhMaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZExl
bmd0aExpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBmbG9hdCkgeworICAgICAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZE51bWJlcjsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IFNWR051
bWJlckxpc3RWYWx1ZXMmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTnVtYmVy
TGlzdDsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJikgeworICAg
ICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFBhdGg7CisgICAgICAgICAgICB9LCBbXShjb25z
dCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IFNW
R1BvaW50TGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRQb2lu
dHM7CisgICAgICAgICAgICB9LCBbXShjb25zdCBGbG9hdFJlY3QmKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEFuaW1hdGVkUmVjdDsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IFN0cmluZyYp
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRTdHJpbmc7CisgICAgICAgICAgICB9
LCBbXShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJl
dHVybiBBbmltYXRlZFRyYW5zZm9ybUxpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBhdXRv
JikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFVua25vd247CisgICAgICAgICAg
ICB9CisgICAgICAgICksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KHZhbHVl
KSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKTsKLSAgICBib29sIHNldFZh
bHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpOwotCi1wcml2
YXRlOgotICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIG1fdHlwZTsKLQotICAgIHVuaW9uIERhdGFV
bmlvbiB7Ci0gICAgICAgIERhdGFVbmlvbigpCi0gICAgICAgICAgICA6IGxlbmd0aChudWxscHRy
KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1
ZSwgdW5zaWduZWQ+KiBhbmdsZUFuZEVudW1lcmF0aW9uOwotICAgICAgICBib29sKiBib29sZWFu
OwotICAgICAgICBDb2xvciogY29sb3I7Ci0gICAgICAgIHVuc2lnbmVkKiBlbnVtZXJhdGlvbjsK
LSAgICAgICAgaW50KiBpbnRlZ2VyOwotICAgICAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+KiBpbnRl
Z2VyT3B0aW9uYWxJbnRlZ2VyOwotICAgICAgICBTVkdMZW5ndGhWYWx1ZSogbGVuZ3RoOwotICAg
ICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzKiBsZW5ndGhMaXN0OwotICAgICAgICBmbG9hdCogbnVt
YmVyOwotICAgICAgICBTVkdOdW1iZXJMaXN0VmFsdWVzKiBudW1iZXJMaXN0OwotICAgICAgICBz
dGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiogbnVtYmVyT3B0aW9uYWxOdW1iZXI7Ci0gICAgICAgIFNW
R1BhdGhCeXRlU3RyZWFtKiBwYXRoOwotICAgICAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUqIHByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgICAgIFNWR1BvaW50TGlzdFZhbHVlcyogcG9p
bnRMaXN0OwotICAgICAgICBGbG9hdFJlY3QqIHJlY3Q7Ci0gICAgICAgIFN0cmluZyogc3RyaW5n
OwotICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzKiB0cmFuc2Zvcm1MaXN0OwotICAgIH0g
bV9kYXRhOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3Q7CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBzZWNvbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDExLTIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC02MywyOCArNjQsMjggQEAgcHJvdGVjdGVkOgogCiAgICAgLy8g
SGVscGVycyBmb3IgYW5pbWF0b3JzIHRoYXQgb3BlcmF0ZSBvbiBzaW5nbGUgdHlwZXMsIGVnLiBq
dXN0IG9uZSBTVkdBbmltYXRlZEludGVnZXIuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZh
bFR5cGU+Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKLSAgICAgICAgY29uc3QgdHlwZW5hbWUg
QW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmltYXRlZFR5cGUgPSBjYXN0QW5pbWF0ZWRQcm9w
ZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBjb25zdCBBbmltVmFsVHlw
ZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZh
bFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAg
YXV0byBjb3B5ID0gc3RkOjptYWtlX3VuaXF1ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVu
dFR5cGU+KGFuaW1hdGVkVHlwZSk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGU+
KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBjb3B5LmdldCgpKTsKLSAg
ICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1
ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsK
KyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkVHlwZXMsIDAsIGFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gU1ZHQW5p
bWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShhbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGU+Ci0gICAgdm9pZCByZXNldEZyb21CYXNlVmFs
dWUoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUmIHR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSYg
KFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VWYWx1
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNW
R0FuaW1hdGVkVHlwZSYgdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGVz
WzBdLnByb3BlcnRpZXMuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQodHlwZS50eXBlKCkg
PT0gbV90eXBlKTsKLSAgICAgICAgYXV0byogcHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0
eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKTsKLSAgICAgICAgcHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgp
OworICAgICAgICBBbmltVmFsVHlwZSogYW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVy
dHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGU+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1sw
XS5nZXQoKSk7CisgICAgICAgIGFuaW1hdGVkVHlwZS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVl
ZGVkKCk7CiAKLSAgICAgICAgdHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlJiBhbmlt
YXRlZFR5cGVWYWx1ZSA9ICh0eXBlLipnZXR0ZXIpKCk7Ci0gICAgICAgIGFuaW1hdGVkVHlwZVZh
bHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKLQotICAgICAgICBleGVjdXRlQWN0
aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRUeXBlcywgMCwg
JmFuaW1hdGVkVHlwZVZhbHVlKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBiYXNlVmFsdWUg
PSBhbmltYXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1Zh
bHVlPiBhbmltYXRlZFZhbHVlID0gdHlwZS5maXJzdDsKKyAgICAgICAgYW5pbWF0ZWRWYWx1ZS0+
YXM8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPigpID0gYmFzZVZhbHVlLT5hczx0
eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIGV4ZWN1dGVBY3Rp
b248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBh
bmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlw
ZT4KQEAgLTExMCwzNCArMTExLDM4IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhlbHBlcnMgZm9y
IGFuaW1hdG9ycyB0aGF0IG9wZXJhdGUgb24gcGFpciB0eXBlcywgZWcuIGEgcGFpciBvZiBTVkdB
bmltYXRlZEludGVnZXJzLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlMSwgdHlw
ZW5hbWUgQW5pbVZhbFR5cGUyPgotICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnBhaXI8dHlwZW5h
bWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250
ZW50VHlwZT4+IGNvbnN0cnVjdEZyb21CYXNlVmFsdWVzKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVlcyhjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5p
bWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKLSAgICAgICAgY29uc3QgdHlw
ZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSYgZmlyc3RUeXBlID0gY2FzdEFuaW1hdGVk
UHJvcGVydHlUb0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3Bl
cnRpZXNbMF0uZ2V0KCkpLT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGNvbnN0IHR5cGVu
YW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGUmIHNlY29uZFR5cGUgPSBjYXN0QW5pbWF0ZWRQ
cm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVy
dGllc1sxXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29uc3QgQW5pbVZh
bFR5cGUxKiBmaXJzdEFuaW1hdGVkVHlwZSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlMT4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsK
KyAgICAgICAgY29uc3QgQW5pbVZhbFR5cGUyKiBzZWNvbmRBbmltYXRlZFR5cGUgPSBjYXN0QW5p
bWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTI+KGFuaW1hdGVkVHlwZXNbMF0u
cHJvcGVydGllc1sxXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBjb3B5ID0gc3RkOjptYWtlX3Vu
aXF1ZTxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5h
bWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KGZpcnN0VHlwZSwgc2Vjb25kVHlwZSk7Ci0g
ICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwg
YW5pbWF0ZWRUeXBlcywgMCwgJmNvcHktPmZpcnN0KTsKLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxB
bmltVmFsVHlwZTI+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAxLCAmY29w
eS0+c2Vjb25kKTsKLSAgICAgICAgcmV0dXJuIGNvcHk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1
ZT4gZmlyc3RBbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqZmlyc3RBbmltYXRlZFR5
cGUtPmN1cnJlbnRCYXNlVmFsdWUoKSk7CisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4gc2Vjb25k
QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKnNlY29uZEFuaW1hdGVkVHlwZS0+Y3Vy
cmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0
YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCBmaXJzdEFuaW1hdGVkVmFsdWUp
OworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rp
b24sIGFuaW1hdGVkVHlwZXMsIDEsIHNlY29uZEFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1
cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoV1RGTW92ZShmaXJzdEFuaW1hdGVkVmFsdWUpLCBX
VEZNb3ZlKHNlY29uZEFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBBbmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KLSAgICB2b2lkIHJlc2V0
RnJvbUJhc2VWYWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmlt
YXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUsIHN0ZDo6cGFpcjx0eXBlbmFtZSBBbmlt
VmFsVHlwZTE6OkNvbnRlbnRUeXBlLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI6OkNvbnRlbnRUeXBl
PiYgKFNWR0FuaW1hdGVkVHlwZTo6KmdldHRlcikoKSkKKyAgICB2b2lkIHJlc2V0RnJvbUJhc2VW
YWx1ZXMoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
LCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoYW5pbWF0ZWRU
eXBlc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAyKTsKICAgICAgICAgQVNTRVJUKHR5cGUudHlw
ZSgpID09IG1fdHlwZSk7Ci0gICAgICAgIGF1dG8qIGZpcnN0UHJvcGVydHkgPSBjYXN0QW5pbWF0
ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkVHlwZXNbMF0ucHJv
cGVydGllc1swXS5nZXQoKSk7Ci0gICAgICAgIGF1dG8qIHNlY29uZFByb3BlcnR5ID0gIGNhc3RB
bmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1sw
XS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKLSAgICAgICAgZmlyc3RQcm9wZXJ0eS0+c3luY2hyb25p
emVXcmFwcGVyc0lmTmVlZGVkKCk7Ci0gICAgICAgIHNlY29uZFByb3BlcnR5LT5zeW5jaHJvbml6
ZVdyYXBwZXJzSWZOZWVkZWQoKTsKLQotICAgICAgICBzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZh
bFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4m
IGFuaW1hdGVkVHlwZVZhbHVlID0gKHR5cGUuKmdldHRlcikoKTsKLSAgICAgICAgYW5pbWF0ZWRU
eXBlVmFsdWUuZmlyc3QgPSBmaXJzdFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAg
ICAgIGFuaW1hdGVkVHlwZVZhbHVlLnNlY29uZCA9IHNlY29uZFByb3BlcnR5LT5jdXJyZW50QmFz
ZVZhbHVlKCk7Ci0KLSAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5p
bWF0aW9uQWN0aW9uLCBhbmltYXRlZFR5cGVzLCAwLCAmYW5pbWF0ZWRUeXBlVmFsdWUuZmlyc3Qp
OwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rp
b24sIGFuaW1hdGVkVHlwZXMsIDEsICZhbmltYXRlZFR5cGVWYWx1ZS5zZWNvbmQpOworICAgICAg
ICBBbmltVmFsVHlwZTEqIGZpcnN0QW5pbWF0ZWRUeXBlID0gY2FzdEFuaW1hdGVkUHJvcGVydHlU
b0FjdHVhbFR5cGU8QW5pbVZhbFR5cGUxPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0u
Z2V0KCkpOworICAgICAgICBBbmltVmFsVHlwZTIqIHNlY29uZEFuaW1hdGVkVHlwZSA9IGNhc3RB
bmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRUeXBlc1sw
XS5wcm9wZXJ0aWVzWzFdLmdldCgpKTsKKyAgICAgICAgZmlyc3RBbmltYXRlZFR5cGUtPnN5bmNo
cm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworICAgICAgICBzZWNvbmRBbmltYXRlZFR5cGUtPnN5
bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOworCisgICAgICAgIFJlZlB0cjxTVkdWYWx1ZT4g
Zmlyc3RCYXNlVmFsdWUgPSBmaXJzdEFuaW1hdGVkVHlwZS0+Y3VycmVudEJhc2VWYWx1ZSgpOwor
ICAgICAgICBSZWZQdHI8U1ZHVmFsdWU+IGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IHR5cGUuZmlyc3Q7
CisgICAgICAgIGZpcnN0QW5pbWF0ZWRWYWx1ZS0+YXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZT4oKSA9IGZpcnN0QmFzZVZhbHVlLT5hczx0eXBlbmFtZSBBbmltVmFsVHlwZTE6
OkNvbnRlbnRUeXBlPigpOworICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3Rh
cnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkVHlwZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1ZSk7
CisKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBzZWNvbmRCYXNlVmFsdWUgPSBzZWNvbmRBbmlt
YXRlZFR5cGUtPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1ZhbHVlPiBz
ZWNvbmRBbmltYXRlZFZhbHVlID0gdHlwZS5zZWNvbmQ7CisgICAgICAgIHNlY29uZEFuaW1hdGVk
VmFsdWUtPmFzPHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+KCkgPSBzZWNvbmRC
YXNlVmFsdWUtPmFzPHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+KCk7CisgICAg
ICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5p
bWF0ZWRUeXBlcywgMSwgc2Vjb25kQW5pbWF0ZWRWYWx1ZSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xOTAs
MzMgKzE5NSwzMyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBB
bmltVmFsVHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlv
biwgY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCB1
bnNpZ25lZCB3aGljaFByb3BlcnR5LCB0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGUq
IHR5cGUgPSAwKQorICAgIHZvaWQgZXhlY3V0ZUFjdGlvbihBbmltYXRpb25BY3Rpb24gYWN0aW9u
LCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIHVu
c2lnbmVkIHdoaWNoUHJvcGVydHksIFJlZlB0cjxTVkdWYWx1ZT4gYW5pbWF0ZWRWYWx1ZSA9IG51
bGxwdHIpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgdXNlIFNWR0VsZW1lbnQ6Oklu
c3RhbmNlVXBkYXRlQmxvY2tlciBiZWNhdXNlIG9mIGNpcmN1bGFyIGhlYWRlciBkZXBlbmRlbmN5
LiBXb3VsZCBiZSBuaWNlIHRvIHVudGFuZ2xlIHRoaXMuCiAgICAgICAgIHNldEluc3RhbmNlVXBk
YXRlc0Jsb2NrZWQoKmFuaW1hdGVkVHlwZXNbMF0uZWxlbWVudCwgdHJ1ZSk7CiAKICAgICAgICAg
Zm9yIChhdXRvJiBhbmltYXRlZFR5cGUgOiBhbmltYXRlZFR5cGVzKSB7CiAgICAgICAgICAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih3aGljaFByb3BlcnR5IDwgYW5pbWF0ZWRU
eXBlLnByb3BlcnRpZXMuc2l6ZSgpKTsKLSAgICAgICAgICAgIEFuaW1WYWxUeXBlKiBwcm9wZXJ0
eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRl
ZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5nZXQoKSk7CisgICAgICAgICAgICBBbmlt
VmFsVHlwZSogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFR5cGUucHJvcGVydGllc1t3aGljaFByb3BlcnR5XS5n
ZXQoKSk7CiAKICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgICAgICAgICBjYXNl
IFN0YXJ0QW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAgICAgIEFTU0VSVCh0eXBlKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LT5pc0FuaW1hdGluZygpKQotICAgICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uU3RhcnRlZCh0eXBlKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoYW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKCFhbmltYXRlZFBy
b3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZFByb3Bl
cnR5LT5hbmltYXRpb25TdGFydGVkKGFuaW1hdGVkVmFsdWUpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBTdG9wQW5pbWF0aW9uQWN0aW9uOgotICAgICAgICAgICAg
ICAgIEFTU0VSVCghdHlwZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LT5pc0FuaW1h
dGluZygpKQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+YW5pbWF0aW9uRW5kZWQoKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIWFuaW1hdGVkVmFsdWUpOworICAgICAgICAgICAgICAg
IGlmIChhbmltYXRlZFByb3BlcnR5LT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgICAgICAg
ICBhbmltYXRlZFByb3BlcnR5LT5hbmltYXRpb25FbmRlZCgpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBBbmltVmFsV2lsbENoYW5nZUFjdGlvbjoKLSAgICAgICAg
ICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHByb3BlcnR5LT5hbmltVmFs
V2lsbENoYW5nZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYW5pbWF0ZWRWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS0+YW5pbVZhbFdpbGxDaGFuZ2UoKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQW5pbVZhbERpZENoYW5nZUFj
dGlvbjoKLSAgICAgICAgICAgICAgICBBU1NFUlQoIXR5cGUpOwotICAgICAgICAgICAgICAgIHBy
b3BlcnR5LT5hbmltVmFsRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFhbmlt
YXRlZFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRlZFByb3BlcnR5LT5hbmltVmFsRGlk
Q2hhbmdlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDb25kaXRpb25FdmVudExpc3RlbmVyOwotY2xhc3MgU1ZHQW5pbWF0ZWRUeXBlOworc3Ry
dWN0IFNWR0FuaW1hdGVkVHlwZTsKIGNsYXNzIFRpbWVDb250YWluZXI7CiAKIGVudW0gQW5pbWF0
aW9uTW9kZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsNyBAQCBDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uIFNWR0NvbXBvbmVudFRyCiAgICAgZnVuYy5hbXBsaXR1ZGUgPSBhbXBsaXR1ZGUoKTsK
ICAgICBmdW5jLmV4cG9uZW50ID0gZXhwb25lbnQoKTsKICAgICBmdW5jLm9mZnNldCA9IG9mZnNl
dCgpOwotICAgIGZ1bmMudGFibGVWYWx1ZXMgPSB0YWJsZVZhbHVlcygpOworICAgIGZ1bmMudGFi
bGVWYWx1ZXMgPSB0YWJsZVZhbHVlcygpLnByb3BlcnRpZXMoKTsKICAgICByZXR1cm4gZnVuYzsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9Q
RVJUSUVTCiAKIGlubGluZSBTVkdDdXJzb3JFbGVtZW50OjpTVkdDdXJzb3JFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0Vs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQotICAg
ICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkK
IHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6Y3Vyc29yVGFnKSk7CiAgICAgcmVn
aXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdDdXJzb3JFbGVtZW50KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDEwICs0OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBp
bmxpbmUgU1ZHRWxsaXBzZUVsZW1lbnQ6OlNWR0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fY3goTGVuZ3RoTW9kZVdpZHRoKQotICAg
ICwgbV9jeShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9yeChMZW5ndGhNb2RlV2lkdGgpCi0g
ICAgLCBtX3J5KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX2N4KFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2N5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV9yeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwg
bV9yeShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6ZWxsaXBzZVRhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9w
ZXJ0aWVzRm9yU1ZHRWxsaXBzZUVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODMsNyArODMsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRGaWx0
ZXJFCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikKICAgICAgICAgcmV0
dXJuIGNvbG9yTWF0cml4LT5zZXRUeXBlKHR5cGUoKSk7CiAgICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjp2YWx1ZXNBdHRyKQotICAgICAgICByZXR1cm4gY29sb3JNYXRyaXgtPnNldFZhbHVl
cyh2YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBjb2xvck1hdHJpeC0+c2V0VmFsdWVzKHZhbHVl
cygpLnByb3BlcnRpZXMoKSk7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMzMsNyArMTMzLDcgQEAgUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVD
b2xvck1hdHJpeEVsZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewotICAgICAgICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKTsKKyAgICAgICAgZmlsdGVyVmFsdWVz
ID0gdmFsdWVzKCkucHJvcGVydGllcygpOwogICAgICAgICB1bnNpZ25lZCBzaXplID0gZmlsdGVy
VmFsdWVzLnNpemUoKTsKIAogICAgICAgICBpZiAoKGZpbHRlclR5cGUgPT0gRkVDT0xPUk1BVFJJ
WF9UWVBFX01BVFJJWCAmJiBzaXplICE9IDIwKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDksOSArMjQ5LDggQEAgUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVD
b252b2x2ZU1hdHJpeAogICAgIGlmIChvcmRlclhWYWx1ZSA8IDEgfHwgb3JkZXJZVmFsdWUgPCAx
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvJiBrZXJuZWxNYXRyaXggPSB0aGlz
LT5rZXJuZWxNYXRyaXgoKTsKLSAgICBpbnQga2VybmVsTWF0cml4U2l6ZSA9IGtlcm5lbE1hdHJp
eC5zaXplKCk7CiAgICAgLy8gVGhlIHNwZWMgc2F5cyB0aGlzIGlzIGEgcmVxdWlyZW1lbnQsIGFu
ZCBzaG91bGQgYmFpbCBvdXQgaWYgZmFpbHMKLSAgICBpZiAob3JkZXJYVmFsdWUgKiBvcmRlcllW
YWx1ZSAhPSBrZXJuZWxNYXRyaXhTaXplKQorICAgIGlmIChvcmRlclhWYWx1ZSAqIG9yZGVyWVZh
bHVlICE9IHN0YXRpY19jYXN0PGludD4oa2VybmVsTWF0cml4LnNpemUoKSkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgaW50IHRhcmdldFhWYWx1ZSA9IHRhcmdldFgoKTsKQEAgLTI4
MSwxMyArMjgwLDEzIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRyaXgK
ICAgICBpZiAoaGFzQXR0cmlidXRlKFNWR05hbWVzOjpkaXZpc29yQXR0cikgJiYgIWRpdmlzb3JW
YWx1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoU1ZH
TmFtZXM6OmRpdmlzb3JBdHRyKSkgewotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtlcm5l
bE1hdHJpeFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxNYXRy
aXguYXQoaSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiBrZXJuZWxNYXRyaXgp
CisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0gdmFsdWUtPmFzPGZsb2F0PigpOwogICAgICAg
ICBpZiAoIWRpdmlzb3JWYWx1ZSkKICAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSA9IDE7CiAgICAg
fQogCi0gICAgYXV0byBlZmZlY3QgPSBGRUNvbnZvbHZlTWF0cml4OjpjcmVhdGUoZmlsdGVyLCBJ
bnRTaXplKG9yZGVyWFZhbHVlLCBvcmRlcllWYWx1ZSksIGRpdmlzb3JWYWx1ZSwgYmlhcygpLCBJ
bnRQb2ludCh0YXJnZXRYVmFsdWUsIHRhcmdldFlWYWx1ZSksIGVkZ2VNb2RlKCksIEZsb2F0UG9p
bnQoa2VybmVsVW5pdExlbmd0aFhWYWx1ZSwga2VybmVsVW5pdExlbmd0aFlWYWx1ZSksIHByZXNl
cnZlQWxwaGEoKSwga2VybmVsTWF0cml4KTsKKyAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9sdmVN
YXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVlKSwg
ZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZhbHVl
KSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJuZWxV
bml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgucHJvcGVydGll
cygpKTsKICAgICBlZmZlY3QtPmlucHV0RWZmZWN0cygpLmFwcGVuZChpbnB1dDEpOwogICAgIHJl
dHVybiBXVEZNb3ZlKGVmZmVjdCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCwxMCBAQCBpbmxp
bmUgU1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVuCiAgICAgOiBTVkdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogICAgICwgbV9maWx0ZXJVbml0cyhTVkdVbml0VHlwZXM6OlNWR19V
TklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpCiAgICAgLCBtX3ByaW1pdGl2ZVVuaXRzKFNWR1Vu
aXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkKLSAgICAsIG1feChMZW5ndGhN
b2RlV2lkdGgsICItMTAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpCi0g
ICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKQotICAgICwgbV9oZWlnaHQoTGVu
Z3RoTW9kZUhlaWdodCwgIjEyMCUiKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCwgIi0xMCUiKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiLTEwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgsICIxMjAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMTIwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiLTEwJSIgd2VyZSBz
cGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMg
bm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJl
IHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsMTAgKzUxLDEwIEBAIEVORF9SRUdJU1RFUl9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiMCUiKQotICAgICwgbV95
KExlbmd0aE1vZGVIZWlnaHQsICIwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0aCwg
IjEwMCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEwMCUiKQorICAgICwg
bV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjAlIikpCisgICAgLCBtX3koU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjAlIikpCisgICAgLCBtX3dpZHRoKFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xl
bmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMDAlIikpCiB7CiAgICAgLy8gU3BlYzogSWYg
dGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBh
IHZhbHVlIG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRo
L2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBh
IHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTMsMTAgKzUzLDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0
aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChM
ZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwg
bV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0KSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbk9iamVj
dFRhZykpOwogICAgIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTAgKzU1LDEwIEBAIEVORF9SRUdJU1RFUl9BTklNQVRF
RF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBT
VkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9k
ZVdpZHRoKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0
aE1vZGVXaWR0aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3go
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1
ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZVdpZHRoKSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykKIHsKICAgICByZWdpc3RlckFuaW1hdGVk
UHJvcGVydGllc0ZvclNWR0ltYWdlRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGgu
aAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgU1ZHX0xFTkdU
SFRZUEVfUEMgPSBMZW5ndGhUeXBlUEMKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5n
dGg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZH
TGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKGFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTcsMTEgKzU3LDYgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgoaW5pdGlhbFZhbHVlKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShjb25zdCBTVkdMZW5ndGhWYWx1ZSog
aW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVu
Z3RoKGluaXRpYWxWYWx1ZSkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8U1ZHTGVuZ3RoPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYg
aW5pdGlhbFZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRp
b24oKSkKQEAgLTE1Myw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR0xlbmd0aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAg
ewogICAgIH0KQEAgLTE2MiwxMSArMTU3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoVmFsdWU+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQot
Ci0gICAgZXhwbGljaXQgU1ZHTGVuZ3RoKGNvbnN0IFNWR0xlbmd0aFZhbHVlKiBpbml0aWFsVmFs
dWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPihpbml0aWFs
VmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2
LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAgICAg
dXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlz
dFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMm
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlzdChB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVz
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAi
U1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIgogCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ3LDcgQEAgdm9pZCBTVkdMZW5n
dGhMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBpZiAobGVuZ3RoLnNldFZhbHVlQXNTdHJpbmcodmFsdWVTdHJpbmcpLmhhc0V4Y2VwdGlvbigp
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobGVuZ3RoKTsKKyAgICAgICAg
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHTGVuZ3RoVmFsdWU+KGxlbmd0aCkpOwogICAgICAg
ICBza2lwT3B0aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCk7CiAgICAgfQogfQpA
QCAtNjAsNyArNjEsNyBAQCBTdHJpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmlu
CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQocHJvcGVydHlBdChpKS52YWx1ZUFzU3RyaW5nKCkpOwogICAgIH0KIAog
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGhMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEs
MjYgKzIyLDM5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNWR0xlbmd0aFZhbHVlLmgi
Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7CiBjbGFzcyBTVkdMZW5ndGhM
aXN0OwogCi1jbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxT
VkdMZW5ndGhWYWx1ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1Ymxp
YyBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJz
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdMZW5ndGhNb2RlKTsKICAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZygpIGNvbnN0OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR0xlbmd0aExpc3RWYWx1ZXM+IHsKKyAgICBzdGF0aWMgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAgeyB9OyB9CisgICAgc3RhdGljIFNWR0xlbmd0
aExpc3RWYWx1ZXMgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgU1ZHTGVuZ3RoTW9k
ZSBsZW5ndGhNb2RlKQorICAgIHsKKyAgICAgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBsaXN0Owor
ICAgICAgICBsaXN0LnBhcnNlKHN0cmluZywgbGVuZ3RoTW9kZSk7CisgICAgICAgIHJldHVybiBs
aXN0OworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdMZW5ndGhMaXN0VmFsdWVz
PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxp
c3QucGFyc2Uoc3RyaW5nLCBTVkdMZW5ndGhWYWx1ZTo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVu
Z3RoQXR0cmlidXRlKGF0dHJOYW1lKSk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMmIGxpc3Qp
IHsgcmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CisgICAgCiAgICAgdXNpbmcgTGlzdEl0
ZW1UeXBlID0gU1ZHTGVuZ3RoVmFsdWU7CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gU1ZH
TGVuZ3RoOwogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdMZW5ndGhMaXN0Owot
Ci0gICAgc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4g
IHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTGVuZ3RoTGlzdFZh
bHVlcyYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhWYWx1ZS5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoVmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0NywxMyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdMZW5ndGhWYWx1ZT4gewogICAgIHN0YXRpYyBT
VkdMZW5ndGhWYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBl
LnZhbHVlQXNTdHJpbmcoKTsgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR0xlbmd0aFZh
bHVlPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgeworICAgICAgICBTVkdMZW5ndGhWYWx1ZSBsZW5ndGg7CisgICAgICAgIGxl
bmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHN0cmluZywgU1ZHTGVuZ3RoVmFsdWU6Omxlbmd0aE1vZGVG
b3JBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkpLmhhc0V4Y2VwdGlvbigpOworICAg
ICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFNWR0xlbmd0aFZhbHVlJiBsZW5ndGgpIHsgcmV0dXJuIGxlbmd0aC52YWx1ZUFzU3RyaW5n
KCk7IH0KIH07CiAKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MSwxMCArNTEsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAog
aW5saW5lIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feDEoTGVuZ3Ro
TW9kZVdpZHRoKQotICAgICwgbV95MShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV94MihMZW5n
dGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1feTIoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAs
IG1feDEoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feTEoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3gyKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCwgIjEwMCUiKSkKKyAgICAsIG1feTIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCkpCiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgyIGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3Bl
Y2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpsaW5lYXJHcmFkaWVudFRh
ZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgor
CisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgordm9pZCBTVkdMaXN0VmFsdWVzPFByb3BlcnR5VHlw
ZT46OnJlc2l6ZShzaXplX3QgbmV3U2l6ZSkKK3sKKyAgICBzaXplX3QgaW5kZXggPSBzaXplKCk7
CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpyZXNpemUobmV3U2l6ZSk7CisgICAgZm9y
ICg7IGluZGV4IDwgbmV3U2l6ZTsgKytpbmRleCkKKyAgICAgICAgYXQoaW5kZXgpID0gU1ZHVmFs
dWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CitWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxQcm9wZXJ0
eVR5cGU+OjpkZWVwQ29weSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
IHZhbHVlczsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlIDogKnRoaXMp
CisgICAgICAgIHZhbHVlcy5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZSgqdmFsdWUpKTsKKyAgICBy
ZXR1cm4gdmFsdWVzOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiBleHBsaWNpdCBpbnN0YW50
aWF0aW9uLgordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6cmVzaXplKHNpemVf
dCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8RmxvYXRQb2ludD46OnJlc2l6ZShzaXpl
X3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6cmVzaXpl
KHNpemVfdCk7Cit0ZW1wbGF0ZSB2b2lkIFNWR0xpc3RWYWx1ZXM8U1ZHVHJhbnNmb3JtVmFsdWU+
OjpyZXNpemUoc2l6ZV90KTsKKwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNW
R0xpc3RWYWx1ZXM8ZmxvYXQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJl
ZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8U3RyaW5nPjo6ZGVlcENvcHkoKSBjb25zdDsK
K3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPEZsb2F0UG9p
bnQ+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxhdGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
IFNWR0xpc3RWYWx1ZXM8U1ZHTGVuZ3RoVmFsdWU+OjpkZWVwQ29weSgpIGNvbnN0OwordGVtcGxh
dGUgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhT
ZWc+Pjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+
PiBTVkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6ZGVlcENvcHkoKSBjb25zdDsKKwor
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorY2xhc3MgU1ZHVmFsdWU7CisgICAgCit0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CitjbGFzcyBTVkdMaXN0VmFsdWVzIDogcHVibGljIFZlY3RvcjxSZWZQdHI8U1ZH
VmFsdWU+PiB7CitwdWJsaWM6CisgICAgU1ZHTGlzdFZhbHVlcygpID0gZGVmYXVsdDsKKworICAg
IFNWR0xpc3RWYWx1ZXMoY29uc3QgU1ZHTGlzdFZhbHVlcyYgb3RoZXIpCisgICAgICAgIDogVmVj
dG9yPFJlZlB0cjxTVkdWYWx1ZT4+KG90aGVyLmRlZXBDb3B5KCkpCisgICAgeworICAgIH0KKwor
ICAgIHZvaWQgcmVzaXplKHNpemVfdCk7CisgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IGRl
ZXBDb3B5KCkgY29uc3Q7CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5QXQoc2l6
ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5
VHlwZT4oKTsgfQorICAgIFByb3BlcnR5VHlwZSYgcHJvcGVydHlBdChzaXplX3QgaW5kZXgpIHsg
cmV0dXJuIGF0KGluZGV4KS0+dGVtcGxhdGUgYXM8UHJvcGVydHlUeXBlPigpOyB9CisKKyAgICBj
b25zdCBQcm9wZXJ0eVR5cGUmIGZpcnN0UHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBwcm9wZXJ0
eUF0KDApOyB9CisgICAgUHJvcGVydHlUeXBlJiBmaXJzdFByb3BlcnR5KCkgeyByZXR1cm4gcHJv
cGVydHlBdCgwKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBlJiBsYXN0UHJvcGVydHkoKSBj
b25zdCB7IHJldHVybiBwcm9wZXJ0eUF0KHNpemUoKSAtIDEpOyB9CisgICAgUHJvcGVydHlUeXBl
JiBsYXN0UHJvcGVydHkoKSB7IHJldHVybiBwcm9wZXJ0eUF0KHNpemUoKSAtIDEpOyB9CisKKyAg
ICBWZWN0b3I8UHJvcGVydHlUeXBlPiBwcm9wZXJ0aWVzKCkgY29uc3QKKyAgICB7CisgICAgICAg
IFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHByb3BlcnRpZXM7CisgICAgICAgIGZvciAoY29uc3QgYXV0
byYgdmFsdWUgOiAqdGhpcykKKyAgICAgICAgICAgIHByb3BlcnRpZXMuYXBwZW5kKHZhbHVlLT50
ZW1wbGF0ZSBhczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gcHJvcGVydGllczsK
KyAgICB9Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDEwICs3MSwxMCBAQCBFTkRfUkVHSVNURVJf
QU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2Vy
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV9yZWZYKExlbmd0
aE1vZGVXaWR0aCkKLSAgICAsIG1fcmVmWShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV9tYXJr
ZXJXaWR0aChMZW5ndGhNb2RlV2lkdGgsICIzIikKLSAgICAsIG1fbWFya2VySGVpZ2h0KExlbmd0
aE1vZGVIZWlnaHQsICIzIikgCisgICAgLCBtX3JlZlgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZVdpZHRoKSkKKyAgICAsIG1fcmVmWShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkK
KyAgICAsIG1fbWFya2VyV2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMyIp
KQorICAgICwgbV9tYXJrZXJIZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwg
IjMiKSkKICAgICAsIG1fbWFya2VyVW5pdHMoU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aCkKICAg
ICAsIG1fb3JpZW50VHlwZShTVkdNYXJrZXJPcmllbnRBbmdsZSkKIHsKQEAgLTIzOCwxMiArMjM4
LDEyIEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnQKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhdXRvU3RhcnRSZXZlcnNlU3RyaW5nKCJh
dXRvLXN0YXJ0LXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
IAogICAgIC8vIElmIG9yaWVudCBpcyBub3QgYXV0byBvciBhdXRvLXN0YXJ0LXJldmVyc2UsIHRo
ZSBwcmV2aW91cyBjYWxsIHRvIHN5bmNocm9uaXplT3JpZW50QW5nbGUgYWxyZWFkeSBzZXQgdGhl
IG9yaWVudEF0dHIgdG8gdGhlIHJpZ2h0IGFuZ2xlLgotICAgIGlmIChvd25lclR5cGUubV9vcmll
bnRUeXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKKyAgICBpZiAob3duZXJUeXBl
Lm1fb3JpZW50VHlwZS52YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKSA9PSBTVkdNYXJr
ZXJPcmllbnRBdXRvKSB7CiAgICAgICAgIG93bmVyVHlwZS5tX29yaWVudFR5cGUuc3luY2hyb25p
emUoJm93bmVyVHlwZSwgb3JpZW50VHlwZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBh
dXRvU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChvd25lclR5cGUu
bV9vcmllbnRUeXBlLnZhbHVlID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCisg
ICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01hcmtlck9yaWVudFR5
cGU+KCkgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKICAgICAgICAgb3duZXJU
eXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVy
dHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdGFydFJldmVyc2VTdHJpbmcpOwogfQogCkBA
IC0yNTksMTEgKzI1OSwxMSBAQCBTVkdNYXJrZXJPcmllbnRUeXBlJiBTVkdNYXJrZXJFbGVtZW50
OjpvCiB7CiAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1
cFdyYXBwZXI8VXNlT3duZXJUeXBlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uPih0aGlzLCBvcmll
bnRUeXBlUHJvcGVydHlJbmZvKCkpKSB7CiAgICAgICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGlu
ZygpKSB7Ci0gICAgICAgICAgICBBU1NFUlQod3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUo
KSA8IFNWR01hcmtlck9yaWVudE1heCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxTVkdNYXJrZXJPcmllbnRUeXBlJj4od3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUo
KSk7CisgICAgICAgICAgICBBU1NFUlQod3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKS0+
YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKSA8IFNWR01hcmtlck9yaWVudE1heCk7CisgICAgICAg
ICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKS0+YXM8U1ZHTWFya2Vy
T3JpZW50VHlwZT4oKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gbV9vcmllbnRUeXBl
LnZhbHVlOworICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01hcmtlck9yaWVu
dFR5cGU+KCk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2Zm
PFNWR01hcmtlck9yaWVudFR5cGU+PiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlQW5pbWF0
ZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAy
MjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3NSArMjksMTAgQEAKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRv
Vmlld0JveC5oIgorI2luY2x1ZGUgIlNWR01hcmtlclR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotZW51bSBTVkdNYXJrZXJVbml0c1R5cGUgewotICAgIFNWR01hcmtlclVuaXRzVW5r
bm93biA9IDAsCi0gICAgU1ZHTWFya2VyVW5pdHNVc2VyU3BhY2VPblVzZSwKLSAgICBTVkdNYXJr
ZXJVbml0c1N0cm9rZVdpZHRoCi19OwotCi1lbnVtIFNWR01hcmtlck9yaWVudFR5cGUgewotICAg
IFNWR01hcmtlck9yaWVudFVua25vd24gPSAwLAotICAgIFNWR01hcmtlck9yaWVudEF1dG8sCi0g
ICAgU1ZHTWFya2VyT3JpZW50QW5nbGUsCi0gICAgU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2
ZXJzZSwKLQotICAgIC8vIEFkZCBuZXcgZWxlbWVudHMgYmVmb3JlIGhlcmUuCi0gICAgU1ZHTWFy
a2VyT3JpZW50TWF4Ci19OwotCi10ZW1wbGF0ZTw+Ci1zdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHTWFya2VyVW5pdHNUeXBlPiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hlc3RFbnVtVmFs
dWUoKSB7IHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOyB9Ci0KLSAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKFNWR01hcmtlclVuaXRzVHlwZSB0eXBlKQotICAgIHsKLSAgICAgICAg
c3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNVbmtub3duOgotICAg
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5p
dHNVc2VyU3BhY2VPblVzZToKLSAgICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVzZXJT
cGFjZU9uVXNlIik7Ci0gICAgICAgIGNhc2UgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDoKLSAg
ICAgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0cm9rZVdpZHRoIik7Ci0gICAgICAgIH0K
LQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci0gICAgfQotCi0gICAgc3RhdGljIFNWR01hcmtlclVuaXRzVHlwZSBmcm9tU3RyaW5n
KGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgewotICAgICAgICBpZiAodmFsdWUgPT0gInVzZXJT
cGFjZU9uVXNlIikKLSAgICAgICAgICAgIHJldHVybiBTVkdNYXJrZXJVbml0c1VzZXJTcGFjZU9u
VXNlOwotICAgICAgICBpZiAodmFsdWUgPT0gInN0cm9rZVdpZHRoIikKLSAgICAgICAgICAgIHJl
dHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOwotICAgICAgICByZXR1cm4gU1ZHTWFya2Vy
VW5pdHNVbmtub3duOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4KLWlubGluZSB1bnNpZ25lZCBT
VkdJRExFbnVtTGltaXRzPFNWR01hcmtlck9yaWVudFR5cGU+OjpoaWdoZXN0RXhwb3NlZEVudW1W
YWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEFuZ2xlOyB9Ci0KLXRlbXBsYXRlPD4gc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR01hcmtlck9yaWVudFR5cGU+IHsKLSAgICBzdGF0aWMg
dW5zaWduZWQgaGlnaGVzdEVudW1WYWx1ZSgpIHsgcmV0dXJuIFNWR01hcmtlck9yaWVudEF1dG9T
dGFydFJldmVyc2U7IH0KLQotICAgIC8vIHRvU3RyaW5nIGlzIG5vdCBuZWVkZWQsIHN5bmNocm9u
aXplT3JpZW50VHlwZSgpIGhhbmRsZXMgdGhpcyBvbiBpdHMgb3duLgotCi0gICAgc3RhdGljIFNW
R01hcmtlck9yaWVudFR5cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlLCBTVkdBbmds
ZVZhbHVlJiBhbmdsZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0byIpCi0gICAg
ICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0bzsKLSAgICAgICAgaWYgKHZhbHVlID09
ICJhdXRvLXN0YXJ0LXJldmVyc2UiKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVu
dEF1dG9TdGFydFJldmVyc2U7Ci0gICAgICAgIGF1dG8gc2V0VmFsdWVSZXN1bHQgPSBhbmdsZS5z
ZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgaWYgKHNldFZhbHVlUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVudFVua25vd247Ci0g
ICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsKLSAgICB9Ci19OwotCiBjbGFzcyBT
VkdNYXJrZXJFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCB7CkBA
IC0xNjQsOCArOTksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc3luY2hyb25pemVPcmll
bnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKICAgICBzdGF0aWMgUmVmPFNWR0Fu
aW1hdGVkUHJvcGVydHk+IGxvb2t1cE9yQ3JlYXRlT3JpZW50VHlwZVdyYXBwZXIoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQpOwogICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGUo
KSBjb25zdDsKLSAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmllbnRUeXBlQmFzZVZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9vcmllbnRUeXBlLnZhbHVlOyB9Ci0gICAgdm9pZCBzZXRPcmllbnRU
eXBlQmFzZVZhbHVlKGNvbnN0IFNWR01hcmtlck9yaWVudFR5cGUmIHR5cGUpIHsgbV9vcmllbnRU
eXBlLnZhbHVlID0gdHlwZTsgfQorICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVC
YXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01hcmtl
ck9yaWVudFR5cGU+KCk7IH0KKyAgICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3Qg
U1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBvcmllbnRUeXBlQmFzZVZhbHVlKCkgPSB0eXBl
OyB9CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFy
a2VyT3JpZW50VHlwZT4+IG9yaWVudFR5cGVBbmltYXRlZCgpOwogCiBwcml2YXRlOgpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gU1ZHTWFya2VyVW5pdHNUeXBlIHsKKyAgICBTVkdNYXJrZXJVbml0c1Vu
a25vd24gPSAwLAorICAgIFNWR01hcmtlclVuaXRzVXNlclNwYWNlT25Vc2UsCisgICAgU1ZHTWFy
a2VyVW5pdHNTdHJva2VXaWR0aAorfTsKKworZW51bSBTVkdNYXJrZXJPcmllbnRUeXBlIHsKKyAg
ICBTVkdNYXJrZXJPcmllbnRVbmtub3duID0gMCwKKyAgICBTVkdNYXJrZXJPcmllbnRBdXRvLAor
ICAgIFNWR01hcmtlck9yaWVudEFuZ2xlLAorICAgIFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJl
dmVyc2UsCisgICAgCisgICAgLy8gQWRkIG5ldyBlbGVtZW50cyBiZWZvcmUgaGVyZS4KKyAgICBT
VkdNYXJrZXJPcmllbnRNYXgKK307CisgICAgCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTWFya2VyVW5pdHNUeXBlPiB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhpZ2hl
c3RFbnVtVmFsdWUoKSB7IHJldHVybiBTVkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoOyB9CisgICAg
c3RhdGljIFN0cmluZyB0b1N0cmluZyhTVkdNYXJrZXJVbml0c1R5cGUgdHlwZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzVW5rbm93
bjoKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgICAgICBjYXNlIFNWR01h
cmtlclVuaXRzVXNlclNwYWNlT25Vc2U6CisgICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJ1c2VyU3BhY2VPblVzZSIpOworICAgICAgICBjYXNlIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lk
dGg6CisgICAgICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdHJva2VXaWR0aCIpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgfQorICAgIHN0YXRpYyBTVkdNYXJrZXJVbml0c1R5
cGUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZh
bHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCisgICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5p
dHNVc2VyU3BhY2VPblVzZTsKKyAgICAgICAgaWYgKHZhbHVlID09ICJzdHJva2VXaWR0aCIpCisg
ICAgICAgICAgICByZXR1cm4gU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aDsKKyAgICAgICAgcmV0
dXJuIFNWR01hcmtlclVuaXRzVW5rbm93bjsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3JpZW50VHlwZT4geworICAgIHN0YXRpYyB1
bnNpZ25lZCBoaWdoZXN0RW51bVZhbHVlKCkgeyByZXR1cm4gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZTsgfQorICAgIHN0YXRpYyBTVkdNYXJrZXJPcmllbnRUeXBlIGZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHQW5nbGVWYWx1ZSYgYW5nbGUpCisgICAgeworICAgICAg
ICBpZiAodmFsdWUgPT0gImF1dG8iKQorICAgICAgICAgICAgcmV0dXJuIFNWR01hcmtlck9yaWVu
dEF1dG87CisgICAgICAgIGlmICh2YWx1ZSA9PSAiYXV0by1zdGFydC1yZXZlcnNlIikKKyAgICAg
ICAgICAgIHJldHVybiBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlOworICAgICAgICBh
dXRvIHNldFZhbHVlUmVzdWx0ID0gYW5nbGUuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAg
ICAgIGlmIChzZXRWYWx1ZVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biBTVkdNYXJrZXJPcmllbnRVbmtub3duOworICAgICAgICByZXR1cm4gU1ZHTWFya2VyT3JpZW50
QW5nbGU7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRz
PHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IHsKKyAgICBzdGF0aWMgc3RkOjpw
YWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgU1ZHQW5nbGVWYWx1ZSBhbmdsZTsKKyAgICAgICAgU1ZHTWFy
a2VyT3JpZW50VHlwZSBvcmllbnRUeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHTWFya2VyT3Jp
ZW50VHlwZT46OmZyb21TdHJpbmcoc3RyaW5nLCBhbmdsZSk7CisgICAgICAgIGlmIChvcmllbnRU
eXBlICE9IFNWR01hcmtlck9yaWVudEFuZ2xlKQorICAgICAgICAgICAgYW5nbGUgPSB7IH07Cisg
ICAgICAgIHJldHVybiBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KGFuZ2xlLCBv
cmllbnRUeXBlKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CitpbmxpbmUgdW5zaWduZWQgU1ZH
SURMRW51bUxpbWl0czxTVkdNYXJrZXJPcmllbnRUeXBlPjo6aGlnaGVzdEV4cG9zZWRFbnVtVmFs
dWUoKSB7IHJldHVybiBTVkdNYXJrZXJPcmllbnRBbmdsZTsgfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDEwICs2MCwxMCBAQCBpbmxpbmUgU1ZHTWFza0VsZW1lbnQ6OlNWR01h
c2tFbGVtZW50KGNvCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwg
bV9tYXNrVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9Y
KQogICAgICwgbV9tYXNrQ29udGVudFVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9V
U0VSU1BBQ0VPTlVTRSkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgsICItMTAlIikKLSAgICAs
IG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVX
aWR0aCwgIjEyMCUiKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKQor
ICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKSkKKyAgICAs
IG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiLTEwJSIpKQorICAgICwgbV93
aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikpCisgICAgLCBtX2hl
aWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpKQogewogICAgIC8v
IFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3Qg
aXMgYXMgaWYgYSB2YWx1ZSBvZiAiLTEwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzog
SWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWF0cml4LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSBTVkdNYXRyaXggYmVjb21l
cyBhbiBhbGlhcyB0byBET01NYXRyaXguCiBjbGFzcyBTVkdNYXRyaXggOiBwdWJsaWMgU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR01hdHJpeFZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxT
VkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTWF0cml4VmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBS
ZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtMTgwLDcgKzE4MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS50cmFuc2xhdGUoeCwgeSk7ICAgICAgICAKKyAgICAgICAgYXV0
byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3Vs
dCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxl
KHNjYWxlRmFjdG9yKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAog
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIwMiw3ICsyMDIs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlRmFj
dG9yWCwgc2NhbGVGYWN0b3JZKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZ
KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6
Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMTMsNyArMjEzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLnJvdGF0ZShhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjI0LDcgKzIy
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkp
OyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3Rh
dGVGcm9tVmVjdG9yKHgsIHkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIApA
QCAtMjM3LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWCgpOyAg
ICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5mbGlwWCgp
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUocmVzdWx0KTsKQEAgLTI0OCw3ICsyNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJl
bmNlKCkuZmxpcFkoKTsgICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkuZmxpcFkoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0
dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQg
PSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsgICAgICAgIAorICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsK
QEAgLTI3MCwxNCArMjcwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5za2V3WShh
bmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNrZXdZKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZH
TWF0cml4KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHTWF0cml4VmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1By
b3BlcnR5VGVhck9mZjxmbG9hdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVy
PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3Jl
YXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1
ZSkpOwogICAgIH0KQEAgLTQxLDExICs0MSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGluaXRpYWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoY29uc3QgZmxvYXQqIGluaXRpYWxWYWx1ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihpbml0aWFsVmFsdWUpKTsK
LSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVm
PFNWR051bWJlcj4+IGNyZWF0ZShFeGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7
CiAgICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC03MCw3ICs2NSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBmbG9hdCYg
dmFsdWUpCisgICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkK
ICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KCZhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtNzksMTEgKzc0LDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAg
ICAgfQotCi0gICAgZXhwbGljaXQgU1ZHTnVtYmVyKGNvbnN0IGZsb2F0KiBpbml0aWFsVmFsdWUp
Ci0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0Pihpbml0aWFsVmFsdWUpCi0gICAg
ewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlckxpc3QuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlckxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIHB1Ymxp
YzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTnVtYmVyTGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdy
YXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNo
ZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R051bWJlckxpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3QoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdOdW1iZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR051bWJlckxpc3RWYWx1ZXMmIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTnVtYmVyTGlzdChBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTnVtYmVyTGlzdFZhbHVlcz4o
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAkocmV2aXNp
b24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU1ZHTnVtYmVyTGlzdFZhbHVl
czo6cGFyc2UoY29uc3QgU3QKICAgICB3aGlsZSAocHRyIDwgZW5kKSB7CiAgICAgICAgIGlmICgh
cGFyc2VOdW1iZXIocHRyLCBlbmQsIG51bWJlcikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGFwcGVuZChudW1iZXIpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxmbG9h
dD4obnVtYmVyKSk7CiAgICAgfQogfQogCkBAIC01Miw3ICs1Miw3IEBAIFN0cmluZyBTVkdOdW1i
ZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihh
dChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHByb3BlcnR5QXQoaSkpOwogICAg
IH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDI0
ICsyMCwzMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIK
ICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1iZXI7CiBjbGFzcyBTVkdOdW1i
ZXJMaXN0OwogCi1jbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3Rv
cjxmbG9hdD4geworY2xhc3MgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdM
aXN0VmFsdWVzPGZsb2F0PiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcm
KTsKLSAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0OworICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkgY29uc3Q7ICAgCiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRy
YWl0czxTVkdOdW1iZXJMaXN0VmFsdWVzPiB7Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gewogICAgIHN0YXRpYyBTVkdOdW1iZXJMaXN0
VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBTVkdOdW1i
ZXJMaXN0VmFsdWVzIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAg
ICAgICBTVkdOdW1iZXJMaXN0VmFsdWVzIGxpc3Q7CisgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5n
KTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFz
U3RyaW5nKCk7IH0KLQogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IGZsb2F0OwogICAgIHVzaW5n
IExpc3RJdGVtVGVhck9mZiA9IFNWR051bWJlcjsKICAgICB1c2luZyBMaXN0UHJvcGVydHlUZWFy
T2ZmID0gU1ZHTnVtYmVyTGlzdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJV
dGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGFyc2VyVXRpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDYgKzIxOSwzMSBAQCBi
b29sIHBhcnNlTnVtYmVyT3B0aW9uYWxOdW1iZXIoY29uc3QgU3RyCiAgICAgcmV0dXJuIGN1ciA9
PSBlbmQ7CiB9CiAKK2Jvb2wgcGFyc2VQb2ludChjb25zdCBTdHJpbmcmIHMsIEZsb2F0UG9pbnQm
IHBvaW50KQoreworICAgIGlmIChzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gU3RyaW5nVmlldyhzKS51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciogY3VyID0gdXBjb252ZXJ0ZWRDaGFyYWN0
ZXJzOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjdXIgKyBzLmxlbmd0aCgpOworCisgICAgaWYg
KCFza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyLCBlbmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBmbG9hdCB4ID0gMDsKKyAgICBpZiAoIXBhcnNlTnVtYmVyKGN1ciwgZW5kLCB4KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZmxvYXQgeSA9IDA7CisgICAgaWYgKCFwYXJz
ZU51bWJlcihjdXIsIGVuZCwgeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBvaW50
ID0gRmxvYXRQb2ludCh4LCB5KTsKKworICAgIC8vIERpc2FsbG93IGFueXRoaW5nIGV4Y2VwdCBz
cGFjZXMgYXQgdGhlIGVuZC4KKyAgICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIs
IGVuZCk7Cit9CisKIGJvb2wgcGFyc2VSZWN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBGbG9hdFJl
Y3QmIHJlY3QpCiB7CiAgICAgYXV0byB1cGNvbnZlcnRlZENoYXJhY3RlcnMgPSBTdHJpbmdWaWV3
KHN0cmluZykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7CkBAIC0yNjQsNyArMjg5LDcgQEAgYm9v
bCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0VgogICAgICAgICB9CiAgICAgICAg
IHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAgcG9pbnRzTGlzdC5h
cHBlbmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7CisgICAgICAgIHBvaW50c0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxvYXRQb2ludCh4UG9zLCB5UG9zKSkpOwog
ICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5oCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDYgKzQzLDcgQEAgYm9vbCBwYXJzZU51bWJlck9wdGlvbmFsTnVtYmVyKGNvbnN0IFN0
cgogYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgTENoYXIqJiBwdHIsIGNvbnN0IExDaGFyKiBlbmQs
IGJvb2wmIGZsYWcpOwogYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0
IFVDaGFyKiBlbmQsIGJvb2wmIGZsYWcpOwogYm9vbCBwYXJzZVJlY3QoY29uc3QgU3RyaW5nJiwg
RmxvYXRSZWN0Jik7Citib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiwgRmxvYXRQb2ludCYp
OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGJvb2wgcGFyc2VGbG9hdFBv
aW50KGNvbnN0IENoYXJhY3RlclR5cGUqJiBjdXJyZW50LCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBl
bmQsIEZsb2F0UG9pbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0
cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVh
bS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksNiArMjAsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0
cy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDYsMzQgKzQ5LDQyIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIERhdGE6OmNvbnN0X2l0ZXJhdG9y
IERhdGFJdGVyYXRvcjsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtKCkgeyB9Ci0gICAgU1ZHUGF0
aEJ5dGVTdHJlYW0oY29uc3QgRGF0YSYgZGF0YSkgOiBtX2RhdGEoZGF0YSkgeyB9CisgICAgU1ZH
UGF0aEJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0mJiBvdGhlcikKKyAgICAgICAgOiBtX2Rh
dGEoV1RGTW92ZShvdGhlci5tX2RhdGEpKQorICAgIHsKKyAgICB9CiAgICAgCi0gICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QKKyAgICBTVkdQ
YXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCisgICAgICAgIDog
bV9kYXRhKG90aGVyLm1fZGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2RhdGEgPT0gb3Ro
ZXIubV9kYXRhOwogICAgIH0KIAotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTVkdQYXRoQnl0
ZVN0cmVhbSYgb3RoZXIpIGNvbnN0CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0mIG9wZXJhdG9yPShT
VkdQYXRoQnl0ZVN0cmVhbSYmIG90aGVyKQorICAgIHsKKyAgICAgICAgbV9kYXRhID0gV1RGTW92
ZShvdGhlci5tX2RhdGEpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIFNWR1Bh
dGhCeXRlU3RyZWFtJiBvcGVyYXRvcj0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICBtX2RhdGEg
PSBvdGhlci5tX2RhdGE7CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX2RhdGEgPT0gb3RoZXIubV9kYXRhOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNW
R1BhdGhCeXRlU3RyZWFtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1f
ZGF0YTsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1BhdGhCeXRlU3RyZWFtPiBjb3B5KCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRl
U3RyZWFtPihtX2RhdGEpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdQYXRo
Qnl0ZVN0cmVhbT4oKnRoaXMpOwogICAgIH0KIAogICAgIERhdGFJdGVyYXRvciBiZWdpbigpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5iZWdpbigpOyB9CiAgICAgRGF0YUl0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5lbmQoKTsgfQogCiAgICAgdm9pZCBhcHBlbmQodW5zaWduZWQg
Y2hhciBieXRlKSB7IG1fZGF0YS5hcHBlbmQoYnl0ZSk7IH0KLSAgICB2b2lkIGFwcGVuZChjb25z
dCBTVkdQYXRoQnl0ZVN0cmVhbSYgb3RoZXIpCi0gICAgewotICAgICAgICBmb3IgKGF1dG8gc3Ry
ZWFtIDogb3RoZXIpCi0gICAgICAgICAgICBhcHBlbmQoc3RyZWFtKTsKLSAgICB9CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIG90aGVyKSB7IG1fZGF0YS5hcHBlbmRW
ZWN0b3Iob3RoZXIubV9kYXRhKTsgfQogICAgIHZvaWQgY2xlYXIoKSB7IG1fZGF0YS5jbGVhcigp
OyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fZGF0YS5zaXplKCk7IH0K
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuaXNFbXB0eSgpOyB9CiAg
ICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KIAogICAg
IC8vIE9ubHkgZGVmaW5lZCB0byBsZXQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3IgdXNlIHRoZSBz
dGFuZGFyZCBsaXN0IGNvZGUgcGF0aHMgLSB0aGlzIG1ldGhvZCBpcyBuZXZlciBjYWxsZWQuCkBA
IC04Miw1ICs5MywxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERhdGEgbV9kYXRhOwogfTsK
KyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0
cmVhbT4geworICAgIHN0YXRpYyBTVkdQYXRoQnl0ZVN0cmVhbSBpbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBTVkdQYXRoQnl0ZVN0cmVhbSgpOyB9CisgICAgc3RhdGljIFNWR1BhdGhCeXRlU3RyZWFt
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBTVkdQYXRo
Qnl0ZVN0cmVhbSBieXRlU3RyZWFtOworICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVN0cmluZyhzdHJpbmcsIGJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICBy
ZXR1cm4gYnl0ZVN0cmVhbTsKKyAgICB9Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgwLDcgKzgwLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogaW5s
aW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGljc0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3BhdGhTZWdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xl
KQorICAgICwgbV9wYXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdFZhbHVlcyhQYXRoU2VnVW5hbHRl
cmVkUm9sZSkpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2VydmVkKGZhbHNlKQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7CkBAIC0yNTUsNyArMjU1LDcgQEAgdm9p
ZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZAogICAgICAgICBpZiAobV9wYXRo
U2VnTGlzdC5zaG91bGRTeW5jaHJvbml6ZSAmJiAhU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3Vw
V3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4odGhpcywgZFByb3BlcnR5SW5mbygpKS0+aXNBbmltYXRpbmcoKSkgewogICAgICAgICAg
ICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbmV3TGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7CiAg
ICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0obV9wYXRo
Qnl0ZVN0cmVhbSwgKnRoaXMsIG5ld0xpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwotICAgICAgICAg
ICAgbV9wYXRoU2VnTGlzdC52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgICAgICBtX3BhdGhTZWdM
aXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKSA9IFdURk1vdmUobmV3TGlzdCk7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpCkBAIC0zMjcsOCArMzI3LDggQEAg
UmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1BhdGhFbGVtZW50OgogICAgIGlmIChhdXRvIHBy
b3BlcnR5ID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQYXRoRWxlbWVu
dCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oJm93bmVyVHlwZSwgZFBy
b3BlcnR5SW5mbygpKSkKICAgICAgICAgcmV0dXJuICpwcm9wZXJ0eTsKIAotICAgIGlmIChvd25l
clR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIGJ1aWxkU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0cmVhbSwg
b3duZXJUeXBlLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSwgVW5hbHRlcmVkUGFyc2lu
Zyk7CisgICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2Vn
TGlzdFZhbHVlcz4oKS5pc0VtcHR5KCkpCisgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJUeXBlLCBv
d25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS0+YXM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCks
IFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgcmV0dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6Omxv
b2t1cE9yQ3JlYXRlV3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZiwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCZvd25lclR5cGUsIGRQcm9w
ZXJ0eUluZm8oKSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUpOwogfQpAQCAtMzM5LDcg
KzMzOSw3IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN5bmNocm9uaXplRChTVkdFbGUKICAgICBT
VkdQYXRoRWxlbWVudCYgb3duZXJUeXBlID0gZG93bmNhc3Q8U1ZHUGF0aEVsZW1lbnQ+KCpjb250
ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zaG91bGRTeW5j
aHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5
bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3du
ZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBvd25lclR5
cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkt
PmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRo
U2VnTGlzdFZhbHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1BhdGhFbGVt
ZW50OjphbmltYXRlZFByb3BlcnR5V2lsbEJlRGVsZXRlZCgpCkBAIC0zOTIsMTAgKzM5MiwxMCBA
QCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQoCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUGF0aFNlZ1VuYWx0ZXJlZFJvbGU6CiAgICAgICAgIGlmIChsaXN0TW9kaWZp
Y2F0aW9uID09IExpc3RNb2RpZmljYXRpb25BcHBlbmQpIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
bV9wYXRoU2VnTGlzdC52YWx1ZS5pc0VtcHR5KCkpOwotICAgICAgICAgICAgYXBwZW5kU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhtX3BhdGhTZWdMaXN0LnZhbHVlLmxhc3QoKS5jb3B5
UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICAgICAg
QVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS5p
c0VtcHR5KCkpOworICAgICAgICAgICAgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0
aFNlZyhtX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS5sYXN0
UHJvcGVydHkoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9wYXRoQnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAg
ICAgICAgbV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBhdGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpc3QuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxNSArMjksMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB2b2lkIFNWR1BhdGhTZWdMaXN0OjpjbGVhckNvbnRleHRBbmRSb2xlcygpCiB7
Ci0gICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiAqbV92YWx1ZXMp
CisgICAgZm9yIChhdXRvJiBpdGVtIDogdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0aWVzKCkpCiAg
ICAgICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCo+KGl0ZW0uZ2V0KCkpLT5z
ZXRDb250ZXh0QW5kUm9sZShudWxscHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiB9CiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0OjpjbGVhcigpCiB7Ci0gICAgQVNTRVJUKG1f
dmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICBpZiAodmFsdWVzUHJv
cGVydHkoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBjbGVhckNvbnRl
eHRBbmRSb2xlcygpOwpAQCAtNTAsOCArNDksOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0
aFNlZz4+IFNWR1BhdGhTCiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0
aFNlZ0xpc3Q6OnJlcGxhY2VJdGVtKFJlZjxTVkdQYXRoU2VnPiYmIG5ld0l0ZW0sIHVuc2lnbmVk
IGluZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpIHsKLSAgICAgICAg
TGlzdEl0ZW1UeXBlIHJlcGxhY2VkSXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7CisgICAgaWYg
KGluZGV4IDwgdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpIHsKKyAgICAgICAgTGlzdEl0ZW1UeXBl
IHJlcGxhY2VkSXRlbSA9IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydHlBdChpbmRleCk7CiAgICAg
ICAgIEFTU0VSVChyZXBsYWNlZEl0ZW0pOwogICAgICAgICBzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
V2l0aENvbnRleHQqPihyZXBsYWNlZEl0ZW0uZ2V0KCkpLT5zZXRDb250ZXh0QW5kUm9sZShudWxs
cHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMiwxMiArMzMsMTIgQEAgcHVibGljOgog
ICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdEl0ZW1U
eXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OjpMaXN0SXRlbVR5
cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1Bh
dGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAg
IHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBhdGhTZWdVbmRlZmlu
ZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00NSwxMSArNDYsOSBAQCBwdWJsaWM6CiAK
ICAgICBpbnQgZmluZEl0ZW0oY29uc3QgTGlzdEl0ZW1UeXBlJiBpdGVtKSBjb25zdAogICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLQotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV92
YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHZhbHVlc1Byb3BlcnR5KCku
c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAg
ICAgICAgICAgaWYgKGl0ZW0gPT0gbV92YWx1ZXMtPmF0KGkpKQorICAgICAgICAgICAgaWYgKGl0
ZW0gPT0gdmFsdWVzUHJvcGVydHkoKS5wcm9wZXJ0eUF0KGkpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBpOwogICAgICAgICB9CiAKQEAgLTU4LDEwICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hy
b25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fdmFsdWVzLT5z
aXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KGl0ZW1JbmRleCA8IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBtX3ZhbHVl
cy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0
ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAg
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTkzLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9s
ZSBwYXRoU2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNl
Z1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1h
dGVkUHJvcGVydHkoJmFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwgbV9wYXRoU2VnUm9sZShw
YXRoU2VnUm9sZSkKQEAgLTExNywxNCArMTE1LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNv
bW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAg
ICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRF
bGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKKyAgICAgICAgdmFsdWVzUHJvcGVy
dHkoKS5jb21taXRDaGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwg
TGlzdE1vZGlmaWNhdGlvblVua25vd24pOwogICAgIH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdl
KExpc3RNb2RpZmljYXRpb24gbGlzdE1vZGlmaWNhdGlvbikgZmluYWwKICAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFsdWVzLT5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CisgICAg
ICAgIHZhbHVlc1Byb3BlcnR5KCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNv
bnRleHRFbGVtZW50KCksIGxpc3RNb2RpZmljYXRpb24pOwogICAgIH0KIAogICAgIGJvb2wgcHJv
Y2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVu
c2lnbmVkKiBpbmRleFRvTW9kaWZ5KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5LCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01
OCw3OCArNTksNzggQEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpTVkdQYXRoU2VnTGlzdEJ1aQog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJn
ZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUg
PT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVu
ZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50
LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6
OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2Rl
IG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRv
QWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9p
ZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250YWwoZmxvYXQgeCwgUGF0aENv
b3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRl
cykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+Piht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0
aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhDb29yZGluYXRlTW9kZSBtb2Rl
KQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxz
ZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdS
b2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBG
bG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAg
aWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdl
dFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2lu
dDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55
KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0
UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50
Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnko
KSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1
cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9p
bnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9k
ZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0
UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0
aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQy
LngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1f
cGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngo
KSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwog
fQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRyYXRpYyhjb25zdCBG
bG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29v
cmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
KQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3Bh
dGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdS
b2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkp
OworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxT
VkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQx
LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6
OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBh
dGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRp
bmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhT
ZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3Bh
dGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8oZmxv
YXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dl
ZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2Rl
IG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJz
KHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFy
Y0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0
LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVu
dC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkp
KTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsK
KyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2Vl
cEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
OjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSk7CisgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlz
dFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJz
ZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2VnVHlwZSkKIHsKLSAgICBtX3Nl
Z21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9
IG1fcGF0aFNlZ0xpc3QucHJvcGVydHlBdChtX2l0ZW1DdXJyZW50KTsKICAgICBwYXRoU2VnVHlw
ZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkp
OwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUxLDcgKzUxLDcg
QEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdTZWdtZQogCiBTVkdQYXRoU2Vn
VHlwZSBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6bmV4dENvbW1hbmQoU1ZHUGF0aFNlZ1R5cGUpCiB7
Ci0gICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAgICBt
X3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LnByb3BlcnR5QXQobV9pdGVtQ3VycmVudCk7CiAgICAg
U1ZHUGF0aFNlZ1R5cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4o
bV9zZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0
dXJuIHBhdGhTZWdUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
VmFsdWVzLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTE5LDEwICsyMCw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
U1ZHTGlzdFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUg
IlNWR1BhdGhTZWcuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdDsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBT
VkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPFNWR1BhdGhTZWc+PiB7
CitjbGFzcyBTVkdQYXRoU2VnTGlzdFZhbHVlcyA6IHB1YmxpYyBTVkdMaXN0VmFsdWVzPFJlZlB0
cjxTVkdQYXRoU2VnPj4gewogcHVibGljOgogICAgIGV4cGxpY2l0IFNWR1BhdGhTZWdMaXN0VmFs
dWVzKFNWR1BhdGhTZWdSb2xlIHJvbGUpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1Bh
dGhTCiAgICAgQVNTRVJUKHBhcnNpbmdNb2RlID09IFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAg
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgYXBwZW5kZWRJdGVtTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9s
ZSk7Ci0gICAgYXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoV1RGTW92ZShwYXRoU2VnKSk7CisgICAg
YXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNl
Zz4+KFdURk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtIGFwcGVuZGVk
Qnl0ZVN0cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBwZW5kZWRJdGVt
TGlzdCk7CkBAIC0yMDYsMTUgKzIwNiwxNCBAQCBib29sIGJ1aWxkQW5pbWF0ZWRTVkdQYXRoQnl0
ZVN0cmVhbShjb25zCiAKIGJvb2wgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0
cmVhbSYgc3RyZWFtVG9BcHBlbmRUbywgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIGJ5U3RyZWFt
LCB1bnNpZ25lZCByZXBlYXRDb3VudCkKIHsKLSAgICAvLyBXaHkgcmV0dXJuIHdoZW4gc3RyZWFt
VG9BcHBlbmRUbyBpcyBlbXB0eT8gRG9uJ3Qgd2Ugc3RpbGwgbmVlZCB0byBhcHBlbmQ/CisgICAg
Ly8gVGhlIGJ5U3RyZWFtIHdpbGwgYmUgYmxlbmRlZCB3aXRoIHN0cmVhbVRvQXBwZW5kVG8uIFNv
IHN0cmVhbVRvQXBwZW5kVG8gaGFzIHRvIGhhdmUgZWxlbWVudHMuCiAgICAgaWYgKHN0cmVhbVRv
QXBwZW5kVG8uaXNFbXB0eSgpIHx8IGJ5U3RyZWFtLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICAvLyBJcyBpdCBPSyB0byBtYWtlIHRoZSBTVkdQYXRoQnl0ZVN0cmVhbUJ1
aWxkZXIgZnJvbSBhIHN0cmVhbSwgYW5kIHRoZW4gY2xlYXIgdGhhdCBzdHJlYW0/CisgICAgLy8g
YnVpbGRlciBpcyB0aGUgZGVzdGluYXRpb24gb2YgYmxlbmRpbmcgZnJvbVNvdXJjZSBhbmQgYnlT
b3VyY2UuIFRoZSBzdHJlYW0gb2YgYnVpbGRlcgorICAgIC8vIChpLmUuIHN0cmVhbVRvQXBwZW5k
VG8pIGhhcyB0byBiZSBjbGVhcmVkIGJlZm9yZSBjYWxsaW5nIGFkZEFuaW1hdGVkUGF0aC4KICAg
ICBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIgYnVpbGRlcihzdHJlYW1Ub0FwcGVuZFRvKTsKLQot
ICAgIFNWR1BhdGhCeXRlU3RyZWFtIGZyb21TdHJlYW1Db3B5ID0gc3RyZWFtVG9BcHBlbmRUbzsK
LSAgICBzdHJlYW1Ub0FwcGVuZFRvLmNsZWFyKCk7CisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0gZnJv
bVN0cmVhbUNvcHkgPSBXVEZNb3ZlKHN0cmVhbVRvQXBwZW5kVG8pOwogCiAgICAgU1ZHUGF0aEJ5
dGVTdHJlYW1Tb3VyY2UgZnJvbVNvdXJjZShmcm9tU3RyZWFtQ29weSk7CiAgICAgU1ZHUGF0aEJ5
dGVTdHJlYW1Tb3VyY2UgYnlTb3VyY2UoYnlTdHJlYW0pOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdQb2ludCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYg
dmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1BvaW50KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDMsMTEg
KzQ0LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludChp
bml0aWFsVmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUo
Y29uc3QgRmxvYXRQb2ludCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHUG9pbnQoaW5pdGlhbFZhbHVlKSk7Ci0gICAgfQotCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdQb2ludD4+IGNyZWF0ZShF
eGNlcHRpb25PcjxUPiYmIGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpbml0aWFs
VmFsdWUuaGFzRXhjZXB0aW9uKCkpCkBAIC05OSwxMiArOTUsMTIgQEAgcHVibGljOgogICAgIH0K
IAogcHJvdGVjdGVkOgotICAgIFNWR1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBvaW50JiB2YWx1ZSkKKyAgICBT
VkdQb2ludChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZH
UHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1
ZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZs
b2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
RmxvYXRQb2ludD4obnVsbHB0ciwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KQEAgLTExMywx
MSArMTA5LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9h
dFBvaW50Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1Bv
aW50KGNvbnN0IEZsb2F0UG9pbnQqIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8RmxvYXRQb2ludD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNW
R1BvaW50TGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8
U1ZHUG9pbnRMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRM
aXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1BvaW50TGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBw
ZXJzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
cywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QCBTdHJpbmcgU1ZHUG9pbnRMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nCiAgICAgICAgIGlmIChp
ID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7IC8vIEZJWE1FOiBTaG91bGRu
J3Qgd2UgdXNlIGNvbW1hcyB0byBzZXBlcmF0ZT8KIAotICAgICAgICBjb25zdCBhdXRvJiBwb2lu
dCA9IGF0KGkpOworICAgICAgICBjb25zdCBhdXRvJiBwb2ludCA9IHByb3BlcnR5QXQoaSk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LngoKSk7CiAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjgz
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMjEsMjIgKzIyLDI4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZs
b2F0UG9pbnQuaCIKKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJv
cGVydHlUcmFpdHMuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgU1ZHUG9pbnQ7CiBjbGFzcyBTVkdQb2ludExpc3Q7CiAKLWNsYXNzIFNW
R1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8RmxvYXRQb2ludD4geworY2xh
c3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8RmxvYXRQ
b2ludD4gewogcHVibGljOgogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CiB9Owog
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+
IHsKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1
ZXM+IHsKICAgICBzdGF0aWMgU1ZHUG9pbnRMaXN0VmFsdWVzIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIHsgfTsgfQotCisgICAgc3RhdGljIFNWR1BvaW50TGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgU1ZHUG9pbnRMaXN0VmFsdWVzIGxp
c3Q7CisgICAgICAgIHBvaW50c0xpc3RGcm9tU1ZHRGF0YShsaXN0LCBzdHJpbmcpOworICAgICAg
ICByZXR1cm4gbGlzdDsKKyAgICB9CiAgICAgdXNpbmcgTGlzdEl0ZW1UeXBlID0gRmxvYXRQb2lu
dDsKICAgICB1c2luZyBMaXN0SXRlbVRlYXJPZmYgPSBTVkdQb2ludDsKICAgICB1c2luZyBMaXN0
UHJvcGVydHlUZWFyT2ZmID0gU1ZHUG9pbnRMaXN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQg
U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3Jh
cHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQs
IFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAg
ICAgICAgICBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVy
KS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50
cy52YWx1ZSA9IG5ld0xpc3Q7CisgICAgICAgIG1fcG9pbnRzLnZhbHVlLT5hczxTVkdQb2ludExp
c3RWYWx1ZXM+KCkgPSBXVEZNb3ZlKG5ld0xpc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQb2lu
dHMoUwogICAgIFNWR1BvbHlFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQb2x5RWxl
bWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BvaW50cy5zaG91
bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG93bmVyVHlwZS5tX3BvaW50cy5z
eW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFt
ZSwgb3duZXJUeXBlLm1fcG9pbnRzLnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgb3duZXJU
eXBlLm1fcG9pbnRzLnN5bmNocm9uaXplKCZvd25lclR5cGUsIHBvaW50c1Byb3BlcnR5SW5mbygp
LT5hdHRyaWJ1dGVOYW1lLCBvd25lclR5cGUubV9wb2ludHMudmFsdWUtPmFzPFNWR1BvaW50TGlz
dFZhbHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0
eT4gU1ZHUG9seUVsZW1lbnQ6Omxvb2t1cE9yQ3JlYXRlUG9pbnRzV3JhcHBlcihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiAgICAgUmVmPFNWR1BvaW50
TGlzdD4gcG9pbnRzKCk7CiAgICAgUmVmPFNWR1BvaW50TGlzdD4gYW5pbWF0ZWRQb2ludHMoKTsK
IAotICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9w
b2ludHMudmFsdWU7IH0KKyAgICBTVkdQb2ludExpc3RWYWx1ZXMmIHBvaW50TGlzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9pbnRzLnZhbHVlLT5hczxTVkdQb2ludExpc3RWYWx1ZXM+KCk7IH0KIAog
ICAgIHN0YXRpYyBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIHBvaW50c1Byb3BlcnR5SW5mbygpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHJl
dmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+
IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRp
YWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
bz4gY3JlYXRlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSogaW5pdGlhbFZhbHVl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbyhpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUoRXhj
ZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZh
bHVlLmhhc0V4Y2VwdGlvbigpKQpAQCAtOTEsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBw
cml2YXRlOgotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSYgdmFsdWUpCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KQogICAgIHsKICAgICB9CkBAIC0xMDAsMTEgKzk1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFs
dWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxpY2l0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8o
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiBpbml0aWFsVmFsdWUpCi0gICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oaW5pdGlh
bFZhbHVlKQotICAgIHsKLSAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDExIEBAIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmUKIHsKIH0KIAorU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCit7CisgICAgcGFyc2Uoc3RyaW5nKTsKK30KKwogRXhjZXB0aW9uT3I8dm9p
ZD4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCBh
bGlnbikKIHsKICAgICBpZiAoYWxpZ24gPT0gU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9X
TiB8fCBhbGlnbiA+IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwogICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkgY29u
c3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU+IHsKICAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRpYWxWYWx1
ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9CisgICAgc3RhdGlj
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsgfQogICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
JiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlz
aW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxMiArNTUsMTIgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKLSAgICAsIG1fY3goTGVuZ3RoTW9kZVdpZHRoLCAiNTAlIikKLSAgICAsIG1fY3koTGVuZ3Ro
TW9kZUhlaWdodCwgIjUwJSIpCi0gICAgLCBtX3IoTGVuZ3RoTW9kZU90aGVyLCAiNTAlIikKLSAg
ICAsIG1fZngoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9meShMZW5ndGhNb2RlSGVpZ2h0KQot
ICAgICwgbV9mcihMZW5ndGhNb2RlT3RoZXIsICIwJSIpCisgICAgLCBtX2N4KFNWR0xlbmd0aFZh
bHVlKExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpKQorICAgICwgbV9jeShTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlSGVpZ2h0LCAiNTAlIikpCisgICAgLCBtX3IoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyLCAiNTAlIikpCisgICAgLCBtX2Z4KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX2Z5KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAg
ICwgbV9mcihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3RoZXIsICIwJSIpKQogewogICAgIC8v
IFNwZWM6IElmIHRoZSBjeC9jeS9yL2ZyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUg
ZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnJhZGlhbEdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0LmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDEzICsyMSwxMyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKLSNpbmNsdWRlICJTVkdSZWN0VHJhaXRzLmgi
CisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdSZWN0IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2
YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdS
ZWN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtMzYsMTEgKzM3
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRp
YWxWYWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKGNvbnN0
IEZsb2F0UmVjdCogaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUmVjdChpbml0aWFsVmFsdWUpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1JlY3Q+PiBjcmVhdGUoRXhjZXB0aW9u
T3I8VD4mJiBpbml0aWFsVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhh
c0V4Y2VwdGlvbigpKQpAQCAtMTEzLDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdSZWN0KFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAg
IH0KQEAgLTEyMiwxMSArMTE4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8RmxvYXRSZWN0Pihpbml0aWFsVmFsdWUpCiAgICAgewogICAgIH0KLQotICAgIGV4cGxp
Y2l0IFNWR1JlY3QoY29uc3QgRmxvYXRSZWN0KiBpbml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZH
UHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4oaW5pdGlhbFZhbHVlKQotICAgIHsKLSAgICB9CiB9
OwogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0VHJhaXRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkocmV2aXNpb24gMjI4Mzkw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RUcmFpdHMuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRl
PD4KLXN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKLSAgICBzdGF0aWMgRmxv
YXRSZWN0IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiB0eXBlKQotICAgIHsKLSAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLngoKSk7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHR5cGUueSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodHlwZS53aWR0aCgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS5oZWlnaHQoKSk7Ci0gICAgICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03MSwxMSArNzEsMTIgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIAogaW5saW5lIFNWR1NWR0VsZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAs
IG1feShMZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsIEFT
Q0lJTGl0ZXJhbCgiMTAwJSIpKQotICAgICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCwgQVND
SUlMaXRlcmFsKCIxMDAlIikpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdp
ZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAs
IG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEw
MCUiKSkpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCBB
U0NJSUxpdGVyYWwoIjEwMCUiKSkpCiAgICAgLCBtX3RpbWVDb250YWluZXIoU01JTFRpbWVDb250
YWluZXI6OmNyZWF0ZSgqdGhpcykpCisgICAgLCBtX2N1cnJlbnRUcmFuc2xhdGUoU1ZHVmFsdWU6
OmNyZWF0ZTxGbG9hdFBvaW50PigpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVz
OjpzdmdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1NWR0VsZW1l
bnQoKTsKQEAgLTE5Nyw5ICsxOTgsOSBAQCBSZWY8U1ZHUG9pbnQ+IFNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRUcmFuCiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q3VycmVudFRyYW5zbGF0ZShjb25z
dCBGbG9hdFBvaW50JiB0cmFuc2xhdGlvbikKIHsKLSAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRl
ID09IHRyYW5zbGF0aW9uKQorICAgIGlmIChtX2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9p
bnQ+KCkgPT0gdHJhbnNsYXRpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRUcmFu
c2xhdGUgPSB0cmFuc2xhdGlvbjsKKyAgICBtX2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9p
bnQ+KCkgPSB0cmFuc2xhdGlvbjsKICAgICB1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCk7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTYz
LDcgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUN1cnJlbnRWaWV3IHsgZmFsc2Ug
fTsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFn
bmlmeSB9OwogICAgIFJlZjxTTUlMVGltZUNvbnRhaW5lcj4gbV90aW1lQ29udGFpbmVyOwotICAg
IEZsb2F0UG9pbnQgbV9jdXJyZW50VHJhbnNsYXRlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9j
dXJyZW50VHJhbnNsYXRlOwogICAgIFJlZlB0cjxTVkdWaWV3U3BlYz4gbV92aWV3U3BlYzsKICAg
ICBTdHJpbmcgbV9jdXJyZW50Vmlld0ZyYWdtZW50SWRlbnRpZmllcjsKIH07CkBAIC0xNzUsNyAr
MTc1LDcgQEAgaW5saW5lIGJvb2wgU1ZHU1ZHRWxlbWVudDo6dXNlQ3VycmVudFZpZQogCiBpbmxp
bmUgRmxvYXRQb2ludCBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUoKQogewot
ICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGU7CisgICAgcmV0dXJuIG1fY3VycmVudFRyYW5z
bGF0ZS0+YXM8RmxvYXRQb2ludD4oKTsKIH0KIAogaW5saW5lIFNWR1pvb21BbmRQYW5UeXBlIFNW
R1NWR0VsZW1lbnQ6Onpvb21BbmRQYW4oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0cmluZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdC5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsMTIgQEAgcHVibGljOgogICAg
IHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjxTVkdTdHJpbmdMaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNh
Y2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0g
ICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVs
ZW1lbnQsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR1N0
cmluZ0xpc3Q+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHU3RyaW5nTGlzdCgmY29udGV4dEVsZW1lbnQsIHZhbHVlcykpOwogICAgIH0KIAotICAgIHN0
YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYsIFNWR1Byb3BlcnR5Um9sZSwgU1ZHU3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3Jh
cHBlckNhY2hlJikKKyAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCiAgICAgewogICAgICAgICAvLyBGSVhN
RTogRmluZCBhIHdheSB0byByZW1vdmUgdGhpcy4gSXQncyBvbmx5IG5lZWRlZCB0byBrZWVwIFdp
bmRvd3MgY29tcGlsaW5nLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdHJpbmdMaXN0KFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMpCisg
ICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJP
ZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIHZhbHVlcykKICAgICB7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAko
cmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3RWYWx1
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU1ZHU3RyaW5nTGlz
dFZhbHVlczo6cmVzZXQoY29uc3QgU3QKIAogICAgIC8vIEFkZCBlbXB0eSBzdHJpbmcsIGlmIGxp
c3QgaXMgZW1wdHkuCiAgICAgaWYgKGlzRW1wdHkoKSkKLSAgICAgICAgYXBwZW5kKGVtcHR5U3Ry
aW5nKCkpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KGVtcHR5U3Ry
aW5nKCkpKTsKIH0KIAogdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdHJp
bmcmIGRhdGEsIFVDaGFyIGRlbGltaXRlcikKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBTVkdTdHJp
bmdMaXN0VmFsdWVzOjpwYXJzZShjb25zdCBTdAogICAgICAgICAgICAgcHRyKys7CiAgICAgICAg
IGlmIChwdHIgPT0gc3RhcnQpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgYXBwZW5kKFN0
cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVh
dGU8U3RyaW5nPihTdHJpbmcoc3RhcnQsIHB0ciAtIHN0YXJ0KSkpOwogICAgICAgICBza2lwT3B0
aW9uYWxTVkdTcGFjZXNPckRlbGltaXRlcihwdHIsIGVuZCwgZGVsaW1pdGVyKTsKICAgICB9CiB9
CkBAIC03MCw3ICs3MCw3IEBAIFN0cmluZyBTVkdTdHJpbmdMaXN0VmFsdWVzOjp2YWx1ZUFzU3Ry
aW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
IAotICAgICAgICBidWlsZGVyLmFwcGVuZChhdChpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHByb3BlcnR5QXQoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9u
IDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsOCArMjIsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDcgKzMzLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlz
dDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1j
bGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsK
K2NsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxT
dHJpbmc+IHsKIHB1YmxpYzoKICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0
ZU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5
ICsxMDcsOSBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9CiAK
IFNWR1Rlc3RzOjpTVkdUZXN0cygpCi0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRG
ZWF0dXJlc0F0dHIpCi0gICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lv
bnNBdHRyKQotICAgICwgbV9zeXN0ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAg
OiBtX3JlcXVpcmVkRmVhdHVyZXMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVz
QXR0cikpCisgICAgLCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJl
cXVpcmVkRXh0ZW5zaW9uc0F0dHIpKQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdM
aXN0VmFsdWVzKHN5c3RlbUxhbmd1YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIw
IEBAIGJvb2wgU1ZHVGVzdHM6Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcKIAogYm9vbCBTVkdU
ZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDogbV9yZXF1
aXJlZEZlYXR1cmVzLnZhbHVlKSB7CisgICAgYXV0byBmZWF0dXJlcyA9IG1fcmVxdWlyZWRGZWF0
dXJlcy52YWx1ZS0+YXM8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKS5wcm9wZXJ0aWVzKCk7CisgICAg
Zm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVyZXMpIHsKICAgICAgICAgaWYgKGZlYXR1cmUuaXNF
bXB0eSgpIHx8ICFzdXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5zKGZlYXR1cmUpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDog
bV9zeXN0ZW1MYW5ndWFnZS52YWx1ZSkgeworCisgICAgYXV0byBsYW5ndWFnZXMgPSBtX3N5c3Rl
bUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnByb3BlcnRpZXMoKTsK
KyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzKSB7CiAgICAgICAgIGlmIChsYW5n
dWFnZSAhPSBkZWZhdWx0TGFuZ3VhZ2UoKS5zdWJzdHJpbmcoMCwgMikpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIGZvciAoYXV0byYgZXh0ZW5zaW9uIDogbV9yZXF1aXJl
ZEV4dGVuc2lvbnMudmFsdWUpIHsKKworICAgIGF1dG8gZXh0ZW5zaW9ucyA9IG1fcmVxdWlyZWRF
eHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnByb3BlcnRpZXMoKTsK
KyAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6IGV4dGVuc2lvbnMpIHsKICAgICAgICAgaWYgKCFo
YXNFeHRlbnNpb24oZXh0ZW5zaW9uKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNzIsMTEgKzE3NywxMSBAQCBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHZv
aWQgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKGF0dHJpYnV0ZU5h
bWUgPT0gcmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAgICAgIG1fcmVxdWlyZWRGZWF0dXJlcy52
YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS0+YXM8
U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJpYnV0ZU5h
bWUgPT0gcmVxdWlyZWRFeHRlbnNpb25zQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEV4dGVuc2lv
bnMudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1
ZS0+YXM8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKS5yZXNldCh2YWx1ZSk7CiAgICAgaWYgKGF0dHJp
YnV0ZU5hbWUgPT0gc3lzdGVtTGFuZ3VhZ2VBdHRyKQotICAgICAgICBtX3N5c3RlbUxhbmd1YWdl
LnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgbV9zeXN0ZW1MYW5ndWFnZS52YWx1ZS0+YXM8
U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKS5yZXNldCh2YWx1ZSk7CiB9CiAKIGJvb2wgU1ZHVGVzdHM6
OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKQEAg
LTIwOCw3ICsyMTMsNyBAQCB2b2lkIFNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShTVkdF
CiB7CiAgICAgaWYgKCFwcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJu
OwotICAgIG1fcmVxdWlyZWRGZWF0dXJlcy5zeW5jaHJvbml6ZSgmY29udGV4dEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIHByb3BlcnR5LnZhbHVlLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgbV9yZXF1
aXJlZEZlYXR1cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
cHJvcGVydHkudmFsdWUtPmFzPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KCkudmFsdWVBc1N0cmluZygp
KTsKIH0KIAogdm9pZCBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKFNWR0Vs
ZW1lbnQmIGNvbnRleHRFbGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRDb250ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2
Niw4IEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIFNWR1RleHRDb250ZW50
RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKLSAgICAsIG1fdGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpCi0gICAgLCBt
X3NwZWNpZmllZFRleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVyKQorICAgICwgbV90ZXh0TGVuZ3Ro
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlcikpCisgICAgLCBtX3NwZWNpZmllZFRleHRM
ZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKICAgICAsIG1fbGVuZ3RoQWRq
dXN0KFNWR0xlbmd0aEFkanVzdFNwYWNpbmcpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdUZXh0Q29udGVudEVsZW1lbnQoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBTVkdUZXh0Q29udGVudEVsZQogewogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTVkdMZW5ndGhWYWx1ZT4gZGVmYXVsdFRleHRMZW5ndGgoTGVuZ3RoTW9kZU90aGVy
KTsKICAgICBpZiAobV9zcGVjaWZpZWRUZXh0TGVuZ3RoID09IGRlZmF1bHRUZXh0TGVuZ3RoKQot
ICAgICAgICBtX3RleHRMZW5ndGgudmFsdWUubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5ndGhU
eXBlTnVtYmVyLCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CisgICAgICAgIG1fdGV4dExlbmd0
aC52YWx1ZS0+YXM8U1ZHTGVuZ3RoVmFsdWU+KCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyhMZW5n
dGhUeXBlTnVtYmVyLCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CiAKICAgICBtX3RleHRMZW5n
dGguc2hvdWxkU3luY2hyb25pemUgPSB0cnVlOwogICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNl
X2Nhc3Q8U1ZHQW5pbWF0ZWRMZW5ndGg+KGxvb2t1cE9yQ3JlYXRlVGV4dExlbmd0aFdyYXBwZXIo
dGhpcykpOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpw
YXJzZUF0dHJpYnUKICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAg
c2V0TGVuZ3RoQWRqdXN0QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52
YWx1ZSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgbV90ZXh0TGVuZ3Ro
LnZhbHVlLT5hczxTVkdMZW5ndGhWYWx1ZT4oKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3Qo
TGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhz
KTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2
YWx1ZSk7CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6
c3ZnQXR0cmlidXRlCiAgICAgfQogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0
TGVuZ3RoQXR0cikKLSAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3Ro
LnZhbHVlOworICAgICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFs
dWUtPmFzPFNWR0xlbmd0aFZhbHVlPigpOwogCiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIEVORF9SRUdJU1RFUl9BTklN
QVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdUZXh0UGF0aEVsZW1lbnQ6OlNWR1RleHRQYXRo
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdUZXh0Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBt
X3N0YXJ0T2Zmc2V0KExlbmd0aE1vZGVPdGhlcikKKyAgICAsIG1fc3RhcnRPZmZzZXQoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkKICAgICAsIG1fbWV0aG9kKFNWR1RleHRQYXRoTWV0
aG9kQWxpZ24pCiAgICAgLCBtX3NwYWNpbmcoU1ZHVGV4dFBhdGhTcGFjaW5nRXhhY3QpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMg
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVl
KQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
VHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNDMs
MTEgKzQzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFu
c2Zvcm0oaW5pdGlhbFZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zv
cm0+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1WYWx1ZSogaW5pdGlhbFZhbHVlKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGluaXRpYWxWYWx1ZSkp
OwotICAgIH0KLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQog
ICAgIHsKICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS5oYXNFeGNlcHRpb24oKSkKQEAgLTEzNCw3
ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRl
ZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewog
ICAgIH0KQEAgLTE0MywxMSArMTM4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHVHJhbnNmb3JtVmFsdWU+KGluaXRpYWxWYWx1ZSkKICAgICB7CiAgICAgfQot
Ci0gICAgZXhwbGljaXQgU1ZHVHJhbnNmb3JtKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlKiBpbml0
aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVl
Pihpbml0aWFsVmFsdWUpCi0gICAgewotICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMjI4
MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yMiw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYuaCIKICNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCisjaW5jbHVkZSAi
U1ZHVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMSwyMCArMzMsMTggQEAgcHVibGljOgogICAgIHVzaW5n
IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hl
ID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAg
c3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBz
dGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9u
T3I8UmVmPFNWR1RyYW5zZm9ybT4+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0
cml4JiBtYXRyaXgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBy
ZXR1cm4gbV92YWx1ZXMtPmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgobWF0cml4KTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlc1Byb3BlcnR5KCkuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJp
eChtYXRyaXgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+
PiBjb25zb2xpZGF0ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAg
ICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxp
c3QoKTsKQEAgLTUyLDIzICs1MiwyMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGxpc3Qgd2Fz
IGVtcHR5LCB0aGVuIGEgdmFsdWUgb2YgbnVsbCBpcyByZXR1cm5lZC4KLSAgICAgICAgaWYgKG1f
dmFsdWVzLT5pc0VtcHR5KCkpCisgICAgICAgIGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFw
cGVycygwKTsKICAgICAgICAgCi0gICAgICAgIFJlZlB0cjxTVkdUcmFuc2Zvcm0+IHdyYXBwZXIg
PSBtX3ZhbHVlcy0+Y29uc29saWRhdGUoKTsKKyAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4g
d3JhcHBlciA9IHZhbHVlc1Byb3BlcnR5KCkuY29uc29saWRhdGUoKTsKICAgICAgICAgbV93cmFw
cGVycy0+YXBwZW5kKHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAg
IHJldHVybiBXVEZNb3ZlKHdyYXBwZXIpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdUcmFu
c2Zvcm1MaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
LmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1h
bm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQxLDcgKzQyLDcgQEAgUmVmPFNWR1RyYW5z
Zm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJh
bnNmb3JtKG1hdHJpeCk7CiAgICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAg
ICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7
CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUy
LDcgKzUzLDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsg
KytpKQotICAgICAgICByZXN1bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAq
PSBwcm9wZXJ0eUF0KGkpLm1hdHJpeCgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02NSw3
ICs2Niw3IEBAIFN0cmluZyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2YWx1ZUFzU3QKICAgICAg
ICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgICAg
ICBidWlsZGVyLmFwcGVuZChhdChpKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICBidWlsZGVy
LmFwcGVuZChwcm9wZXJ0eUF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjEsMTYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2lu
Y2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
ICJTVkdMaXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgU1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjsKLQorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwog
Y2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBm
aW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zv
cm1WYWx1ZT4gewogcHVibGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5z
Zm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4g
Y29uc29saWRhdGUoKTsKQEAgLTQyLDggKzQxLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNl
KGNvbnN0IFN0cmluZyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewordGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+IHsKICAgICBzdGF0aWMgU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBsaXN0OworICAgICAgICBsaXN0
LnBhcnNlKHN0cmluZyk7CisgICAgICAgIEFTU0VSVChsaXN0LnNpemUoKSA8PSAxKTsKKyAgICAg
ICAgcmV0dXJuIGxpc3Q7CisgICAgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3Qg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5n
KCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTkxLDQgKzkyLDkgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTVkdUcmFuc2Zvcgog
ICAgIHJldHVybiAhKGEgPT0gYik7CiB9CiAKK3RlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPiB7CisgICAgc3RhdGljIFNWR1RyYW5zZm9ybVZhbHVl
IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIHRyYW5zZm9ybSkgeyByZXR1cm4gdHJhbnNmb3Jt
LnZhbHVlQXNTdHJpbmcoKTsgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAkocmV2aXNpb24gMjI4MzkwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9y
bUF0dAogICAgICAgICBpZiAoIXBhcnNlVHJhbnNmb3JtVmFsdWUodHlwZSwgY3VyclRyYW5zZm9y
bSwgZW5kLCB0cmFuc2Zvcm0pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
IGxpc3QuYXBwZW5kKHRyYW5zZm9ybSk7CisgICAgICAgIGxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5zZm9ybSkpOwogICAgICAgICBza2lwT3B0aW9u
YWxTVkdTcGFjZXMoY3VyclRyYW5zZm9ybSwgZW5kKTsKICAgICAgICAgaWYgKGN1cnJUcmFuc2Zv
cm0gPCBlbmQgJiYgKmN1cnJUcmFuc2Zvcm0gPT0gJywnKSB7CiAgICAgICAgICAgICBkZWxpbVBh
cnNlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYyLDEwICs2MiwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJP
UEVSVElFUwogCiBpbmxpbmUgU1ZHVXNlRWxlbWVudDo6U1ZHVXNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFwaGlj
c0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoKQot
ICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3dpZHRoKExlbmd0aE1vZGVXaWR0
aCkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3goU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1feShTVkdMZW5ndGhWYWx1ZShMZW5ndGhN
b2RlSGVpZ2h0KSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRo
KSkKKyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogICAg
ICwgbV9zdmdMb2FkRXZlbnRUaW1lcigqdGhpcywgJlNWR0VsZW1lbnQ6OnN2Z0xvYWRFdmVudFRp
bWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygp
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjI1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgorI2luY2x1ZGUgIlNWR0xl
bmd0aExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgorI2luY2x1ZGUg
IlNWR01hdHJpeFZhbHVlLmgiCisjaW5jbHVkZSAiU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIgorI2lu
Y2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCisjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXMuaCIKKyNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgor
I2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RWYWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1M
aXN0VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKKyNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFNWR1ZhbHVlVmFy
aWFudCA9IFZhcmlhbnQ8CisgICAgU1ZHQW5nbGVWYWx1ZSwKKyAgICBib29sLAorICAgIENvbG9y
LAorICAgIHVuc2lnbmVkLAorICAgIGludCwKKyAgICBTVkdMZW5ndGhWYWx1ZSwKKyAgICBTVkdM
ZW5ndGhMaXN0VmFsdWVzLAorICAgIFNWR01hdHJpeFZhbHVlLAorICAgIGZsb2F0LAorICAgIFNW
R051bWJlckxpc3RWYWx1ZXMsCisgICAgU1ZHUGF0aEJ5dGVTdHJlYW0sCisgICAgUmVmUHRyPFNW
R1BhdGhTZWc+LAorICAgIFNWR1BhdGhTZWdMaXN0VmFsdWVzLAorICAgIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSwKKyAgICBGbG9hdFBvaW50LAorICAgIFNWR1BvaW50TGlzdFZhbHVlcywK
KyAgICBGbG9hdFJlY3QsCisgICAgU3RyaW5nLAorICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMsCisg
ICAgU1ZHVHJhbnNmb3JtVmFsdWUsCisgICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcworPjsKKwor
dGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR1RyYWl0SGFzVG9TdHJp
bmcgeworICAgIHR5cGVkZWYgY2hhciBvbmU7CisgICAgdHlwZWRlZiBsb25nIHR3bzsKKworICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgb25lIHRlc3QoZGVjbHR5cGUoJlNWR1Byb3Bl
cnR5VHJhaXRzPFQ+Ojp0b1N0cmluZykpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0
aWMgdHdvIHRlc3QoLi4uKTsKKworcHVibGljOgorICAgIGVudW0geyBWYWx1ZSA9IHNpemVvZih0
ZXN0PFByb3BlcnR5VHlwZT4obnVsbHB0cikpID09IHNpemVvZihjaGFyKSB9OworfTsKKyAgICAK
K3N0cnVjdCB0b1N0cmluZ1Zpc2l0b3IgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46
OlZhbHVlPiogPSBudWxscHRyPgorICAgIFN0cmluZyBvcGVyYXRvcigpKGNvbnN0IFByb3BlcnR5
VHlwZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJv
cGVydHlUeXBlPjo6dG9TdHJpbmcodmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNUb1N0cmluZzxQ
cm9wZXJ0eVR5cGU+OjpWYWx1ZT4qID0gbnVsbHB0cj4KKyAgICBTdHJpbmcgb3BlcmF0b3IoKShj
b25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorfTsKKyAgICAKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdUcmFpdEhhc1BhcnNlIHsKKyAgICB0eXBlZGVmIGNo
YXIgb25lOworICAgIHR5cGVkZWYgbG9uZyB0d287CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gc3RhdGljIG9uZSB0ZXN0KGRlY2x0eXBlKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6cGFyc2Up
KTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHR3byB0ZXN0KC4uLik7CisKK3B1
YmxpYzoKKyAgICBlbnVtIHsgVmFsdWUgPSBzaXplb2YodGVzdDxQcm9wZXJ0eVR5cGU+KG51bGxw
dHIpKSA9PSBzaXplb2YoY2hhcikgfTsKK307CisKK3N0cnVjdCBwYXJzZVZpc2l0b3IgeworICAg
IHBhcnNlVmlzaXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIFNWR1ZhbHVlVmFyaWFudCYgdmFyaWFudCkKKyAgICAgICAgOiBtX2F0dHJOYW1l
KGF0dHJOYW1lKQorICAgICAgICAsIG1fc3RyaW5nKHN0cmluZykKKyAgICAgICAgLCBtX3Zhcmlh
bnQodmFyaWFudCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBy
b3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlw
ZT46OlZhbHVlPiogPSBudWxscHRyPgorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBQcm9wZXJ0
eVR5cGUmKQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxQcm9wZXJ0eVR5cGU+IHJlc3Vs
dCA9IFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBhcnNlKG1fYXR0ck5hbWUsIG1f
c3RyaW5nKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIG1fdmFyaWFudC5lbXBsYWNlPFByb3BlcnR5VHlwZT4oV1RGTW92ZShyZXN1bHQu
dmFsdWUoKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRI
YXNQYXJzZTxQcm9wZXJ0eVR5cGU+OjpWYWx1ZT4qID0gbnVsbHB0cj4KKyAgICBib29sIG9wZXJh
dG9yKCkoY29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgUXVhbGlm
aWVkTmFtZSYgbV9hdHRyTmFtZTsKKyAgICBjb25zdCBTdHJpbmcmIG1fc3RyaW5nOworICAgIFNW
R1ZhbHVlVmFyaWFudCYgbV92YXJpYW50OworfTsKKyAgICAKK2NsYXNzIFNWR1ZhbHVlIDogcHVi
bGljIFJlZkNvdW50ZWQ8U1ZHVmFsdWU+LCBwdWJsaWMgU1ZHVmFsdWVWYXJpYW50IHsKK3B1Ymxp
YzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgc3RhdGljIFJlZjxT
VkdWYWx1ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGU8UHJvcGVydHlU
eXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSk7Cisg
ICAgfQorICAgIAorICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAg
IHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmFsdWUocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1bnNpZ25lZCY+KHByb3BlcnR5KSkpOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmPFNWR1ZhbHVl
PiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1ZhbHVlKHByb3BlcnR5KSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBSZWY8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWYWx1ZSh2YWx1ZSkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBib29sIGlzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFByb3BlcnR5
VHlwZT4oKnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWUgJiYgV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUm
IGFzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgY29uc3QgUHJvcGVy
dHlUeXBlJiBhcygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBl
PigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAg
IH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFByb3Bl
cnR5VHlwZSYgYXMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBy
b3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRl
bXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51
bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBQcm9wZXJ0eVR5cGUmIGFz
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAgU3RyaW5n
IHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KHRvU3Ry
aW5nVmlzaXRvcigpLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykp
OworICAgIH0KKworICAgIGJvb2wgcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUs
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQo
cGFyc2VWaXNpdG9yKGF0dHJOYW1lLCBzdHJpbmcsIHN0YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFu
dCY+KCp0aGlzKSksIHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
KyAgICBleHBsaWNpdCBTVkdWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAg
ICA6IFNWR1ZhbHVlVmFyaWFudCh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9w
ZXJ0eVR5cGU+KCkpOworICAgIH0KKyAgICAKKyAgICBTVkdWYWx1ZShjb25zdCBTVkdWYWx1ZSYg
dmFsdWUpCisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50KHN0YXRpY19jYXN0PGNvbnN0IFNWR1Zh
bHVlVmFyaWFudCY+KHZhbHVlKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRleCgpID09IHZh
bHVlLmluZGV4KCkpOworICAgIH0KK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODM5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIGlubGlu
ZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKICAgICAsIG1fem9vbUFuZFBhbihTVkdab29tQW5kUGFuTWFnbmlmeSkKLSAgICAsIG1f
dmlld1RhcmdldChTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCisgICAgLCBtX3ZpZXdUYXJnZXQo
U1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJpbmdMaXN0VmFsdWVzKFNWR05hbWVzOjp2aWV3VGFyZ2V0
QXR0cikpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp2aWV3VGFnKSk7CiAg
ICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwpAQCAtNjAs
NyArNjAsNyBAQCBSZWY8U1ZHU3RyaW5nTGlzdD4gU1ZHVmlld0VsZW1lbnQ6OnZpZXdUCiB2b2lk
IFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVz
Ojp2aWV3VGFyZ2V0QXR0cikKLSAgICAgICAgbV92aWV3VGFyZ2V0LnJlc2V0KHZhbHVlKTsKKyAg
ICAgICAgbV92aWV3VGFyZ2V0LT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0KHZhbHVl
KTsKIAogICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5h
bWUsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lv
biAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIAogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAg
ICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+
IG1fdmlld1RhcmdldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOSBAQCBj
b25zdCBTVkdQcm9wZXJ0eUluZm8qIFNWR1ZpZXdTcGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVjOjpT
VkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVs
ZW1lbnQoJmNvbnRleHRFbGVtZW50KQorICAgICwgbV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNyZWF0
ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICwgbV92aWV3Qm94KFNWR1ZhbHVlOjpj
cmVhdGU8RmxvYXRSZWN0PigpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1ZhbHVl
OjpjcmVhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKQogewogfQogCkBAIC0xMDgs
MTcgKzExMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFuCiAK
IFN0cmluZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OnRvU3RyaW5nKG1f
dHJhbnNmb3JtKTsKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAKIFN0
cmluZyBTVkdWaWV3U3BlYzo6dmlld0JveFN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNW
R1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKG1fdmlld0JveCk7CisgICAgcmV0
dXJuIG1fdmlld0JveC0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpwcmVz
ZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlU
cmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvKTsKKyAgICByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmluZygp
OwogfQogCiBTVkdFbGVtZW50KiBTVkdWaWV3U3BlYzo6dmlld1RhcmdldCgpIGNvbnN0CkBAIC0x
NzcsOSArMTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1ZpZXdTcGVjOjpsbwog
dm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQoKQogewogICAgIG1fem9vbUFuZFBhbiA9IFNWR1pvb21B
bmRQYW5NYWduaWZ5OwotICAgIG1fdHJhbnNmb3JtLmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94ID0g
eyB9OwotICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHsgfTsKKyAgICBtX3RyYW5zZm9ybS0+
YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKS5jbGVhcigpOworICAgIG1fdmlld0JveC0+YXM8
RmxvYXRSZWN0PigpID0geyB9OworICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpID0geyB9OwogICAgIG1fdmlld1RhcmdldFN0cmluZyA9
IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQsNyBAQCBib29sIFNWR1ZpZXdTcGVj
OjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49
IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgIFNWR1RyYW5zZm9y
bWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJhbnNmb3JtLCBjdXJyVmlld1NwZWMs
IGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOworICAgICAgICAgICAgU1ZH
VHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUobV90cmFuc2Zvcm0tPmFzPFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCksIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1h
YmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVu
ZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3Bl
Yy5oCShyZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcgKzU1LDE3IEBAIHB1YmxpYzoKIAogICAgIC8vIEN1
c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9ybScgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR1Ry
YW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgdHJh
bnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICBTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhbnNmb3JtLT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOyB9CiAKICAgICAvLyBDdXN0
b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFJl
Y3Q+IHZpZXdCb3hBbmltYXRlZCgpOwotICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJu
IG1fdmlld0JveDsgfQotICAgIHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJl
Y3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94ID0gdmlld0JveDsgfQorICAgIEZsb2F0UmVjdCYgdmll
d0JveCgpIHsgcmV0dXJuIG1fdmlld0JveC0+YXM8RmxvYXRSZWN0PigpOyB9CisgICAgdm9pZCBz
ZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyB0aGlzLT52aWV3
Qm94KCkgPSB2aWV3Qm94OyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ByZXNlcnZlQXNw
ZWN0UmF0aW8nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpOwotICAgIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVB
c3BlY3RSYXRpbzsgfQotICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShj
b25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsg
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQorICAgIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1f
cHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpOyB9
CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyB0aGlzLT5wcmVzZXJ2
ZUFzcGVjdFJhdGlvKCkgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpAQCAtODQsOSArODQsOSBAQCBwcml2
YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAgICBTVkdab29tQW5k
UGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9OwotICAgIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0IG1fdmlld0JveDsK
LSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwor
ICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBt
X3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CiAg
ICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVu
dW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJP
ZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNTUsMjIgKzU2LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPjo6c2V0QmFzZVZh
bChwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgRW51bVR5cGUmIHByb3BlcnR5KQorICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIGJhc2VWYWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VS
VChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZCY+KHByb3BlcnR5KSkpOwotICAgIH0KLQotICAgIEVudW1UeXBlJiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICB1bnNpZ25lZCYgYW5pbWF0ZWRWYWx1ZSA9IFNWR0Fu
aW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPjo6Y3VycmVudEFuaW1hdGVkVmFs
dWUoKTsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkVmFsdWUgPD0gU1ZHUHJvcGVydHlUcmFpdHM8
RW51bVR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxFbnVtVHlwZSY+KGFuaW1hdGVkVmFsdWUpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGJhc2VW
YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJv
cGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQotICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJv
cGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Q
cm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBiYXNlVmFsdWUpCisgICAgICAgIDogU1ZH
QW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgYmFzZVZhbHVlKQogICAgIHsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjgzOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46Okxpc3RQcm9wZXJ0eVRlYXJPZmY7CiAgICAgdXNpbmcgQ29udGVudFR5cGUg
PSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0aWMg
UmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVs
ZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtODUsNDQgKzg1LDUwIEBAIHB1Ymxp
YzoKICAgICAgICAgTGlzdFByb3BlcnR5OjpkZXRhY2hMaXN0V3JhcHBlcnNBbmRSZXNpemUoJm1f
d3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRlZFZh
bHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKICAgICAgICAgcmV0
dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJv
cGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+IGN1cnJlbnRBbmltYXRlZFZhbHVlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzKCk7CisgICAgfQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZh
bHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlczsKICAgICB9CiAKLSAg
ICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsLCBib29sIHNo
b3VsZE93blZhbHVlcyA9IGZhbHNlKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChSZWZQdHI8
U1ZHVmFsdWU+IG5ld0FuaW1WYWwpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQW5pbWF0aW5n
KCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVl
cy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoY3VycmVudEJh
c2VWYWx1ZSgpLT50ZW1wbGF0ZSBhczxQcm9wZXJ0eVR5cGU+KCkuc2l6ZSgpID09IG1fd3JhcHBl
cnMuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRXcmFwcGVycy5pc0VtcHR5KCkp
OwogCiAgICAgICAgIC8vIFN3aXRjaCB0byBuZXcgcGFzc2VkIGluIHZhbHVlIHR5cGUgJiBuZXcg
d3JhcHBlcnMgbGlzdC4gVGhlIG5ldyB3cmFwcGVycyBsaXN0IG11c3QgYmUgY3JlYXRlZCBmb3Ig
dGhlIG5ldyB2YWx1ZS4KLSAgICAgICAgaWYgKCFuZXdBbmltVmFsLT5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBuZXdBbmltVmFsLT5zaXplKCkpOwor
ICAgICAgICBpZiAoc2l6ZV90IHNpemUgPSBuZXdBbmltVmFsLT5hczxQcm9wZXJ0eVR5cGU+KCku
c2l6ZSgpKQorICAgICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmZpbGwoMCwgc2l6ZSk7CiAK
ICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gYW5pbVZhbCgpOwotICAgICAgICBtX2FuaW1h
dGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVk
V3JhcHBlcnMsIHNob3VsZE93blZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVy
cyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3Bl
cnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAg
IH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlz
QW5pbWF0aW5nKCkpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBl
cnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKGN1cnJlbnRCYXNlVmFsdWUoKS0+dGVtcGxhdGUg
YXM8UHJvcGVydHlUeXBlPigpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAg
ICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHkt
PndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAg
ICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycygmbV92YWx1ZXMsICZt
X3dyYXBwZXJzLCBmYWxzZSk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZh
bHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsK
KyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycyhtX3ZhbHVl
cywgJm1fd3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXpl
KCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5j
bGVhcigpOwpAQCAtMTQyLDM0ICsxNDgsMzQgQEAgcHVibGljOgogICAgICAgICAvLyBBbHNvIGV4
aXN0aW5nIHdyYXBwZXJzIHdoaWNoIHBvaW50IGRpcmVjdGx5IGF0IGVsZW1lbnRzIGluIHRoZSBl
eGlzdGluZyBTVkdMZW5ndGhMaXN0VmFsdWVzIGhhdmUgdG8gYmUgZGV0YWNoZWQgKHNvIGEgY29w
eQogICAgICAgICAvLyBvZiB0aGVtIGlzIGNyZWF0ZWQsIHNvIGV4aXN0aW5nIGFuaW1WYWwgdmFy
aWFibGVzIGluIEpTIGFyZSBrZXB0LWFsaXZlKS4gSWYgd2UnZCBkZXRhY2ggdGhlbSBsYXRlciB0
aGUgdW5kZXJseWluZwogICAgICAgICAvLyBTVkdMZW5ndGhMaXN0VmFsdWVzIHdhcyBhbHJlYWR5
IG11dGF0ZWQsIGFuZCBvdXIgbGlzdCBpdGVtIHdyYXBwZXIgdGVhciBvZmZzIHdvdWxkIHBvaW50
IG5vd2hlcmUuIEFzc2VydGlvbnMgd291bGQgZmlyZS4KLSAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXpl
KCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2Fu
aW1hdGVkUHJvcGVydHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpKTsKIAotICAgICAgICBBU1NF
UlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3Bl
cnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVy
dHktPnZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAgICB9CiAKICAgICB2
b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5z
aXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoY3VycmVudEJhc2VW
YWx1ZSgpLT50ZW1wbGF0ZSBhczxQcm9wZXJ0eVR5cGU+KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMu
c2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQog
CiAgICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQoY3VycmVu
dEJhc2VWYWx1ZSgpLT50ZW1wbGF0ZSBhczxQcm9wZXJ0eVR5cGU+KCkuc2l6ZSgpID09IG1fd3Jh
cHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlU
eXBlJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1f
dmFsdWVzKHZhbHVlcykKICAgICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgaWYg
KHNpemVfdCBzaXplID0gdmFsdWVzLT5hczxQcm9wZXJ0eVR5cGU+KCkuc2l6ZSgpKQorICAgICAg
ICAgICAgbV93cmFwcGVycy5maWxsKDAsIHNpemUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlw
ZSYgbV92YWx1ZXM7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlczsKIAogICAgIExpc3RX
cmFwcGVyQ2FjaGUgbV93cmFwcGVyczsKICAgICBMaXN0V3JhcHBlckNhY2hlIG1fYW5pbWF0ZWRX
cmFwcGVyczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJ
KHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTAsIDIwMTIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzEsNyArMzIsNyBAQCBjbGFzcyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyCiBw
dWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdQYXRoU2VnTGlzdFZhbHVlcz47CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUGF0aFNl
Z0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAg
c3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVs
ZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC03NSw5ICs3Niw4IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCFtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0pOwogICAgICAgICBtX2FuaW1hdGVk
UGF0aEJ5dGVTdHJlYW0gPSBieXRlU3RyZWFtOwogCi0gICAgICAgIC8vIFBhc3Mgc2hvdWxkT3du
VmFsdWVzPXRydWUsIGFzIHRoZSBTVkdQYXRoU2VnTGlzdFZhbHVlcyBsaWZldGltZSBpcyBzb2xl
bHkgbWFuYWdlZCBieSBpdHMgdGVhciBvZmYgY2xhc3MuCi0gICAgICAgIGF1dG8qIGNvcHkgPSBu
ZXcgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoKmJhc2VWYWx1ZSk7Ci0gICAgICAgIEJhc2U6OmFuaW1h
dGlvblN0YXJ0ZWQoY29weSwgdHJ1ZSk7CisgICAgICAgIGF1dG8gY29weSA9IFNWR1ZhbHVlOjpj
cmVhdGUoKmJhc2VWYWx1ZSk7CisgICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weS5w
dHIoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCkBAIC05NSw3ICs5NSw3
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gSWYgdGhlIGFuaW1WYWwgaXMgb2JzZXJ2ZWQgZnJvbSBK
Uywgd2UgaGF2ZSB0byB1cGRhdGUgaXQgb24gZWFjaCBhbmltYXRpb24gc3RlcC4KICAgICAgICAg
Ly8gVGhpcyBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBvbmx5IGRvbmUsIGlmIHNvbWVv
bmUgYWN0dWFsbHkgb2JzZXJ2ZXMgdGhlIGFuaW1hdGVkUGF0aFNlZ0xpc3QoKSB3aGlsZSBhbiBh
bmltYXRpb24gaXMgcnVubmluZy4KICAgICAgICAgaWYgKHBhdGhFbGVtZW50LT5pc0FuaW1WYWxP
YnNlcnZlZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBhbmltYXRlZExpc3QgPSBjdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3VycmVudEFu
aW1hdGVkVmFsdWUoKS0+YXM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCk7CiAgICAgICAgICAgICBh
bmltYXRlZExpc3QuY2xlYXIoKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1
ZXNGcm9tQnl0ZVN0cmVhbSgqbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtLCAqcGF0aEVsZW1lbnQs
IGFuaW1hdGVkTGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KQEAgLTEwNiw3ICsx
MDYsNyBAQCBwdWJsaWM6CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFuaW1hdGVkUGF0aEJ5dGVT
dHJlYW0oKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW07IH0KIAogcHJp
dmF0ZToKLSAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoY29udGV4dEVsZW1lbnQs
IGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgICAgICwg
bV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKG51bGxwdHIpCiAgICAgewpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkocmV2
aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgU1ZHVmFsdWU7CiBjbGFzcyBTVkdFbGVtZW50OwogY2xhc3Mg
U1ZHUHJvcGVydHk7CiAKQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNW
R0FuaW1hdGVkUHJvcGVydHkoKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwg
dHlwZW5hbWUgVGVhck9mZlR5cGUsIHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMg
UmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50
LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisg
ICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlwZT4gbG9va3VwT3JDcmVhdGVXcmFwcGVyKE93bmVyVHlw
ZSogZWxlbWVudCwgY29uc3QgU1ZHUHJvcGVydHlJbmZvKiBpbmZvLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChpbmZvKTsKICAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uIGtleShlbGVtZW50LCBpbmZvLT5wcm9wZXJ0eUlk
ZW50aWZpZXIpOwpAQCAtNTgsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVhck9mZlR5cGUm
PigqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiAKLSAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJv
cGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJp
YnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCBwcm9wZXJ0eSk7CisgICAgICAg
IFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0ZShl
bGVtZW50LCBpbmZvLT5hdHRyaWJ1dGVOYW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlwZSwg
dmFsdWUpOwogICAgICAgICBpZiAoaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVN0YXRlID09IFByb3Bl
cnR5SXNSZWFkT25seSkKICAgICAgICAgICAgIHdyYXBwZXItPnNldElzUmVhZE9ubHkoKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1h
Y3Jvcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHlNYWNyb3MuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAtMjAxMS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNWR0F0dHJpYnV0ZVRvUHJvcGVydHlN
YXAuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVl
LmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCkBAIC0zNCwyNSArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogc3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5p
bWF0ZWRQcm9wZXJ0eSB7CiAgICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KCkK
LSAgICAgICAgOiB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFs
VmFsdWUoKSkKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBp
c1ZhbGlkKGZhbHNlKQorICAgICAgICA6IHZhbHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlU
eXBlPigpKQogICAgIHsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3Rv
clBhcmFtZXRlcjE+Ci0gICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0
IENvbnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUxKQotICAgICAgICA6IHZhbHVlKHZhbHVlMSkK
LSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZh
bHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBh
cmFtZXRlcjEsIHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1ldGVyMj4KLSAgICBTVkdTeW5jaHJv
bml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3RydWN0b3JQYXJhbWV0ZXIxJiB2YWx1
ZTEsIGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMiYgdmFsdWUyKQotICAgICAgICA6IHZhbHVl
KHZhbHVlMSwgdmFsdWUyKQotICAgICAgICAsIHNob3VsZFN5bmNocm9uaXplKGZhbHNlKQotICAg
ICAgICAsIGlzVmFsaWQoZmFsc2UpCisgICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3Bl
cnR5KGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDogdmFsdWUoU1ZHVmFsdWU6
OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KHZhbHVlKSkKICAgICB7CiAgICAgfQogCkBAIC02MSw5ICs1
MCw5IEBAIHN0cnVjdCBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkKICAgICAgICAg
b3duZXJFbGVtZW50LT5zZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJOYW1lLCB2YWx1
ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlIHZhbHVlOwotICAgIGJvb2wgc2hvdWxkU3lu
Y2hyb25pemUgOiAxOwotICAgIGJvb2wgaXNWYWxpZCA6IDE7CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiB2YWx1ZTsKKyAgICBib29sIHNob3VsZFN5bmNocm9uaXplIHsgZmFsc2UgfTsKKyAgICBib29s
IGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKIAogLy8gUHJvcGVydHkgcmVnaXN0cmF0aW9uIGhlbHBl
cnMKQEAgLTEyNCwxOSArMTEzLDE5IEBAIHB1YmxpYzogXAogICAgIHsgXAogICAgICAgICBpZiAo
YXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25l
clR5cGUsIFRlYXJPZmZUeXBlPih0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKSkp
IHsgXAogICAgICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIFwKLSAgICAgICAg
ICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsgXAorICAgICAg
ICAgICAgICAgIHJldHVybiB3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxQcm9w
ZXJ0eVR5cGU+KCk7IFwKICAgICAgICAgfSBcCi0gICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9w
ZXJ0eS52YWx1ZTsgXAorICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWUtPmFz
PFByb3BlcnR5VHlwZT4oKTsgXAogICAgIH0gXAogXAogICAgIFByb3BlcnR5VHlwZSYgTG93ZXJQ
cm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3QgT3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsgXAot
ICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0dXJu
IG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7IFwKICAgICB9IFwK
IFwKLSAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5
VHlwZSYgdHlwZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZp
ZXIgXAorICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVy
dHlUeXBlJiB2YWx1ZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0gdHJ1ZSkgT3ZlcnJpZGVTcGVj
aWZpZXIgXAogICAgIHsgXAotICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSA9IHR5cGU7
IFwKKyAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUtPmFzPFByb3BlcnR5VHlwZT4oKSA9
IHZhbHVlOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5LmlzVmFsaWQgPSB2YWxpZFZhbHVl
OyBcCiAgICAgfSBcCiBcCkBAIC0xNTYsNyArMTQ1LDcgQEAgcHJpdmF0ZTogXAogICAgIHsgXAog
ICAgICAgICBpZiAoIW1fIyNMb3dlclByb3BlcnR5LnNob3VsZFN5bmNocm9uaXplKSBcCiAgICAg
ICAgICAgICByZXR1cm47IFwKLSAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5
VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fIyNMb3dlclByb3BlcnR5LnZhbHVlKSk7
IFwKKyAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5
VHlwZT46OnRvU3RyaW5nKG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+
KCkpKTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5zeW5jaHJvbml6ZSh0aGlzLCBMb3dl
clByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgdmFsdWUpOyBcCiAgICAg
fSBcCiBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFByb3Bl
cnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVydHlUeXBlOwogICAgIHVz
aW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmlt
YXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1h
dGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
ZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgcHJvcGVydHkpCiAgICAgewogICAgICAg
ICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50
LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKQEAgLTYw
LDIzICs2MCwyOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5OyB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIGN1
cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRBbmltYXRl
ZFZhbHVlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAg
cmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+cHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWUoKTsKICAgICB9CiAKLSAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzQW5pbWF0aW5nKCkpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52
YWx1ZSgpOworICAgIH0KKworICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VW
YWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKICAgICB9CiAK
LSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAg
IHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFs
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJU
KG5ld0FuaW1WYWwpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0g
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUoKm5ld0FuaW1WYWwpOworICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG5ld0FuaW1WYWwpOwogICAgIH0KIAogICAg
IHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtMTA0LDEzICsxMTAsMTMgQEAgcHVibGljOgogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJv
cGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJv
cGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBw
cm9wZXJ0eSkKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAgLCBtX3Byb3BlcnR5
KHByb3BlcnR5KQogICAgIHsKICAgICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVydHk7
CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3Byb3BlcnR5OwogICAgIFdlYWtQdHI8U1ZHUHJvcGVy
dHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYmFzZVZhbDsKICAgICBXZWFrUHRyPFNWR1Byb3Bl
cnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2FuaW1WYWw7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw0MyArMzMsNDkgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fcHJvcGVydHk7CisgICAgICAgIHJldHVybiBtX3Byb3BlcnR5LT5hczxQcm9wZXJ0eVR5
cGU+KCk7CiAgICAgfQogCiAgICAgdmlydHVhbCBjb25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwo
KQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0eSkKLSAgICAgICAgICAgIHJl
dHVybiAqbV9hbmltYXRlZFByb3BlcnR5OwotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAg
ICAgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPmFzPFByb3BlcnR5VHlwZT4oKTsK
KyAgICAgICAgcmV0dXJuIGJhc2VWYWwoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEJhc2VWYWwoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKICAgICB7
Ci0gICAgICAgIG1fcHJvcGVydHkgPSBwcm9wZXJ0eTsKKyAgICAgICAgbV9wcm9wZXJ0eS0+YXM8
UHJvcGVydHlUeXBlPigpID0gcHJvcGVydHk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIHN0YXRpYyBSZWY8
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlU
eXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHByb3BlcnR5KQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHBy
b3BlcnR5KSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1
ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgewor
ICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CisgICAgICAgIHJldHVybiBtX2FuaW1hdGVk
UHJvcGVydHk7CisgICAgfQorCisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7
Ci0gICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OworICAgICAgICByZXR1cm4gbV9h
bmltYXRlZFByb3BlcnR5OwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVu
dEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFz
ZVZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5OwogICAgIH0K
IAotICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisg
ICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFJlZlB0cjxTVkdWYWx1ZT4gbmV3QW5pbVZhbCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdB
bmltVmFsKTsKQEAgLTk5LDE2ICsxMDYsMTYgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkK
KyAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHBy
b3BlcnR5KQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAgICAgICAsIG1fcHJvcGVydHko
cHJvcGVydHkpCi0gICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCiAgICAgewor
ICAgICAgICBBU1NFUlRfSU1QTElFUyhtX3Byb3BlcnR5LCBtX3Byb3BlcnR5LT5pczxQcm9wZXJ0
eVR5cGU+KCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBQcm9wZXJ0eVR5cGUmIG1fcHJvcGVy
dHk7Ci0gICAgUHJvcGVydHlUeXBlKiBtX2FuaW1hdGVkUHJvcGVydHk7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBtX3Byb3BlcnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV9hbmltYXRlZFByb3Bl
cnR5OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlU
ZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwg
dmFsdWVzKSk7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eS5oCShy
ZXZpc2lvbiAyMjgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0
UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTQgKzI2LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1lbnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2RpZmljYXRpb25V
bmtub3duID0gMCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAgICBMaXN0TW9k
aWZpY2F0aW9uUmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCi0g
ICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFBy
b3BlcnR5VHlwZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjsKIApAQCAt
NzUsMTkgKzY4LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVz
aXplKG1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lkIHNldFZhbHVl
c0FuZFdyYXBwZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFw
cGVycywgYm9vbCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVy
cyhjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFuaW1WYWwgc3Vw
cG9ydCwgdG8gc3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJzCiAgICAgICAg
IC8vIHRvIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRpb24gZm9yIGEg
bGlzdCBzdGFydHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVCht
X3dyYXBwZXJzKTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9sZSk7Ci0gICAg
ICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7CiAgICAg
ICAgIG1fdmFsdWVzID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBzaG91bGRPd25W
YWx1ZXM7CiAgICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgfQogCiAg
ICAgLy8gU1ZHTGlzdDo6Y2xlYXIoKQpAQCAtOTgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuY2xlYXIoKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQpAQCAtMTExLDcgKzEwMSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAg
ICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAg
ICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA5LDcgQEAgcHVibGljOgog
ICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVkIG51bWJlck9mSXRl
bXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5zaXplKCk7CisgICAg
ICAgIHJldHVybiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKTsKICAgICB9CiAKICAgICAvLyBTVkdM
aXN0Ojppbml0aWFsaXplKCkKQEAgLTEzNCw4ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgICAgIHBy
b2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gU3Bl
YzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHJl
LWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNpbmdsZSBpdGVtIHNwZWNpZmllZCBi
eSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5jbGVhcigp
OworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJ
dGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcgKzE0MCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQo
bV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQo
dmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAg
ICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0xNTksOSArMTQ5LDkg
QEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVu
dCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xk
IHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KICAgICAgICAgZGV0
YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAgICAg
dmFsdWVzUHJvcGVydHkoKS5jbGVhcigpOwogCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3
SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBw
ZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRl
bS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTE3MSw3
ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0SXRlbSgpCiAgICAgRXhjZXB0
aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlm
IChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVz
UHJvcGVydHkoKS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhT
aXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE4NSw3ICsxNzUsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAg
ICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3Qu
IFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KLSAg
ICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG1fdmFsdWVzLT5hdChpbmRleCkgfTsKKyAgICAg
ICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IHZhbHVlc1Byb3BlcnR5KCkucHJvcGVydHlBdChpbmRl
eCkgfTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8TGlzdEl0ZW1UZWFyT2ZmPj4gZ2V0
SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5OSwxMyArMTg5LDEzIEBAIHB1YmxpYzoKIAog
ICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0
LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCiAg
ICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0ZW0gYXJlIGltbWVkaWF0ZWx5IHJl
ZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6
ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJP
ZmY+IHdyYXBwZXIgPSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJPZmYqPihtX3dyYXBwZXJzLT5h
dChpbmRleCkuZ2V0KCkpOwogICAgICAgICBpZiAoIXdyYXBwZXIpIHsKICAgICAgICAgICAgIC8v
IENyZWF0ZSBuZXcgd3JhcHBlciwgd2hpY2ggaXMgYWxsb3dlZCB0byBkaXJlY3RseSBtb2RpZnkg
dGhlIGl0ZW0gaW4gdGhlIGxpc3QsIHcvbyBjb3B5aW5nIGFuZCBjYWNoZSB0aGUgd3JhcHBlciBp
biBvdXIgbWFwLgogICAgICAgICAgICAgLy8gSXQgaXMgYWxzbyBhc3NvY2lhdGVkIHdpdGggb3Vy
IGFuaW1hdGVkIHByb3BlcnR5LCBzbyBpdCBjYW4gbm90aWZ5IHRoZSBTVkcgRWxlbWVudCB3aGlj
aCBob2xkcyB0aGUgU1ZHQW5pbWF0ZWQqTGlzdAogICAgICAgICAgICAgLy8gdGhhdCBpdCBoYXMg
YmVlbiBtb2RpZmllZCAoYW5kIHRodXMgY2FuIGNhbGwgc3ZnQXR0cmlidXRlQ2hhbmdlZChhc3Nv
Y2lhdGVkQXR0cmlidXRlTmFtZSkpLgotICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVh
ck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGlu
ZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVyID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5p
bWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSk7CiAg
ICAgICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSB3cmFwcGVyLT5jcmVhdGVXZWFrUHRy
KCk7CiAgICAgICAgIH0KIApAQCAtMjIxLDggKzIxMSw4IEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYg
dGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0aGVu
IHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAg
ICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAgICAgaW5kZXggPSBtX3Zh
bHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUo
KSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUHJvcGVydHkoKS5zaXplKCk7CiAKICAgICAg
ICAgLy8gU3BlYzogSWYgbmV3SXRlbSBpcyBhbHJlYWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0IGJlZm9yZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMg
bGlzdC4KICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0s
ICZpbmRleCkpIHsKQEAgLTIzMiw3ICsyMjIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3Bl
YzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3Np
dGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMg
dG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJ
ZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQg
YXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4
LCBuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5kZXgsIFNWR1Zh
bHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0yNDgs
MTAgKzIzOCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgYXBwZW5k
ZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMt
PnNpemUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAg
aWYgKGluZGV4ID4gdmFsdWVzUHJvcGVydHkoKS5zaXplKCkpCisgICAgICAgICAgICBpbmRleCA9
IHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6
ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNQcm9wZXJ0
eSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIFJlZjxMaXN0SXRl
bVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTI2MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAK
ICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGludG8gdGhlIGxpc3QgYXQgdGhl
IHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBpdGVtIGJlZm9yZSB3aGljaCB0
aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0ZWQuIFRoZSBmaXJzdCBpdGVt
IGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8gMCwgdGhlbiB0aGUgbmV3IGl0
ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVl
cy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAg
dmFsdWVzUHJvcGVydHkoKS5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnZhbHVlKCkpOwogCiAgICAg
ICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9uICdpbmRleCcsIGNoYW5nZSBpdHMg
dW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5ld0l0ZW0sIGRpcmVjdGx5IGFmZmVj
dCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAgICAgICAgbV93cmFwcGVycy0+aW5zZXJ0KGluZGV4
LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwpAQCAtMjc4LDcgKzI2OCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBB
U1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBpZiAoaW5kZXgg
Pj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlc1Byb3BlcnR5
KCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9y
IH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTgsMTMgKzI4OCwxMyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVl
c1Byb3BlcnR5KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFk
eSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwg
d2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IFVwZGF0ZSB0aGUgdmFsdWUgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAg
ICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtOworICAgICAgICB2YWx1ZXNQcm9wZXJ0
eSgpLnByb3BlcnR5QXQoaW5kZXgpID0gbmV3SXRlbTsKIAogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTMxOSw3ICsz
MDksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAg
ICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKHZhbHVlc1Byb3BlcnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAt
MzI4LDcgKzMxOCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFwcm9jZXNzSW5jb21pbmdMaXN0
SXRlbVdyYXBwZXIobmV3SXRlbSwgJmluZGV4KSkKICAgICAgICAgICAgIHJldHVybiBXVEZNb3Zl
KG5ld0l0ZW0pOwogCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAg
IGlmICh2YWx1ZXNQcm9wZXJ0eSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1f
d3JhcHBlcnMtPmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBs
aXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hp
Y2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKQEAgLTM0MCw3ICszMzAsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBvbGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBk
YXRlIHRoZSB2YWx1ZSBhbmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2lu
ZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpOworICAgICAgICB2YWx1ZXNQcm9wZXJ0eSgpLmF0KGluZGV4KSA9IG5ld0l0ZW0t
PnZhbHVlKCk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPmNyZWF0
ZVdlYWtQdHIoKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTM1NSw3ICszNDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
aWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1
ZXNQcm9wZXJ0eSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRl
eFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzY4LDggKzM1OCw4IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBM
aXN0SXRlbVR5cGUgb2xkSXRlbSA9IG1fdmFsdWVzLT5hdChpbmRleCk7Ci0gICAgICAgIG1fdmFs
dWVzLT5yZW1vdmUoaW5kZXgpOworICAgICAgICBMaXN0SXRlbVR5cGUgb2xkSXRlbSA9IHZhbHVl
c1Byb3BlcnR5KCkucHJvcGVydHlBdChpbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCku
cmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
IFdURk1vdmUob2xkSXRlbSk7CkBAIC0zODQsMTYgKzM3NCwxNiBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNTRVJUKHJl
c3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Byb3Bl
cnR5KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gRGV0YWNo
IHRoZSBleGlzdGluZyB3cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBv
bGRJdGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5k
ZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xkSXRlbSA9
IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92
YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2Zm
OjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNQcm9wZXJ0eSgpLmF0
KGluZGV4KSk7CiAKICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBt
X3dyYXBwZXJzLT5yZW1vdmUoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4
KTsKKyAgICAgICAgdmFsdWVzUHJvcGVydHkoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gb2xkSXRlbS5yZWxlYXNlTm9uTnVsbCgpOwpA
QCAtNDExLDcgKzQwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgcHJvY2Vzc0luY29taW5nTGlzdEl0
ZW1WYWx1ZShuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVlIGF0IHRo
ZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7Cisg
ICAgICAgIHZhbHVlc1Byb3BlcnR5KCkuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1U
eXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25B
cHBlbmQpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtNDI2
LDcgKzQxNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwog
CkBAIC00MzQsMTkgKzQyNCwyNSBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xp
c3RJdGVtV3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVl
IGFuZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5h
cHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1Byb3Bl
cnR5KCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBl
bmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoTGlz
dE1vZGlmaWNhdGlvbkFwcGVuZCk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG5ld0l0ZW0pOwog
ICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzKCkKKyAgICBSZWY8U1ZHVmFsdWU+IHZh
bHVlcygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBy
ZXR1cm4gKm1fdmFsdWVzOwogICAgIH0KIAorICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzUHJvcGVy
dHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgcmV0
dXJuIG1fdmFsdWVzLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgfQorCiAgICAgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBl
cnMpOwpAQCAtNDU5LDIwICs0NTUsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgot
ICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eShT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0
V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAgICAgOiBtX3JvbGUocm9sZSkKLSAgICAgICAg
LCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAgICAgICwgbV92YWx1ZXMoJnZhbHVlcykKKyAgICAg
ICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgICAgICwgbV93cmFwcGVycyh3cmFwcGVycykKICAg
ICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U1ZHTGlzdFByb3BlcnR5KCkKLSAgICB7Ci0gICAg
ICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7Ci0gICAg
fQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uKQogICAgIHsKQEAgLTQ4Myw4ICs0NzIs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVt
V3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9N
b2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgYm9vbCBtX293
bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUqIG1fd3JhcHBlcnM7CiAgICAgV2Vh
a1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzUsMjIgKzM2
LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjsKICAgICB1c2luZyBM
aXN0V3JhcHBlckNhY2hlID0gdHlwZW5hbWUgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT46Okxpc3RXcmFwcGVyQ2FjaGU7CiAKKyAgICB1c2luZyBCYXNlOjp2YWx1
ZXNQcm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcgQmFzZTo6bV92
YWx1ZXM7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAotICAgIHN0YXRpYyBSZWY8U2Vs
Zj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihhbmltYXRlZFByb3Bl
cnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgaW50IGZpbmRJdGVt
KExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICB1bnNpZ25lZCBz
aXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVl
cy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzUHJvcGVydHkoKS5zaXpl
KCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAg
ICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+YXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGk7CkBAIC02MSwxNSArNjEsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVt
RnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJz
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5z
aXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUHJvcGVydHkoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aXRlbUluZGV4IDwgbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBhdXRvIGl0ZW0gPSBt
X3dyYXBwZXJzLT5hdChpdGVtSW5kZXgpOwogICAgICAgICBpdGVtLT5kZXRhY2hXcmFwcGVyKCk7
CiAgICAgICAgIG1fd3JhcHBlcnMtPnJlbW92ZShpdGVtSW5kZXgpOwotICAgICAgICBtX3ZhbHVl
cy0+cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIHZhbHVlc1Byb3BlcnR5KCkucmVtb3ZlKGl0
ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAg
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQ
cm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZH
TGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9w
ZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1f
YW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgIHsKQEAgLTEyOSwxOCArMTI4
LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJz
KTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBp
biB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBt
X3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXpl
KCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNQcm9wZXJ0eSgpLnNpemUoKSk7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAg
IGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGkpOwogICAgICAgICAgICAgaWYgKCFpdGVtKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQ
cm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHkucHRyKCkpOwotICAgICAgICAgICAgaXRlbS0+c2V0
VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKHZhbHVl
c1Byb3BlcnR5KCkuYXQoaSkpOwogICAgICAgICB9CiAKICAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5LT5jb21taXRDaGFuZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR01hdHJpeFRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAKICAgICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlS
ZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5z
dmdNYXRyaXgoKTsgfQogCi0gICAgdm9pZCBzZXRWYWx1ZShTVkdNYXRyaXhWYWx1ZSYgdmFsdWUp
IGZpbmFsIHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlKTsg
fQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpIGZpbmFs
IHsgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWF0cml4KHZhbHVlLT5hczxTVkdN
YXRyaXhWYWx1ZT4oKSk7IH0KIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgZmluYWwKICAgICB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcg
QEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVy
dHkuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjUsMTcg
KzY2LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1Zh
bHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3Bl
cnR5VHlwZSYgcHJvcGVydHlSZWZlcmVuY2UoKSB7IHJldHVybiBtX3ZhbHVlLT5hczxQcm9wZXJ0
eVR5cGU+KCk7IH0KICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkg
Y29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAo
bV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAg
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAg
fQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gZmFsc2U7Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFs
dWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAgICB9CiAKICAgICB2b2lkIHNldEFuaW1h
dGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEw
OSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRv
IHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8gYmUgcG9zc2libGUgdG8gbW9kaWZ5ICdpdGVtJwog
ICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhlICJuZXcgaXRlbSIgKHdpdGggeD0xMDApIGluIHRo
ZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8vIFdoZW5ldmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVz
IHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhpc3Rpbmcgd3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1
c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAgICBtX3ZhbHVlID0gbmV3IFByb3BlcnR5VHlwZSgq
bV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUtPnRl
bXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKSk7CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVl
OwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KQEAgLTEzNiwx
MCArMTM2LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0
eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgU1ZHUHJvcGVydHlUZWFyT2Zm
KFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVk
UHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3JvbGUocm9sZSkKLSAgICAg
ICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgICAgICAs
IG1fdmFsdWVJc0NvcHkoZmFsc2UpCiAgICAgewogICAgIH0KQEAgLTE1MiwxNyArMTUyLDE2IEBA
IHByb3RlY3RlZDoKICAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoY29uc3QgUHJvcGVydHlUeXBlKiBp
bml0aWFsVmFsdWUpCiAgICAgICAgIDogbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCiAgICAg
ICAgICwgbV9yb2xlKFVuZGVmaW5lZFJvbGUpCi0gICAgICAgICwgbV92YWx1ZShpbml0aWFsVmFs
dWUgPyBuZXcgUHJvcGVydHlUeXBlKCppbml0aWFsVmFsdWUpIDogbnVsbHB0cikKICAgICAgICAg
LCBtX3ZhbHVlSXNDb3B5KHRydWUpCiAgICAgeworICAgICAgICBpZiAoaW5pdGlhbFZhbHVlKQor
ICAgICAgICAgICAgbV92YWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmluaXRpYWxWYWx1ZSk7CiAg
ICAgfQogCiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHlUZWFyT2ZmKCkKICAgICB7Ci0gICAgICAg
IGlmIChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KQogICAgICAg
ICAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlOwotICAg
ICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBkZXRhY2hDaGlsZHJlbigpCkBAIC0xNzYsMTAgKzE3
NSwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbV9h
bmltYXRlZFByb3BlcnR5OwogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgUHJvcGVy
dHlUeXBlKiBtX3ZhbHVlOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZTsKICAgICBWZWN0
b3I8V2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmZCYXNlPj4gbV9jaGlsZFRlYXJPZmZzOwogICAg
IFdlYWtQdHJGYWN0b3J5PFNWR1Byb3BlcnR5VGVhck9mZj4gbV93ZWFrUHRyRmFjdG9yeTsKLSAg
ICBib29sIG1fdmFsdWVJc0NvcHk7CisgICAgYm9vbCBtX3ZhbHVlSXNDb3B5IHsgZmFsc2UgfTsK
IH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
VHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAkocmV2aXNpb24gMjI4MzkwKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMjAgKzIxLDQ4IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFt
ZS5oIgorI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIExpc3RNb2RpZmljYXRpb24geworICAgIExpc3RNb2Rp
ZmljYXRpb25Vbmtub3duID0gMCwKKyAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKKyAg
ICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCisgICAgTGlzdE1vZGlmaWNhdGlvblJlbW92
ZSA9IDMsCisgICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKK307CisgICAgCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHMgeyB9Owog
CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0YXRp
YyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJvb2wg
ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0cnVl
IjsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBl
ID8gInRydWUiIDogImZhbHNlIjsgfQogfTsKIAogdGVtcGxhdGU8Pgorc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPENvbG9yPiB7CisgICAgc3RhdGljIENvbG9yIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIENvbG9yKCk7IH0KKyAgICBzdGF0aWMgQ29sb3IgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykgeyByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHN0cmluZy5zdHJpcFdoaXRl
U3BhY2UoKSk7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDb2xvcj4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgQ29s
b3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3Ioc3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgp
KTsKKyAgICAgICAgcmV0dXJuIGNvbG9yLmlzVmFsaWQoKSA/IGNvbG9yIDogc3RkOjpvcHRpb25h
bDxDb2xvcj4oKTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBDb2xv
ciYgdHlwZSkgeyByZXR1cm4gdHlwZS5zZXJpYWxpemVkKCk7IH0KK307CisKK3RlbXBsYXRlPD4K
IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czx1bnNpZ25lZD4gewogICAgIHN0YXRpYyB1bnNpZ25l
ZCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyh1bnNpZ25lZCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQpAQCAtNDIs
MTkgKzcxLDEwOSBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKIHRlbXBs
YXRlPD4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+IHsKICAgICBzdGF0aWMgaW50IGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgaW50IGZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJnN0cmluZykgeyByZXR1cm4gc3RyaW5nLnRvSW50U3RyaWN0KCk7IH0KICAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0
eXBlKTsgfQogfTsKKyAgICAKK3RlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxz
dGQ6OnBhaXI8aW50LCBpbnQ+PiB7CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGludD4gaW5p
dGlhbFZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIHN0ZDo6cGFpcjxpbnQsIGlu
dD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZsb2F0
IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJzZU51
bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikpCisg
ICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKHN0YXRpY19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSksIHN0YXRpY19jYXN0
PGludD4ocm91bmRmKHNlY29uZE51bWJlcikpKTsKKyAgICB9Cit9OwogCiB0ZW1wbGF0ZTw+CiBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8ZmxvYXQ+IHsKICAgICBzdGF0aWMgZmxvYXQgaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBmbG9hdCBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgdHlwZSA9IDA7CisgICAgICAg
IHJldHVybiBwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nLCB0eXBlKSA/IHR5cGUgOiAwOwor
ICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxmbG9hdD4gcGFyc2UoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgZmxvYXQgbnVt
YmVyOworICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZywgbnVtYmVy
KSA/IG51bWJlciA6IHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+KCk7CisgICAgfQogICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoZmxvYXQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7
IH0KIH07CiAKIHRlbXBsYXRlPD4KK3N0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8
ZmxvYXQsIGZsb2F0Pj4geworICAgIHN0YXRpYyBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiBpbml0
aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICBzdGF0aWMgc3RkOjpwYWlyPGZsb2F0LCBm
bG9hdD4gZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGZs
b2F0IGZpcnN0TnVtYmVyID0gMCwgc2Vjb25kTnVtYmVyID0gMDsKKyAgICAgICAgaWYgKCFwYXJz
ZU51bWJlck9wdGlvbmFsTnVtYmVyKHN0cmluZywgZmlyc3ROdW1iZXIsIHNlY29uZE51bWJlcikp
CisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihmaXJzdE51bWJlciwgc2Vjb25kTnVtYmVyKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+Citz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRQb2ludD4geworICAgIHN0YXRpYyBGbG9hdFBv
aW50IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UG9pbnQoKTsgfQorICAgIHN0YXRpYyBG
bG9hdFBvaW50IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAg
ICBGbG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1cm4gcGFyc2VQb2ludChzdHJpbmcsIHBv
aW50KSA/IHBvaW50IDogRmxvYXRQb2ludCgpOworICAgIH0KKyAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxGbG9hdFBvaW50PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpCisgICAgeworICAgICAgICBGbG9hdFBvaW50IHBvaW50OworICAgICAgICByZXR1
cm4gcGFyc2VQb2ludChzdHJpbmcsIHBvaW50KSA/IHBvaW50IDogc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PigpOworICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IEZsb2F0
UG9pbnQmIHR5cGUpCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4KK3N0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IHsKKyAgICBzdGF0aWMgRmxvYXRSZWN0
IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgc3RhdGljIEZsb2F0
UmVjdCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxv
YXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBwYXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJl
Y3QgOiBGbG9hdFJlY3QoKTsKKyAgICAgICAgCisgICAgfQorICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IHJlY3Q7CisgICAgICAgIHJldHVybiBw
YXJzZVJlY3Qoc3RyaW5nLCByZWN0KSA/IHJlY3QgOiBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4o
KTsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBGbG9hdFJlY3QmIHR5
cGUpCisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHR5cGUueCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodHlwZS55KCkpOworICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0eXBlLndpZHRoKCkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcih0eXBlLmhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICB9Cit9OworCit0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5n
PiB7CiAgICAgc3RhdGljIFN0cmluZyBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBTdHJpbmcoKTsg
fQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKSB7IHJldHVy
biB0eXBlOyB9CisgICAgc3RhdGljIFN0cmluZyBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSB7IHJldHVybiBzdHJpbmc7IH0KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1
cm4gc3RyaW5nOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gc3RyaW5nOyB9CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlw
ZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyODM5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0
ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlz
dEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6
Om1fdmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZhbHVlc1Byb3BlcnR5OwogCiAgICAgc3RhdGlj
IFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5VHlw
ZSYgdmFsdWVzKQogICAgIHsKQEAgLTc2LDcgKzc3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAgIFNWR1N0YXRpY0xpc3RQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKFVuZGVmaW5lZFJvbGUsIHZhbHVlcywgbnVs
bHB0cikKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCpjb250ZXh0RWxlbWVudCkKICAgICB7
CkBAIC04OSw4ICs5MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkg
b3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIG1fdmFs
dWVzLT5jb21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudCk7CisgICAgICAgIHZhbHVlc1Byb3Bl
cnR5KCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wg
cHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25l
ZCopIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI4MzkwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTM2LDcgKzM3LDcgQEAgcHVibGljOgogCiAgICAgLy8gVXNlZCBmb3Ig
bm9uLWFuaW1hdGVkIFBPRCB0eXBlcyB0aGF0IGFyZSBub3QgYXNzb2NpYXRlZCB3aXRoIGEgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSBvYmplY3QsIG5vciB3aXRoIGEgWE1MIERPTSBhdHRyaWJ1dGUKICAg
ICAvLyAoZm9yIGV4YW1wbGU6IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRUcmFuc2xhdGUpLgotICAg
IHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwg
UHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAgICBzdGF0aWMgUmVm
PFNlbGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWUsIHVwZGF0ZSkp
OwogICAgIH0KQEAgLTQ0LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0Q2hhbmdl
KCkgZmluYWwgeyAobV9jb250ZXh0RWxlbWVudC5nZXQoKS0+Km1fdXBkYXRlKSgpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250
ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKKyAg
ICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAg
ICAgICAgOiBQcm9wZXJ0eVRlYXJPZmYoVW5kZWZpbmVkUm9sZSwgdmFsdWUpCiAgICAgICAgICwg
bV91cGRhdGUodXBkYXRlKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVt
ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336505</attachid>
            <date>2018-03-25 22:26:39 -0700</date>
            <delta_ts>2018-03-25 23:36:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180325222638.patch</filename>
            <type>text/plain</type>
            <size>240765</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzNyBAQAorMjAxOC0wMy0yNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBpc3N1ZXMgd2hpY2ggYXJl
CisgICAgICAgIGRpZmZpY3VsdCB0byB0cmFjay4gVGhlIFNWRyB0ZWFyLW9mZiBvYmplY3RzIGFy
ZSBjcmVhdGVkIG9uIGRlbWFuZC4gTW9yZQorICAgICAgICBzcGVjaWZpY2FsbHksIHRoZXkgYXJl
IGNyZWF0ZWQgd2hlbiBhbmltYXRpbmcgdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUKKyAgICAg
ICAgb3Igd2hlbiBjcmVhdGluZyBhIERPTSBvYmplY3QgZm9yIHRoYXQgYXR0cmlidXRlLiBUaGUg
cHJvYmxlbSBpcyB0aGVzZQorICAgICAgICB0ZWFyLW9mZiBvYmplY3RzIGhvbGQgYSByYXcgcmVm
ZXJlbmNlIHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbworICAgICAgICBrZWVwIHRo
aXMgcmVmZXJlbmNlIHZhbGlkLCBib3RoIHRoZSBTVkdFbGVtZW50IGFuZCB0aGUgdGVhci1vZmYg
b2JqZWN0CisgICAgICAgIHVzZWQgdG8gaG9sZCBhIFJlZlB0ciB0byBlYWNoIG90aGVyIHdoaWNo
IHdhcyBjYXVzaW5nIG1lbW9yeSBsZWFrcy4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisgCisgICAgICAgIFRvIGZpeCB0aGVzZSBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVt
ZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQKKyAgICAgICAgb2JqZWN0cy4K
KyAKKyAgICAgICAgQ3JlYXRpbmcgZGlmZmVyZW50IGNsYXNzZXMgZm9yIGV2ZXJ5IGRhdGEgdHlw
ZSBvZiB0aGUgU1ZHIGF0dHJpYnV0ZXMgZG9lcworICAgICAgICBub3QgbG9vayB0aGUgY2xlYW5l
c3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgdW5pb24KKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFsbCB0aGUgZGF0YSB0
eXBlcy4gU28gaGVyZSBpcyB0aGUKKyAgICAgICAgb3V0bGluZSBvZiB0aGlzIHBhdGNoOgorIAor
ICAgICAgICAtLSBDcmVhdGUgdGhlIGNsYXNzIFNWR1ZhbHVlIHdoaWNoIGlzIGEgdmFyaWFudCBv
ZiBhbGwgdGhlIFNWRyBhdHRyaWJ1dGUKKyAgICAgICAgYmFzaWMgZGF0YSB0eXBlcyBpbmNsdWRp
bmcgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAg
IGxpc3RzLgorIAorICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdv
IFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkg
dXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisg
CisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGF0dHJpYnV0ZXMgb2YgYWxsIHRoZSBTVkdFbGVt
ZW50IHRvIGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKyAKKyAgICAgICAgLS0gQ2hhbmdl
IGFsbCB0aGUgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+LgorIAorICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRv
IGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcg
cmVmZXJlbmNlCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRo
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5nbGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1
ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5p
dHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmdsZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OlNWR0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZURpc3RhbmNlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
YXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjogY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VW
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0
RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3I6OmV4ZWN1dGVBY3Rpb24pOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0
cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpz
ZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVT
cGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1
ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6cmVzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6ZGVlcENvcHkgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVl
czo6bGFzdFJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpsYXN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6YSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEEpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpiKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2V0Qik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRDKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjpzZXRGKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6bXVsdGlwbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjppbnZlcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hdHJpeDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4Ojpyb3RhdGVGcm9tVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Zmxp
cFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OnNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tl
d1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpTVkdNYXRyaXgpOgorICAgICAgICAq
IHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXI6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjpTVkdOdW1iZXIpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6U1ZHTnVtYmVyTGlzdCk6CisgICAgICAgICogc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZh
bHVlczo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051
bWJlckxpc3RWYWx1ZXM+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludHNMaXN0RnJvbVNWR0RhdGEp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6cGFyc2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5
dGVTdHJlYW0+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVEV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OnJl
cGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZW1vdmVJdGVt
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
bGluZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRv
SG9yaXpvbnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb1ZlcnRpY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6Y3VydmVUb1F1YWRyYXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjphcmNUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNW
R1NlZ21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpu
ZXh0Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250ZXh0QW5k
Um9sZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisgICAgICAgICog
c3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyk6CisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRZ
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICogc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1
ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUG9pbnRMaXN0VmFsdWVzPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6dG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9s
eUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50Ojpwb2ludExpc3QgY29uc3Qp
OgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAgICogc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICog
c3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNl
dFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
Y3Q6OmhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrRW5jbG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9y
bUZyb21NYXRyaXgpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGVzdHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OlNWR1Rlc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Rlc3RzOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3Rz
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6c3luY2hyb25p
emVBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojp0ZXh0TGVu
Z3RoQW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpn
ZXRDaGFyTnVtQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9y
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06Om1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjp0eXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJh
bnNmb3JtOjpzZXRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRU
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTY2FsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OnNldFNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5z
Zm9ybTo6c2V0U2tld1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpTVkdUcmFu
c2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uc29saWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uY2F0ZW5hdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OjpwYXJzZSk6
IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT46OmluaXRpYWxWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1
ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZTo6YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFs
dWU6OmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VmFsdWU6OlNWR1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyk6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
aWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnRy
YW5zZm9ybVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmll
d0JveFN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3Bl
Yzo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMp
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVk
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6dmFsdWVzUmVmZXJlbmNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uU3Rh
cnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6
OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFs
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBP
ckNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlNYWNyb3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5p
bVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEJhc2VWYWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZh
bHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1JlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQ
cm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmOjp2YWx1ZVJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6U1ZH
UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6
flNWR1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnByb3BlcnR5UmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8dW5zaWduZWQ+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxib29sPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8dW5zaWduZWQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oOgorCiAyMDE4LTAzLTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5OTU0LgpJbmRleDog
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTUyLDYgKzIxNTIsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2ODcsNiArMTY4NywxNCBAQAogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VG
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3
NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9Owog
CQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0Mw
MDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQTlEMjA1QUZFQ0YwMERDNDcwRSAvKiBTVkdW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUx
MzdCMzQyMDNDRUI3MTAwMDEwMDRCIC8qIFNWR1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBOUYyMDVBRkYwQzAwREM0NzBFIC8q
IFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDOEYyMjQzMUREM0IzQjkwMEU5MkRBMyAvKiBTVkdBbmdsZVZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTAyMDVB
RkYzRjAwREM0NzBFIC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY5MUREQjg2RDMwMEZFRkIyOSAvKiBT
VkdOdW1iZXJMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8qIFNWR1BhdGhTZWdMaXN0
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzM5QzM2RjFEREJBM0UwMDBGRUZCMjkgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NUE5MUFBMjIwNUFG
RjY2MDBEQzQ3MEUgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2QjFEREI4NzFDMDBGRUZCMjkgLyogU1ZH
UG9pbnRMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M4RjIyNDYxREQzRDFDNTAwRTkyREEzIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
QTkxQUE0MjA1QUZGOTIwMERDNDcwRSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2RDFEREI4QkIw
MDBGRUZCMjkgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAv
KiBTVkdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVB
QUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lz
dHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTcwNDQwNUExRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA0NDA1OTFFNTM5MzYyMDAz
NTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OTYxRERFNUM5NTAw
QTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk1MURERTVDOTUwMEEwM0IxNCAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi87IH07CkBAIC0xOTkyLDcgKzIwMDAs
NyBAQAogCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxNUFENzFE
MjA1MDUxMjQwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxNUFENzIxMjA1MDUxM0YwMEQ1
OTJEQyAvKiBDU1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MTIzQzE4NjIwNDczOUJBMDA3ODkzOTIgLyogQ1NTVHJhbnNpdGlvbi5o
ICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRy
b2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlh
LWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVD
MDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFCMjg0MjcyMDNDRUM0
QzAwMzZBQTVEIC8qIEpTQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUIyODQyNjIwM0NFQzBEMDAzNkFBNUQgLyogSlNDU1NBbmlt
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MUMyOUUzMjIwM0NFNzgxMDA4RjM2RDIgLyogQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUMyOUUzMDIwM0NFNzZCMDA4RjM2
RDIgLyogQ1NTQW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTIwOTYsNyArMjEwNCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fi
b3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3
QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFE
RjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1
MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3Np
dGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmgg
Ki87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2
MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZF
RkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5n
TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1
MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBC
NDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVz
c2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjIyOSw4ICsyMjM3LDggQEAKIAkJN0NFMTkxN0Ix
RjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3
OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIw
MDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07
CiAJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDRGMURENjlBMUUwMDEyODU1
MiAvKiBTVkdOdW1iZXIuaCAqLzsgfTsKLQkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNW
R1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAq
LzsgfTsKLQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdF
QzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgfTsKKwkJN0NFNThENTgxREQ3RDk2
RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VD
OUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4
IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNz
YWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yMzczLDcgKzIzODEsNyBAQAogCQk4M0ZFN0NBNzFEQTlGMUE3
MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3
Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdD
IC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNl
TW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9Owot
CQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OworCQk4NDE5RDJBNzEyMEQ5MkQw
MDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlE
MkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsK
IAkJODQxOUQyQUQxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBQjEy
MEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJODQx
OUQyQkExMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJCODEyMEUwQzc2MDAx
NDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCAqLzsgfTsKQEAgLTI0MDAsNyArMjQwOCw3
IEBACiAJCTg0NzMwRDkzMTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc2MTI0OEYw
QjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCAqLzsgfTsKIAkJODQ3NkM5RTYxMURGNkEw
QjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNW
R1BhdGhTZWdMaXN0QnVpbGRlci5oICovOyB9OwogCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIg
LyogU1ZHUGF0aEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NzZDOUU4MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oICov
OyB9OwotCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2
QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IH07CisJCTg0NzZDOUVDMTFERjZB
MjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
Q29uc3VtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RUUxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCAqLzsgfTsKIAkJODQ4MDE5NTUxMDhCQUZCMzAwQ0Iy
QjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
aCAqLzsgfTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgx
MTk0QzlEMzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwpAQCAtMzM1Myw3ICsz
MzYxLDcgQEAKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEJCMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyMjI3
QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR1BhdGhFbGVtZW50LmggKi87IH07Ci0JCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyB9OworCQlCMjIy
N0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNW
R1BhdGhTZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCMjIyN0E1RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0FyYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzgwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCAqLzsgfTsKIAkJQjIyMjdBNjIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OENDMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2Vn
Q2xvc2VQYXRoLmggKi87IH07CiAJCUIyMjI3QTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhDRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Yy5oICovOyB9OwpAQCAtODI2MSw4ICs4MjY5LDEwIEBACiAJCTU1NUI4N0VCMUNBQUYwQUIwMDM0
OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZURlY29kZXJDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2
MjFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCYWNraW5nU3RvcmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVBOTFBQTYyMDVCMTNGNTAwREM0NzBFIC8q
IFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEUzMUVBQUM1OUIwMDI2RUVBQSAv
KiBVVElSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVElSZWdpc3RyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBV
VElSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVElSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGll
bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4NzcsNiArMjI4ODcsOCBAQAogCQkJ
CUIyMjI3OEE1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5jcHAgKi8sCiAJCQkJ
QjIyMjc4QTYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggKi8sCiAJCQkJQjIy
Mjc4QTcwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLywKKwkJCQk1NUE5
MUFBNjIwNUIxM0Y1MDBEQzQ3MEUgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8sCisJCQkJNTU3RURC
OUIyMDVBMDE1QjAwN0Q1RkNGIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLywKIAkJCQlCMjIyNzhBQTBE
MDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmNwcCAqLywKIAkJCQlCMjIyNzhBQjBEMDBC
RjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggKi8sCiAJCQkJQjIyMjc4QUQwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuY3BwICovLApAQCAtMjk5OTAsNiArMzAwMDIsNyBA
QAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlw
aEl0ZW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQTlGMjA1QUZGMEMwMERD
NDcwRSAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xl
YW4uaCBpbiBIZWFkZXJzICovLApAQCAtMzAxMDEsNiArMzAxMTQsNyBAQAogCQkJCUIyMjI3QTND
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgxMDc2NDQxMjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAvKiBTVkdM
aXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAw
NDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAx
MTMsNiArMzAxMjcsNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAv
KiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUFBMDIwNUFGRjNG
MDBEQzQ3MEUgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVu
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTUxLDYgKzMwMTY2LDcgQEAKIAkJCQlCMjIyN0E4
MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlz
dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8q
IFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1
QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENv
bnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAxNjIsMTAgKzMwMTc4LDEyIEBACiAJCQkJQjIy
MjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1QTkxQUEyMjA1QUZGNjYwMERDNDcwRSAvKiBTVkdQb2ludExpc3RW
YWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkEx
QTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhB
MEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwMjE3LDYgKzMwMjM1LDcgQEAKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTVBOTFBQTQyMDVBRkY5MjAwREM0NzBFIC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjI0
LDYgKzMwMjQzLDcgQEAKIAkJCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVBMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVEMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUE5RDIw
NUFGRUNGMDBEQzQ3MEUgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYw
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdTcGVjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERh
dGEuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1BhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgc3Rh
dGljIFBhdGggcGF0aEZyb21QYXRoRWxlbWVudChTVkdFbGVtZQogCiBzdGF0aWMgUGF0aCBwYXRo
RnJvbVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9p
bnRzID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRz
KCktPnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNSZWZlcmVuY2UoKTsKICAgICBp
ZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0
aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9p
bnRzLmZpcnN0UmVmZXJlbmNlKCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGF0
aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRz
LmF0UmVmZXJlbmNlKGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CiAgICAgcmV0dXJu
IHBhdGg7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25F
bGVtZW50KFNWR0VsCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9seWxpbmVFbGVtZW50KFNWR0Vs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxp
bmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRv
JiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVk
UG9pbnRzKCktPnZhbHVlc1JlZmVyZW5jZSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRvKHBv
aW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RSZWZlcmVuY2UoKSk7
CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQo
aSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXRSZWZlcmVuY2UoaSkpOwogICAg
IHJldHVybiBwYXRoOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCShy
ZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxNSArMTYz
LDE1IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWkKIHN0YXRpYyBp
bmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90
YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxl
bmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHhMaXN0LCBjb25zdCBTVkdM
ZW5ndGhMaXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHhMaXN0
LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3RW
YWx1ZXMqIHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQotICAgICAgICBkYXRhLnggPSB4
TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEueCA9IHhMaXN0
LT5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0g
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAg
ICAgZGF0YS55ID0geUxpc3QtPmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwog
ICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVlKGxl
bmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5hdFJlZmVyZW5jZShpKS52
YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQotICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keSA9IGR5
TGlzdC0+YXRSZWZlcmVuY2UoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0
ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAg
ICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdFJlZmVyZW5jZShpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgU1ZHQW5nbGVWYWx1ZTo6VHlwZSB1bml0VHlwZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFsdWUpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAg
IGZsb2F0IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkudmFs
dWUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUluU3BlY2lmaWVk
VW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtNzUsNyArNzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJp
bmcodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVl
SW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRU
eXBlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFsdWUmIHZhbHVlKQorICAg
IFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRBbmdsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAgdm9pZCBTVkdB
bmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgp
KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKTsKLSAgICBhdXRvJiB0b0FuZ2xl
QW5kRW51bWVyYXRpb24gPSB0by0+YXM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CisgICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRp
b24gPSB0by0+YXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAgICAgLy8gT25seSByZXNw
ZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmllZCBpbiBh
bmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtODAsMTAgKzgwLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpj
YWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlv
biA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFzPHN0ZDo6cGFpcjxT
VkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25B
bmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uID0gYW5pbWF0ZWQtPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7CisgICAgY29uc3QgYXV0byBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IChtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJv
bSktPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gdG9BbmdsZUFuZEVu
dW1lcmF0aW9uID0gdG8tPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8g
dG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24t
PmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gYW5pbWF0ZWRBbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOwog
CiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51
bWVyYXRpb24uc2Vjb25kKSB7CiAgICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiAtIG5vIGxp
bmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFsdWVzIChlLmcuIGF1dG8gdG8g
YW5nbGUpLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsK
IAotICAgIGNvbnN0IGF1dG8mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmFzPHN0ZDo6cGFpcjxp
bnQsIGludD4+KCk7Ci0gICAgYXV0byYgdG9JbnRlZ2VyUGFpciA9IHRvLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOworICAgIGNvbnN0IGF1dG8gZnJvbUludGVnZXJQYWlyID0gZnJvbS0+YXM8
aW50LCBpbnQ+KCk7CisgICAgYXV0byB0b0ludGVnZXJQYWlyID0gdG8tPmFzPGludCwgaW50Pigp
OwogCiAgICAgdG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7CiAg
ICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29uZDsKQEAgLTc4
LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAg
ICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1l
bnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUludGVnZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKLSAgICBjb25zdCBhdXRvJiB0b0ludGVnZXJQYWly
ID0gdG8tPmFzPHN0ZDo6cGFpcjxpbnQsIGludD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVu
ZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOwotICAgIGF1dG8mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21JbnRlZ2VyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGludCwgaW50PigpOworICAgIGNvbnN0IGF1dG8gdG9JbnRl
Z2VyUGFpciA9IHRvLT5hczxpbnQsIGludD4oKTsKKyAgICBjb25zdCBhdXRvIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8aW50LCBpbnQ+KCk7Cisg
ICAgYXV0byBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGludCwgaW50PigpOwog
CiAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwogICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogCiAg
ICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTGVuZ3RoTGlzdFNpemU7ICsraSkKLSAgICAg
ICAgdG9MZW5ndGhMaXN0W2ldLnNldFZhbHVlKHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhD
b250ZXh0KSArIGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhD
b250ZXh0KTsKKyAgICAgICAgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnNldFZhbHVlKHRv
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5n
dGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0
KTsKIH0KIAogc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgcGFyc2VMZW5ndGhMaXN0RnJvbVN0
cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBjb25zdCBTdHJpbmcm
IHN0cmluZykKQEAgLTEwOCwxOCArMTA4LDE4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OmNhbGMKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2Nv
bnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9MZW5ndGhMaXN0
U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5n
dGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgICAgICBTVkdMZW5ndGhUeXBlIHVu
aXRUeXBlID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7CisgICAgICAgIGZsb2F0IGFuaW1h
dGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0
LmF0UmVmZXJlbmNlKGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20g
PSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBpZiAo
cGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhM
aXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0
aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5cGUg
PSBmcm9tTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS51bml0VHlwZSgpOworICAgICAgICAgICAg
ZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBp
IDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlz
dFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRv
QXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9u
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBl
ZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAgICAgIGFuaW1hdGVkTGVuZ3Ro
TGlzdC5hdFJlZmVyZW5jZShpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJl
ciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6YWRkQQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbU51bWJlckxpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTnVtYmVyTGlzdFtpXSArPSBmcm9t
TnVtYmVyTGlzdFtpXTsKKyAgICAgICAgdG9OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpICs9IGZy
b21OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlw
ZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlw
ZSogYW5pbWF0ZWQpCkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPSB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBlZmZlY3RpdmVG
cm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxpc3RbaV0gOiAwOwotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZl
Y3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVt
YmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlz
dFNpemUgPyBmcm9tTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSwgZWZmZWN0aXZlVG9B
dEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpKTsKICAgICB9CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
OCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbU51bWJlclBhaXIgPSBmcm9tLT5hczxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsKLSAg
ICBhdXRvJiB0b051bWJlclBhaXIgPSB0by0+YXM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7
CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFpciA9IGZyb20tPmFzPGZsb2F0LCBmbG9hdD4o
KTsKKyAgICBhdXRvIHRvTnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAg
ICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7CiAgICAgdG9OdW1i
ZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CkBAIC03OCwxMCArNzgsMTAg
QEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVCht
X2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAg
IGNvbnN0IGF1dG8mIGZyb21OdW1iZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJQYWlyID0gdG8tPmFz
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj4oKTsKLSAgICBhdXRvJiBhbmltYXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+YXM8
c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGZsb2F0LCBmbG9hdD4oKTsKKyAgICBjb25zdCBhdXRvIHRv
TnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CisgICAgY29uc3QgYXV0byB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8ZmxvYXQsIGZs
b2F0PigpOworICAgIGF1dG8gYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGZsb2F0
LCBmbG9hdD4oKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVt
YmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5maXJzdCwgdG9OdW1i
ZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIuZmlyc3QsIGFuaW1hdGVk
TnVtYmVyUGFpci5maXJzdCk7CiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRp
dmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1iZXJQYWlyLnNlY29uZCwg
dG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLnNlY29uZCwg
YW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQYXRoLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIFJlZlB0cjxTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgY29uc3QgYXV0byYgYmFz
ZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgIGJ1aWxkU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoYmFzZVZhbHVlLCAqYnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQ
YXRoU2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLCAq
Ynl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1bHQ7CiAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIGlmICgh
cmVzdWx0LmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJs
b2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIHNlZ21lbnQgOiByZXN1bHQpCi0gICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25T
dGFydGVkKGJ5dGVTdHJlYW0sICZiYXNlVmFsdWUpOworICAgICAgICAgICAgc2VnbWVudC0+YW5p
bWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZh
bHVlcz4oKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcg
QEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbgogICAgICAgICByZXR1
cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsr
aSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAg
dG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkgKz0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShp
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9B
dEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC05NiwxNCArOTYs
MTQgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAg
ICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9B
dEVuZE9mRHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBl
ZmZlY3RpdmVGcm9tID0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShpKTsKKyAgICAgICAgRmxv
YXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LmF0UmVmZXJlbmNlKGkpIDogRmxvYXRQb2ludCgpOwog
Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAg
ICAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0
aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVG
cm9tLnkoKSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0
ZWRZKTsKLSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVk
WCwgYW5pbWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExp
c3QuYXRSZWZlcmVuY2UoaSkueCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRl
ZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3Rp
dmVGcm9tLngoKSwgdG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkueCgpLCBlZmZlY3RpdmVUb0F0
RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgp
LCB0b1BvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBh
bmltYXRlZFkpOworICAgICAgICBhbmltYXRlZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKSA9IEZs
b2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGZyb21U
cmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0g
ZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3RbMF07CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1M
aXN0LmZpcnN0UmVmZXJlbmNlKCk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtLnR5cGUo
KSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRvVHJhbnNmb3JtID0gU1ZHVHJhbnNmb3Jt
RGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm0pOwpA
QCAtMTA5LDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
cjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1dG8g
ZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAgIGNv
bnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0IGF1
dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1M
aXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zv
cm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFu
c2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKKyAgICBjb25zdCBhdXRv
IGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlz
dC5maXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBj
dXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9U
cmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVm
ZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQo
KSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQg
PSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFu
aW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1Ry
YW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQp
KTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5m
aXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBT
VkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1
ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9y
bSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zv
cm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTM1LDEzICsxMzUsMTMgQEAgZmxvYXQg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgICAgICByZXR1cm4gLTE7CiAK
ICAgICBBU1NFUlQoaXRlbXNDb3VudCA9PSAxKTsKLSAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3Rb
MF0udHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdFswXS50eXBlKCkpCisgICAgaWYgKGZyb21UcmFu
c2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCkudHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdC5maXJz
dFJlZmVyZW5jZSgpLnR5cGUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgLy8gU3BlYzog
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2FuaW1hdGUuaHRtbCNjb21wbGV4RGlzdGFuY2VzCiAg
ICAgLy8gUGFjZWQgYW5pbWF0aW9ucyBhc3N1bWUgYSBub3Rpb24gb2YgZGlzdGFuY2UgYmV0d2Vl
biB0aGUgdmFyaW91cyBhbmltYXRpb24gdmFsdWVzIGRlZmluZWQgYnkgdGhlIOKAmHRv4oCZLCDi
gJhmcm9t4oCZLCDigJhieeKAmSBhbmQg4oCYdmFsdWVz4oCZIGF0dHJpYnV0ZXMuCiAgICAgLy8g
RGlzdGFuY2UgaXMgZGVmaW5lZCBvbmx5IGZvciBzY2FsYXIgdHlwZXMgKHN1Y2ggYXMgPGxlbmd0
aD4pLCBjb2xvcnMgYW5kIHRoZSBzdWJzZXQgb2YgdHJhbnNmb3JtYXRpb24gdHlwZXMgdGhhdCBh
cmUgc3VwcG9ydGVkIGJ5IOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkuCi0gICAgcmV0dXJuIFNWR1Ry
YW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0WzBdLCB0b1RyYW5zZm9ybUxpc3RbMF0p
LmRpc3RhbmNlKCk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zv
cm1MaXN0LmZpcnN0UmVmZXJlbmNlKCksIHRvVHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgp
KS5kaXN0YW5jZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgorc3RydWN0IFNWR0FuaW1hdGVkVHlwZSB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKQEAgLTM0LDE1ICszMiwxNCBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKFByb3BlcnR5VHlwZSYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRy
PFNWR1ZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5
VHlwZTI+CkBAIC01Miw4NiArNDksMTAzIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3Qgc3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiBwcm9wZXJ0aWVzKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoc3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgdmFsdWVzKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0aWVzKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlcykp
OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1l
IFByb3BlcnR5VHlwZTI+Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9w
ZXJ0aWVzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
V1RGTW92ZShwcm9wZXJ0aWVzKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBTVkdBbmltYXRlZFR5
cGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBtX3ZhbHVlKHN0ZDo6
bWFrZV91bmlxdWU8UHJvcGVydHlUeXBlPihwcm9wZXJ0eSkucmVsZWFzZSgpKQorICAgIFNWR0Fu
aW1hdGVkVHlwZShQcm9wZXJ0eVR5cGUmJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChTVkdWYWx1
ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkg
IT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQot
ICAgICAgICA6IG1fdmFsdWUoc3RkOjptYWtlX3VuaXF1ZTxQcm9wZXJ0eVR5cGU+KFdURk1vdmUo
cHJvcGVydHkpKS5yZWxlYXNlKCkpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChXVEZNb3ZlKHZhbHVlKSkKICAgICB7CisgICAg
ICAgIEFTU0VSVCh0eXBlKCkgIT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAg
IFNWR0FuaW1hdGVkVHlwZShjb25zdCBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlU
eXBlMj4mIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4ocHJvcGVydGllcykucmVsZWFz
ZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVy
dHlUeXBlMj4mJiB2YWx1ZXMpCisgICAgICAgIDogZmlyc3QoU1ZHVmFsdWU6OmNyZWF0ZSh2YWx1
ZXMuZmlyc3QpKQorICAgICAgICAsIHNlY29uZChTVkdWYWx1ZTo6Y3JlYXRlKHZhbHVlcy5zZWNv
bmQpKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFBy
b3BlcnR5VHlwZTI+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUx
LCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4oV1RGTW92
ZShwcm9wZXJ0aWVzKSkucmVsZWFzZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IGZp
cnN0KFdURk1vdmUodmFsdWUxKSkKKyAgICAgICAgLCBzZWNvbmQoV1RGTW92ZSh2YWx1ZTIpKQog
ICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwogICAgIH0K
IAotICAgIH5TVkdBbmltYXRlZFR5cGUoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZT4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFzKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IFdURjo6dmlzaXQoW10oYXV0byYgdmFsdWUpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZTsK
LSAgICAgICAgfSwgbV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFz
KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgUHJvcGVy
dHlUeXBlJiBhcygpCiAgICAgewotICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxQcm9wZXJ0eVR5cGUqPihtX3ZhbHVlKSk7Ci0gICAgICAgIHJldHVybiAqV1RGOjpnZXQ8UHJv
cGVydHlUeXBlKj4obV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBQcm9wZXJ0eVR5cGUmIGFzKCkKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUy
PgorICAgIGNvbnN0IHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxJiwgUHJvcGVydHlUeXBlMiY+IGFz
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFBy
b3BlcnR5VHlwZSo+KG1fdmFsdWUpKTsKLSAgICAgICAgcmV0dXJuICpXVEY6OmdldDxQcm9wZXJ0
eVR5cGUqPihtX3ZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGZpcnN0ICYmIHNlY29uZCk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdC0+YXM8UHJvcGVydHlUeXBlMT4oKSwgc2Vj
b25kLT5hczxQcm9wZXJ0eVR5cGUyPigpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGQ6OnBh
aXI8UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBhcygpCisgICAgeworICAgICAgICBB
U1NFUlQoZmlyc3QgJiYgc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0
ZDo6cmVmKGZpcnN0LT5hczxQcm9wZXJ0eVR5cGUxPigpKSwgc3RkOjpyZWYoc2Vjb25kLT5hczxQ
cm9wZXJ0eVR5cGUyPigpKSk7CiAgICAgfQogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlw
ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZS5pbmRleCgpID49IEFuaW1h
dGVkUHJvcGVydHlUeXBlTWluICYmIG1fdmFsdWUuaW5kZXgoKSA8IEFuaW1hdGVkUHJvcGVydHlU
eXBlTWF4KTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFuaW1hdGVkUHJvcGVydHlUeXBl
PihtX3ZhbHVlLmluZGV4KCkpOworICAgICAgICBBU1NFUlQoZmlyc3QpOworICAgICAgICBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRlZFR5cGUoKmZpcnN0
KTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMiA9IHNlY29uZCA/
IHZhbHVlQW5pbWF0ZWRUeXBlKCpzZWNvbmQpIDogQW5pbWF0ZWRVbmtub3duOworCisgICAgICAg
IGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsKKyAgICAgICAgICAgIEFTU0VS
VChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYW5pbWF0ZWRUeXBl
MSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEludGVnZXIp
CisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOworCisg
ICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFuaW1hdGVkVHlw
ZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlcjsKKworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRl
ZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKICAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjp2
aXNpdChbXShhdXRvJiB2YWx1ZSkgewotICAgICAgICAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0g
c3RkOjpkZWNheV90PGRlY2x0eXBlKCp2YWx1ZSk+OwotICAgICAgICAgICAgcmV0dXJuIFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCp2YWx1ZSk7Ci0gICAgICAgIH0s
IG1fdmFsdWUpOworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJl
dHVybiBmaXJzdC0+dG9TdHJpbmcoKTsKICAgICB9CiAKICAgICBib29sIHNldFZhbHVlQXNTdHJp
bmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGF1dG8mIHZhbHVlKSB7Ci0gICAg
ICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUoKnZhbHVl
KT47Ci0gICAgICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9w
ZXJ0eVR5cGU+OjpwYXJzZShhdHRyTmFtZSwgc3RyaW5nKSkgewotICAgICAgICAgICAgICAgICp2
YWx1ZSA9ICpyZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0sIG1fdmFsdWUpOworICAg
ICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJldHVybiBmaXJzdC0+cGFy
c2UoYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNB
bmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCkBAIC0xNDAsOCArMTU0LDQ3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0g
QW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgU1ZHVmFsdWVWYXJpYW50IG1f
dmFsdWU7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBl
KGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0
KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikg
eworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICAgICAgfSwg
W10oY29uc3QgYm9vbCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRCb29sZWFu
OworICAgICAgICAgICAgfSwgW10oY29uc3QgQ29sb3ImKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQ29sb3I7CisgICAgICAgICAgICB9LCBbXShjb25zdCB1bnNpZ25lZCYpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRFbnVtZXJhdGlvbjsKKyAgICAgICAgICAg
IH0sIFtdKGNvbnN0IGludCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRl
Z2VyOworICAgICAgICAgICAgfSwgW10oY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOworICAgICAgICAgICAgfSwgW10oY29uc3Qg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRM
ZW5ndGhMaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgZmxvYXQpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXI7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdO
dW1iZXJMaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZE51bWJl
ckxpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOworICAgICAgICAgICAgfSwgW10oY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJikgeworICAgICAgICAgICAgICAgIHJldHVy
biBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgICAgICB9LCBbXShjb25zdCBT
VkdQb2ludExpc3RWYWx1ZXMmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9p
bnRzOworICAgICAgICAgICAgfSwgW10oY29uc3QgRmxvYXRSZWN0JikgeworICAgICAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZFJlY3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTdHJpbmcm
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOworICAgICAgICAgICAg
fSwgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgYXV0
byYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOworICAgICAgICAg
ICAgfQorICAgICAgICApLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1
ZSkpOworICAgIH0KKworICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3Q7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBzZWNvbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDEwICs2OSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAg
Y29uc3QgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1
YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3BlcnRpZXNbMF0ucHJvcGVydGllc1swXS5n
ZXQoKSk7CiAKLSAgICAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShhbmltYXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCkpOwotICAgICAgICBhdXRv
JiBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsICZhbmltYXRl
ZFZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICAgICAgYXV0byBhbmlt
YXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmlt
YXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGFuaW1hdGVkVmFsdWUp
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KQEAgLTgzLDkg
KzgyLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3Bl
cnRpZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgICAgIGFuaW1hdGVkUHJvcGVydHkt
PnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFuaW1hdGVk
VmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
PigpOwotICAgICAgICBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAwLCAmYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IGFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNl
VmFsdWUoKTsKKyAgICAgICAgYXV0byYgYW5pbWF0ZWRWYWx1ZSA9IGFuaW1hdGVkVHlwZS5maXJz
dDsKKyAgICAgICAgYW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5
cGU6OkNvbnRlbnRUeXBlPigpID0gYmFzZVZhbHVlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGFuaW1hdGVk
VmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgpAQCAt
MTE3LDExICsxMTcsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdCBhdXRvKiBmaXJzdEFu
aW1hdGVkUHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFs
VHlwZTE+KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKICAgICAg
ICAgY29uc3QgYXV0byogc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLnByb3Bl
cnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoc3RkOjptYWtlX3BhaXIoZmlyc3RBbmltYXRlZFByb3BlcnR5LT5jdXJy
ZW50QmFzZVZhbHVlKCksIHNlY29uZEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUo
KSkpOwotICAgICAgICBhdXRvJiBBbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0
ZSBhczxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5h
bWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAw
LCAmQW5pbWF0ZWRWYWx1ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCAmQW5pbWF0
ZWRWYWx1ZS5zZWNvbmQpOwotICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgICAgICBh
dXRvIGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgYXV0byBzZWNvbmRBbmltYXRl
ZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1
ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZh
bHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xMzQs
MTEgKzEzNCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGZpcnN0QW5pbWF0ZWRQcm9wZXJ0eS0+
c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgICAgIHNlY29uZEFuaW1hdGVkUHJv
cGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFu
aW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxU
eXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+Pigp
OwotICAgICAgICBhbmltYXRlZFZhbHVlLmZpcnN0ID0gZmlyc3RBbmltYXRlZFByb3BlcnR5LT5j
dXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVmFsdWUuc2Vjb25kID0gc2Vjb25k
QW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0
aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGll
cywgMCwgJmFuaW1hdGVkVmFsdWUuZmlyc3QpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMSwgJmFu
aW1hdGVkVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgY29uc3QgYXV0byYgZmlyc3RCYXNlVmFsdWUg
PSBmaXJzdEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29u
c3QgYXV0byYgc2Vjb25kQmFzZVZhbHVlID0gc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOworICAgICAgICBhdXRvJiBmaXJzdEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuZmlyc3Q7CisgICAgICAgIGF1dG8mIHNlY29uZEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuc2Vjb25kOworICAgICAgICBmaXJzdEFuaW1hdGVkVmFsdWUtPnRlbXBsYXRlIGFzPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGU+KCkgPSBmaXJzdEJhc2VWYWx1ZS0+dGVt
cGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAg
c2Vjb25kQW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpD
b250ZW50VHlwZT4oKSA9IHNlY29uZEJhc2VWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5p
bVZhbFR5cGUyOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0
QW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZh
bHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVu
YW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MSw3ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIH07CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rp
b24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFByb3BlcnRpZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVu
YW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHIpCisg
ICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRQcm9wZXJ0aWVzLCB1bnNpZ25lZCB3
aGljaFByb3BlcnR5LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBhbmltYXRlZFZhbHVlID0gbnVs
bHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5z
dGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3ku
IFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRh
dGVzQmxvY2tlZCgqYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLmVsZW1lbnQsIHRydWUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRp
dGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5p
bWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwLDcgKzE0MCw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZH
Q29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMu
ZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAg
ZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9
IHRhYmxlVmFsdWVzKCkudmFsdWVzKCk7CiAgICAgcmV0dXJuIGZ1bmM7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50OjpzZXRGaWx0ZXJFCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBl
QXR0cikKICAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRUeXBlKHR5cGUoKSk7CiAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKQotICAgICAgICByZXR1cm4gY29s
b3JNYXRyaXgtPnNldFZhbHVlcyh2YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBjb2xvck1hdHJp
eC0+c2V0VmFsdWVzKHZhbHVlcygpLnZhbHVlcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAg
ICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS52YWx1ZXMoKTsKICAgICAgICAgdW5zaWduZWQgc2l6
ZSA9IGZpbHRlclZhbHVlcy5zaXplKCk7CiAKICAgICAgICAgaWYgKChmaWx0ZXJUeXBlID09IEZF
Q09MT1JNQVRSSVhfVFlQRV9NQVRSSVggJiYgc2l6ZSAhPSAyMCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg1LDEyICsyODUsMTIgQEAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBp
ZiAoIWhhc0F0dHJpYnV0ZShTVkdOYW1lczo6ZGl2aXNvckF0dHIpKSB7CiAgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwga2VybmVsTWF0cml4U2l6ZTsgKytpKQotICAgICAgICAgICAgZGl2aXNv
clZhbHVlICs9IGtlcm5lbE1hdHJpeC5hdChpKTsKKyAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSAr
PSBrZXJuZWxNYXRyaXguYXRSZWZlcmVuY2UoaSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVl
KQogICAgICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVj
dCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUs
IG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1
ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3Ro
WFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxN
YXRyaXgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRl
ciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMo
KSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9h
dFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBw
cmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeC52YWx1ZXMoKSk7CiAgICAgZWZmZWN0LT5pbnB1
dEVmZmVjdHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gV1RGTW92ZShlZmZlY3QpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NywxMCArNjcsMTAgQEAgaW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNW
R0ZpbHRlckVsZW1lbgogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAs
IG1fZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5H
Qk9YKQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVf
VVNFUlNQQUNFT05VU0UpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2Rl
V2lkdGgsICIxMjAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikK
KyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAg
LCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1f
d2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAv
LyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6
IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZl
Y3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDEwICs1NCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94
KExlbmd0aE1vZGVXaWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUi
KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVpZ2h0
KExlbmd0aE1vZGVIZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgsICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQsICIwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgsICIxMDAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMTAwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3Bl
Y2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBz
cGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMCBA
QCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3ko
TGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwg
bV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwg
bV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDEwICs1OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUg
U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5n
dGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hl
aWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hl
aWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1faW1hZ2VMb2Fk
ZXIoKnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdJbWFnZUVs
ZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDIyOTg1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBFX1BDID0gTGVuZ3RoVHlwZVBD
CiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0
aFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0xlbmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0K
QEAgLTY2LDEyICs2NiwxMiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB1bml0VHlw
ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgp
OworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPGZsb2F0PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29u
dGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5j
ZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkg
fSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhm
bG9hdCB2YWx1ZSkKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsK
KyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBT
VkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApA
QCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmll
ZFVuaXRzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVl
SW5TcGVjaWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtOTcs
NyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUlu
U3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVj
aWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVi
bGljOgogICAgIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUmVmZXJlbmNlKCkudmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTExMyw3
ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2
YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0
ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJl
bmNlKCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVu
aXRzKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFs
dWVSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0OCw3
ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZh
bHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2
LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAgICAg
dXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlz
dFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMm
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlzdChB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVz
LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU1ZHTGVu
Z3RoTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgaWYgKGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlU3RyaW5nKS5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKGxlbmd0aCk7CisgICAgICAg
IGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR0xlbmd0aFZhbHVlPihsZW5ndGgpKTsKICAgICAg
ICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBlbmQpOwogICAgIH0KIH0K
QEAgLTYwLDcgKzYwLDcgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGF0UmVmZXJlbmNlKGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIx
LDE0ICsyMiwxNCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5o
IgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTGVuZ3RoOwogY2xhc3MgU1ZHTGVuZ3Ro
TGlzdDsKIAotY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8
U1ZHTGVuZ3RoVmFsdWU+IHsKK2NsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJs
aWMgU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT4gewogcHVibGljOgogICAgIHZvaWQgcGFy
c2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSk7CiAgICAgU3RyaW5nIHZhbHVl
QXNTdHJpbmcoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNCw2
ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsMTAgKzU1LDEwIEBAIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3gxKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feTEo
TGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1feDIoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0g
ICAgLCBtX3kyKExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3gxKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3kxKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV94MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikp
CisgICAgLCBtX3kyKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIC8v
IFNwZWM6IElmIHRoZSB4MiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6bGluZWFyR3JhZGllbnRUYWcpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGlzdFZhbHVlcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKKworI2luY2x1ZGUgIlNWR1ZhbHVlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KK3ZvaWQgU1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUoc2l6ZV90IG5ld1Np
emUpCit7CisgICAgc2l6ZV90IGluZGV4ID0gc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8U1ZH
VmFsdWU+Pjo6cmVzaXplKG5ld1NpemUpOworICAgIGZvciAoOyBpbmRleCA8IG5ld1NpemU7ICsr
aW5kZXgpCisgICAgICAgIGF0KGluZGV4KSA9IFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBl
PigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorVmVjdG9yPFJlZlB0
cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6ZGVlcENvcHkoKSBjb25z
dAoreworICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiB2YWx1ZXM7CisgICAgZm9yIChjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICB2YWx1ZXMuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGUoKnZhbHVlKSk7CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLy8g
VGVtcGxhdGUgZnVuY3Rpb24gZXhwbGljaXQgaW5zdGFudGlhdGlvbi4KK3RlbXBsYXRlIHZvaWQg
U1ZHTGlzdFZhbHVlczxmbG9hdD46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdM
aXN0VmFsdWVzPEZsb2F0UG9pbnQ+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZH
TGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9p
ZCBTVkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6cmVzaXplKHNpemVfdCk7CisKK3Rl
bXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6ZGVl
cENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0
VmFsdWVzPFN0cmluZz46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRy
PFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6ZGVlcENvcHkoKSBjb25zdDsK
K3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0
aFZhbHVlPjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFs
dWU+PiBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj46OmRlZXBDb3B5KCkgY29uc3Q7
Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdUcmFu
c2Zvcm1WYWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpc3RWYWx1ZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHVmFsdWU7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMg
OiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0
VmFsdWVzKCkgPSBkZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFs
dWVzJiBvdGhlcikKKyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVl
cENvcHkoKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFNWR0xpc3RWYWx1ZXMmIG9wZXJhdG9y
PShjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdMaXN0VmFsdWVzJj4oVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpvcGVyYXRv
cj0ob3RoZXIuZGVlcENvcHkoKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlc2l6ZShzaXpl
X3QpOworICAgIAorICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGlu
ZGV4KSBjb25zdCB7IHJldHVybiBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4o
KTsgfQorICAgIFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSB7IHJldHVy
biBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorCisgICAgY29uc3Qg
UHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIGF0UmVmZXJlbmNl
KDApOyB9CisgICAgUHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVm
ZXJlbmNlKDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RSZWZlcmVuY2UoKSBj
b25zdCB7IHJldHVybiBhdFJlZmVyZW5jZShzaXplKCkgLSAxKTsgfQorICAgIFByb3BlcnR5VHlw
ZSYgbGFzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKHNpemUoKSAtIDEpOyB9Cisg
ICAgCisgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gdmFsdWVzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHZhbHVlczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRv
JiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2YWx1ZS0+dGVtcGxh
dGUgYXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9Cisg
ICAgCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBkZWVwQ29weSgpIGNv
bnN0OworfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMCArNzQsMTAgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVmWChMZW5ndGhN
b2RlV2lkdGgpCi0gICAgLCBtX3JlZlkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fbWFya2Vy
V2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpCi0gICAgLCBtX21hcmtlckhlaWdodChMZW5ndGhN
b2RlSGVpZ2h0LCAiMyIpIAorICAgICwgbV9yZWZYKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX3JlZlkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX21hcmtlcldpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjMiKSkK
KyAgICAsIG1fbWFya2VySGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIz
IikpCiAgICAgLCBtX21hcmtlclVuaXRzKFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpCiAgICAg
LCBtX29yaWVudFR5cGUoU1ZHTWFya2VyT3JpZW50QW5nbGUpCiB7CkBAIC0yMTQsNyArMjE0LDcg
QEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0F1dG8oKQogCiB2b2lkIFNWR01h
cmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUmIGFuZ2xlKQogewotICAgIHNl
dE9yaWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5nbGUucHJvcGVydHlSZWZlcmVuY2UoKSk7
CisgICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS52YWx1ZVJlZmVyZW5j
ZSgpKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQpAQCAtMjQxLDEyICsyNDEsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50Ojpz
eW5jaHJvbml6ZU9yaWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IGF1dG9TdGFydFJldmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRv
IG9yIGF1dG8tc3RhcnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVP
cmllbnRBbmdsZSBhbHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUu
Ci0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50
QXV0bykgeworICAgIGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlLT5hczxTVkdNYXJr
ZXJPcmllbnRUeXBlPigpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJU
eXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVy
dHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2Vy
T3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlwZS52
YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3Rh
cnRSZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZv
d25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0
YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI2MiwxMSArMjYyLDExIEBAIFNWR01hcmtlck9y
aWVudFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAg
ICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFw
cGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFw
cGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxTVkdNYXJrZXJPcmllbnRUeXBlPigpIDwgU1ZH
TWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNW
R01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxT
VkdNYXJrZXJPcmllbnRUeXBlPigpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gbV9v
cmllbnRUeXBlLnZhbHVlOworICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01h
cmtlck9yaWVudFR5cGU+KCk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRU
eXBlQW5pbWF0ZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShy
ZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05OCw4ICs5OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBl
V3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50
VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVu
dFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAg
ICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYg
dHlwZSkgeyBtX29yaWVudFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50
VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50VHlwZS52
YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlw
ZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVC
YXNlVmFsdWUoKSA9IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3Bl
cnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAK
IHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMyw4ICsxMDMsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpw
YWlyPFNWR0FuCiAgICAgICAgICAgICBhbmdsZSA9IHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOwogICAgIH0K
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDEwIEBAIGlubGluZSBTVkdNYXNrRWxl
bWVudDo6U1ZHTWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNU
Qk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0x
MCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgo
TGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0
LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEw
JSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikp
CisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkK
KyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikp
CiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAg
ICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01h
dHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1
YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisg
ICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01Miw3ICs1Miw3IEBA
IHB1YmxpYzoKIAogICAgIGRvdWJsZSBhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmEoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuYSgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEEoZG91YmxlIHZhbHVlKQpAQCAtNjAs
NyArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEEodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVy
ZW5jZSgpLnNldEEodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYigpCiAg
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5iKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZVJlZmVyZW5jZSgpLmIoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRCKGRvdWJsZSB2YWx1ZSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRC
KHZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg0LDcgKzg0LDcgQEAg
cHVibGljOgogCiAgICAgZG91YmxlIGMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuYygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5jKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Qyhkb3VibGUgdmFsdWUpCkBAIC05Miw3
ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Qyh2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJl
bmNlKCkuc2V0Qyh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGQoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZCgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5kKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0RChkb3VibGUgdmFsdWUpCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9k
aWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5z
ZXREKHZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXREKHZhbHVlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExNiw3ICsxMTYs
NyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKS5lKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmUo
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFKGRvdWJsZSB2YWx1ZSkKQEAg
LTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJs
ZSBmKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuZigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEYoZG91YmxlIHZhbHVlKQpAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0Rih2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0Rih2YWx1ZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNTEs
NyArMTUxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1h
dHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJl
ZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC52YWx1ZVJlZmVyZW5jZSgpKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmlu
dmVyc2UoKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmludmVyc2Uo
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTE3NSw3ICsxNzUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS50cmFuc2xhdGUoeCwgeSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShyZXN1bHQpOwpAQCAtMTg2LDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5zY2FsZShzY2FsZUZhY3Rvcik7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1
ZVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xOTcsNyAr
MTk3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2Fs
ZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9y
WSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5yb3RhdGUoYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFs
dWVSZWZlcmVuY2UoKS5yb3RhdGUoYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAog
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxOSw3ICsyMTks
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsg
ICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkucm90YXRlRnJv
bVZlY3Rvcih4LCB5KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTIz
Miw3ICsyMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFgoKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuZmxpcFgoKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CkBAIC0yNDMsNyArMjQzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZs
aXBZKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmZs
aXBZKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRy
aXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjU0LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5za2V3WChhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNjUsMTQgKzI2
NSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAg
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5za2V3WShhbmdsZSk7ICAg
ICAgICAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJp
eDo6Y3JlYXRlKHJlc3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTWF0cml4KFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4
VmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1Byb3BlcnR5VGVh
ck9mZjxmbG9hdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR051bWJlcihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAg
IH0KQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5n
cygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUmVmZXJlbmNlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTU4LDE0ICs1OCwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpID0gdmFsdWU7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkgPSB2YWx1ZTsKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgU1ZHTnVtYmVyKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8ZmxvYXQ+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjk4NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVz
PjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBj
cmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVt
YmVyTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlz
dFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1i
ZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdOdW1iZXJMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBw
ZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxp
c3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNyArNDAsNyBAQCB2b2lk
IFNWR051bWJlckxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgd2hpbGUgKHB0ciA8IGVu
ZCkgewogICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCBudW1iZXIpKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobnVtYmVyKTsKKyAgICAgICAgYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8ZmxvYXQ+KG51bWJlcikpOwogICAgIH0KIH0KIApAQCAtNTIsNyArNTMs
NyBAQCBTdHJpbmcgU1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlm
IChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihh
dFJlZmVyZW5jZShpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAsMTUgKzIwLDE1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051
bWJlcjsKIGNsYXNzIFNWR051bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMg
ZmluYWwgOiBwdWJsaWMgVmVjdG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lk
IHBhcnNlKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7
CkBAIC00Miw3ICs0Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R04KICAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOwogICAgICAgICByZXR1cm4gbGlzdDsKICAg
ICB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gcGFyc2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3Ry
aW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IGZsb2F0OwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yODksNyArMjg5LDcgQEAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRM
aXN0VgogICAgICAgICB9CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7
CiAKLSAgICAgICAgcG9pbnRzTGlzdC5hcHBlbmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7Cisg
ICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxv
YXRQb2ludCh4UG9zLCB5UG9zKSkpOwogICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAh
ZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJl
YW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0u
aAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3Ry
ZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw4ICsxMDgsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlCiAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1G
cm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAg
IHJldHVybiBieXRlU3RyZWFtOwogICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdQ
YXRoQnl0ZVN0cmVhbT4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODQsNyArODQsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBp
bmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJv
bGUpCisgICAgLCBtX3BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdVbmFs
dGVyZWRSb2xlKSkKICAgICAsIG1faXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2
b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmIChtX3Bh
dGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29r
dXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlU
ZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAg
ICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsK
ICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3Bh
dGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAg
ICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0gV1RGTW92ZShuZXdMaXN0KTsKKyAgICAgICAgICAg
IG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpID0gV1RGTW92
ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMzMSw4
ICszMzEsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAgICAg
aWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNW
R1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3du
ZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0g
ICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAg
YnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhC
eXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFs
dGVyZWRQYXJzaW5nKTsKKyAgICBpZiAob3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUtPmFz
PFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRo
U2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBv
d25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlz
dFZhbHVlcz4oKSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVy
VHlwZSwgZFByb3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9
CkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNW
R0VsZQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQYXRoRWxl
bWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BhdGhTZWdMaXN0
LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJUeXBlLm1fcGF0
aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1
dGVOYW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOwor
ICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9w
ZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUt
PmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5Niwx
MCArMzk2LDEwIEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYg
KGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAg
ICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBh
cHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUu
bGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0
VmFsdWVzPigpLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVh
bUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFs
dWVzPigpLmxhc3RSZWZlcmVuY2UoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0
ZXJlZFBhcnNpbmcpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9w
YXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1Bh
dGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUt
PmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQ
YXJzaW5nKTsKICAgICAgICAgbV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBhdGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0Ojpj
bGVhcigpCiB7CiAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1w
dHkoKSkKKyAgICBpZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4geyB9OwogICAgIHJldHVybiBCYXNlOjpjbGVhclZhbHVlcygpOwogfQpAQCAtNDIsMTUgKzQy
LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMKIAogRXhjZXB0
aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0oUmVm
PFNWR1BhdGhTZWc+JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4
IDwgbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFySXRlbUNvbnRleHRB
bmRSb2xlKGluZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkp
CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFySXRlbUNvbnRleHRBbmRSb2xlKGluZGV4
KTsKICAgICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXMoV1RGTW92ZShuZXdJdGVtKSwg
aW5kZXgpOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTZWdM
aXN0OjpyZW1vdmVJdGVtKHVuc2lnbmVkIGluZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFs
dWVzLT5zaXplKCkpCi0gICAgICAgIG1fdmFsdWVzLT5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShp
bmRleCk7CisgICAgaWYgKGluZGV4IDwgdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQorICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CiAgICAg
YXV0byByZXN1bHQgPSBCYXNlOjpyZW1vdmVJdGVtVmFsdWVzKGluZGV4KTsKICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIg
QEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNp
bmcgTGlzdEl0ZW1UeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+
OjpMaXN0SXRlbVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8
U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2Vn
Um9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdM
aXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBh
dGhTZWdVbmRlZmluZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00OCw5ICs0OCw5IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAKLSAgICAgICAgdW5z
aWduZWQgc2l6ZSA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSB2
YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisg
ICAgICAgICAgICBpZiAoaXRlbSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpKS0+YXM8TGlzdEl0
ZW1UeXBlPigpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAKQEAgLTYw
LDkgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBp
dGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGl0ZW1JbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hv
dWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAt
OTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdM
aXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlz
dFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQYXRo
U2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAg
ICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KHJvbGUsIHZhbHVlcywg
JndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0
eSkKICAgICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpAQCAtMTE1LDEzICsxMTUs
MTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewogICAg
ICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCpt
X2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtu
b3duKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVk
UHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKICAg
ICB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uIGxpc3RNb2RpZmlj
YXRpb24pIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBt
X3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50
KCksIGxpc3RNb2RpZmljYXRpb24pOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jb21taXRD
aGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNh
dGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNv
bnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIGZpbmFs
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJ
KHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzggQEAgU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpTVkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6
Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5h
dGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
TW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxz
ZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0K
IAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1f
cGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb0hvcml6b250YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAg
aWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4
LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9s
ZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZs
b2F0IHksIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29s
dXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsK
KyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJz
KHksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhT
ZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0
aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGlu
YXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhT
ZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBv
aW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9p
bnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9h
dFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRp
bmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQot
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54
KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9s
ZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0
cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBw
b2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6Y3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZs
b2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBp
ZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2lu
dDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngo
KSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0K
IAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29u
c3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewog
ICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1Jv
bGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNW
R1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmds
ZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2Vn
Um9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJl
ZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0Zs
YWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFn
LCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEs
IHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9
CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCht
X3BhdGhTZWdSb2xlKSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aChtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBi
b29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdU
eXBlJiBwYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1f
aXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXRSZWZlcmVuY2Uo
bV9pdGVtQ3VycmVudCk7CiAgICAgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
VHlwZT4obV9zZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3Vy
Y2U6OnBhcnNlU1ZHU2VnbWUKIAogU1ZHUGF0aFNlZ1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6
Om5leHRDb21tYW5kKFNWR1BhdGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNl
Z0xpc3QuYXQobV9pdGVtQ3VycmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5h
dFJlZmVyZW5jZShtX2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2VnVHlwZSBwYXRoU2VnVHlw
ZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkp
OwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNlZ1R5cGU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIy
OTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBTVkdQYXRoU2VnTGlzdFZhbHVlczo6
Y29tbWl0Q2hhbmdlKAogCiB2b2lkIFNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250
ZXh0QW5kUm9sZSh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICBhdXRvJiBpdGVtID0gYXQoaW5kZXgp
OworICAgIGF1dG8mIGl0ZW0gPSBhdFJlZmVyZW5jZShpbmRleCk7CiAgICAgc3RhdGljX2Nhc3Q8
U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Jj4oKml0ZW0pLnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIs
IFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTAg
KzIwLDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHkuaCIK
KyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
NCw5ICszMyw5IEBAIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
CiBjbGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVz
IDogcHVibGljIFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKK2NsYXNzIFNWR1BhdGhTZWdM
aXN0VmFsdWVzIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CiBw
dWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+OworICAg
IHVzaW5nIEJhc2UgPSBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj47CiAgICAgCiAg
ICAgZXhwbGljaXQgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoU1ZHUGF0aFNlZ1JvbGUgcm9sZSkKICAg
ICAgICAgOiBtX3JvbGUocm9sZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRp
bGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxp
dGllcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
VXRpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgYXBw
ZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFMKICAgICBBU1NFUlQocGFyc2luZ01vZGUg
PT0gVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBhcHBlbmRl
ZEl0ZW1MaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKLSAgICBhcHBlbmRlZEl0ZW1MaXN0LmFw
cGVuZChXVEZNb3ZlKHBhdGhTZWcpKTsKKyAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlKFdURk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFt
IGFwcGVuZGVkQnl0ZVN0cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBw
ZW5kZWRJdGVtTGlzdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1Ymxp
YyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBmbG9hdCB4KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkueCgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFgoZmxvYXQgeFZhbHVlKQpAQCAtNjEsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFgoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRYKHhW
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZl
cmVuY2UoKS55KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4
VmFsdWUpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAg
ICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg4LDE5ICs4OCwxOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIG5ld1BvaW50ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnByb3BlcnR5UmVmZXJl
bmNlKCkpOworICAgICAgICBhdXRvIG5ld1BvaW50ID0gdmFsdWVSZWZlcmVuY2UoKS5tYXRyaXhU
cmFuc2Zvcm0obWF0cml4LnZhbHVlUmVmZXJlbmNlKCkpOwogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKIAogICAgICAgICByZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNW
R1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxv
YXRQb2ludCYgdmFsdWUpCisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxG
bG9hdFBvaW50PihudWxscHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTMgQEAg
cHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVy
Q2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFNWR1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZwogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAK
LSAgICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYg
cG9pbnQgPSBhdFJlZmVyZW5jZShpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9p
bnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE1ICsyMiwxNSBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZh
bHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50OwogY2xhc3Mg
U1ZHUG9pbnRMaXN0OwogCi1jbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMg
VmVjdG9yPEZsb2F0UG9pbnQ+IHsKK2NsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1
YmxpYyBTVkdMaXN0VmFsdWVzPEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcgdmFs
dWVBc1N0cmluZygpIGNvbnN0OwogfTsKQEAgLTQzLDggKzQ0LDYgQEAgc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbAogICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEo
bGlzdCwgc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFNWR1BvaW50TGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0K
LSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAKICAgICB1c2lu
ZyBMaXN0SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9
IFNWR1BvaW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJv
cGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0
Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRl
cl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJz
KG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IFdURk1vdmUobmV3
TGlzdCk7CisgICAgICAgIHBvaW50TGlzdCgpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6
OnN5bmNocm9uaXplUG9pbnRzKFMKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0gZG93
bmNhc3Q8U1ZHUG9seUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5
cGUubV9wb2ludHMuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBvd25l
clR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJbmZv
KCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3RyaW5n
KCkpOworICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2lu
dHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLnBvaW50TGlzdCgpLnZh
bHVlQXNTdHJpbmcoKSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5RWxl
bWVudDo6bG9va3VwT3JDcmVhdGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIyOTg1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMo
KTsKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9p
bnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsg
fQorICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9w
b2ludHMudmFsdWUtPmFzPFNWR1BvaW50TGlzdFZhbHVlcz4oKTsgfQogCiAgICAgc3RhdGljIGNv
bnN0IFNWR1Byb3BlcnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKICAgICB9CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHNob3J0IGFsaWduKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LmFsaWduKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmFsaWduKCk7CiAgICAg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24oZmxvYXQgdmFsdWUpCkBAIC01OSw3
ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7CiAg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IG1l
ZXRPclNsaWNlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1l
ZXRPclNsaWNlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLm1lZXRPclNsaWNl
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxvYXQg
dmFsdWUpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRN
ZWV0T3JTbGljZSh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC04Niw3ICs4Niw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTgsMTIgKzU4LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4KExl
bmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQsICI1MCUi
KQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUwJSIpCi0gICAgLCBtX2Z4KExlbmd0aE1v
ZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fZnIoTGVuZ3Ro
TW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwg
IjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjUwJSIp
KQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9m
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fZnIoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgY3gv
Y3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBh
IHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNW
R05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUmVj
dCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
CiAgICAgZmxvYXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS54KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLngoKTsKICAgICB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0
WCh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9
OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
UmVmZXJlbmNlKCkueSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxv
YXQgeFZhbHVlKQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsK
KyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogICAgIGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLndpZHRoKCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgoZmxvYXQgd2lkdGhWYWx1
ZSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsK
KyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzk0LDcgQEAg
cHVibGljOgogCiAgICAgZmxvYXQgaGVpZ2h0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLmhlaWdodCgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2Uo
KS5oZWlnaHQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQoZmxv
YXQgaGVpZ2h0VmFsdWUpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEhl
aWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhl
aWdodFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkK
KyAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAg
OiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTEgKzc0LDEyIEBAIEVORF9SRUdJU1RFUl9BTklN
QVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNW
R0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2Rl
V2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3Ro
TW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1v
ZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVND
SUlMaXRlcmFsKCIxMDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVy
KFNNSUxUaW1lQ29udGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNs
YXRlKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdTVkdFbGVtZW50KCk7CkBAIC0yMDAsOSArMjAxLDkgQEAgUmVmPFNWR1BvaW50PiBTVkdT
VkdFbGVtZW50OjpjdXJyZW50VHJhbgogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRU
cmFuc2xhdGUoY29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1fY3Vy
cmVudFRyYW5zbGF0ZSA9PSB0cmFuc2xhdGlvbikKKyAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRl
LT5hczxGbG9hdFBvaW50PigpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAg
bV9jdXJyZW50VHJhbnNsYXRlID0gdHJhbnNsYXRpb247CisgICAgbV9jdXJyZW50VHJhbnNsYXRl
LT5hczxGbG9hdFBvaW50PigpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVudFRyYW5z
bGF0ZSgpOwogfQogCkBAIC0zMzgsMTIgKzMzOSwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0Vs
ZW1lbnQ6OmNvbGxlY3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0aG91
dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0g
ICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50
LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRl
clNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJl
Y3QudmFsdWVSZWZlcmVuY2UoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBjaGVja0VuY2xvc3Vy
ZVdpdGhvdXRVcGRhdGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiByZWN0
KQogewotICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxl
bWVudC5yZW5kZXJlcigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCBy
ZWN0LnZhbHVlUmVmZXJlbmNlKCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6
OmdldEludGVyc2VjdGlvbkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJlbmNl
RWxlbWVudCkKQEAgLTQxNyw3ICs0MTgsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVt
ZW50OjpjcmVhdGVTCiAKIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNW
R1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiB7Ci0gICAgcmV0dXJuIFNW
R1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4LnByb3BlcnR5UmVm
ZXJlbmNlKCkgfSk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9y
bVZhbHVlIHsgbWF0cml4LnZhbHVlUmVmZXJlbmNlKCkgfSk7CiB9CiAKIEFmZmluZVRyYW5zZm9y
bSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFi
bGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV91c2VDdXJyZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29t
QW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250YWlu
ZXI+IG1fdGltZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0ZTsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8U1ZH
Vmlld1NwZWM+IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVudElk
ZW50aWZpZXI7CiB9OwpAQCAtMTc2LDcgKzE3Niw3IEBAIGlubGluZSBib29sIFNWR1NWR0VsZW1l
bnQ6OnVzZUN1cnJlbnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6Y3Vy
cmVudFRyYW5zbGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRlOwor
ICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9pbnQ+KCk7CiB9CiAKIGlu
bGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5kUGFuKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTIgKzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz47
CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3Jl
YXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50LCB2
YWx1ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmluZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxTVkdT
dHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVy
dHlSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMuIEl0
J3Mgb25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBT
VkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRleHRF
bGVtZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM5LDcg
KzQwLDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldChjb25zdCBTdAogCiAgICAg
Ly8gQWRkIGVtcHR5IHN0cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0eSgp
KQotICAgICAgICBhcHBlbmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFN0cmluZz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmluZ0xp
c3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpAQCAt
NTYsNyArNTcsNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAg
ICAgICAgICAgICBwdHIrKzsKICAgICAgICAgaWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOworICAg
ICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRyIC0g
c3RhcnQpKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwg
ZW5kLCBkZWxpbWl0ZXIpOwogICAgIH0KIH0KQEAgLTcwLDcgKzcxLDcgQEAgU3RyaW5nIFNWR1N0
cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkp
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2UoaSkpOwogICAgIH0KIAogICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMyw3ICsx
NCw3IEBACiAgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KICAqCiAgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG/iiKsKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwpAQCAtMjEsOCArMjIsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJRdWFsaWZpZWRO
YW1lLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5
VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTMyLDcgKzMzLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdTdHJpbmdMaXN0
VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNWR1N0cmluZ0xp
c3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTdHJpbmc+IHsKIHB1YmxpYzoK
ICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsOSBAQCBzdGF0aWMg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9CiAKIFNWR1Rlc3RzOjpTVkdUZXN0
cygpCi0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAg
LCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICwgbV9z
eXN0ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgOiBtX3JlcXVpcmVkRmVhdHVy
ZXMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikpCisgICAgLCBtX3Jl
cXVpcmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVpcmVkRXh0ZW5zaW9uc0F0
dHIpKQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdMaXN0VmFsdWVzKHN5c3RlbUxh
bmd1YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIwIEBAIGJvb2wgU1ZHVGVzdHM6
Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcKIAogYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNv
bnN0CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDogbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVl
KSB7CisgICAgYXV0byBmZWF0dXJlcyA9IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS0+YXM8U1ZH
U3RyaW5nTGlzdFZhbHVlcz4oKS52YWx1ZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBm
ZWF0dXJlcykgewogICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNW
R0ZlYXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZhbHVl
KSB7CisgICAgCisgICAgYXV0byBsYW5ndWFnZXMgPSBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5h
czxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgbGFuZ3Vh
Z2UgOiBsYW5ndWFnZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRlZmF1bHRMYW5ndWFn
ZSgpLnN1YnN0cmluZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkgewor
ICAgIAorICAgIGF1dG8gZXh0ZW5zaW9ucyA9IG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5h
czxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgZXh0ZW5z
aW9uIDogZXh0ZW5zaW9ucykgewogICAgICAgICBpZiAoIWhhc0V4dGVuc2lvbihleHRlbnNpb24p
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE3MiwxMSArMTc3LDExIEBA
IGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdUZXN0czo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEZlYXR1cmVz
QXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAg
ICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigp
LnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEV4dGVuc2lv
bnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS5yZXNldCh2YWx1ZSk7
CisgICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFs
dWVzPigpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5n
dWFnZUF0dHIpCi0gICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOwor
ICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigp
LnJlc2V0KHZhbHVlKTsKIH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQg
U1ZHVGVzdHM6OnN5bmNocm9uaXplQXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3BlcnR5
LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZlYXR1
cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHku
dmFsdWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25p
emUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS0+YXM8U1ZH
U3RyaW5nTGlzdFZhbHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rlc3Rz
OjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDggQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV90
ZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChM
ZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyKSkKKyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0U3Bh
Y2luZykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250ZW50
RWxlbWVudCgpOwpAQCAtOTgsNyArOTgsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1Rl
eHRDb250ZW50RWxlCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZhbHVl
PiBkZWZhdWx0VGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmll
ZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0aC52
YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVk
VGV4dExlbmd0aCgpKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdMZW5ndGhW
YWx1ZT4oKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1
dGVkVGV4dExlbmd0aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5jaHJvbml6ZSA9
IHRydWU7CiAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmltYXRlZExlbmd0
aD4obG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0xNjEsNyArMTYx
LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAogaW50IFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50KQog
ewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
Ci0gICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBv
c2l0aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBTVkdUZXh0UXVl
cnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52YWx1ZVJlZmVy
ZW5jZSgpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpz
ZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzKQpAQCAtMjMy
LDcgKzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnUKICAg
ICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVuZ3RoQWRqdXN0
QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1l
czo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9IFNWR0xlbmd0
aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9y
YmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdM
ZW5ndGhWYWx1ZT4oKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVy
LCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKIAogICAgIHJlcG9y
dEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKQEAgLTI0
OCw3ICsyNDgsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAg
ICAgfQogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAg
ICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLnZhbHVlOworICAgICAg
ICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWUtPmFzPFNWR0xlbmd0
aFZhbHVlPigpOwogCiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNmb3Jt
OjptYXRyaXgoKQogewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMs
IHByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRyaXhU
ZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHZhbHVlUmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5o
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9y
bVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3Jt
PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHksIHJv
bGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTIsMTQgKzUyLDE0IEBAIHB1YmxpYzoKIAogICAgIHVu
c2lnbmVkIHNob3J0IHR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkudHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS50eXBlKCk7CiAg
ICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmdsZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOworICAg
ICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5hbmdsZSgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAgLTY3LDcgKzY3LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOwor
ICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgudmFsdWVSZWZlcmVuY2Uo
KSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03
OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CisgICAgICAg
IHZhbHVlUmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0U2NhbGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTY2Fs
ZShzeCwgc3kpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9
OwpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Um90YXRlKGFuZ2xlLCBjeCwg
Y3kpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExMSw3
ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVS
ZWZlcmVuY2UoKS5zZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC0xMjIsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNl
dFNrZXdZKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTa2V3WShhbmdsZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVl
KQorICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0ZWRQ
cm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMx
LDIwICszMywxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlz
dD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUmVmZXJl
bmNlKCkuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAK
ICAgICAgICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1MiwyMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwog
CiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBsaXN0IHdhcyBlbXB0eSwgdGhlbiBhIHZhbHVlIG9m
IG51bGwgaXMgcmV0dXJuZWQuCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAg
ICAgICBpZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAg
ICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0
ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUmVmZXJl
bmNlKCkuY29uc29saWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXIt
PmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZSh3cmFw
cGVyKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQorICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQxLDcgKzQyLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAg
Y2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUzLDcgQEAgYm9vbCBTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQg
Kj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBhdFJlZmVyZW5jZShpKS5tYXRy
aXgoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQo
aSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2Uo
aSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxOCArMjAsMTkgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5z
Zm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsK
IAorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNm
b3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBW
ZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVi
bGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsK
QEAgLTUwLDcgKzUxLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
VAogICAgICAgICB2YWx1ZXMucGFyc2Uoc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHZhbHVlczsK
ICAgICB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4g
cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52
YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9y
bVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlz
aW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MCw1ICs5MCwxMCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFNWR1RyYW5zZm9yCiB7CiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KKyAgICAKK3RlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPiB7CisgICAg
c3RhdGljIFNWR1RyYW5zZm9ybVZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIHRyYW5z
Zm9ybSkgeyByZXR1cm4gdHJhbnNmb3JtLnZhbHVlQXNTdHJpbmcoKTsgfQorfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxl
LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bWFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdUcmFu
c2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dAogICAgICAgICBpZiAoIXBhcnNlVHJhbnNmb3Jt
VmFsdWUodHlwZSwgY3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2Zvcm0pKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGxpc3QuYXBwZW5kKHRyYW5zZm9ybSk7CisgICAgICAg
IGxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5zZm9y
bSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyclRyYW5zZm9ybSwgZW5kKTsK
ICAgICAgICAgaWYgKGN1cnJUcmFuc2Zvcm0gPCBlbmQgJiYgKmN1cnJUcmFuc2Zvcm0gPT0gJywn
KSB7CiAgICAgICAgICAgICBkZWxpbVBhcnNlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFs
dWUuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDQxICsyNiwxODYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExp
c3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR01h
cmtlclR5cGVzLmgiCisjaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKICNpbmNsdWRlICJTVkdO
dW1iZXJMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVl
cy5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUg
IlNWR1Byb3BlcnR5SW5mby5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5j
bHVkZSAiU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1WYWx1ZS5oIgogCiAjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBTVkdWYWx1ZVZhcmlh
bnQgPSBWYXJpYW50PAotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qLAot
ICAgIGJvb2wqLAotICAgIENvbG9yKiwKLSAgICB1bnNpZ25lZCosCi0gICAgaW50KiwKLSAgICBz
dGQ6OnBhaXI8aW50LCBpbnQ+KiwKLSAgICBTVkdMZW5ndGhWYWx1ZSosCi0gICAgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyosCi0gICAgZmxvYXQqLAotICAgIFNWR051bWJlckxpc3RWYWx1ZXMqLAotICAg
IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiwKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSosCi0gICAg
U1ZHUG9pbnRMaXN0VmFsdWVzKiwKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqLAot
ICAgIEZsb2F0UmVjdCosCi0gICAgU3RyaW5nKiwKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
KgorICAgIFNWR0FuZ2xlVmFsdWUsCisgICAgYm9vbCwKKyAgICBDb2xvciwKKyAgICB1bnNpZ25l
ZCwKKyAgICBpbnQsCisgICAgU1ZHTGVuZ3RoVmFsdWUsCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVl
cywKKyAgICBTVkdNYXRyaXhWYWx1ZSwKKyAgICBmbG9hdCwKKyAgICBTVkdOdW1iZXJMaXN0VmFs
dWVzLAorICAgIFNWR1BhdGhCeXRlU3RyZWFtLAorICAgIFJlZlB0cjxTVkdQYXRoU2VnPiwKKyAg
ICBTVkdQYXRoU2VnTGlzdFZhbHVlcywKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUs
CisgICAgRmxvYXRQb2ludCwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgRmxvYXRSZWN0
LAorICAgIFN0cmluZywKKyAgICBTVkdTdHJpbmdMaXN0VmFsdWVzLAorICAgIFNWR1RyYW5zZm9y
bVZhbHVlLAorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKID47CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZT4KK3N0cnVjdCBTVkdUcmFpdEhhc1RvU3RyaW5nIHsKK3ByaXZhdGU6
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6dHJ1ZV90eXBlIHRlc3QodHlw
ZW9mKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6dG9TdHJpbmcpKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUodGVzdDxQ
cm9wZXJ0eVR5cGU+KDApKSwgc3RkOjp0cnVlX3R5cGU+Ojp2YWx1ZTsKK307CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK3N0cnVjdCBTVkdUcmFpdEhhc1BhcnNlIHsKK3ByaXZh
dGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6dHJ1ZV90eXBlIHRlc3Qo
dHlwZW9mKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6cGFyc2UpKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUodGVzdDxQ
cm9wZXJ0eVR5cGU+KDApKSwgc3RkOjp0cnVlX3R5cGU+Ojp2YWx1ZTsKK307CisKK2NsYXNzIFNW
R1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHVmFsdWU+LCBwdWJsaWMgU1ZHVmFsdWVWYXJp
YW50IHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAg
c3RhdGljIFJlZlB0cjxTVkdWYWx1ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBj
cmVhdGU8UHJvcGVydHlUeXBlPihTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0
aWFsVmFsdWUoKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwg
c3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51
bGxwdHI+CisgICAgc3RhdGljIFJlZlB0cjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5
VHlwZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZhbHVl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQmPih2YWx1ZSkpKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFJlZlB0
cjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZhbHVlKHZhbHVlKSk7CisgICAgfQorCisgICAg
c3RhdGljIFJlZlB0cjxTVkdWYWx1ZT4gY3JlYXRlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHVmFsdWUodmFsdWUpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgYm9vbCBpcygpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxQcm9wZXJ0
eVR5cGU+KCp0aGlzKSB8fCAoc3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlICYmIFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVt
cGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW08
UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgY29uc3QgUHJvcGVydHlUeXBl
JiBhcygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgUHJvcGVydHlUeXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjpp
c19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGNvbnN0IFByb3Bl
cnR5VHlwZSYgYXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlw
ZT4oKSk7CisgICAgICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90
PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBQcm9w
ZXJ0eVR5cGUmIGFzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQ
cm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX2Vu
dW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgUHJvcGVydHlUeXBlJiBh
cygpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAg
cmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMpOworICAgIH0KKworICAgIFN0cmlu
ZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNpdChbJl0o
Y29uc3QgYXV0byYgdmFsdWUpIHsKKyAgICAgICAgICAgIHVzaW5nIFByb3BlcnR5VHlwZSA9IHN0
ZDo6ZGVjYXlfdDxkZWNsdHlwZSh2YWx1ZSk+OworICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5n
PFByb3BlcnR5VHlwZT4odmFsdWUpOworICAgICAgICB9LCBzdGF0aWNfY2FzdDxjb25zdCBTVkdW
YWx1ZVZhcmlhbnQmPigqdGhpcykpOworICAgIH0KKworICAgIGJvb2wgcGFyc2UoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGF1dG8mIHZhbHVlKSB7CisgICAgICAgICAgICB1c2lu
ZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUodmFsdWUpPjsKKyAgICAgICAg
ICAgIHJldHVybiBwYXJzZTxQcm9wZXJ0eVR5cGU+KHZhbHVlLCBhdHRyTmFtZSwgc3RyaW5nKTsK
KyAgICAgICAgfSwgc3RhdGljX2Nhc3Q8U1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGV4
cGxpY2l0IFNWR1ZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDogU1ZH
VmFsdWVWYXJpYW50KHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlw
ZT4oKSk7CisgICAgfQorCisgICAgU1ZHVmFsdWUoY29uc3QgU1ZHVmFsdWUmIHZhbHVlKQorICAg
ICAgICA6IFNWR1ZhbHVlVmFyaWFudChzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQm
Pih2YWx1ZSkpCisgICAgeworICAgICAgICBBU1NFUlQoaW5kZXgoKSA9PSB2YWx1ZS5pbmRleCgp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5h
YmxlX2lmX3Q8U1ZHVHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVs
bHB0cj4KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFs
dWUpCisgICAgeworICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBl
Pjo6dG9TdHJpbmcodmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNUb1N0cmluZzxQcm9wZXJ0eVR5
cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0
IFByb3BlcnR5VHlwZSYpCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzUGFyc2U8UHJvcGVy
dHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIGJvb2wgcGFyc2UoUHJvcGVy
dHlUeXBlJiB2YWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gU1ZHUHJvcGVydHlU
cmFpdHM8UHJvcGVydHlUeXBlPjo6cGFyc2UoYXR0ck5hbWUsIHN0cmluZykpIHsKKyAgICAgICAg
ICAgIHZhbHVlID0gKnJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzUGFyc2U8UHJvcGVydHlU
eXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIGJvb2wgcGFyc2UoUHJvcGVydHlU
eXBlJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpCisgICAgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdF
bGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBFTkRfUkVHSVNU
RVJfQU5JTUFURURfUFJPUEVSVElFUwogaW5saW5lIFNWR1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV96b29tQW5kUGFuKFNW
R1pvb21BbmRQYW5NYWduaWZ5KQotICAgICwgbV92aWV3VGFyZ2V0KFNWR05hbWVzOjp2aWV3VGFy
Z2V0QXR0cikKKyAgICAsIG1fdmlld1RhcmdldChTVkdWYWx1ZTo6Y3JlYXRlKFNWR1N0cmluZ0xp
c3RWYWx1ZXMoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKSkpCiB7CiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OnZpZXdUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGll
c0ZvclNWR1ZpZXdFbGVtZW50KCk7CkBAIC02Myw3ICs2Myw3IEBAIFJlZjxTVkdTdHJpbmdMaXN0
PiBTVkdWaWV3RWxlbWVudDo6dmlld1QKIHZvaWQgU1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUp
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKQotICAgICAgICBt
X3ZpZXdUYXJnZXQucmVzZXQodmFsdWUpOworICAgICAgICBtX3ZpZXdUYXJnZXQtPmFzPFNWR1N0
cmluZ0xpc3RWYWx1ZXM+KCkucmVzZXQodmFsdWUpOwogCiAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR0ZpdFRvVmll
d0JveDo6cGFyc2VBdHRyaWJ1dGUodGhpcywgbmFtZSwgdmFsdWUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHBy
aXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogCiAgICAgU1ZHWm9v
bUFuZFBhblR5cGUgbV96b29tQW5kUGFuOwotICAgIFNWR1N0cmluZ0xpc3RWYWx1ZXMgbV92aWV3
VGFyZ2V0OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92aWV3VGFyZ2V0OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OSw2ICs3OSw5IEBAIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogU1ZHVmll
d1NwZWM6OnRyYW4KIAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNvbnRl
eHRFbGVtZW50KQogICAgIDogbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCisgICAg
LCBtX3RyYW5zZm9ybShTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCkp
CisgICAgLCBtX3ZpZXdCb3goU1ZHVmFsdWU6OmNyZWF0ZTxGbG9hdFJlY3Q+KCkpCisgICAgLCBt
X3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU+KCkpCiB7CiB9CiAKQEAgLTEwOCwxNyArMTExLDE3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IFNWR1ZpZXdTcGVjOjpzZXRab29tQW4KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp0cmFuc2Zv
cm1TdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzPjo6dG9TdHJpbmcobV90cmFuc2Zvcm0pOworICAgIHJldHVybiBtX3Ry
YW5zZm9ybS0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjp2aWV3Qm94U3Ry
aW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6
dG9TdHJpbmcobV92aWV3Qm94KTsKKyAgICByZXR1cm4gbV92aWV3Qm94LT50b1N0cmluZygpOwog
fQogCiBTdHJpbmcgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcoKSBjb25z
dAogewotICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+Ojp0b1N0cmluZyhtX3ByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgIHJldHVybiBtX3By
ZXNlcnZlQXNwZWN0UmF0aW8tPnRvU3RyaW5nKCk7CiB9CiAKIFNWR0VsZW1lbnQqIFNWR1ZpZXdT
cGVjOjp2aWV3VGFyZ2V0KCkgY29uc3QKQEAgLTE3Nyw5ICsxODAsOSBAQCBSZWY8U1ZHQW5pbWF0
ZWRQcm9wZXJ0eT4gU1ZHVmlld1NwZWM6OmxvCiB2b2lkIFNWR1ZpZXdTcGVjOjpyZXNldCgpCiB7
CiAgICAgbV96b29tQW5kUGFuID0gU1ZHWm9vbUFuZFBhbk1hZ25pZnk7Ci0gICAgbV90cmFuc2Zv
cm0uY2xlYXIoKTsKLSAgICBtX3ZpZXdCb3ggPSB7IH07Ci0gICAgbV9wcmVzZXJ2ZUFzcGVjdFJh
dGlvID0geyB9OworICAgIG1fdHJhbnNmb3JtLT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigp
LmNsZWFyKCk7CisgICAgbV92aWV3Qm94LT5hczxGbG9hdFJlY3Q+KCkgPSB7IH07CisgICAgbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvLT5hczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCkgPSB7
IH07CiAgICAgbV92aWV3VGFyZ2V0U3RyaW5nID0gZW1wdHlTdHJpbmcoKTsKIH0KIApAQCAtMjYx
LDcgKzI2NCw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3QKICAg
ICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJygn
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3Bl
YysrOwotICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1
dGUobV90cmFuc2Zvcm0sIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05v
dENsZWFyTGlzdCk7CisgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9y
bUF0dHJpYnV0ZShtX3RyYW5zZm9ybS0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKSwgY3Vy
clZpZXdTcGVjLCBlbmQsIFNWR1RyYW5zZm9ybWFibGU6OkRvTm90Q2xlYXJMaXN0KTsKICAgICAg
ICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMgIT0gJyknKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysr
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNyAr
NTUsMTcgQEAgcHVibGljOgogCiAgICAgLy8gQ3VzdG9tIG5vbi1hbmltYXRlZCAndHJhbnNmb3Jt
JyBwcm9wZXJ0eS4KICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gdHJhbnNmb3JtKCk7Ci0g
ICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyB0cmFuc2Zvcm1CYXNlVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zZm9ybTsgfQorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3Jt
QmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm0tPmFzPFNWR1RyYW5zZm9ybUxp
c3RWYWx1ZXM+KCk7IH0KIAogICAgIC8vIEN1c3RvbSBhbmltYXRlZCAndmlld0JveCcgcHJvcGVy
dHkuCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdD4gdmlld0JveEFuaW1hdGVkKCk7Ci0gICAg
RmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gbV92aWV3Qm94OyB9Ci0gICAgdm9pZCBzZXRW
aWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyBtX3ZpZXdCb3ggPSB2
aWV3Qm94OyB9CisgICAgRmxvYXRSZWN0JiB2aWV3Qm94KCkgeyByZXR1cm4gbV92aWV3Qm94LT5h
czxGbG9hdFJlY3Q+KCk7IH0KKyAgICB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoY29uc3QgRmxv
YXRSZWN0JiB2aWV3Qm94KSB7IHRoaXMtPnZpZXdCb3goKSA9IHZpZXdCb3g7IH0KIAogICAgIC8v
IEN1c3RvbSBhbmltYXRlZCAncHJlc2VydmVBc3BlY3RSYXRpbycgcHJvcGVydHkuCiAgICAgUmVm
UHRyPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0Fu
aW1hdGVkKCk7Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVj
dFJhdGlvKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9Ci0gICAgdm9pZCBzZXRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvOyB9CisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5hczxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7IH0KKyAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0
UmF0aW9CYXNlVmFsdWUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2
ZUFzcGVjdFJhdGlvKSB7IHRoaXMtPnByZXNlcnZlQXNwZWN0UmF0aW8oKSA9IHByZXNlcnZlQXNw
ZWN0UmF0aW87IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTVkdWaWV3U3BlYyhTVkdFbGVt
ZW50Jik7CkBAIC04NCw5ICs4NCw5IEBAIHByaXZhdGU6CiAKICAgICBTVkdFbGVtZW50KiBtX2Nv
bnRleHRFbGVtZW50OwogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbiB7IFNWR1pv
b21BbmRQYW5NYWduaWZ5IH07Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBtX3RyYW5zZm9y
bTsKLSAgICBGbG9hdFJlY3QgbV92aWV3Qm94OwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3RyYW5z
Zm9ybTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld0JveDsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKICAgICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5n
OwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU1LDIyICs1
NiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5
VGVhck9mZjx1bnNpZ25lZD46OnNldEJhc2VWYWwocHJvcGVydHkpOwogICAgIH0KIAotICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4+
IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IEVudW1UeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRp
b25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVy
dHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51
bVR5cGU+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCY+KHByb3BlcnR5KSkpOwotICAgIH0KLQotICAg
IEVudW1UeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICB1bnNpZ25l
ZCYgYW5pbWF0ZWRWYWx1ZSA9IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2ln
bmVkPjo6Y3VycmVudEFuaW1hdGVkVmFsdWUoKTsKLSAgICAgICAgQVNTRVJUKGFuaW1hdGVkVmFs
dWUgPD0gU1ZHUHJvcGVydHlUcmFpdHM8RW51bVR5cGU+OjpoaWdoZXN0RW51bVZhbHVlKCkpOwot
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFbnVtVHlwZSY+KGFuaW1hdGVkVmFsdWUp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJv
cGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0Fu
aW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlU
eXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB1bnNpZ25lZCYgcHJvcGVydHkpCi0gICAgICAgIDog
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+KGNvbnRleHRFbGVtZW50
LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpCisgICAgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQorICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVl
KQogICAgIHsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgTGlzdFByb3BlcnR5VGVhck9mZiA9IHR5cGVuYW1lIFNWR1Byb3Bl
cnR5VHJhaXRzPFByb3BlcnR5VHlwZT46Okxpc3RQcm9wZXJ0eVRlYXJPZmY7CiAgICAgdXNpbmcg
Q29udGVudFR5cGUgPSBQcm9wZXJ0eVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykK
KyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5
cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NF
UlQoY29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtODUsNDQgKzg1
LDUwIEBAIHB1YmxpYzoKICAgICAgICAgTGlzdFByb3BlcnR5OjpkZXRhY2hMaXN0V3JhcHBlcnNB
bmRSZXNpemUoJm1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICBQcm9wZXJ0
eVR5cGUmIGN1cnJlbnRBbmltYXRlZFZhbHVlKCkKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJl
bnRBbmltYXRlZFZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGlu
ZygpKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7CiAgICAg
fQogCi0gICAgY29uc3QgUHJvcGVydHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAg
ICBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuIG1fdmFsdWVzOwogICAgIH0KKyAgICAKKyAgICBQcm9wZXJ0eVR5cGUm
IHZhbHVlc1JlZmVyZW5jZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV92YWx1ZXMp
OworICAgICAgICByZXR1cm4gbV92YWx1ZXMtPmFzPFByb3BlcnR5VHlwZT4oKTsKKyAgICB9CiAK
LSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsLCBib29s
IHNob3VsZE93blZhbHVlcyA9IGZhbHNlKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFp
c0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwotICAgICAgICBBU1NF
UlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAg
IEFTU0VSVChtX2FuaW1hdGVkV3JhcHBlcnMuaXNFbXB0eSgpKTsKIAogICAgICAgICAvLyBTd2l0
Y2ggdG8gbmV3IHBhc3NlZCBpbiB2YWx1ZSB0eXBlICYgbmV3IHdyYXBwZXJzIGxpc3QuIFRoZSBu
ZXcgd3JhcHBlcnMgbGlzdCBtdXN0IGJlIGNyZWF0ZWQgZm9yIHRoZSBuZXcgdmFsdWUuCi0gICAg
ICAgIGlmICghbmV3QW5pbVZhbC0+aXNFbXB0eSgpKQotICAgICAgICAgICAgbV9hbmltYXRlZFdy
YXBwZXJzLmZpbGwoMCwgbmV3QW5pbVZhbC0+c2l6ZSgpKTsKKyAgICAgICAgaWYgKHNpemVfdCBz
aXplID0gbmV3QW5pbVZhbC0+YXM8UHJvcGVydHlUeXBlPigpLnNpemUoKSkKKyAgICAgICAgICAg
IG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIHNpemUpOwogCiAgICAgICAgIG1fYW5pbWF0ZWRQ
cm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1
ZXNBbmRXcmFwcGVycyhuZXdBbmltVmFsLCAmbV9hbmltYXRlZFdyYXBwZXJzLCBzaG91bGRPd25W
YWx1ZXMpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXpl
KCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5pbVZhbCwgJm1fYW5p
bWF0ZWRXcmFwcGVycyk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVl
c1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6
ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXpl
KCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmlt
YXRpb25FbmRlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAg
ICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsK
IAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0g
bV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVCht
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX2FuaW1hdGVk
UHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7
CiAKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVycygmbV92
YWx1ZXMsICZtX3dyYXBwZXJzLCBmYWxzZSk7Ci0gICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5zZXRWYWx1ZXNBbmRXcmFwcGVy
cyhtX3ZhbHVlcywgJm1fd3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5LT52YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFw
cGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBw
ZXJzKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKIAogICAgICAgICBtX2FuaW1hdGVk
V3JhcHBlcnMuY2xlYXIoKTsKQEAgLTE0MiwzNCArMTQ4LDM0IEBAIHB1YmxpYzoKICAgICAgICAg
Ly8gQWxzbyBleGlzdGluZyB3cmFwcGVycyB3aGljaCBwb2ludCBkaXJlY3RseSBhdCBlbGVtZW50
cyBpbiB0aGUgZXhpc3RpbmcgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBoYXZlIHRvIGJlIGRldGFjaGVk
IChzbyBhIGNvcHkKICAgICAgICAgLy8gb2YgdGhlbSBpcyBjcmVhdGVkLCBzbyBleGlzdGluZyBh
bmltVmFsIHZhcmlhYmxlcyBpbiBKUyBhcmUga2VwdC1hbGl2ZSkuIElmIHdlJ2QgZGV0YWNoIHRo
ZW0gbGF0ZXIgdGhlIHVuZGVybHlpbmcKICAgICAgICAgLy8gU1ZHTGVuZ3RoTGlzdFZhbHVlcyB3
YXMgYWxyZWFkeSBtdXRhdGVkLCBhbmQgb3VyIGxpc3QgaXRlbSB3cmFwcGVyIHRlYXIgb2ZmcyB3
b3VsZCBwb2ludCBub3doZXJlLiBBc3NlcnRpb25zIHdvdWxkIGZpcmUuCi0gICAgICAgIG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3Jh
cHBlcnMobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpOwogCi0g
ICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSA9PSBtX2Fu
aW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX2FuaW1hdGVkV3JhcHBlcnMuc2l6ZSgpKTsKICAg
ICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcy5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQo
dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAg
c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFs
RGlkQ2hhbmdlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy5zaXplKCkgPT0gbV93
cmFwcGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgp
ID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVyc0lmTmVl
ZGVkKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
UHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHko
Y29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQogICAg
ICAgICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKKyAg
ICAgICAgaWYgKCF2YWx1ZXNSZWZlcmVuY2UoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3dy
YXBwZXJzLmZpbGwoMCwgdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsKICAgICB9CiAKLSAgICBQ
cm9wZXJ0eVR5cGUmIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZXM7CiAK
ICAgICBMaXN0V3JhcHBlckNhY2hlIG1fd3JhcHBlcnM7CiAgICAgTGlzdFdyYXBwZXJDYWNoZSBt
X2FuaW1hdGVkV3JhcHBlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5
VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZCAyMDEwLCAyMDEyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMzEsNyArMzIsNyBAQCBjbGFzcyBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1h
dGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2Zm
PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQo
Y29udGV4dEVsZW1lbnQpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC03NSw5ICs3Niw4IEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKCFtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0pOwogICAgICAgICBt
X2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW0gPSBieXRlU3RyZWFtOwogCi0gICAgICAgIC8vIFBhc3Mg
c2hvdWxkT3duVmFsdWVzPXRydWUsIGFzIHRoZSBTVkdQYXRoU2VnTGlzdFZhbHVlcyBsaWZldGlt
ZSBpcyBzb2xlbHkgbWFuYWdlZCBieSBpdHMgdGVhciBvZmYgY2xhc3MuCi0gICAgICAgIGF1dG8q
IGNvcHkgPSBuZXcgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoKmJhc2VWYWx1ZSk7Ci0gICAgICAgIEJh
c2U6OmFuaW1hdGlvblN0YXJ0ZWQoY29weSwgdHJ1ZSk7CisgICAgICAgIGF1dG8gY29weSA9IFNW
R1ZhbHVlOjpjcmVhdGUoKmJhc2VWYWx1ZSk7CisgICAgICAgIEJhc2U6OmFuaW1hdGlvblN0YXJ0
ZWQoY29weSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25FbmRlZCgpCkBAIC05NSw3ICs5
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gSWYgdGhlIGFuaW1WYWwgaXMgb2JzZXJ2ZWQgZnJv
bSBKUywgd2UgaGF2ZSB0byB1cGRhdGUgaXQgb24gZWFjaCBhbmltYXRpb24gc3RlcC4KICAgICAg
ICAgLy8gVGhpcyBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBvbmx5IGRvbmUsIGlmIHNv
bWVvbmUgYWN0dWFsbHkgb2JzZXJ2ZXMgdGhlIGFuaW1hdGVkUGF0aFNlZ0xpc3QoKSB3aGlsZSBh
biBhbmltYXRpb24gaXMgcnVubmluZy4KICAgICAgICAgaWYgKHBhdGhFbGVtZW50LT5pc0FuaW1W
YWxPYnNlcnZlZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBhbmltYXRlZExpc3QgPSBjdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpOworICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3VycmVu
dEFuaW1hdGVkVmFsdWUoKS0+YXM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCk7CiAgICAgICAgICAg
ICBhbmltYXRlZExpc3QuY2xlYXIoKTsKICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXNGcm9tQnl0ZVN0cmVhbSgqbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtLCAqcGF0aEVsZW1l
bnQsIGFuaW1hdGVkTGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIH0KQEAgLTEwNiw3
ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW0qIGFuaW1hdGVkUGF0aEJ5
dGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUGF0aEJ5dGVTdHJlYW07IH0KIAog
cHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZHUGF0aFNlZ0xp
c3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoY29udGV4dEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAgICAgICAg
ICwgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKG51bGxwdHIpCiAgICAgewpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1Byb3BlcnR5OworY2xh
c3MgU1ZHVmFsdWU7CiAKIGNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiB7CiBwdWJsaWM6CkBAIC00OSw3ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCk7CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBPd25lclR5cGUsIHR5cGVuYW1lIFRlYXJPZmZUeXBlLCB0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+Ci0gICAgc3RhdGljIFJlZjxUZWFyT2ZmVHlwZT4gbG9va3VwT3JDcmVhdGVXcmFw
cGVyKE93bmVyVHlwZSogZWxlbWVudCwgY29uc3QgU1ZHUHJvcGVydHlJbmZvKiBpbmZvLCBQcm9w
ZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9y
Q3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyog
aW5mbywgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NF
UlQoaW5mbyk7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHlEZXNjcmlwdGlvbiBrZXkoZWxl
bWVudCwgaW5mby0+cHJvcGVydHlJZGVudGlmaWVyKTsKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFRlYXJPZmZUeXBlJj4oKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogCi0gICAg
ICAgIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiB3cmFwcGVyID0gVGVhck9mZlR5cGU6OmNyZWF0
ZShlbGVtZW50LCBpbmZvLT5hdHRyaWJ1dGVOYW1lLCBpbmZvLT5hbmltYXRlZFByb3BlcnR5VHlw
ZSwgcHJvcGVydHkpOworICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9
IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKTsKICAgICAgICAgaWYgKGluZm8tPmFuaW1hdGVk
UHJvcGVydHlTdGF0ZSA9PSBQcm9wZXJ0eUlzUmVhZE9ubHkpCiAgICAgICAgICAgICB3cmFwcGVy
LT5zZXRJc1JlYWRPbmx5KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHJldmlzaW9uIDIy
OTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlNYWNyb3MuaAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDEwLTIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNW
R0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5o
IgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC0zNCwyNSArMzYsMTIgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogc3RydWN0
IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSB7CiAgICAgU1ZHU3luY2hyb25pemFi
bGVBbmltYXRlZFByb3BlcnR5KCkKLSAgICAgICAgOiB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQ
cm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSkKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6
ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgICAgICA6IHZhbHVlKFNWR1Zh
bHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPigpKQogICAgIHsKICAgICB9CiAKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjE+Ci0gICAgU1ZHU3luY2hyb25pemFibGVB
bmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUxKQotICAg
ICAgICA6IHZhbHVlKHZhbHVlMSkKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkK
LSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjEsIHR5cGVuYW1lIENvbnN0cnVjdG9yUGFyYW1l
dGVyMj4KLSAgICBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkoY29uc3QgQ29uc3Ry
dWN0b3JQYXJhbWV0ZXIxJiB2YWx1ZTEsIGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMiYgdmFs
dWUyKQotICAgICAgICA6IHZhbHVlKHZhbHVlMSwgdmFsdWUyKQotICAgICAgICAsIHNob3VsZFN5
bmNocm9uaXplKGZhbHNlKQotICAgICAgICAsIGlzVmFsaWQoZmFsc2UpCisgICAgU1ZHU3luY2hy
b25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAg
ICAgIDogdmFsdWUoU1ZHVmFsdWU6OmNyZWF0ZTxQcm9wZXJ0eVR5cGU+KHZhbHVlKSkKICAgICB7
CiAgICAgfQogCkBAIC02MSw5ICs1MCw5IEBAIHN0cnVjdCBTVkdTeW5jaHJvbml6YWJsZUFuaW1h
dGVkUHJvcGVydHkKICAgICAgICAgb3duZXJFbGVtZW50LT5zZXRTeW5jaHJvbml6ZWRMYXp5QXR0
cmlidXRlKGF0dHJOYW1lLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlIHZhbHVl
OwotICAgIGJvb2wgc2hvdWxkU3luY2hyb25pemUgOiAxOwotICAgIGJvb2wgaXNWYWxpZCA6IDE7
CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZTsKKyAgICBib29sIHNob3VsZFN5bmNocm9uaXpl
IHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKIAogLy8gUHJvcGVy
dHkgcmVnaXN0cmF0aW9uIGhlbHBlcnMKQEAgLTEyNCwxOSArMTEzLDE5IEBAIHB1YmxpYzogXAog
ICAgIHsgXAogICAgICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFRlYXJPZmZUeXBlPih0aGlzLCBMb3dlclByb3Bl
cnR5IyNQcm9wZXJ0eUluZm8oKSkpIHsgXAogICAgICAgICAgICAgaWYgKHdyYXBwZXItPmlzQW5p
bWF0aW5nKCkpIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1h
dGVkVmFsdWUoKTsgXAorICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLT5jdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpLT5hczxQcm9wZXJ0eVR5cGU+KCk7IFwKICAgICAgICAgfSBcCi0gICAgICAg
IHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZTsgXAorICAgICAgICByZXR1cm4gbV8jI0xv
d2VyUHJvcGVydHkudmFsdWUtPmFzPFByb3BlcnR5VHlwZT4oKTsgXAogICAgIH0gXAogXAogICAg
IFByb3BlcnR5VHlwZSYgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3QgT3ZlcnJpZGVT
cGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFs
dWU7IFwKKyAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9wZXJ0
eVR5cGU+KCk7IFwKICAgICB9IFwKIFwKLSAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFz
ZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdHlwZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVlID0g
dHJ1ZSkgT3ZlcnJpZGVTcGVjaWZpZXIgXAorICAgIHZvaWQgc2V0IyNVcHBlclByb3BlcnR5IyNC
YXNlVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSwgY29uc3QgYm9vbCB2YWxpZFZhbHVl
ID0gdHJ1ZSkgT3ZlcnJpZGVTcGVjaWZpZXIgXAogICAgIHsgXAotICAgICAgICBtXyMjTG93ZXJQ
cm9wZXJ0eS52YWx1ZSA9IHR5cGU7IFwKKyAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUt
PmFzPFByb3BlcnR5VHlwZT4oKSA9IHZhbHVlOyBcCiAgICAgICAgIG1fIyNMb3dlclByb3BlcnR5
LmlzVmFsaWQgPSB2YWxpZFZhbHVlOyBcCiAgICAgfSBcCiBcCkBAIC0xNTYsNyArMTQ1LDcgQEAg
cHJpdmF0ZTogXAogICAgIHsgXAogICAgICAgICBpZiAoIW1fIyNMb3dlclByb3BlcnR5LnNob3Vs
ZFN5bmNocm9uaXplKSBcCiAgICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgQXRvbWljU3Ry
aW5nIHZhbHVlKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fIyNM
b3dlclByb3BlcnR5LnZhbHVlKSk7IFwKKyAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fIyNMb3dlclByb3BlcnR5LnZh
bHVlLT5hczxQcm9wZXJ0eVR5cGU+KCkpKTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5z
eW5jaHJvbml6ZSh0aGlzLCBMb3dlclByb3BlcnR5IyNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRl
TmFtZSwgdmFsdWUpOyBcCiAgICAgfSBcCiBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgJKHJl
dmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0gdHlwZW5hbWUgUHJvcGVydHlUZWFyT2Zm
OjpQcm9wZXJ0eVR5cGU7CiAgICAgdXNpbmcgQ29udGVudFR5cGUgPSBQcm9wZXJ0eVR5cGU7CiAK
LSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVhck9m
Zj4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBy
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJv
cGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VGVh
ck9mZj4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBwcm9wZXJ0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFBy
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWUpKTsKICAgICB9CiAKICAgICBSZWY8UHJv
cGVydHlUZWFyT2ZmPiBiYXNlVmFsKCkKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAobV9iYXNlVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0
eVRlYXJPZmYqPihtX2Jhc2VWYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQ
cm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQmFzZVZhbFJvbGUsIG1fcHJvcGVydHkpOwor
ICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJh
c2VWYWxSb2xlLCBtX3ZhbHVlKTsKICAgICAgICAgbV9iYXNlVmFsID0gcHJvcGVydHktPmNyZWF0
ZVdlYWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KQEAgLTUzLDM2ICs1
MywzNiBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICByZXR1
cm4gKnN0YXRpY19jYXN0PFByb3BlcnR5VGVhck9mZio+KG1fYW5pbVZhbC5nZXQoKSk7CiAKLSAg
ICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBBbmlt
VmFsUm9sZSwgbV9wcm9wZXJ0eSk7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRl
YXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUsIG1fdmFsdWUpOwogICAgICAgICBtX2Fu
aW1WYWwgPSBwcm9wZXJ0eS0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICByZXR1cm4gcHJvcGVy
dHk7CiAgICAgfQogCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNv
bnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIHJldHVy
biBtX2FuaW1hdGVkUHJvcGVydHktPnByb3BlcnR5UmVmZXJlbmNlKCk7CisgICAgICAgIHJldHVy
biBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlKCk7CiAgICAgfQogCi0gICAgY29uc3QgUHJvcGVy
dHlUeXBlJiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKKyAgICBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+IGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJv
cGVydHk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOwogICAgIH0KIAotICAgIHZvaWQgYW5pbWF0
aW9uU3RhcnRlZChQcm9wZXJ0eVR5cGUqIG5ld0FuaW1WYWwpCisgICAgdm9pZCBhbmltYXRpb25T
dGFydGVkKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIG5ld0FuaW1WYWwpCiAgICAgewogICAgICAg
ICBBU1NFUlQoIWlzQW5pbWF0aW5nKCkpOwogICAgICAgICBBU1NFUlQobmV3QW5pbVZhbCk7CiAg
ICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9IGFuaW1WYWwoKTsKLSAgICAgICAgbV9hbmltYXRl
ZFByb3BlcnR5LT5zZXRWYWx1ZSgqbmV3QW5pbVZhbCk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+c2V0VmFsdWUobmV3QW5pbVZhbCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltYXRpb25F
bmRlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7Ci0gICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobV9wcm9wZXJ0eSk7CisgICAgICAgIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+c2V0VmFsdWUobV92YWx1ZSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0
eSA9IG51bGxwdHI7CiAgICAgfQogCkBAIC0xMDQsMTMgKzEwNCwxMyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9w
ZXJ0eSkKKyAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJp
YnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJv
cGVydHkpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQogCi0gICAgUHJv
cGVydHlUeXBlJiBtX3Byb3BlcnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZTsKICAg
ICBXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7CiAg
ICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gbV9hbmltVmFsOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyOTg1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgorI2luY2x1
ZGUgIlNWR1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIsNTMgKzMzLDUz
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICByZXR1cm4gbV92YWx1
ZS0+YXM8UHJvcGVydHlUeXBlPigpOwogICAgIH0KIAogICAgIHZpcnR1YWwgY29uc3QgUHJvcGVy
dHlUeXBlJiBhbmltVmFsKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2FuaW1hdGVkUHJvcGVydHkp
Ci0gICAgICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKLSAgICAgICAgcmV0dXJu
IG1fcHJvcGVydHk7CisgICAgICAgIGlmIChtX2FuaW1hdGVkVmFsdWUpCisgICAgICAgICAgICBy
ZXR1cm4gbV9hbmltYXRlZFZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgICAgIHJldHVy
biBiYXNlVmFsKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRC
YXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgdmlydHVhbCBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCiAgICAgewot
ICAgICAgICBtX3Byb3BlcnR5ID0gcHJvcGVydHk7CisgICAgICAgIG1fdmFsdWUtPmFzPFByb3Bl
cnR5VHlwZT4oKSA9IHZhbHVlOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CiAKLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5OyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZTsgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0
eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+
KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJv
cGVydHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlU
eXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmco
KSk7Ci0gICAgICAgIHJldHVybiAqbV9hbmltYXRlZFByb3BlcnR5OworICAgICAgICByZXR1cm4g
bV9hbmltYXRlZFZhbHVlOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVu
dEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFz
ZVZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAg
ICByZXR1cm4gbV92YWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJv
cGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0Fu
aW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwotICAgICAgICBtX2FuaW1h
dGVkUHJvcGVydHkgPSBuZXdBbmltVmFsOworICAgICAgICBtX2FuaW1hdGVkVmFsdWUgPSBuZXdB
bmltVmFsOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBu
dWxscHRyOworICAgICAgICBtX2FuaW1hdGVkVmFsdWUgPSBudWxscHRyOwogICAgIH0KIAogICAg
IHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoKQpAQCAtOTksMTYgKzEwMCwxNSBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0
eVR5cGUmIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpCi0gICAgICAg
ICwgbV9wcm9wZXJ0eShwcm9wZXJ0eSkKLSAgICAgICAgLCBtX2FuaW1hdGVkUHJvcGVydHkobnVs
bHB0cikKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgUHJvcGVydHlUeXBlJiBtX3Byb3BlcnR5OwotICAgIFByb3BlcnR5VHlwZSogbV9hbmlt
YXRlZFByb3BlcnR5OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV92YWx1ZTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fYW5pbWF0ZWRWYWx1ZTsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0
eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmIGZpbmFs
IDogcHVibGljIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBz
dGF0aWMgUmVmPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRl
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRF
bGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKSk7CkBAIC01Myw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oY29udGV4
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpCiAg
ICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQ
cm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0xpc3RQcm9wZXJ0eS5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNSwxNCArMjYsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gTGlzdE1vZGlmaWNhdGlvbiB7Ci0gICAg
TGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAotICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQg
PSAxLAotICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKLSAgICBMaXN0TW9kaWZpY2F0
aW9uUmVtb3ZlID0gMywKLSAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAotfTsKLQogdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOwogCkBAIC03NSwxOSArNjgsMTYgQEAgcHVibGljOgogICAgICAgICBkZXRhY2hM
aXN0V3JhcHBlcnNBbmRSZXNpemUobV93cmFwcGVycywgbmV3TGlzdFNpemUpOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0VmFsdWVzQW5kV3JhcHBlcnMoUHJvcGVydHlUeXBlKiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUqIHdyYXBwZXJzLCBib29sIHNob3VsZE93blZhbHVlcykKKyAgICB2b2lkIHNl
dFZhbHVlc0FuZFdyYXBwZXJzKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSogd3JhcHBlcnMpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIG9ubHkgdXNl
ZCBmb3IgYW5pbVZhbCBzdXBwb3J0LCB0byBzd2l0Y2ggdGhlIHVuZGVybHlpbmcgdmFsdWVzICYg
d3JhcHBlcnMKICAgICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgYW5pbWF0ZWQgdmFsdWVzLCBvbmNl
IGFuaW1hdGlvbiBmb3IgYSBsaXN0IHN0YXJ0cy4KICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsK
ICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogICAgICAgICBBU1NFUlQobV9yb2xlID09IEFu
aW1WYWxSb2xlKTsKLSAgICAgICAgaWYgKG1fb3duc1ZhbHVlcykKLSAgICAgICAgICAgIGRlbGV0
ZSBtX3ZhbHVlczsKICAgICAgICAgbV92YWx1ZXMgPSB2YWx1ZXM7Ci0gICAgICAgIG1fb3duc1Zh
bHVlcyA9IHNob3VsZE93blZhbHVlczsKICAgICAgICAgbV93cmFwcGVycyA9IHdyYXBwZXJzOwot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6Y2xlYXIoKQpAQCAtOTgsNyArODgsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
bV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTEx
MSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92
YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KQEAgLTExOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6bnVtYmVyT2ZJdGVtcygpCiAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV92
YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKTsK
ICAgICB9CiAKICAgICAvLyBTVkdMaXN0Ojppbml0aWFsaXplKCkKQEAgLTEzNCw4ICsxMjQsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFsdWUobmV3SXRlbSwg
MCk7CiAKICAgICAgICAgLy8gU3BlYzogQ2xlYXJzIGFsbCBleGlzdGluZyBjdXJyZW50IGl0ZW1z
IGZyb20gdGhlIGxpc3QgYW5kIHJlLWluaXRpYWxpemVzIHRoZSBsaXN0IHRvIGhvbGQgdGhlIHNp
bmdsZSBpdGVtIHNwZWNpZmllZCBieSB0aGUgcGFyYW1ldGVyLgotICAgICAgICBtX3ZhbHVlcy0+
Y2xlYXIoKTsKLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFs
dWVzUmVmZXJlbmNlKCkuY2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBA
IC0xNTAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0
ZW0pOwogCkBAIC0xNTksOSArMTQ5LDkgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IENs
ZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0
aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhl
IHBhcmFtZXRlci4KICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3Zh
bHVlcy0+Y2xlYXIoKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY2xlYXIoKTsKIAotICAg
ICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAg
ICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAgICAg
IG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwpAQCAtMTcxLDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBTVkdM
aXN0OjpnZXRJdGVtKCkKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5HZXRJdGVtKHVuc2lnbmVk
IGluZGV4KQogICAgIHsKLSAgICAgICAgaWYgKGluZGV4ID49IG1fdmFsdWVzLT5zaXplKCkpCisg
ICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKIAogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTE4NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNw
ZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVt
IGl0c2VsZiBhbmQgbm90IGEgY29weS4KLSAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG1f
dmFsdWVzLT5hdChpbmRleCkgfTsKKyAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IHZhbHVl
c1JlZmVyZW5jZSgpLmF0UmVmZXJlbmNlKGluZGV4KSB9OwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPFJlZjxMaXN0SXRlbVRlYXJPZmY+PiBnZXRJdGVtVmFsdWVzQW5kV3JhcHBlcnMoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZExpc3QsIHVuc2lnbmVkIGluZGV4KQpAQCAt
MTk5LDEzICsxODksMTMgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IFJldHVybnMgdGhl
IHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRoZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBp
dGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KICAgICAgICAgLy8gQW55IGNoYW5nZXMgbWFkZSB0
byB0aGUgaXRlbSBhcmUgaW1tZWRpYXRlbHkgcmVmbGVjdGVkIGluIHRoZSBsaXN0LgotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAg
ICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7
CiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIgPSBzdGF0aWNfY2FzdDxM
aXN0SXRlbVRlYXJPZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0KCkpOwogICAgICAgICBp
ZiAoIXdyYXBwZXIpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgd3JhcHBlciwgd2hpY2gg
aXMgYWxsb3dlZCB0byBkaXJlY3RseSBtb2RpZnkgdGhlIGl0ZW0gaW4gdGhlIGxpc3QsIHcvbyBj
b3B5aW5nIGFuZCBjYWNoZSB0aGUgd3JhcHBlciBpbiBvdXIgbWFwLgogICAgICAgICAgICAgLy8g
SXQgaXMgYWxzbyBhc3NvY2lhdGVkIHdpdGggb3VyIGFuaW1hdGVkIHByb3BlcnR5LCBzbyBpdCBj
YW4gbm90aWZ5IHRoZSBTVkcgRWxlbWVudCB3aGljaCBob2xkcyB0aGUgU1ZHQW5pbWF0ZWQqTGlz
dAogICAgICAgICAgICAgLy8gdGhhdCBpdCBoYXMgYmVlbiBtb2RpZmllZCAoYW5kIHRodXMgY2Fu
IGNhbGwgc3ZnQXR0cmlidXRlQ2hhbmdlZChhc3NvY2lhdGVkQXR0cmlidXRlTmFtZSkpLgotICAg
ICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwg
VW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVy
ID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2
YWx1ZXNSZWZlcmVuY2UoKS5hdChpbmRleCkpOwogICAgICAgICAgICAgbV93cmFwcGVycy0+YXQo
aW5kZXgpID0gd3JhcHBlci0+Y3JlYXRlV2Vha1B0cigpOwogICAgICAgICB9CiAKQEAgLTIyMSw4
ICsyMTEsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgYXBwZW5kZWQg
dG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMtPnNp
emUoKSkKLSAgICAgICAgICAgIGluZGV4ID0gbV92YWx1ZXMtPnNpemUoKTsKKyAgICAgICAgaWYg
KGluZGV4ID4gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQorICAgICAgICAgICAgaW5kZXggPSB2
YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRlbSBp
cyBhbHJlYWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBsaXN0
IGJlZm9yZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgaWYgKCFwcm9j
ZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sICZpbmRleCkpIHsKQEAgLTIzMiw3ICsy
MjIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVtIGlu
dG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRoZSBp
dGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5zZXJ0
ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwgdG8g
MCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0
LgotICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtKTsKKyAgICAgICAgdmFs
dWVzUmVmZXJlbmNlKCkuaW5zZXJ0KGluZGV4LCBTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlw
ZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4g
TGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMjQ4LDEwICsyMzgsMTAgQEAgcHVibGljOgog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAv
LyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9m
SXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxp
c3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0gICAgICAgICAgICBp
bmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChpbmRleCA+IHZhbHVlc1JlZmVy
ZW5jZSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6
ZSgpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFw
cGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0
ZW0pOwogCkBAIC0yNjEsNyArMjUxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IElu
c2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24u
IFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJl
CiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhl
IGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRo
ZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3
SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmlu
c2VydChpbmRleCwgbmV3SXRlbS0+dmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3RvcmUgbmV3IHdy
YXBwZXIgYXQgcG9zaXRpb24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5aW5nIHZhbHVlLCBz
byBtdXRhdGlvbnMgb2YgbmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBpdGVtIGluIHRoZSBs
aXN0LgogICAgICAgICBtX3dyYXBwZXJzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPmNyZWF0ZVdl
YWtQdHIoKSk7CkBAIC0yNzgsNyArMjY4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgp
KQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0yOTgsMTMgKzI4OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1f
dmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlc1JlZmVyZW5jZSgpLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgLy8gJ25ld0l0ZW0nIGFscmVhZHkgbGl2ZWQgaW4gb3VyIGxp
c3QsIHdlIHJlbW92ZWQgaXQsIGFuZCBub3cgd2UncmUgZW1wdHksIHdoaWNoIG1lYW5zIHRoZXJl
J3Mgbm90aGluZyB0byByZXBsYWNlLgogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
ZGV4U2l6ZUVycm9yIH07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVl
IGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uICdpbmRleCcuIAotICAgICAgICBtX3ZhbHVlcy0+YXQo
aW5kZXgpID0gbmV3SXRlbTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXRSZWZlcmVuY2Uo
aW5kZXgpID0gbmV3SXRlbTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTMxOSw3ICszMDksNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAg
IFJlZjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0oaXRlbSk7CiAKQEAgLTMyOCw3ICszMTgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1XcmFwcGVyKG5l
d0l0ZW0sICZpbmRleCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKIAot
ICAgICAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkgeworICAgICAgICBpZiAodmFsdWVzUmVm
ZXJlbmNlKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBBU1NFUlQobV93cmFwcGVycy0+aXNF
bXB0eSgpKTsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBs
aXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVy
ZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bmRleFNpemVFcnJvciB9OwpAQCAtMzQwLDcgKzMzMCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKIAogICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVl
IGFuZCB0aGUgd3JhcHBlciBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAg
ICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCk7Cisg
ICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmF0KGluZGV4KSA9IG5ld0l0ZW0tPnZhbHVlKCk7CiAg
ICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKTsK
IAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTM1NSw3ICszNDUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgaWYgKGluZGV4ID49
IG1fdmFsdWVzLT5zaXplKCkpCisgICAgICAgIGlmIChpbmRleCA+PSB2YWx1ZXNSZWZlcmVuY2Uo
KS5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3Ig
fTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM2OCw4ICszNTgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgTGlzdEl0ZW1UeXBl
IG9sZEl0ZW0gPSBtX3ZhbHVlcy0+YXQoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3Zl
KGluZGV4KTsKKyAgICAgICAgTGlzdEl0ZW1UeXBlIG9sZEl0ZW0gPSB2YWx1ZXNSZWZlcmVuY2Uo
KS5hdFJlZmVyZW5jZShpbmRleCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLnJlbW92ZShp
bmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KG9sZEl0ZW0pOwpAQCAtMzg0LDE2ICszNzQsMTYgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICAvLyBEZXRhY2ggdGhlIGV4
aXN0aW5nIHdyYXBwZXIuCiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG9sZEl0ZW0g
PSBzdGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJPZmYqPihtX3dyYXBwZXJzLT5hdChpbmRleCkuZ2V0
KCkpOwogICAgICAgICBpZiAoIW9sZEl0ZW0pCi0gICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0
ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCBtX3ZhbHVlcy0+
YXQoaW5kZXgpKTsKKyAgICAgICAgICAgIG9sZEl0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0
ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIHZhbHVlc1JlZmVyZW5jZSgpLmF0KGluZGV4
KSk7CiAKICAgICAgICAgb2xkSXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBw
ZXJzLT5yZW1vdmUoaW5kZXgpOwotICAgICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAg
ICAgICAgdmFsdWVzUmVmZXJlbmNlKCkucmVtb3ZlKGluZGV4KTsKIAogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG9sZEl0ZW0ucmVsZWFzZU5vbk51bGwoKTsKQEAgLTQx
MSw3ICs0MDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtVmFs
dWUobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhdCB0aGUgZW5k
IG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0pOworICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+
KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoTGlzdE1vZGlmaWNhdGlvbkFwcGVu
ZCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC00MjYsNyAr
NDE2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7Cisg
ICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6
ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBA
IC00MzQsMTkgKzQyNCwyNSBAQCBwdWJsaWM6CiAgICAgICAgIHByb2Nlc3NJbmNvbWluZ0xpc3RJ
dGVtV3JhcHBlcihuZXdJdGVtLCAwKTsKIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVlIGFu
ZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5hcHBl
bmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5j
ZSgpLmFwcGVuZChuZXdJdGVtLT52YWx1ZSgpKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5k
KG5ld0l0ZW0tPmNyZWF0ZVdlYWtQdHIoKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RN
b2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShuZXdJdGVtKTsKICAg
ICB9CiAKLSAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcygpCisgICAgUmVmPFNWR1ZhbHVlPiB2YWx1
ZXMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgcmV0
dXJuICptX3ZhbHVlczsKICAgICB9CiAKKyAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlc1JlZmVyZW5j
ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV92YWx1ZXMpOworICAgICAgICByZXR1
cm4gbV92YWx1ZXMtPmFzPFByb3BlcnR5VHlwZT4oKTsKKyAgICB9CisKICAgICBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV93cmFwcGVy
cyk7CkBAIC00NTksMjAgKzQ1NSwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgU1ZHTGlzdFByb3BlcnR5KFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSogd3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5KFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQogICAgICAgICA6IG1fcm9sZShyb2xlKQotICAgICAgICAs
IG1fb3duc1ZhbHVlcyhmYWxzZSkKLSAgICAgICAgLCBtX3ZhbHVlcygmdmFsdWVzKQorICAgICAg
ICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICAgICAgLCBtX3dyYXBwZXJzKHdyYXBwZXJzKQogICAg
IHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5TVkdMaXN0UHJvcGVydHkoKQotICAgIHsKLSAgICAg
ICAgaWYgKG1fb3duc1ZhbHVlcykKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVlczsKLSAgICB9
Ci0KICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb24pCiAgICAgewpAQCAtNDgzLDggKzQ3Miw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1X
cmFwcGVyKFJlZjxMaXN0SXRlbVRlYXJPZmY+JiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01v
ZGlmeSkgPSAwOwogCiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBib29sIG1fb3du
c1ZhbHVlczsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fdmFsdWVzOworICAgIFJlZlB0cjxTVkdWYWx1
ZT4gbV92YWx1ZXM7CiAgICAgTGlzdFdyYXBwZXJDYWNoZSogbV93cmFwcGVyczsKICAgICBXZWFr
UHRyRmFjdG9yeTxTVkdMaXN0UHJvcGVydHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDIxICszNywy
MCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IHR5cGVuYW1lIFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+OjpMaXN0V3JhcHBlckNhY2hl
OwogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOwor
ICAgIHVzaW5nIEJhc2U6OnZhbHVlc1JlZmVyZW5jZTsKICAgICB1c2luZyBCYXNlOjptX3dyYXBw
ZXJzOwogCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlU
eXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8
U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTZWxmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsK
ICAgICB9CiAKICAgICBpbnQgZmluZEl0ZW0oTGlzdEl0ZW1UZWFyT2ZmKiBpdGVtKSBjb25zdAog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBl
cnMpOwogCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAg
ICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6
ZSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbV93cmFwcGVycy0+
YXQoaSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CkBAIC02MSwxNSArNjEsMTQgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZW1vdmVJdGVtRnJvbUxpc3Qoc2l6ZV90IGl0ZW1JbmRleCwgYm9v
bCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzKTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwotICAgICAgICBBU1NFUlQobV92YWx1
ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVz
UmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAgICAgICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IG1fd3JhcHBlcnMtPnNpemUo
KSk7CiAKICAgICAgICAgYXV0byBpdGVtID0gbV93cmFwcGVycy0+YXQoaXRlbUluZGV4KTsKICAg
ICAgICAgaXRlbS0+ZGV0YWNoV3JhcHBlcigpOwogICAgICAgICBtX3dyYXBwZXJzLT5yZW1vdmUo
aXRlbUluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hv
dWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAt
MTEyLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3Jh
cHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3Jh
cHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFByb3BlcnR5VHlwZT4ocm9sZSwgdmFs
dWVzLCAmd3JhcHBlcnMpCiAgICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KGFuaW1hdGVkUHJv
cGVydHkpCiAgICAgewpAQCAtMTI5LDE4ICsxMjgsMTcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9p
ZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVz
KTsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwogCiAgICAgICAgIC8vIFVwZGF0ZSBleGlz
dGluZyB3cmFwcGVycywgYXMgdGhlIGluZGV4IGluIHRoZSB2YWx1ZXMgbGlzdCBoYXMgY2hhbmdl
ZC4KICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fd3JhcHBlcnMtPnNpemUoKTsKLSAgICAgICAg
QVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVChzaXplID09
IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0
KGkpOwogICAgICAgICAgICAgaWYgKCFpdGVtKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQcm9wZXJ0eShtX2FuaW1hdGVkUHJvcGVydHku
cHRyKCkpOwotICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUobV92YWx1ZXMtPmF0KGkpKTsKKyAg
ICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKHZhbHVlc1JlZmVyZW5jZSgpLmF0KGkpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdlKCk7CkBAIC0x
NjksNyArMTY3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLy8gU1ZHUmVjdEVsZW1lbnRz
IFNWR0FuaW1hdGVkTGVuZ3RoICd3aWR0aCcgcHJvcGVydHkgYmFzZVZhbCBwb2ludHMgdG8gdGhl
IHNhbWUgdGVhciBvZmYgb2JqZWN0CiAgICAgICAgICAgICAvLyB0aGF0J3MgaW5zZXJ0ZWQgaW50
byBTVkdUZXh0RWxlbWVudHMgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICd4Jy4gdGV4dEVsZW1lbnQu
eC5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgKz0gMTUwIHdvdWxkCiAgICAgICAgICAgICAvLyBt
dXRhdGUgdGhlIHJlY3RFbGVtZW50IHdpZHRoIF9hbmRfIHRoZSB0ZXh0RWxlbWVudCB4IGxpc3Qu
IFRoYXQncyBvYnZpb3VzbHkgd3JvbmcsIHRha2UgY2FyZSBvZiB0aGF0LgotICAgICAgICAgICAg
bmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJl
bmNlKCkpOworICAgICAgICAgICAgbmV3SXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKG5l
d0l0ZW0tPnZhbHVlUmVmZXJlbmNlKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWF0cml4VGVh
ck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01h
dHJpeFRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI4LDE5ICsyOSwxOSBA
QCBjbGFzcyBTVkdNYXRyaXhUZWFyT2ZmIGZpbmFsIDogcHVibGljIFNWCiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBjcmVhdGUoU1ZHVHJhbnNmb3JtJiBwYXJlbnQs
IFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodmFs
dWUsICZwYXJlbnQucHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKSA9PSAmdmFsdWUpOwor
ICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnZhbHVlUmVmZXJlbmNlKCkuc3Zn
TWF0cml4KCkgPT0gJnZhbHVlKTsKICAgICAgICAgUmVmPFNWR01hdHJpeFRlYXJPZmY+IHJlc3Vs
dCA9IGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4VGVhck9mZihwYXJlbnQpKTsKICAgICAgICAgcGFy
ZW50LmFkZENoaWxkKHJlc3VsdC0+bV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKHJlc3VsdCkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFNWR01hdHJpeFZhbHVlJiBw
cm9wZXJ0eVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT5wcm9wZXJ0eVJlZmVy
ZW5jZSgpLnN2Z01hdHJpeCgpOyB9CisgICAgU1ZHTWF0cml4VmFsdWUmIHZhbHVlUmVmZXJlbmNl
KCkgZmluYWwgeyByZXR1cm4gbV9wYXJlbnQtPnZhbHVlUmVmZXJlbmNlKCkuc3ZnTWF0cml4KCk7
IH0KIAotICAgIHZvaWQgc2V0VmFsdWUoU1ZHTWF0cml4VmFsdWUmIHZhbHVlKSBmaW5hbCB7IG1f
cGFyZW50LT5wcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZSk7IH0KKyAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKSBmaW5hbCB7IG1fcGFyZW50
LT52YWx1ZVJlZmVyZW5jZSgpLnNldE1hdHJpeCh2YWx1ZS0+YXM8U1ZHTWF0cml4VmFsdWU+KCkp
OyB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewotICAgICAgICBtX3Bh
cmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS51cGRhdGVTVkdNYXRyaXgoKTsKKyAgICAgICAgbV9w
YXJlbnQtPnZhbHVlUmVmZXJlbmNlKCkudXBkYXRlU1ZHTWF0cml4KCk7CiAgICAgICAgIG1fcGFy
ZW50LT5jb21taXRDaGFuZ2UoKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5
LmgiCisjaW5jbHVkZSAiU1ZHVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MCwxNyArNjEsMTYgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gY3JlYXRlKGluaXRpYWxWYWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5UmVmZXJlbmNlKCkgeyByZXR1cm4g
Km1fdmFsdWU7IH0KKyAgICBSZWZQdHI8U1ZHVmFsdWU+IHZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZTsgfQorICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiB2YWx1ZVJlZmVyZW5jZSgpIHsg
cmV0dXJuIG1fdmFsdWUtPmFzPFByb3BlcnR5VHlwZT4oKTsgfQogICAgIFNWR0FuaW1hdGVkUHJv
cGVydHkqIGFuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVy
dHkuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShQcm9wZXJ0eVR5cGUmIHZh
bHVlKQorICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChtX3ZhbHVlSXNDb3B5KSB7CisgICAgICAgIGlmICht
X3ZhbHVlSXNDb3B5KQogICAgICAgICAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgICAg
IGRlbGV0ZSBtX3ZhbHVlOwotICAgICAgICB9CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSBmYWxz
ZTsKLSAgICAgICAgbV92YWx1ZSA9ICZ2YWx1ZTsKKyAgICAgICAgbV92YWx1ZSA9IHZhbHVlOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0QW5pbWF0ZWRQcm9wZXJ0eShTVkdBbmltYXRlZFByb3BlcnR5
KiBhbmltYXRlZFByb3BlcnR5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAgICAg
Ly8gaXRlbS52YWx1ZSBzdGlsbCBoYXMgdG8gcmVwb3J0ICc1MCcgYW5kIGl0IGhhcyB0byBiZSBw
b3NzaWJsZSB0byBtb2RpZnkgJ2l0ZW0nCiAgICAgICAgIC8vIHcvbyBjaGFuZ2luZyB0aGUgIm5l
dyBpdGVtIiAod2l0aCB4PTEwMCkgaW4gdGhlIHRleHQgZWxlbWVudC4KICAgICAgICAgLy8gV2hl
bmV2ZXIgdGhlIFhNTCBET00gbW9kaWZpZXMgdGhlICJ4IiBhdHRyaWJ1dGUsIGFsbCBleGlzdGlu
ZyB3cmFwcGVycyBhcmUgZGV0YWNoZWQsIHVzaW5nIHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIG1f
dmFsdWUgPSBuZXcgUHJvcGVydHlUeXBlKCptX3ZhbHVlKTsKKyAgICAgICAgbV92YWx1ZSA9IFNW
R1ZhbHVlOjpjcmVhdGUobV92YWx1ZS0+dGVtcGxhdGUgYXM8UHJvcGVydHlUeXBlPigpKTsKICAg
ICAgICAgbV92YWx1ZUlzQ29weSA9IHRydWU7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eSA9
IG51bGxwdHI7CiAgICAgfQpAQCAtMTMxLDExICsxMzEsMTAgQEAgcHVibGljOgogICAgIH0KIAog
cHJvdGVjdGVkOgotICAgIFNWR1Byb3BlcnR5VGVhck9mZihTVkdBbmltYXRlZFByb3BlcnR5KiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1
ZSkKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAg
ICAgICAsIG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fdmFsdWUoJnZhbHVlKQotICAgICAgICAs
IG1fdmFsdWVJc0NvcHkoZmFsc2UpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAg
ICAgfQogCkBAIC0xNDcsMTcgKzE0NiwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHUHJvcGVydHlU
ZWFyT2ZmKGNvbnN0IFByb3BlcnR5VHlwZSogaW5pdGlhbFZhbHVlKQogICAgICAgICA6IG1fYW5p
bWF0ZWRQcm9wZXJ0eShudWxscHRyKQogICAgICAgICAsIG1fcm9sZShVbmRlZmluZWRSb2xlKQot
ICAgICAgICAsIG1fdmFsdWUoaW5pdGlhbFZhbHVlID8gbmV3IFByb3BlcnR5VHlwZSgqaW5pdGlh
bFZhbHVlKSA6IG51bGxwdHIpCiAgICAgICAgICwgbV92YWx1ZUlzQ29weSh0cnVlKQogICAgIHsK
KyAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSkKKyAgICAgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1
ZTo6Y3JlYXRlKCppbml0aWFsVmFsdWUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflNWR1Byb3Bl
cnR5VGVhck9mZigpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAg
ICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAg
ICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgZGV0
YWNoQ2hpbGRyZW4oKQpAQCAtMTcxLDEwICsxNjksMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVm
UHRyPFNWR0FuaW1hdGVkUHJvcGVydHk+IG1fYW5pbWF0ZWRQcm9wZXJ0eTsKICAgICBTVkdQcm9w
ZXJ0eVJvbGUgbV9yb2xlOwotICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fdmFsdWU7CiAgICAgVmVjdG9yPFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2Zm
QmFzZT4+IG1fY2hpbGRUZWFyT2ZmczsKICAgICBXZWFrUHRyRmFjdG9yeTxTVkdQcm9wZXJ0eVRl
YXJPZmY+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0gICAgYm9vbCBtX3ZhbHVlSXNDb3B5OworICAgIGJv
b2wgbV92YWx1ZUlzQ29weSB7IGZhbHNlIH07CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgJKHJldmlzaW9uIDIy
OTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorZW51bSBMaXN0TW9kaWZpY2F0aW9uIHsKKyAgICBMaXN0TW9kaWZpY2F0aW9uVW5rbm93
biA9IDAsCisgICAgTGlzdE1vZGlmaWNhdGlvbkluc2VydCA9IDEsCisgICAgTGlzdE1vZGlmaWNh
dGlvblJlcGxhY2UgPSAyLAorICAgIExpc3RNb2RpZmljYXRpb25SZW1vdmUgPSAzLAorICAgIExp
c3RNb2RpZmljYXRpb25BcHBlbmQgPSA0Cit9OworICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgUHJv
cGVydHlUeXBlPgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzIHsgfTsKIApAQCAtMzksNyArNDcs
NiBAQCB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0
YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJv
b2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0
cnVlIjsgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+IHBhcnNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4g
aW5pdGlhbFZhbHVlKCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkg
eyByZXR1cm4gdHlwZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KIH07CiAKQEAgLTYwLDcgKzY3LDYg
QEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPiB7CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3Qg
U1ZHUHJvcGVydHlUcmFpdHM8dW5zaWduZWQ+IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4gMDsgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0
b1N0cmluZyh1bnNpZ25lZCB0eXBlKSB7IHJldHVybiBTdHJpbmc6Om51bWJlcih0eXBlKTsgfQog
fTsKIApAQCAtNjgsNyArNzQsNiBAQCB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8aW50PiB7CiAgICAgc3RhdGljIGludCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiAwOyB9CiAg
ICAgc3RhdGljIGludCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyZzdHJpbmcpIHsgcmV0dXJuIHN0
cmluZy50b0ludFN0cmljdCgpOyB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8aW50PiBwYXJz
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
ZyhpbnQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKQEAgLTgy
LDggKzg3LDYgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxpbnQsIAogICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0YXRp
Y19jYXN0PGludD4ocm91bmRmKGZpcnN0TnVtYmVyKSksIHN0YXRpY19jYXN0PGludD4ocm91bmRm
KHNlY29uZE51bWJlcikpKTsKICAgICB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpw
YWlyPGludCwgaW50Pj4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoc3RkOjpwYWlyPGludCwgaW50PikgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIHRlbXBsYXRlPD4KQEAgLTEx
Niw4ICsxMTksNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPGZsb2F0CiAg
ICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoZmly
c3ROdW1iZXIsIHNlY29uZE51bWJlcik7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgp
OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pikg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIHRl
bXBsYXRlPD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyOTg1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMyw5ICszNCw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBM
aXN0SXRlbVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+
OjpMaXN0SXRlbVRlYXJPZmY7CiAKICAgICB1c2luZyBCYXNlOjptX3JvbGU7Ci0gICAgdXNpbmcg
QmFzZTo6bV92YWx1ZXM7CisgICAgdXNpbmcgQmFzZTo6dmFsdWVzUmVmZXJlbmNlOwogCi0gICAg
c3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3Bl
cnR5VHlwZSYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKFNWR0VsZW1lbnQm
IGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1ZXMp
KTsKICAgICB9CkBAIC03Niw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoK
LSAgICBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFy
T2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZXMpCiAgICAgICAgIDogQmFzZShVbmRlZmluZWRSb2xlLCB2YWx1ZXMsIG51bGxwdHIpCiAg
ICAgICAgICwgbV9jb250ZXh0RWxlbWVudCgqY29udGV4dEVsZW1lbnQpCiAgICAgewpAQCAtODks
OCArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIG92ZXJyaWRl
CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29t
bWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5j
b21taXRDaGFuZ2UobV9jb250ZXh0RWxlbWVudCk7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNz
SW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2lnbmVkKikgb3Zl
cnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3Bl
cnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0zNiw3ICszNyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFVzZWQgZm9yIG5vbi1hbmlt
YXRlZCBQT0QgdHlwZXMgdGhhdCBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBhIFNWR0FuaW1hdGVk
UHJvcGVydHkgb2JqZWN0LCBub3Igd2l0aCBhIFhNTCBET00gYXR0cmlidXRlCiAgICAgLy8gKGZv
ciBleGFtcGxlOiBTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlKS4KLSAgICBzdGF0aWMg
UmVmPFNlbGY+IGNyZWF0ZShDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIFByb3BlcnR5
VHlwZSYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgc3RhdGljIFJlZjxTZWxmPiBj
cmVhdGUoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiB2YWx1ZSwgVXBkYXRlTWV0aG9kIHVwZGF0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNlbGYoY29udGV4dEVsZW1lbnQsIHZhbHVlLCB1cGRhdGUpKTsKICAgICB9
CkBAIC00NCw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFs
IHsgKG1fY29udGV4dEVsZW1lbnQuZ2V0KCktPiptX3VwZGF0ZSkoKTsgfQogCiBwcml2YXRlOgot
ICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1l
bnQsIFByb3BlcnR5VHlwZSYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCisgICAgU1ZHU3Rh
dGljUHJvcGVydHlUZWFyT2ZmKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAgICAgICAgIDog
UHJvcGVydHlUZWFyT2ZmKFVuZGVmaW5lZFJvbGUsIHZhbHVlKQogICAgICAgICAsIG1fdXBkYXRl
KHVwZGF0ZSkKICAgICAgICAgLCBtX2NvbnRleHRFbGVtZW50KCZjb250ZXh0RWxlbWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336508</attachid>
            <date>2018-03-25 23:37:00 -0700</date>
            <delta_ts>2018-03-26 09:58:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180325233659.patch</filename>
            <type>text/plain</type>
            <size>240769</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzNyBAQAorMjAxOC0wMy0yNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBpc3N1ZXMgd2hpY2ggYXJl
CisgICAgICAgIGRpZmZpY3VsdCB0byB0cmFjay4gVGhlIFNWRyB0ZWFyLW9mZiBvYmplY3RzIGFy
ZSBjcmVhdGVkIG9uIGRlbWFuZC4gTW9yZQorICAgICAgICBzcGVjaWZpY2FsbHksIHRoZXkgYXJl
IGNyZWF0ZWQgd2hlbiBhbmltYXRpbmcgdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUKKyAgICAg
ICAgb3Igd2hlbiBjcmVhdGluZyBhIERPTSBvYmplY3QgZm9yIHRoYXQgYXR0cmlidXRlLiBUaGUg
cHJvYmxlbSBpcyB0aGVzZQorICAgICAgICB0ZWFyLW9mZiBvYmplY3RzIGhvbGQgYSByYXcgcmVm
ZXJlbmNlIHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbworICAgICAgICBrZWVwIHRo
aXMgcmVmZXJlbmNlIHZhbGlkLCBib3RoIHRoZSBTVkdFbGVtZW50IGFuZCB0aGUgdGVhci1vZmYg
b2JqZWN0CisgICAgICAgIHVzZWQgdG8gaG9sZCBhIFJlZlB0ciB0byBlYWNoIG90aGVyIHdoaWNo
IHdhcyBjYXVzaW5nIG1lbW9yeSBsZWFrcy4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisgCisgICAgICAgIFRvIGZpeCB0aGVzZSBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVt
ZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQKKyAgICAgICAgb2JqZWN0cy4K
KyAKKyAgICAgICAgQ3JlYXRpbmcgZGlmZmVyZW50IGNsYXNzZXMgZm9yIGV2ZXJ5IGRhdGEgdHlw
ZSBvZiB0aGUgU1ZHIGF0dHJpYnV0ZXMgZG9lcworICAgICAgICBub3QgbG9vayB0aGUgY2xlYW5l
c3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgdW5pb24KKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFsbCB0aGUgZGF0YSB0
eXBlcy4gU28gaGVyZSBpcyB0aGUKKyAgICAgICAgb3V0bGluZSBvZiB0aGlzIHBhdGNoOgorIAor
ICAgICAgICAtLSBDcmVhdGUgdGhlIGNsYXNzIFNWR1ZhbHVlIHdoaWNoIGlzIGEgdmFyaWFudCBv
ZiBhbGwgdGhlIFNWRyBhdHRyaWJ1dGUKKyAgICAgICAgYmFzaWMgZGF0YSB0eXBlcyBpbmNsdWRp
bmcgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAg
IGxpc3RzLgorIAorICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdv
IFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkg
dXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisg
CisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGF0dHJpYnV0ZXMgb2YgYWxsIHRoZSBTVkdFbGVt
ZW50IHRvIGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKyAKKyAgICAgICAgLS0gQ2hhbmdl
IGFsbCB0aGUgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+LgorIAorICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRv
IGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcg
cmVmZXJlbmNlCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRo
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5nbGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1
ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5p
dHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmdsZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OlNWR0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZURpc3RhbmNlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
YXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjogY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VW
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0
RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3I6OmV4ZWN1dGVBY3Rpb24pOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0
cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpz
ZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVT
cGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1
ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6cmVzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6ZGVlcENvcHkgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVl
czo6bGFzdFJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpsYXN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6YSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEEpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpiKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2V0Qik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRDKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjpzZXRGKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6bXVsdGlwbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjppbnZlcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hdHJpeDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4Ojpyb3RhdGVGcm9tVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Zmxp
cFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OnNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tl
d1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpTVkdNYXRyaXgpOgorICAgICAgICAq
IHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXI6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjpTVkdOdW1iZXIpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6U1ZHTnVtYmVyTGlzdCk6CisgICAgICAgICogc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZh
bHVlczo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051
bWJlckxpc3RWYWx1ZXM+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludHNMaXN0RnJvbVNWR0RhdGEp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6cGFyc2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5
dGVTdHJlYW0+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVEV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OnJl
cGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZW1vdmVJdGVt
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
bGluZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRv
SG9yaXpvbnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb1ZlcnRpY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6Y3VydmVUb1F1YWRyYXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjphcmNUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNW
R1NlZ21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpu
ZXh0Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250ZXh0QW5k
Um9sZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisgICAgICAgICog
c3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyk6CisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRZ
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICogc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1
ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUG9pbnRMaXN0VmFsdWVzPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6dG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9s
eUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50Ojpwb2ludExpc3QgY29uc3Qp
OgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAgICogc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICog
c3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNl
dFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
Y3Q6OmhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrRW5jbG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9y
bUZyb21NYXRyaXgpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGVzdHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OlNWR1Rlc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Rlc3RzOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3Rz
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6c3luY2hyb25p
emVBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojp0ZXh0TGVu
Z3RoQW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpn
ZXRDaGFyTnVtQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9y
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06Om1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjp0eXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJh
bnNmb3JtOjpzZXRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRU
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTY2FsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OnNldFNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5z
Zm9ybTo6c2V0U2tld1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpTVkdUcmFu
c2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uc29saWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uY2F0ZW5hdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OjpwYXJzZSk6
IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT46OmluaXRpYWxWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1
ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZTo6YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFs
dWU6OmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VmFsdWU6OlNWR1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyk6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
aWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnRy
YW5zZm9ybVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmll
d0JveFN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3Bl
Yzo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMp
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVk
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6dmFsdWVzUmVmZXJlbmNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uU3Rh
cnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6
OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFs
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBP
ckNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlNYWNyb3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5p
bVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEJhc2VWYWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZh
bHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1JlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQ
cm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmOjp2YWx1ZVJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6U1ZH
UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6
flNWR1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnByb3BlcnR5UmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8dW5zaWduZWQ+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxib29sPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8dW5zaWduZWQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oOgorCiAyMDE4LTAzLTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5OTU0LgpJbmRleDog
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTUyLDYgKzIxNTIsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2ODcsNiArMTY4NywxNCBAQAogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VG
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3
NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9Owog
CQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0Mw
MDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQTlEMjA1QUZFQ0YwMERDNDcwRSAvKiBTVkdW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUx
MzdCMzQyMDNDRUI3MTAwMDEwMDRCIC8qIFNWR1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBOUYyMDVBRkYwQzAwREM0NzBFIC8q
IFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDOEYyMjQzMUREM0IzQjkwMEU5MkRBMyAvKiBTVkdBbmdsZVZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTAyMDVB
RkYzRjAwREM0NzBFIC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY5MUREQjg2RDMwMEZFRkIyOSAvKiBT
VkdOdW1iZXJMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8qIFNWR1BhdGhTZWdMaXN0
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzM5QzM2RjFEREJBM0UwMDBGRUZCMjkgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NUE5MUFBMjIwNUFG
RjY2MDBEQzQ3MEUgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2QjFEREI4NzFDMDBGRUZCMjkgLyogU1ZH
UG9pbnRMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M4RjIyNDYxREQzRDFDNTAwRTkyREEzIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
QTkxQUE0MjA1QUZGOTIwMERDNDcwRSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2RDFEREI4QkIw
MDBGRUZCMjkgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAv
KiBTVkdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVB
QUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lz
dHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTcwNDQwNUExRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA0NDA1OTFFNTM5MzYyMDAz
NTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OTYxRERFNUM5NTAw
QTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk1MURERTVDOTUwMEEwM0IxNCAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi87IH07CkBAIC0xOTkyLDcgKzIwMDAs
NyBAQAogCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxNUFENzFE
MjA1MDUxMjQwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxNUFENzIxMjA1MDUxM0YwMEQ1
OTJEQyAvKiBDU1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MTIzQzE4NjIwNDczOUJBMDA3ODkzOTIgLyogQ1NTVHJhbnNpdGlvbi5o
ICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRy
b2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlh
LWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVD
MDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFCMjg0MjcyMDNDRUM0
QzAwMzZBQTVEIC8qIEpTQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUIyODQyNjIwM0NFQzBEMDAzNkFBNUQgLyogSlNDU1NBbmlt
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MUMyOUUzMjIwM0NFNzgxMDA4RjM2RDIgLyogQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUMyOUUzMDIwM0NFNzZCMDA4RjM2
RDIgLyogQ1NTQW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTIwOTYsNyArMjEwNCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fi
b3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3
QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFE
RjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1
MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3Np
dGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmgg
Ki87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2
MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZF
RkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5n
TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1
MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBC
NDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVz
c2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjIyOSw4ICsyMjM3LDggQEAKIAkJN0NFMTkxN0Ix
RjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3
OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIw
MDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07
CiAJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDRGMURENjlBMUUwMDEyODU1
MiAvKiBTVkdOdW1iZXIuaCAqLzsgfTsKLQkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNW
R1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAq
LzsgfTsKLQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdF
QzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgfTsKKwkJN0NFNThENTgxREQ3RDk2
RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VD
OUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4
IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNz
YWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yMzczLDcgKzIzODEsNyBAQAogCQk4M0ZFN0NBNzFEQTlGMUE3
MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3
Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdD
IC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNl
TW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9Owot
CQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OworCQk4NDE5RDJBNzEyMEQ5MkQw
MDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlE
MkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsK
IAkJODQxOUQyQUQxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBQjEy
MEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJODQx
OUQyQkExMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJCODEyMEUwQzc2MDAx
NDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCAqLzsgfTsKQEAgLTI0MDAsNyArMjQwOCw3
IEBACiAJCTg0NzMwRDkzMTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc2MTI0OEYw
QjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCAqLzsgfTsKIAkJODQ3NkM5RTYxMURGNkEw
QjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNW
R1BhdGhTZWdMaXN0QnVpbGRlci5oICovOyB9OwogCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIg
LyogU1ZHUGF0aEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NzZDOUU4MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oICov
OyB9OwotCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2
QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IH07CisJCTg0NzZDOUVDMTFERjZB
MjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
Q29uc3VtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RUUxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCAqLzsgfTsKIAkJODQ4MDE5NTUxMDhCQUZCMzAwQ0Iy
QjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
aCAqLzsgfTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgx
MTk0QzlEMzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwpAQCAtMzM1Myw3ICsz
MzYxLDcgQEAKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEJCMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyMjI3
QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR1BhdGhFbGVtZW50LmggKi87IH07Ci0JCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyB9OworCQlCMjIy
N0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNW
R1BhdGhTZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCMjIyN0E1RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0FyYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzgwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCAqLzsgfTsKIAkJQjIyMjdBNjIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OENDMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2Vn
Q2xvc2VQYXRoLmggKi87IH07CiAJCUIyMjI3QTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhDRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Yy5oICovOyB9OwpAQCAtODI2MSw4ICs4MjY5LDEwIEBACiAJCTU1NUI4N0VCMUNBQUYwQUIwMDM0
OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZURlY29kZXJDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2
MjFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCYWNraW5nU3RvcmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVBOTFBQTYyMDVCMTNGNTAwREM0NzBFIC8q
IFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEUzMUVBQUM1OUIwMDI2RUVBQSAv
KiBVVElSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVElSZWdpc3RyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBV
VElSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVElSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGll
bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4NzcsNiArMjI4ODcsOCBAQAogCQkJ
CUIyMjI3OEE1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5jcHAgKi8sCiAJCQkJ
QjIyMjc4QTYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggKi8sCiAJCQkJQjIy
Mjc4QTcwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLywKKwkJCQk1NUE5
MUFBNjIwNUIxM0Y1MDBEQzQ3MEUgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8sCisJCQkJNTU3RURC
OUIyMDVBMDE1QjAwN0Q1RkNGIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLywKIAkJCQlCMjIyNzhBQTBE
MDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmNwcCAqLywKIAkJCQlCMjIyNzhBQjBEMDBC
RjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggKi8sCiAJCQkJQjIyMjc4QUQwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuY3BwICovLApAQCAtMjk5OTAsNiArMzAwMDIsNyBA
QAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlw
aEl0ZW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQTlGMjA1QUZGMEMwMERD
NDcwRSAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xl
YW4uaCBpbiBIZWFkZXJzICovLApAQCAtMzAxMDEsNiArMzAxMTQsNyBAQAogCQkJCUIyMjI3QTND
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgxMDc2NDQxMjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAvKiBTVkdM
aXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAw
NDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAx
MTMsNiArMzAxMjcsNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAv
KiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUFBMDIwNUFGRjNG
MDBEQzQ3MEUgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVu
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTUxLDYgKzMwMTY2LDcgQEAKIAkJCQlCMjIyN0E4
MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlz
dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8q
IFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1
QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENv
bnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAxNjIsMTAgKzMwMTc4LDEyIEBACiAJCQkJQjIy
MjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1QTkxQUEyMjA1QUZGNjYwMERDNDcwRSAvKiBTVkdQb2ludExpc3RW
YWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkEx
QTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhB
MEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwMjE3LDYgKzMwMjM1LDcgQEAKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTVBOTFBQTQyMDVBRkY5MjAwREM0NzBFIC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjI0
LDYgKzMwMjQzLDcgQEAKIAkJCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVBMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVEMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUE5RDIw
NUFGRUNGMDBEQzQ3MEUgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYw
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdTcGVjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERh
dGEuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1BhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgc3Rh
dGljIFBhdGggcGF0aEZyb21QYXRoRWxlbWVudChTVkdFbGVtZQogCiBzdGF0aWMgUGF0aCBwYXRo
RnJvbVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9p
bnRzID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRz
KCktPnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNSZWZlcmVuY2UoKTsKICAgICBp
ZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0
aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9p
bnRzLmZpcnN0UmVmZXJlbmNlKCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGF0
aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRz
LmF0UmVmZXJlbmNlKGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CiAgICAgcmV0dXJu
IHBhdGg7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25F
bGVtZW50KFNWR0VsCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9seWxpbmVFbGVtZW50KFNWR0Vs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxp
bmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRv
JiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVk
UG9pbnRzKCktPnZhbHVlc1JlZmVyZW5jZSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRvKHBv
aW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RSZWZlcmVuY2UoKSk7
CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQo
aSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXRSZWZlcmVuY2UoaSkpOwogICAg
IHJldHVybiBwYXRoOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCShy
ZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxNSArMTYz
LDE1IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWkKIHN0YXRpYyBp
bmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90
YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxl
bmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHhMaXN0LCBjb25zdCBTVkdM
ZW5ndGhMaXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHhMaXN0
LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3RW
YWx1ZXMqIHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQotICAgICAgICBkYXRhLnggPSB4
TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEueCA9IHhMaXN0
LT5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0g
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAg
ICAgZGF0YS55ID0geUxpc3QtPmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwog
ICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVlKGxl
bmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5hdFJlZmVyZW5jZShpKS52
YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQotICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keSA9IGR5
TGlzdC0+YXRSZWZlcmVuY2UoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0
ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAg
ICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdFJlZmVyZW5jZShpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgU1ZHQW5nbGVWYWx1ZTo6VHlwZSB1bml0VHlwZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFsdWUpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAg
IGZsb2F0IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkudmFs
dWUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUluU3BlY2lmaWVk
VW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtNzUsNyArNzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJp
bmcodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVl
SW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRU
eXBlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFsdWUmIHZhbHVlKQorICAg
IFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRBbmdsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAgdm9pZCBTVkdB
bmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgp
KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKTsKLSAgICBhdXRvJiB0b0FuZ2xl
QW5kRW51bWVyYXRpb24gPSB0by0+YXM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CisgICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRp
b24gPSB0by0+YXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAgICAgLy8gT25seSByZXNw
ZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmllZCBpbiBh
bmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtODAsMTAgKzgwLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpj
YWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlv
biA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFzPHN0ZDo6cGFpcjxT
VkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25B
bmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uID0gYW5pbWF0ZWQtPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7CisgICAgY29uc3QgYXV0byBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IChtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJv
bSktPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gdG9BbmdsZUFuZEVu
dW1lcmF0aW9uID0gdG8tPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8g
dG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24t
PmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gYW5pbWF0ZWRBbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOwog
CiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51
bWVyYXRpb24uc2Vjb25kKSB7CiAgICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiAtIG5vIGxp
bmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFsdWVzIChlLmcuIGF1dG8gdG8g
YW5nbGUpLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsK
IAotICAgIGNvbnN0IGF1dG8mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmFzPHN0ZDo6cGFpcjxp
bnQsIGludD4+KCk7Ci0gICAgYXV0byYgdG9JbnRlZ2VyUGFpciA9IHRvLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOworICAgIGNvbnN0IGF1dG8gZnJvbUludGVnZXJQYWlyID0gZnJvbS0+YXM8
aW50LCBpbnQ+KCk7CisgICAgYXV0byB0b0ludGVnZXJQYWlyID0gdG8tPmFzPGludCwgaW50Pigp
OwogCiAgICAgdG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7CiAg
ICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29uZDsKQEAgLTc4
LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAg
ICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1l
bnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUludGVnZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKLSAgICBjb25zdCBhdXRvJiB0b0ludGVnZXJQYWly
ID0gdG8tPmFzPHN0ZDo6cGFpcjxpbnQsIGludD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVu
ZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOwotICAgIGF1dG8mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21JbnRlZ2VyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGludCwgaW50PigpOworICAgIGNvbnN0IGF1dG8gdG9JbnRl
Z2VyUGFpciA9IHRvLT5hczxpbnQsIGludD4oKTsKKyAgICBjb25zdCBhdXRvIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8aW50LCBpbnQ+KCk7Cisg
ICAgYXV0byBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGludCwgaW50PigpOwog
CiAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwogICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogCiAg
ICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTGVuZ3RoTGlzdFNpemU7ICsraSkKLSAgICAg
ICAgdG9MZW5ndGhMaXN0W2ldLnNldFZhbHVlKHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhD
b250ZXh0KSArIGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhD
b250ZXh0KTsKKyAgICAgICAgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnNldFZhbHVlKHRv
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5n
dGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0
KTsKIH0KIAogc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgcGFyc2VMZW5ndGhMaXN0RnJvbVN0
cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBjb25zdCBTdHJpbmcm
IHN0cmluZykKQEAgLTEwOCwxOCArMTA4LDE4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OmNhbGMKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2Nv
bnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9MZW5ndGhMaXN0
U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5n
dGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgICAgICBTVkdMZW5ndGhUeXBlIHVu
aXRUeXBlID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7CisgICAgICAgIGZsb2F0IGFuaW1h
dGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0
LmF0UmVmZXJlbmNlKGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20g
PSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBpZiAo
cGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhM
aXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0
aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5cGUg
PSBmcm9tTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS51bml0VHlwZSgpOworICAgICAgICAgICAg
ZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBp
IDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlz
dFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRv
QXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9u
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBl
ZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAgICAgIGFuaW1hdGVkTGVuZ3Ro
TGlzdC5hdFJlZmVyZW5jZShpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJl
ciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6YWRkQQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbU51bWJlckxpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTnVtYmVyTGlzdFtpXSArPSBmcm9t
TnVtYmVyTGlzdFtpXTsKKyAgICAgICAgdG9OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpICs9IGZy
b21OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlw
ZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlw
ZSogYW5pbWF0ZWQpCkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPSB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBlZmZlY3RpdmVG
cm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxpc3RbaV0gOiAwOwotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZl
Y3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVt
YmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlz
dFNpemUgPyBmcm9tTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSwgZWZmZWN0aXZlVG9B
dEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpKTsKICAgICB9CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
OCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbU51bWJlclBhaXIgPSBmcm9tLT5hczxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsKLSAg
ICBhdXRvJiB0b051bWJlclBhaXIgPSB0by0+YXM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7
CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFpciA9IGZyb20tPmFzPGZsb2F0LCBmbG9hdD4o
KTsKKyAgICBhdXRvIHRvTnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAg
ICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7CiAgICAgdG9OdW1i
ZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CkBAIC03OCwxMCArNzgsMTAg
QEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVCht
X2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAg
IGNvbnN0IGF1dG8mIGZyb21OdW1iZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJQYWlyID0gdG8tPmFz
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj4oKTsKLSAgICBhdXRvJiBhbmltYXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+YXM8
c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGZsb2F0LCBmbG9hdD4oKTsKKyAgICBjb25zdCBhdXRvIHRv
TnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CisgICAgY29uc3QgYXV0byB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8ZmxvYXQsIGZs
b2F0PigpOworICAgIGF1dG8gYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGZsb2F0
LCBmbG9hdD4oKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVt
YmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5maXJzdCwgdG9OdW1i
ZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIuZmlyc3QsIGFuaW1hdGVk
TnVtYmVyUGFpci5maXJzdCk7CiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRp
dmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1iZXJQYWlyLnNlY29uZCwg
dG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLnNlY29uZCwg
YW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQYXRoLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIFJlZlB0cjxTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgY29uc3QgYXV0byYgYmFz
ZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgIGJ1aWxkU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoYmFzZVZhbHVlLCAqYnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQ
YXRoU2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLCAq
Ynl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1bHQ7CiAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIGlmICgh
cmVzdWx0LmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJs
b2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIHNlZ21lbnQgOiByZXN1bHQpCi0gICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25T
dGFydGVkKGJ5dGVTdHJlYW0sICZiYXNlVmFsdWUpOworICAgICAgICAgICAgc2VnbWVudC0+YW5p
bWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZh
bHVlcz4oKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcg
QEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbgogICAgICAgICByZXR1
cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsr
aSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAg
dG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkgKz0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShp
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9B
dEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC05NiwxNCArOTYs
MTQgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAg
ICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9B
dEVuZE9mRHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBl
ZmZlY3RpdmVGcm9tID0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShpKTsKKyAgICAgICAgRmxv
YXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LmF0UmVmZXJlbmNlKGkpIDogRmxvYXRQb2ludCgpOwog
Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAg
ICAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0
aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVG
cm9tLnkoKSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0
ZWRZKTsKLSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVk
WCwgYW5pbWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExp
c3QuYXRSZWZlcmVuY2UoaSkueCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRl
ZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3Rp
dmVGcm9tLngoKSwgdG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkueCgpLCBlZmZlY3RpdmVUb0F0
RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgp
LCB0b1BvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBh
bmltYXRlZFkpOworICAgICAgICBhbmltYXRlZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKSA9IEZs
b2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGZyb21U
cmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0g
ZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3RbMF07CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1M
aXN0LmZpcnN0UmVmZXJlbmNlKCk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtLnR5cGUo
KSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRvVHJhbnNmb3JtID0gU1ZHVHJhbnNmb3Jt
RGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm0pOwpA
QCAtMTA5LDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
cjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1dG8g
ZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAgIGNv
bnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0IGF1
dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1M
aXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zv
cm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFu
c2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKKyAgICBjb25zdCBhdXRv
IGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlz
dC5maXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBj
dXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9U
cmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVm
ZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQo
KSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQg
PSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFu
aW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1Ry
YW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQp
KTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5m
aXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBT
VkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1
ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9y
bSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zv
cm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTM1LDEzICsxMzUsMTMgQEAgZmxvYXQg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgICAgICByZXR1cm4gLTE7CiAK
ICAgICBBU1NFUlQoaXRlbXNDb3VudCA9PSAxKTsKLSAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3Rb
MF0udHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdFswXS50eXBlKCkpCisgICAgaWYgKGZyb21UcmFu
c2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCkudHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdC5maXJz
dFJlZmVyZW5jZSgpLnR5cGUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgLy8gU3BlYzog
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2FuaW1hdGUuaHRtbCNjb21wbGV4RGlzdGFuY2VzCiAg
ICAgLy8gUGFjZWQgYW5pbWF0aW9ucyBhc3N1bWUgYSBub3Rpb24gb2YgZGlzdGFuY2UgYmV0d2Vl
biB0aGUgdmFyaW91cyBhbmltYXRpb24gdmFsdWVzIGRlZmluZWQgYnkgdGhlIOKAmHRv4oCZLCDi
gJhmcm9t4oCZLCDigJhieeKAmSBhbmQg4oCYdmFsdWVz4oCZIGF0dHJpYnV0ZXMuCiAgICAgLy8g
RGlzdGFuY2UgaXMgZGVmaW5lZCBvbmx5IGZvciBzY2FsYXIgdHlwZXMgKHN1Y2ggYXMgPGxlbmd0
aD4pLCBjb2xvcnMgYW5kIHRoZSBzdWJzZXQgb2YgdHJhbnNmb3JtYXRpb24gdHlwZXMgdGhhdCBh
cmUgc3VwcG9ydGVkIGJ5IOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkuCi0gICAgcmV0dXJuIFNWR1Ry
YW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0WzBdLCB0b1RyYW5zZm9ybUxpc3RbMF0p
LmRpc3RhbmNlKCk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zv
cm1MaXN0LmZpcnN0UmVmZXJlbmNlKCksIHRvVHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgp
KS5kaXN0YW5jZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgorc3RydWN0IFNWR0FuaW1hdGVkVHlwZSB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKQEAgLTM0LDE1ICszMiwxNCBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKFByb3BlcnR5VHlwZSYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRy
PFNWR1ZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5
VHlwZTI+CkBAIC01Miw4NiArNDksMTAzIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3Qgc3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiBwcm9wZXJ0aWVzKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoc3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgdmFsdWVzKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0aWVzKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlcykp
OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1l
IFByb3BlcnR5VHlwZTI+Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9w
ZXJ0aWVzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
V1RGTW92ZShwcm9wZXJ0aWVzKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBTVkdBbmltYXRlZFR5
cGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBtX3ZhbHVlKHN0ZDo6
bWFrZV91bmlxdWU8UHJvcGVydHlUeXBlPihwcm9wZXJ0eSkucmVsZWFzZSgpKQorICAgIFNWR0Fu
aW1hdGVkVHlwZShQcm9wZXJ0eVR5cGUmJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChTVkdWYWx1
ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkg
IT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQot
ICAgICAgICA6IG1fdmFsdWUoc3RkOjptYWtlX3VuaXF1ZTxQcm9wZXJ0eVR5cGU+KFdURk1vdmUo
cHJvcGVydHkpKS5yZWxlYXNlKCkpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChXVEZNb3ZlKHZhbHVlKSkKICAgICB7CisgICAg
ICAgIEFTU0VSVCh0eXBlKCkgIT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAg
IFNWR0FuaW1hdGVkVHlwZShjb25zdCBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlU
eXBlMj4mIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4ocHJvcGVydGllcykucmVsZWFz
ZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVy
dHlUeXBlMj4mJiB2YWx1ZXMpCisgICAgICAgIDogZmlyc3QoU1ZHVmFsdWU6OmNyZWF0ZSh2YWx1
ZXMuZmlyc3QpKQorICAgICAgICAsIHNlY29uZChTVkdWYWx1ZTo6Y3JlYXRlKHZhbHVlcy5zZWNv
bmQpKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFBy
b3BlcnR5VHlwZTI+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUx
LCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4oV1RGTW92
ZShwcm9wZXJ0aWVzKSkucmVsZWFzZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IGZp
cnN0KFdURk1vdmUodmFsdWUxKSkKKyAgICAgICAgLCBzZWNvbmQoV1RGTW92ZSh2YWx1ZTIpKQog
ICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwogICAgIH0K
IAotICAgIH5TVkdBbmltYXRlZFR5cGUoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZT4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFzKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IFdURjo6dmlzaXQoW10oYXV0byYgdmFsdWUpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZTsK
LSAgICAgICAgfSwgbV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFz
KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgUHJvcGVy
dHlUeXBlJiBhcygpCiAgICAgewotICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxQcm9wZXJ0eVR5cGUqPihtX3ZhbHVlKSk7Ci0gICAgICAgIHJldHVybiAqV1RGOjpnZXQ8UHJv
cGVydHlUeXBlKj4obV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBQcm9wZXJ0eVR5cGUmIGFzKCkKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUy
PgorICAgIGNvbnN0IHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxJiwgUHJvcGVydHlUeXBlMiY+IGFz
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFBy
b3BlcnR5VHlwZSo+KG1fdmFsdWUpKTsKLSAgICAgICAgcmV0dXJuICpXVEY6OmdldDxQcm9wZXJ0
eVR5cGUqPihtX3ZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGZpcnN0ICYmIHNlY29uZCk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdC0+YXM8UHJvcGVydHlUeXBlMT4oKSwgc2Vj
b25kLT5hczxQcm9wZXJ0eVR5cGUyPigpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGQ6OnBh
aXI8UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBhcygpCisgICAgeworICAgICAgICBB
U1NFUlQoZmlyc3QgJiYgc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0
ZDo6cmVmKGZpcnN0LT5hczxQcm9wZXJ0eVR5cGUxPigpKSwgc3RkOjpyZWYoc2Vjb25kLT5hczxQ
cm9wZXJ0eVR5cGUyPigpKSk7CiAgICAgfQogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlw
ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZS5pbmRleCgpID49IEFuaW1h
dGVkUHJvcGVydHlUeXBlTWluICYmIG1fdmFsdWUuaW5kZXgoKSA8IEFuaW1hdGVkUHJvcGVydHlU
eXBlTWF4KTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFuaW1hdGVkUHJvcGVydHlUeXBl
PihtX3ZhbHVlLmluZGV4KCkpOworICAgICAgICBBU1NFUlQoZmlyc3QpOworICAgICAgICBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRlZFR5cGUoKmZpcnN0
KTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMiA9IHNlY29uZCA/
IHZhbHVlQW5pbWF0ZWRUeXBlKCpzZWNvbmQpIDogQW5pbWF0ZWRVbmtub3duOworCisgICAgICAg
IGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsKKyAgICAgICAgICAgIEFTU0VS
VChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYW5pbWF0ZWRUeXBl
MSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEludGVnZXIp
CisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOworCisg
ICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFuaW1hdGVkVHlw
ZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlcjsKKworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRl
ZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKICAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjp2
aXNpdChbXShhdXRvJiB2YWx1ZSkgewotICAgICAgICAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0g
c3RkOjpkZWNheV90PGRlY2x0eXBlKCp2YWx1ZSk+OwotICAgICAgICAgICAgcmV0dXJuIFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCp2YWx1ZSk7Ci0gICAgICAgIH0s
IG1fdmFsdWUpOworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJl
dHVybiBmaXJzdC0+dG9TdHJpbmcoKTsKICAgICB9CiAKICAgICBib29sIHNldFZhbHVlQXNTdHJp
bmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGF1dG8mIHZhbHVlKSB7Ci0gICAg
ICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUoKnZhbHVl
KT47Ci0gICAgICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9w
ZXJ0eVR5cGU+OjpwYXJzZShhdHRyTmFtZSwgc3RyaW5nKSkgewotICAgICAgICAgICAgICAgICp2
YWx1ZSA9ICpyZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0sIG1fdmFsdWUpOworICAg
ICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJldHVybiBmaXJzdC0+cGFy
c2UoYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNB
bmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCkBAIC0xNDAsOCArMTU0LDQ3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0g
QW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgU1ZHVmFsdWVWYXJpYW50IG1f
dmFsdWU7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBl
KGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0
KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikg
eworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICAgICAgfSwg
W10oY29uc3QgYm9vbCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRCb29sZWFu
OworICAgICAgICAgICAgfSwgW10oY29uc3QgQ29sb3ImKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQ29sb3I7CisgICAgICAgICAgICB9LCBbXShjb25zdCB1bnNpZ25lZCYpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRFbnVtZXJhdGlvbjsKKyAgICAgICAgICAg
IH0sIFtdKGNvbnN0IGludCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRl
Z2VyOworICAgICAgICAgICAgfSwgW10oY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOworICAgICAgICAgICAgfSwgW10oY29uc3Qg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRM
ZW5ndGhMaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgZmxvYXQpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXI7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdO
dW1iZXJMaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZE51bWJl
ckxpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOworICAgICAgICAgICAgfSwgW10oY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJikgeworICAgICAgICAgICAgICAgIHJldHVy
biBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgICAgICB9LCBbXShjb25zdCBT
VkdQb2ludExpc3RWYWx1ZXMmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9p
bnRzOworICAgICAgICAgICAgfSwgW10oY29uc3QgRmxvYXRSZWN0JikgeworICAgICAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZFJlY3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTdHJpbmcm
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOworICAgICAgICAgICAg
fSwgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgYXV0
byYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOworICAgICAgICAg
ICAgfQorICAgICAgICApLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1
ZSkpOworICAgIH0KKworICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3Q7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBzZWNvbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDEwICs2OSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAg
Y29uc3QgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1
YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3BlcnRpZXNbMF0ucHJvcGVydGllc1swXS5n
ZXQoKSk7CiAKLSAgICAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShhbmltYXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCkpOwotICAgICAgICBhdXRv
JiBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsICZhbmltYXRl
ZFZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICAgICAgYXV0byBhbmlt
YXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmlt
YXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGFuaW1hdGVkVmFsdWUp
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KQEAgLTgzLDkg
KzgyLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3Bl
cnRpZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgICAgIGFuaW1hdGVkUHJvcGVydHkt
PnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFuaW1hdGVk
VmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
PigpOwotICAgICAgICBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAwLCAmYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IGFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNl
VmFsdWUoKTsKKyAgICAgICAgYXV0byYgYW5pbWF0ZWRWYWx1ZSA9IGFuaW1hdGVkVHlwZS5maXJz
dDsKKyAgICAgICAgYW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5
cGU6OkNvbnRlbnRUeXBlPigpID0gYmFzZVZhbHVlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGFuaW1hdGVk
VmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgpAQCAt
MTE3LDExICsxMTcsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdCBhdXRvKiBmaXJzdEFu
aW1hdGVkUHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFs
VHlwZTE+KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKICAgICAg
ICAgY29uc3QgYXV0byogc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLnByb3Bl
cnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoc3RkOjptYWtlX3BhaXIoZmlyc3RBbmltYXRlZFByb3BlcnR5LT5jdXJy
ZW50QmFzZVZhbHVlKCksIHNlY29uZEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUo
KSkpOwotICAgICAgICBhdXRvJiBBbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0
ZSBhczxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5h
bWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAw
LCAmQW5pbWF0ZWRWYWx1ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCAmQW5pbWF0
ZWRWYWx1ZS5zZWNvbmQpOwotICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgICAgICBh
dXRvIGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgYXV0byBzZWNvbmRBbmltYXRl
ZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1
ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZh
bHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xMzQs
MTEgKzEzNCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGZpcnN0QW5pbWF0ZWRQcm9wZXJ0eS0+
c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgICAgIHNlY29uZEFuaW1hdGVkUHJv
cGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFu
aW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxU
eXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+Pigp
OwotICAgICAgICBhbmltYXRlZFZhbHVlLmZpcnN0ID0gZmlyc3RBbmltYXRlZFByb3BlcnR5LT5j
dXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVmFsdWUuc2Vjb25kID0gc2Vjb25k
QW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0
aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGll
cywgMCwgJmFuaW1hdGVkVmFsdWUuZmlyc3QpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMSwgJmFu
aW1hdGVkVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgY29uc3QgYXV0byYgZmlyc3RCYXNlVmFsdWUg
PSBmaXJzdEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29u
c3QgYXV0byYgc2Vjb25kQmFzZVZhbHVlID0gc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOworICAgICAgICBhdXRvJiBmaXJzdEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuZmlyc3Q7CisgICAgICAgIGF1dG8mIHNlY29uZEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuc2Vjb25kOworICAgICAgICBmaXJzdEFuaW1hdGVkVmFsdWUtPnRlbXBsYXRlIGFzPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGU+KCkgPSBmaXJzdEJhc2VWYWx1ZS0+dGVt
cGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAg
c2Vjb25kQW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpD
b250ZW50VHlwZT4oKSA9IHNlY29uZEJhc2VWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5p
bVZhbFR5cGUyOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0
QW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZh
bHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVu
YW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MSw3ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIH07CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rp
b24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFByb3BlcnRpZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVu
YW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHIpCisg
ICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRQcm9wZXJ0aWVzLCB1bnNpZ25lZCB3
aGljaFByb3BlcnR5LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBhbmltYXRlZFZhbHVlID0gbnVs
bHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5z
dGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3ku
IFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRh
dGVzQmxvY2tlZCgqYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLmVsZW1lbnQsIHRydWUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRp
dGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5p
bWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwLDcgKzE0MCw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZH
Q29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMu
ZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAg
ZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9
IHRhYmxlVmFsdWVzKCkudmFsdWVzKCk7CiAgICAgcmV0dXJuIGZ1bmM7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50OjpzZXRGaWx0ZXJFCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBl
QXR0cikKICAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRUeXBlKHR5cGUoKSk7CiAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKQotICAgICAgICByZXR1cm4gY29s
b3JNYXRyaXgtPnNldFZhbHVlcyh2YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBjb2xvck1hdHJp
eC0+c2V0VmFsdWVzKHZhbHVlcygpLnZhbHVlcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAg
ICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS52YWx1ZXMoKTsKICAgICAgICAgdW5zaWduZWQgc2l6
ZSA9IGZpbHRlclZhbHVlcy5zaXplKCk7CiAKICAgICAgICAgaWYgKChmaWx0ZXJUeXBlID09IEZF
Q09MT1JNQVRSSVhfVFlQRV9NQVRSSVggJiYgc2l6ZSAhPSAyMCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg1LDEyICsyODUsMTIgQEAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBp
ZiAoIWhhc0F0dHJpYnV0ZShTVkdOYW1lczo6ZGl2aXNvckF0dHIpKSB7CiAgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwga2VybmVsTWF0cml4U2l6ZTsgKytpKQotICAgICAgICAgICAgZGl2aXNv
clZhbHVlICs9IGtlcm5lbE1hdHJpeC5hdChpKTsKKyAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSAr
PSBrZXJuZWxNYXRyaXguYXRSZWZlcmVuY2UoaSk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVl
KQogICAgICAgICAgICAgZGl2aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVj
dCA9IEZFQ29udm9sdmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUs
IG9yZGVyWVZhbHVlKSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1
ZSwgdGFyZ2V0WVZhbHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3Ro
WFZhbHVlLCBrZXJuZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxN
YXRyaXgpOworICAgIGF1dG8gZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRl
ciwgSW50U2l6ZShvcmRlclhWYWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMo
KSwgSW50UG9pbnQodGFyZ2V0WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9h
dFBvaW50KGtlcm5lbFVuaXRMZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBw
cmVzZXJ2ZUFscGhhKCksIGtlcm5lbE1hdHJpeC52YWx1ZXMoKSk7CiAgICAgZWZmZWN0LT5pbnB1
dEVmZmVjdHMoKS5hcHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gV1RGTW92ZShlZmZlY3QpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NywxMCArNjcsMTAgQEAgaW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNW
R0ZpbHRlckVsZW1lbgogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAs
IG1fZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5H
Qk9YKQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVf
VVNFUlNQQUNFT05VU0UpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2Rl
V2lkdGgsICIxMjAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikK
KyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAg
LCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1f
d2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9o
ZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAv
LyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6
IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZl
Y3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDEwICs1NCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94
KExlbmd0aE1vZGVXaWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUi
KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVpZ2h0
KExlbmd0aE1vZGVIZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgsICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVI
ZWlnaHQsICIwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgsICIxMDAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0LCAiMTAwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3Bl
Y2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBz
cGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMCBA
QCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3ko
TGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwg
bV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5n
dGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQp
KQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwg
bV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3RlckFu
aW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDEwICs1OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUg
U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5n
dGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hl
aWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hl
aWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1faW1hZ2VMb2Fk
ZXIoKnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdJbWFnZUVs
ZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDIyOTg1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBFX1BDID0gTGVuZ3RoVHlwZVBD
CiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0
aFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0xlbmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0K
QEAgLTY2LDEyICs2NiwxMiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB1bml0VHlw
ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgp
OworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPGZsb2F0PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29u
dGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5j
ZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkg
fSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhm
bG9hdCB2YWx1ZSkKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsK
KyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBT
VkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApA
QCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmll
ZFVuaXRzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVl
SW5TcGVjaWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS52YWx1
ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtOTcs
NyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUlu
U3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVj
aWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVi
bGljOgogICAgIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUmVmZXJlbmNlKCkudmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTExMyw3
ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2
YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0
ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJl
bmNlKCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVu
aXRzKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFs
dWVSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0OCw3
ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZh
bHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2
LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAgICAg
dXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlz
dFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMm
IHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlzdChB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAg
ICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVz
LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU1ZHTGVu
Z3RoTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgaWYgKGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlU3RyaW5nKS5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKGxlbmd0aCk7CisgICAgICAg
IGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR0xlbmd0aFZhbHVlPihsZW5ndGgpKTsKICAgICAg
ICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBlbmQpOwogICAgIH0KIH0K
QEAgLTYwLDcgKzYwLDcgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJp
bgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwog
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKGF0UmVmZXJlbmNlKGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIx
LDE0ICsyMiwxNCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5o
IgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTGVuZ3RoOwogY2xhc3MgU1ZHTGVuZ3Ro
TGlzdDsKIAotY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8
U1ZHTGVuZ3RoVmFsdWU+IHsKK2NsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJs
aWMgU1ZHTGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT4gewogcHVibGljOgogICAgIHZvaWQgcGFy
c2UoY29uc3QgU3RyaW5nJiB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSk7CiAgICAgU3RyaW5nIHZhbHVl
QXNTdHJpbmcoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNCw2
ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3Jn
PgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsMTAgKzU1LDEwIEBAIEVO
RF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3gxKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feTEo
TGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1feDIoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0g
ICAgLCBtX3kyKExlbmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3gxKFNWR0xlbmd0aFZhbHVlKExl
bmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3kxKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV94MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikp
CisgICAgLCBtX3kyKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIC8v
IFNwZWM6IElmIHRoZSB4MiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6bGluZWFyR3JhZGllbnRUYWcpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGlzdFZhbHVlcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKKworI2luY2x1ZGUgIlNWR1ZhbHVlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KK3ZvaWQgU1ZHTGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUoc2l6ZV90IG5ld1Np
emUpCit7CisgICAgc2l6ZV90IGluZGV4ID0gc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8U1ZH
VmFsdWU+Pjo6cmVzaXplKG5ld1NpemUpOworICAgIGZvciAoOyBpbmRleCA8IG5ld1NpemU7ICsr
aW5kZXgpCisgICAgICAgIGF0KGluZGV4KSA9IFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBl
PigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorVmVjdG9yPFJlZlB0
cjxTVkdWYWx1ZT4+IFNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6ZGVlcENvcHkoKSBjb25z
dAoreworICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiB2YWx1ZXM7CisgICAgZm9yIChjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICB2YWx1ZXMuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGUoKnZhbHVlKSk7CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLy8g
VGVtcGxhdGUgZnVuY3Rpb24gZXhwbGljaXQgaW5zdGFudGlhdGlvbi4KK3RlbXBsYXRlIHZvaWQg
U1ZHTGlzdFZhbHVlczxmbG9hdD46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdM
aXN0VmFsdWVzPEZsb2F0UG9pbnQ+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZH
TGlzdFZhbHVlczxTVkdMZW5ndGhWYWx1ZT46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9p
ZCBTVkdMaXN0VmFsdWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6cmVzaXplKHNpemVfdCk7CisKK3Rl
bXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6ZGVl
cENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0
VmFsdWVzPFN0cmluZz46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRy
PFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6ZGVlcENvcHkoKSBjb25zdDsK
K3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0
aFZhbHVlPjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFs
dWU+PiBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj46OmRlZXBDb3B5KCkgY29uc3Q7
Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdUcmFu
c2Zvcm1WYWx1ZT46OmRlZXBDb3B5KCkgY29uc3Q7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpc3RWYWx1ZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHVmFsdWU7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMg
OiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0
VmFsdWVzKCkgPSBkZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFs
dWVzJiBvdGhlcikKKyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVl
cENvcHkoKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFNWR0xpc3RWYWx1ZXMmIG9wZXJhdG9y
PShjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxTVkdMaXN0VmFsdWVzJj4oVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpvcGVyYXRv
cj0ob3RoZXIuZGVlcENvcHkoKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlc2l6ZShzaXpl
X3QpOworICAgIAorICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGlu
ZGV4KSBjb25zdCB7IHJldHVybiBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4o
KTsgfQorICAgIFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSB7IHJldHVy
biBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorCisgICAgY29uc3Qg
UHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIGF0UmVmZXJlbmNl
KDApOyB9CisgICAgUHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVm
ZXJlbmNlKDApOyB9CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RSZWZlcmVuY2UoKSBj
b25zdCB7IHJldHVybiBhdFJlZmVyZW5jZShzaXplKCkgLSAxKTsgfQorICAgIFByb3BlcnR5VHlw
ZSYgbGFzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKHNpemUoKSAtIDEpOyB9Cisg
ICAgCisgICAgVmVjdG9yPFByb3BlcnR5VHlwZT4gdmFsdWVzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHZhbHVlczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRv
JiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2YWx1ZS0+dGVtcGxh
dGUgYXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9Cisg
ICAgCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBkZWVwQ29weSgpIGNv
bnN0OworfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMCArNzQsMTAgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVmWChMZW5ndGhN
b2RlV2lkdGgpCi0gICAgLCBtX3JlZlkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fbWFya2Vy
V2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpCi0gICAgLCBtX21hcmtlckhlaWdodChMZW5ndGhN
b2RlSGVpZ2h0LCAiMyIpIAorICAgICwgbV9yZWZYKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX3JlZlkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisg
ICAgLCBtX21hcmtlcldpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjMiKSkK
KyAgICAsIG1fbWFya2VySGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIz
IikpCiAgICAgLCBtX21hcmtlclVuaXRzKFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpCiAgICAg
LCBtX29yaWVudFR5cGUoU1ZHTWFya2VyT3JpZW50QW5nbGUpCiB7CkBAIC0yMTQsNyArMjE0LDcg
QEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0F1dG8oKQogCiB2b2lkIFNWR01h
cmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUmIGFuZ2xlKQogewotICAgIHNl
dE9yaWVudChTVkdNYXJrZXJPcmllbnRBbmdsZSwgYW5nbGUucHJvcGVydHlSZWZlcmVuY2UoKSk7
CisgICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS52YWx1ZVJlZmVyZW5j
ZSgpKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQpAQCAtMjQxLDEyICsyNDEsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50Ojpz
eW5jaHJvbml6ZU9yaWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+
IGF1dG9TdGFydFJldmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRv
IG9yIGF1dG8tc3RhcnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVP
cmllbnRBbmdsZSBhbHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUu
Ci0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50
QXV0bykgeworICAgIGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlLT5hczxTVkdNYXJr
ZXJPcmllbnRUeXBlPigpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJU
eXBlLm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVy
dHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2Vy
T3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSkKKyAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlwZS52
YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3Rh
cnRSZXZlcnNlKQogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZv
d25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0
YXJ0UmV2ZXJzZVN0cmluZyk7CiB9CiAKQEAgLTI2MiwxMSArMjYyLDExIEBAIFNWR01hcmtlck9y
aWVudFR5cGUmIFNWR01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAg
ICAgaWYgKHdyYXBwZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFw
cGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFw
cGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVy
LT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxTVkdNYXJrZXJPcmllbnRUeXBlPigpIDwgU1ZH
TWFya2VyT3JpZW50TWF4KTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNW
R01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxT
VkdNYXJrZXJPcmllbnRUeXBlPigpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gbV9v
cmllbnRUeXBlLnZhbHVlOworICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01h
cmtlck9yaWVudFR5cGU+KCk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+PiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRU
eXBlQW5pbWF0ZWQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShy
ZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05OCw4ICs5OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBzeW5jaHJvbml6ZU9yaWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBl
V3JhcHBlcihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50
VHlwZSYgb3JpZW50VHlwZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVu
dFR5cGVCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAg
ICB2b2lkIHNldE9yaWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYg
dHlwZSkgeyBtX29yaWVudFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50
VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50VHlwZS52
YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlw
ZUJhc2VWYWx1ZShjb25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVC
YXNlVmFsdWUoKSA9IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3Bl
cnR5VGVhck9mZjxTVkdNYXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAK
IHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMyw4ICsxMDMsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpw
YWlyPFNWR0FuCiAgICAgICAgICAgICBhbmdsZSA9IHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6
cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOwogICAgIH0K
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWdu
ZWQ+PiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhjb25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNw
cAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDEwIEBAIGlubGluZSBTVkdNYXNrRWxl
bWVudDo6U1ZHTWFza0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCiAgICAgLCBtX21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNU
Qk9VTkRJTkdCT1gpCiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0x
MCUiKQotICAgICwgbV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgo
TGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0
LCAiMTIwJSIpCisgICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEw
JSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikp
CisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkK
KyAgICAsIG1faGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikp
CiB7CiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAg
ICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVk
LCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01h
dHJpeCBiZWNvbWVzIGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1
YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisg
ICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgo
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01Miw3ICs1Miw3IEBA
IHB1YmxpYzoKIAogICAgIGRvdWJsZSBhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLmEoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuYSgpOwog
ICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEEoZG91YmxlIHZhbHVlKQpAQCAtNjAs
NyArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEEodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVy
ZW5jZSgpLnNldEEodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYigpCiAg
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5iKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZVJlZmVyZW5jZSgpLmIoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRCKGRvdWJsZSB2YWx1ZSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRC
KHZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg0LDcgKzg0LDcgQEAg
cHVibGljOgogCiAgICAgZG91YmxlIGMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkuYygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5jKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Qyhkb3VibGUgdmFsdWUpCkBAIC05Miw3
ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Qyh2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJl
bmNlKCkuc2V0Qyh2YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGQoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZCgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5kKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0RChkb3VibGUgdmFsdWUpCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9k
aWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5z
ZXREKHZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXREKHZhbHVlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExNiw3ICsxMTYs
NyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKS5lKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmUo
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFKGRvdWJsZSB2YWx1ZSkKQEAg
LTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJs
ZSBmKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuZigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEYoZG91YmxlIHZhbHVlKQpAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0Rih2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0Rih2YWx1ZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNTEs
NyArMTUxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1h
dHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJl
ZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC52YWx1ZVJlZmVyZW5jZSgpKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmlu
dmVyc2UoKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmludmVyc2Uo
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTE3NSw3ICsxNzUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS50cmFuc2xhdGUoeCwgeSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShyZXN1bHQpOwpAQCAtMTg2LDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5zY2FsZShzY2FsZUZhY3Rvcik7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1
ZVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xOTcsNyAr
MTk3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2Fs
ZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9y
WSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6
OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5yb3RhdGUoYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFs
dWVSZWZlcmVuY2UoKS5yb3RhdGUoYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAog
ICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxOSw3ICsyMTks
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsg
ICAgICAgIAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkucm90YXRlRnJv
bVZlY3Rvcih4LCB5KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTIz
Miw3ICsyMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFgoKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuZmxpcFgoKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CkBAIC0yNDMsNyArMjQzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZs
aXBZKCk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmZs
aXBZKCk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRy
aXg6OmNyZWF0ZShyZXN1bHQpOwpAQCAtMjU0LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5za2V3WChhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2
YWx1ZVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNjUsMTQgKzI2
NSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAg
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5za2V3WShhbmdsZSk7ICAg
ICAgICAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJp
eDo6Y3JlYXRlKHJlc3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTWF0cml4KFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4
VmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR051bWJlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1Byb3BlcnR5VGVh
ck9mZjxmbG9hdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIGZsb2F0JiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR051bWJlcihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAg
IH0KQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5n
cygpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUmVmZXJlbmNlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTU4LDE0ICs1OCwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpID0gdmFsdWU7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkgPSB2YWx1ZTsKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgU1ZHTnVtYmVyKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRl
YXJPZmY8ZmxvYXQ+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjk4NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NiwxMyArMzYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVz
PjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBj
cmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQ
cm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVt
YmVyTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlz
dFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1i
ZXJMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxT
VkdOdW1iZXJMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBw
ZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlz
dFZhbHVlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxp
c3RWYWx1ZXMuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJTVkdOdW1iZXJMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGls
aXRpZXMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNyArNDAsNyBAQCB2b2lk
IFNWR051bWJlckxpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgd2hpbGUgKHB0ciA8IGVu
ZCkgewogICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCBudW1iZXIpKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBhcHBlbmQobnVtYmVyKTsKKyAgICAgICAgYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8ZmxvYXQ+KG51bWJlcikpOwogICAgIH0KIH0KIApAQCAtNTIsNyArNTMs
NyBAQCBTdHJpbmcgU1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlm
IChpID4gMCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoYXQoaSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihh
dFJlZmVyZW5jZShpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAsMTUgKzIwLDE1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051
bWJlcjsKIGNsYXNzIFNWR051bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMg
ZmluYWwgOiBwdWJsaWMgVmVjdG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVz
IGZpbmFsIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lk
IHBhcnNlKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7
CkBAIC00Miw3ICs0Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R04KICAgICAgICAgbGlzdC5wYXJzZShzdHJpbmcpOwogICAgICAgICByZXR1cm4gbGlzdDsKICAg
ICB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gcGFyc2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3Ry
aW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IGZsb2F0OwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yODksNyArMjg5LDcgQEAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRM
aXN0VgogICAgICAgICB9CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7
CiAKLSAgICAgICAgcG9pbnRzTGlzdC5hcHBlbmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7Cisg
ICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxv
YXRQb2ludCh4UG9zLCB5UG9zKSkpOwogICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAh
ZGVsaW1QYXJzZWQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJl
YW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0u
aAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3Ry
ZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw4ICsxMDgsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlCiAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1G
cm9tU3RyaW5nKHN0cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAg
IHJldHVybiBieXRlU3RyZWFtOwogICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdQ
YXRoQnl0ZVN0cmVhbT4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODQsNyArODQsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBp
bmxpbmUgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJv
bGUpCisgICAgLCBtX3BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdVbmFs
dGVyZWRSb2xlKSkKICAgICAsIG1faXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnBhdGhUYWcpKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2
b2lkIFNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmIChtX3Bh
dGhTZWdMaXN0LnNob3VsZFN5bmNocm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29r
dXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlU
ZWFyT2ZmPih0aGlzLCBkUHJvcGVydHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAg
ICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsK
ICAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3Bh
dGhCeXRlU3RyZWFtLCAqdGhpcywgbmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAg
ICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlID0gV1RGTW92ZShuZXdMaXN0KTsKKyAgICAgICAgICAg
IG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpID0gV1RGTW92
ZShuZXdMaXN0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMzMSw4
ICszMzEsOCBAQCBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAgICAg
aWYgKGF1dG8gcHJvcGVydHkgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNW
R1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3du
ZXJUeXBlLCBkUHJvcGVydHlJbmZvKCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0g
ICAgaWYgKG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAg
YnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhC
eXRlU3RyZWFtLCBvd25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFs
dGVyZWRQYXJzaW5nKTsKKyAgICBpZiAob3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUtPmFz
PFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRo
U2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBv
d25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlz
dFZhbHVlcz4oKSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVy
VHlwZSwgZFByb3BlcnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9
CkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNW
R0VsZQogICAgIFNWR1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQYXRoRWxl
bWVudD4oKmNvbnRleHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BhdGhTZWdMaXN0
LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJUeXBlLm1fcGF0
aFNlZ0xpc3Quc3luY2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1
dGVOYW1lLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOwor
ICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9w
ZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUt
PmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5Niwx
MCArMzk2LDEwIEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYg
KGxpc3RNb2RpZmljYXRpb24gPT0gTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAg
ICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBh
cHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUu
bGFzdCgpLmNvcHlSZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0
VmFsdWVzPigpLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVh
bUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFs
dWVzPigpLmxhc3RSZWZlcmVuY2UoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0
ZXJlZFBhcnNpbmcpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9w
YXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1Bh
dGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUt
PmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQ
YXJzaW5nKTsKICAgICAgICAgbV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBhdGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0Ojpj
bGVhcigpCiB7CiAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1w
dHkoKSkKKyAgICBpZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4geyB9OwogICAgIHJldHVybiBCYXNlOjpjbGVhclZhbHVlcygpOwogfQpAQCAtNDIsMTUgKzQy
LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMKIAogRXhjZXB0
aW9uT3I8UmVmUHRyPFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0oUmVm
PFNWR1BhdGhTZWc+JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4
IDwgbV92YWx1ZXMtPnNpemUoKSkKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFySXRlbUNvbnRleHRB
bmRSb2xlKGluZGV4KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkp
CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFySXRlbUNvbnRleHRBbmRSb2xlKGluZGV4
KTsKICAgICByZXR1cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXMoV1RGTW92ZShuZXdJdGVtKSwg
aW5kZXgpOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTZWdM
aXN0OjpyZW1vdmVJdGVtKHVuc2lnbmVkIGluZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFs
dWVzLT5zaXplKCkpCi0gICAgICAgIG1fdmFsdWVzLT5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShp
bmRleCk7CisgICAgaWYgKGluZGV4IDwgdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQorICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CiAgICAg
YXV0byByZXN1bHQgPSBCYXNlOjpyZW1vdmVJdGVtVmFsdWVzKGluZGV4KTsKICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIg
QEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNp
bmcgTGlzdEl0ZW1UeXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+
OjpMaXN0SXRlbVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFs
dWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8
U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2Vn
Um9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdM
aXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBh
dGhTZWdVbmRlZmluZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00OCw5ICs0OCw5IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAKLSAgICAgICAgdW5z
aWduZWQgc2l6ZSA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSB2
YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisg
ICAgICAgICAgICBpZiAoaXRlbSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpKS0+YXM8TGlzdEl0
ZW1UeXBlPigpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAKQEAgLTYw
LDkgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBp
dGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGl0ZW1JbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSk7CiAKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hv
dWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAt
OTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdM
aXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlz
dFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQYXRo
U2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAg
ICAgOiBTVkdMaXN0UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KHJvbGUsIHZhbHVlcywg
JndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0
eSkKICAgICAgICAgLCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpAQCAtMTE1LDEzICsxMTUs
MTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewogICAg
ICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCpt
X2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtu
b3duKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVk
UHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKICAg
ICB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uIGxpc3RNb2RpZmlj
YXRpb24pIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBt
X3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50
KCksIGxpc3RNb2RpZmljYXRpb24pOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jb21taXRD
aGFuZ2UoKm1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNh
dGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNv
bnN0IExpc3RJdGVtVHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIGZpbmFs
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJ
KHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzggQEAgU1ZHUGF0aFNlZ0xp
c3RCdWlsZGVyOjpTVkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6
Om1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5h
dGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
TW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxz
ZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0K
IAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdMaW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1f
cGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZCht
X3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0
YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50Lnko
KSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb0hvcml6b250YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAg
aWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5h
cHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4
LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVl
OjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9Ib3Jpem9udGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9s
ZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZs
b2F0IHksIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29s
dXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1l
bnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsK
KyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJz
KHksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhT
ZWdMaXN0QnVpbGRlcjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0
aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGlu
YXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgp
LCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhT
ZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8
UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBv
aW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNl
Z1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxS
ZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9p
bnQxLnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9h
dFBvaW50JiBwb2ludDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRp
bmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQot
ICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0
aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54
KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9s
ZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0
cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBw
b2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6Y3VydmVUb1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZs
b2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBp
ZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2lu
dDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngo
KSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0K
IAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29u
c3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewog
ICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xp
c3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8
U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1Jv
bGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVt
ZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNl
Z0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBv
aW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNW
R1BhdGhTZWdMaXN0QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmds
ZSwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2Vn
Um9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJl
ZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0Zs
YWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFn
LCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEs
IHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9
CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCht
X3BhdGhTZWdSb2xlKSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aChtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDcgKzQzLDcgQEAgYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBi
b29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdU
eXBlJiBwYXRoU2VnVHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1f
aXRlbUN1cnJlbnQpOworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXRSZWZlcmVuY2Uo
bV9pdGVtQ3VycmVudCk7CiAgICAgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
VHlwZT4obV9zZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAg
ICAgcmV0dXJuIHRydWU7CkBAIC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3Vy
Y2U6OnBhcnNlU1ZHU2VnbWUKIAogU1ZHUGF0aFNlZ1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6
Om5leHRDb21tYW5kKFNWR1BhdGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNl
Z0xpc3QuYXQobV9pdGVtQ3VycmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5h
dFJlZmVyZW5jZShtX2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2VnVHlwZSBwYXRoU2VnVHlw
ZSA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkp
OwogICAgICsrbV9pdGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNlZ1R5cGU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIy
OTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBTVkdQYXRoU2VnTGlzdFZhbHVlczo6
Y29tbWl0Q2hhbmdlKAogCiB2b2lkIFNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250
ZXh0QW5kUm9sZSh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICBhdXRvJiBpdGVtID0gYXQoaW5kZXgp
OworICAgIGF1dG8mIGl0ZW0gPSBhdFJlZmVyZW5jZShpbmRleCk7CiAgICAgc3RhdGljX2Nhc3Q8
U1ZHUGF0aFNlZ1dpdGhDb250ZXh0Jj4oKml0ZW0pLnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIs
IFBhdGhTZWdVbmRlZmluZWRSb2xlKTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTAg
KzIwLDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHkuaCIK
KyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
NCw5ICszMyw5IEBAIGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
CiBjbGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVz
IDogcHVibGljIFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKK2NsYXNzIFNWR1BhdGhTZWdM
aXN0VmFsdWVzIDogcHVibGljIFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CiBw
dWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+OworICAg
IHVzaW5nIEJhc2UgPSBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj47CiAgICAgCiAg
ICAgZXhwbGljaXQgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoU1ZHUGF0aFNlZ1JvbGUgcm9sZSkKICAg
ICAgICAgOiBtX3JvbGUocm9sZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRp
bGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxp
dGllcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
VXRpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgYXBw
ZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFMKICAgICBBU1NFUlQocGFyc2luZ01vZGUg
PT0gVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBhcHBlbmRl
ZEl0ZW1MaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKLSAgICBhcHBlbmRlZEl0ZW1MaXN0LmFw
cGVuZChXVEZNb3ZlKHBhdGhTZWcpKTsKKyAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlKFdURk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFt
IGFwcGVuZGVkQnl0ZVN0cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBw
ZW5kZWRJdGVtTGlzdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1Ymxp
YyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdQb2ludD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBmbG9hdCB4KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngo
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkueCgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFgoZmxvYXQgeFZhbHVlKQpAQCAtNjEsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFgoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRYKHhW
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZl
cmVuY2UoKS55KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4
VmFsdWUpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAg
ICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg4LDE5ICs4OCwxOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIG5ld1BvaW50ID0g
cHJvcGVydHlSZWZlcmVuY2UoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnByb3BlcnR5UmVmZXJl
bmNlKCkpOworICAgICAgICBhdXRvIG5ld1BvaW50ID0gdmFsdWVSZWZlcmVuY2UoKS5tYXRyaXhU
cmFuc2Zvcm0obWF0cml4LnZhbHVlUmVmZXJlbmNlKCkpOwogICAgICAgICBjb21taXRDaGFuZ2Uo
KTsKIAogICAgICAgICByZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNW
R1BvaW50KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxv
YXRQb2ludCYgdmFsdWUpCisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxG
bG9hdFBvaW50PihudWxscHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTMgQEAg
cHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVy
Q2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlz
dFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFNWR1BvaW50TGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykK
KyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJl
ZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdQb2ludExpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RX
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZwogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAK
LSAgICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYg
cG9pbnQgPSBhdFJlZmVyZW5jZShpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9p
bnQueCgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmROdW1iZXIocG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE1ICsyMiwxNSBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZh
bHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50OwogY2xhc3Mg
U1ZHUG9pbnRMaXN0OwogCi1jbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMg
VmVjdG9yPEZsb2F0UG9pbnQ+IHsKK2NsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1
YmxpYyBTVkdMaXN0VmFsdWVzPEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcgdmFs
dWVBc1N0cmluZygpIGNvbnN0OwogfTsKQEAgLTQzLDggKzQ0LDYgQEAgc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbAogICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEo
bGlzdCwgc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFNWR1BvaW50TGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0K
LSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAKICAgICB1c2lu
ZyBMaXN0SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9
IFNWR1BvaW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJv
cGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0
Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRl
cl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJz
KG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IFdURk1vdmUobmV3
TGlzdCk7CisgICAgICAgIHBvaW50TGlzdCgpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6
OnN5bmNocm9uaXplUG9pbnRzKFMKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0gZG93
bmNhc3Q8U1ZHUG9seUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5
cGUubV9wb2ludHMuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBvd25l
clR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJbmZv
KCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3RyaW5n
KCkpOworICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2lu
dHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLnBvaW50TGlzdCgpLnZh
bHVlQXNTdHJpbmcoKSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5RWxl
bWVudDo6bG9va3VwT3JDcmVhdGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIyOTg1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMo
KTsKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9p
bnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsg
fQorICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9w
b2ludHMudmFsdWUtPmFzPFNWR1BvaW50TGlzdFZhbHVlcz4oKTsgfQogCiAgICAgc3RhdGljIGNv
bnN0IFNWR1Byb3BlcnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjI5ODU5
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpKTsKICAgICB9CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVk
IHNob3J0IGFsaWduKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LmFsaWduKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmFsaWduKCk7CiAgICAg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24oZmxvYXQgdmFsdWUpCkBAIC01OSw3
ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7CiAg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IG1l
ZXRPclNsaWNlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1l
ZXRPclNsaWNlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLm1lZXRPclNsaWNl
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxvYXQg
dmFsdWUpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRN
ZWV0T3JTbGljZSh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC04Niw3ICs4Niw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0
eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTgsMTIgKzU4LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVT
CiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4KExl
bmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQsICI1MCUi
KQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUwJSIpCi0gICAgLCBtX2Z4KExlbmd0aE1v
ZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fZnIoTGVuZ3Ro
TW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lk
dGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwg
IjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjUwJSIp
KQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9m
eShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fZnIoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgY3gv
Y3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBh
IHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNW
R05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCShyZXZp
c2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUmVj
dCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgc3Rh
dGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
CiAgICAgZmxvYXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2Uo
KS54KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLngoKTsKICAgICB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0
WCh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9
OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
UmVmZXJlbmNlKCkueSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxv
YXQgeFZhbHVlKQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsK
KyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogICAgIGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVy
ZW5jZSgpLndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLndpZHRoKCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgoZmxvYXQgd2lkdGhWYWx1
ZSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
IH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsK
KyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzk0LDcgQEAg
cHVibGljOgogCiAgICAgZmxvYXQgaGVpZ2h0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLmhlaWdodCgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2Uo
KS5oZWlnaHQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQoZmxv
YXQgaGVpZ2h0VmFsdWUpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEhl
aWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhl
aWdodFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkK
KyAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAg
OiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTEgKzc0LDEyIEBAIEVORF9SRUdJU1RFUl9BTklN
QVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNW
R0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2Rl
V2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3Ro
TW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1v
ZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVl
KExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhl
aWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVND
SUlMaXRlcmFsKCIxMDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZUhlaWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVy
KFNNSUxUaW1lQ29udGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNs
YXRlKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNG
b3JTVkdTVkdFbGVtZW50KCk7CkBAIC0yMDAsOSArMjAxLDkgQEAgUmVmPFNWR1BvaW50PiBTVkdT
VkdFbGVtZW50OjpjdXJyZW50VHJhbgogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRU
cmFuc2xhdGUoY29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1fY3Vy
cmVudFRyYW5zbGF0ZSA9PSB0cmFuc2xhdGlvbikKKyAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRl
LT5hczxGbG9hdFBvaW50PigpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAg
bV9jdXJyZW50VHJhbnNsYXRlID0gdHJhbnNsYXRpb247CisgICAgbV9jdXJyZW50VHJhbnNsYXRl
LT5hczxGbG9hdFBvaW50PigpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVudFRyYW5z
bGF0ZSgpOwogfQogCkBAIC0zMzgsMTIgKzMzOSwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0Vs
ZW1lbnQ6OmNvbGxlY3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0aG91
dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0g
ICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50
LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRl
clNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJl
Y3QudmFsdWVSZWZlcmVuY2UoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBjaGVja0VuY2xvc3Vy
ZVdpdGhvdXRVcGRhdGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiByZWN0
KQogewotICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxl
bWVudC5yZW5kZXJlcigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCBy
ZWN0LnZhbHVlUmVmZXJlbmNlKCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6
OmdldEludGVyc2VjdGlvbkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJlbmNl
RWxlbWVudCkKQEAgLTQxNyw3ICs0MTgsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVt
ZW50OjpjcmVhdGVTCiAKIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNW
R1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiB7Ci0gICAgcmV0dXJuIFNW
R1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4LnByb3BlcnR5UmVm
ZXJlbmNlKCkgfSk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9y
bVZhbHVlIHsgbWF0cml4LnZhbHVlUmVmZXJlbmNlKCkgfSk7CiB9CiAKIEFmZmluZVRyYW5zZm9y
bSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFi
bGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV91c2VDdXJyZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29t
QW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250YWlu
ZXI+IG1fdGltZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0ZTsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8U1ZH
Vmlld1NwZWM+IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVudElk
ZW50aWZpZXI7CiB9OwpAQCAtMTc2LDcgKzE3Niw3IEBAIGlubGluZSBib29sIFNWR1NWR0VsZW1l
bnQ6OnVzZUN1cnJlbnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6Y3Vy
cmVudFRyYW5zbGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRlOwor
ICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9pbnQ+KCk7CiB9CiAKIGlu
bGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5kUGFuKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
MTIgKzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz47
CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
Zjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3Jl
YXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50LCB2
YWx1ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmluZ0xp
c3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxTVkdT
dHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVy
dHlSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMuIEl0
J3Mgb25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHU3Ry
aW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBT
VkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRleHRF
bGVtZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM5LDcg
KzQwLDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldChjb25zdCBTdAogCiAgICAg
Ly8gQWRkIGVtcHR5IHN0cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0eSgp
KQotICAgICAgICBhcHBlbmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFN0cmluZz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmluZ0xp
c3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpAQCAt
NTYsNyArNTcsNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAg
ICAgICAgICAgICBwdHIrKzsKICAgICAgICAgaWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOworICAg
ICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRyIC0g
c3RhcnQpKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwg
ZW5kLCBkZWxpbWl0ZXIpOwogICAgIH0KIH0KQEAgLTcwLDcgKzcxLDcgQEAgU3RyaW5nIFNWR1N0
cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkp
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2UoaSkpOwogICAgIH0KIAogICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMyw3ICsx
NCw3IEBACiAgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KICAqCiAgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG/iiKsKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwpAQCAtMjEsOCArMjIsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJRdWFsaWZpZWRO
YW1lLmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5
VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTMyLDcgKzMzLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IAogY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdTdHJpbmdMaXN0
VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNWR1N0cmluZ0xp
c3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTdHJpbmc+IHsKIHB1YmxpYzoK
ICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsOSBAQCBzdGF0aWMg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9CiAKIFNWR1Rlc3RzOjpTVkdUZXN0
cygpCi0gICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAg
LCBtX3JlcXVpcmVkRXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICwgbV9z
eXN0ZW1MYW5ndWFnZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgOiBtX3JlcXVpcmVkRmVhdHVy
ZXMoU1ZHU3RyaW5nTGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikpCisgICAgLCBtX3Jl
cXVpcmVkRXh0ZW5zaW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVpcmVkRXh0ZW5zaW9uc0F0
dHIpKQorICAgICwgbV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdMaXN0VmFsdWVzKHN5c3RlbUxh
bmd1YWdlQXR0cikpCiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIwIEBAIGJvb2wgU1ZHVGVzdHM6
Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcKIAogYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNv
bnN0CiB7Ci0gICAgZm9yIChhdXRvJiBmZWF0dXJlIDogbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVl
KSB7CisgICAgYXV0byBmZWF0dXJlcyA9IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS0+YXM8U1ZH
U3RyaW5nTGlzdFZhbHVlcz4oKS52YWx1ZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBm
ZWF0dXJlcykgewogICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNW
R0ZlYXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZhbHVl
KSB7CisgICAgCisgICAgYXV0byBsYW5ndWFnZXMgPSBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5h
czxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgbGFuZ3Vh
Z2UgOiBsYW5ndWFnZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRlZmF1bHRMYW5ndWFn
ZSgpLnN1YnN0cmluZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkgewor
ICAgIAorICAgIGF1dG8gZXh0ZW5zaW9ucyA9IG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5h
czxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgZXh0ZW5z
aW9uIDogZXh0ZW5zaW9ucykgewogICAgICAgICBpZiAoIWhhc0V4dGVuc2lvbihleHRlbnNpb24p
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE3MiwxMSArMTc3LDExIEBA
IGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdUZXN0czo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEZlYXR1cmVz
QXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAg
ICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigp
LnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEV4dGVuc2lv
bnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS5yZXNldCh2YWx1ZSk7
CisgICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFs
dWVzPigpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5n
dWFnZUF0dHIpCi0gICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOwor
ICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigp
LnJlc2V0KHZhbHVlKTsKIH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQg
U1ZHVGVzdHM6OnN5bmNocm9uaXplQXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3BlcnR5
LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZlYXR1
cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHku
dmFsdWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25p
emUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS0+YXM8U1ZH
U3RyaW5nTGlzdFZhbHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rlc3Rz
OjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDggQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV90
ZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChM
ZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyKSkKKyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0U3Bh
Y2luZykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250ZW50
RWxlbWVudCgpOwpAQCAtOTgsNyArOTgsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1Rl
eHRDb250ZW50RWxlCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZhbHVl
PiBkZWZhdWx0VGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmll
ZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0aC52
YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVk
VGV4dExlbmd0aCgpKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdMZW5ndGhW
YWx1ZT4oKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1
dGVkVGV4dExlbmd0aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5jaHJvbml6ZSA9
IHRydWU7CiAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmltYXRlZExlbmd0
aD4obG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0xNjEsNyArMTYx
LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAogaW50IFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50KQog
ewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
Ci0gICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBv
c2l0aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBTVkdUZXh0UXVl
cnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52YWx1ZVJlZmVy
ZW5jZSgpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpz
ZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzKQpAQCAtMjMy
LDcgKzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnUKICAg
ICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVuZ3RoQWRqdXN0
QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1l
czo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9IFNWR0xlbmd0
aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9y
YmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdM
ZW5ndGhWYWx1ZT4oKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVy
LCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKIAogICAgIHJlcG9y
dEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKQEAgLTI0
OCw3ICsyNDgsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAg
ICAgfQogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAg
ICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLnZhbHVlOworICAgICAg
ICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWUtPmFzPFNWR0xlbmd0
aFZhbHVlPigpOwogCiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNmb3Jt
OjptYXRyaXgoKQogewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMs
IHByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRyaXhU
ZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHZhbHVlUmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5o
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9y
bVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3Jt
PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHksIHJv
bGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTIsMTQgKzUyLDE0IEBAIHB1YmxpYzoKIAogICAgIHVu
c2lnbmVkIHNob3J0IHR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkudHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS50eXBlKCk7CiAg
ICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmdsZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOworICAg
ICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5hbmdsZSgpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAgLTY3LDcgKzY3LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOwor
ICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgudmFsdWVSZWZlcmVuY2Uo
KSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03
OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CisgICAgICAg
IHZhbHVlUmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJl
bmNlKCkuc2V0U2NhbGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTY2Fs
ZShzeCwgc3kpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9
OwpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Um90YXRlKGFuZ2xlLCBjeCwg
Y3kpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExMSw3
ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVS
ZWZlcmVuY2UoKS5zZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC0xMjIsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNl
dFNrZXdZKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTa2V3WShhbmdsZSk7
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
CiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVl
KQorICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0ZWRQ
cm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIzLDcgQEAKIAogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRl
ICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMx
LDIwICszMywxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlz
dD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3Jh
cHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZH
VHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUmVmZXJl
bmNlKCkuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAgewot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAK
ICAgICAgICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1MiwyMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwog
CiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBsaXN0IHdhcyBlbXB0eSwgdGhlbiBhIHZhbHVlIG9m
IG51bGwgaXMgcmV0dXJuZWQuCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAg
ICAgICBpZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAg
ICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0
ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUmVmZXJl
bmNlKCkuY29uc29saWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXIt
PmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZSh3cmFw
cGVyKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBw
ZXJzKQorICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBh
bmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1Zh
bHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVy
dHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQxLDcgKzQyLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAg
Y2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNy
ZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5z
Zm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUzLDcgQEAgYm9vbCBTVkdU
cmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQg
Kj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBhdFJlZmVyZW5jZShpKS5tYXRy
aXgoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgU1ZH
VHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQo
aSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2Uo
aSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5o
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxOCArMjAsMTkgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5z
Zm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVz
LmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsK
IAorY2xhc3MgU1ZHTWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNm
b3JtTGlzdDsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBW
ZWN0b3I8U1ZHVHJhbnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVi
bGljOgogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
U1ZHTWF0cml4JikgY29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsK
QEAgLTUwLDcgKzUxLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
VAogICAgICAgICB2YWx1ZXMucGFyc2Uoc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHZhbHVlczsK
ICAgICB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4g
cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52
YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9y
bVZhbHVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlz
aW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MCw1ICs5MCwxMCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFNWR1RyYW5zZm9yCiB7CiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KKyAgICAKK3RlbXBs
YXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPiB7CisgICAg
c3RhdGljIFNWR1RyYW5zZm9ybVZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIHRyYW5z
Zm9ybSkgeyByZXR1cm4gdHJhbnNmb3JtLnZhbHVlQXNTdHJpbmcoKTsgfQorfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxl
LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bWFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdUcmFu
c2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dAogICAgICAgICBpZiAoIXBhcnNlVHJhbnNmb3Jt
VmFsdWUodHlwZSwgY3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2Zvcm0pKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGxpc3QuYXBwZW5kKHRyYW5zZm9ybSk7CisgICAgICAg
IGxpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5zZm9y
bSkpOwogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyclRyYW5zZm9ybSwgZW5kKTsK
ICAgICAgICAgaWYgKGN1cnJUcmFuc2Zvcm0gPCBlbmQgJiYgKmN1cnJUcmFuc2Zvcm0gPT0gJywn
KSB7CiAgICAgICAgICAgICBkZWxpbVBhcnNlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFs
dWUuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDQxICsyNiwxODYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExp
c3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR01h
cmtlclR5cGVzLmgiCisjaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKICNpbmNsdWRlICJTVkdO
dW1iZXJMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJTVkdQYXRoU2VnTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVl
cy5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUg
IlNWR1Byb3BlcnR5SW5mby5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5j
bHVkZSAiU1ZHU3RyaW5nTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXMuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm1WYWx1ZS5oIgogCiAjaW5jbHVkZSA8d3Rm
L1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBTVkdWYWx1ZVZhcmlh
bnQgPSBWYXJpYW50PAotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qLAot
ICAgIGJvb2wqLAotICAgIENvbG9yKiwKLSAgICB1bnNpZ25lZCosCi0gICAgaW50KiwKLSAgICBz
dGQ6OnBhaXI8aW50LCBpbnQ+KiwKLSAgICBTVkdMZW5ndGhWYWx1ZSosCi0gICAgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyosCi0gICAgZmxvYXQqLAotICAgIFNWR051bWJlckxpc3RWYWx1ZXMqLAotICAg
IHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+KiwKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSosCi0gICAg
U1ZHUG9pbnRMaXN0VmFsdWVzKiwKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqLAot
ICAgIEZsb2F0UmVjdCosCi0gICAgU3RyaW5nKiwKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
KgorICAgIFNWR0FuZ2xlVmFsdWUsCisgICAgYm9vbCwKKyAgICBDb2xvciwKKyAgICB1bnNpZ25l
ZCwKKyAgICBpbnQsCisgICAgU1ZHTGVuZ3RoVmFsdWUsCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVl
cywKKyAgICBTVkdNYXRyaXhWYWx1ZSwKKyAgICBmbG9hdCwKKyAgICBTVkdOdW1iZXJMaXN0VmFs
dWVzLAorICAgIFNWR1BhdGhCeXRlU3RyZWFtLAorICAgIFJlZlB0cjxTVkdQYXRoU2VnPiwKKyAg
ICBTVkdQYXRoU2VnTGlzdFZhbHVlcywKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUs
CisgICAgRmxvYXRQb2ludCwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgRmxvYXRSZWN0
LAorICAgIFN0cmluZywKKyAgICBTVkdTdHJpbmdMaXN0VmFsdWVzLAorICAgIFNWR1RyYW5zZm9y
bVZhbHVlLAorICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKID47CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZT4KK3N0cnVjdCBTVkdUcmFpdEhhc1RvU3RyaW5nIHsKK3ByaXZhdGU6
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6dHJ1ZV90eXBlIHRlc3QoZGVj
bHR5cGUoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+Ojp0b1N0cmluZykpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0YXRpYyBzdGQ6OmZhbHNlX3R5cGUgdGVzdCguLi4pOworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfc2FtZTxkZWNsdHlwZSh0ZXN0
PFByb3BlcnR5VHlwZT4oMCkpLCBzdGQ6OnRydWVfdHlwZT46OnZhbHVlOworfTsKKwordGVtcGxh
dGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorc3RydWN0IFNWR1RyYWl0SGFzUGFyc2UgeworcHJp
dmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgc3RkOjp0cnVlX3R5cGUgdGVz
dChkZWNsdHlwZSgmU1ZHUHJvcGVydHlUcmFpdHM8VD46OnBhcnNlKSk7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSB0ZXN0KC4uLik7CitwdWJsaWM6Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gc3RkOjppc19zYW1lPGRlY2x0eXBlKHRl
c3Q8UHJvcGVydHlUeXBlPigwKSksIHN0ZDo6dHJ1ZV90eXBlPjo6dmFsdWU7Cit9OworCitjbGFz
cyBTVkdWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1ZhbHVlPiwgcHVibGljIFNWR1ZhbHVl
VmFyaWFudCB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgor
ICAgIHN0YXRpYyBSZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gY3JlYXRlPFByb3BlcnR5VHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6
aW5pdGlhbFZhbHVlKCkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5
cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiog
PSBudWxscHRyPgorICAgIHN0YXRpYyBSZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdW
YWx1ZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkJj4odmFsdWUpKSk7CisgICAgfQor
CisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3Rk
Ojppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBS
ZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdWYWx1ZSh2YWx1ZSkpOworICAgIH0KKwor
ICAgIHN0YXRpYyBSZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZhbHVlKHZhbHVlKSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wgaXMo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UHJv
cGVydHlUeXBlPigqdGhpcykgfHwgKHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZSAm
JiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAg
IHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19l
bnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgYXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNvbnN0IFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIGFzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0
eVR5cGU+KCkpOworICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7
CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAg
UHJvcGVydHlUeXBlJiBhcygpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UHJvcGVydHlUeXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjpp
c19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFByb3BlcnR5VHlw
ZSYgYXMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAg
ICAgIHJldHVybiBXVEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQo
WyZdKGNvbnN0IGF1dG8mIHZhbHVlKSB7CisgICAgICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUg
PSBzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUodmFsdWUpPjsKKyAgICAgICAgICAgIHJldHVybiB0b1N0
cmluZzxQcm9wZXJ0eVR5cGU+KHZhbHVlKTsKKyAgICAgICAgfSwgc3RhdGljX2Nhc3Q8Y29uc3Qg
U1ZHVmFsdWVWYXJpYW50Jj4oKnRoaXMpKTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFsmXShhdXRvJiB2YWx1ZSkgeworICAgICAgICAgICAg
dXNpbmcgUHJvcGVydHlUeXBlID0gc3RkOjpkZWNheV90PGRlY2x0eXBlKHZhbHVlKT47CisgICAg
ICAgICAgICByZXR1cm4gcGFyc2U8UHJvcGVydHlUeXBlPih2YWx1ZSwgYXR0ck5hbWUsIHN0cmlu
Zyk7CisgICAgICAgIH0sIHN0YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAg
ICBleHBsaWNpdCBTVkdWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6
IFNWR1ZhbHVlVmFyaWFudCh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0
eVR5cGU+KCkpOworICAgIH0KKworICAgIFNWR1ZhbHVlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkK
KyAgICAgICAgOiBTVkdWYWx1ZVZhcmlhbnQoc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJp
YW50Jj4odmFsdWUpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4KCkgPT0gdmFsdWUuaW5k
ZXgoKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6
OmVuYWJsZV9pZl90PFNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9
IG51bGxwdHI+CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBQcm9wZXJ0eVR5cGUm
IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5
VHlwZT46OnRvU3RyaW5nKHZhbHVlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVy
dHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBQcm9wZXJ0eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1BhcnNlPFBy
b3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBib29sIHBhcnNlKFBy
b3BlcnR5VHlwZSYgdmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBT
dHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IFNWR1Byb3Bl
cnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnBhcnNlKGF0dHJOYW1lLCBzdHJpbmcpKSB7CisgICAg
ICAgICAgICB2YWx1ZSA9ICpyZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3Bl
cnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBib29sIHBhcnNlKFByb3Bl
cnR5VHlwZSYsIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgRU5EX1JF
R0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmll
d0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBh
bihTVkdab29tQW5kUGFuTWFnbmlmeSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdOYW1lczo6dmll
d1RhcmdldEF0dHIpCisgICAgLCBtX3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJp
bmdMaXN0VmFsdWVzKFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikpKQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKFNWR05hbWVzOjp2aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3Bl
cnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwpAQCAtNjMsNyArNjMsNyBAQCBSZWY8U1ZHU3RyaW5n
TGlzdD4gU1ZHVmlld0VsZW1lbnQ6OnZpZXdUCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKLSAgICAg
ICAgbV92aWV3VGFyZ2V0LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgbV92aWV3VGFyZ2V0LT5hczxT
VkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0KHZhbHVlKTsKIAogICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRU
b1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBA
QCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogICAgIFNW
R1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsKLSAgICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1f
dmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld1RhcmdldDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3Bl
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOSBAQCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIFNW
R1ZpZXdTcGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBj
b250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQor
ICAgICwgbV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
PigpKQorICAgICwgbV92aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRSZWN0PigpKQorICAg
ICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlPigpKQogewogfQogCkBAIC0xMDgsMTcgKzExMSwxNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFuCiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dHJh
bnNmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNmb3JtKTsKKyAgICByZXR1cm4g
bV90cmFuc2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dmlld0Jv
eFN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVj
dD46OnRvU3RyaW5nKG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1fdmlld0JveC0+dG9TdHJpbmco
KTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXR1cm4g
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmluZygpOwogfQogCiBTVkdFbGVtZW50KiBTVkdW
aWV3U3BlYzo6dmlld1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSArMTgwLDkgQEAgUmVmPFNWR0Fu
aW1hdGVkUHJvcGVydHk+IFNWR1ZpZXdTcGVjOjpsbwogdm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQo
KQogewogICAgIG1fem9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5NYWduaWZ5OwotICAgIG1fdHJh
bnNmb3JtLmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94ID0geyB9OwotICAgIG1fcHJlc2VydmVBc3Bl
Y3RSYXRpbyA9IHsgfTsKKyAgICBtX3RyYW5zZm9ybS0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cz4oKS5jbGVhcigpOworICAgIG1fdmlld0JveC0+YXM8RmxvYXRSZWN0PigpID0geyB9OworICAg
IG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigp
ID0geyB9OwogICAgIG1fdmlld1RhcmdldFN0cmluZyA9IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAg
LTI2MSw3ICsyNjQsNyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0
CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9
ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmll
d1NwZWMrKzsKLSAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0
cmlidXRlKG1fdHJhbnNmb3JtLCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6
RG9Ob3RDbGVhckxpc3QpOworICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFu
c2Zvcm1BdHRyaWJ1dGUobV90cmFuc2Zvcm0tPmFzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCks
IGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAg
ICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcp
JykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1Nw
ZWMrKzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCShyZXZpc2lvbiAyMjk4NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUs
MTcgKzU1LDE3IEBAIHB1YmxpYzoKIAogICAgIC8vIEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5z
Zm9ybScgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgp
OwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5z
Zm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLT5hczxTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzPigpOyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHBy
b3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFJlY3Q+IHZpZXdCb3hBbmltYXRlZCgpOwot
ICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAgIHZvaWQg
c2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94
ID0gdmlld0JveDsgfQorICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0Jv
eC0+YXM8RmxvYXRSZWN0PigpOyB9CisgICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0
IEZsb2F0UmVjdCYgdmlld0JveCkgeyB0aGlzLT52aWV3Qm94KCkgPSB2aWV3Qm94OyB9CiAKICAg
ICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHByb3BlcnR5LgogICAg
IFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0
aW9BbmltYXRlZCgpOwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVB
c3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotICAgIHZvaWQg
c2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0g
cHJlc2VydmVBc3BlY3RSYXRpbzsgfQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYg
cHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpOyB9CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJl
c2VydmVBc3BlY3RSYXRpbykgeyB0aGlzLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgPSBwcmVzZXJ2
ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZH
RWxlbWVudCYpOwpAQCAtODQsOSArODQsOSBAQCBwcml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCog
bV9jb250ZXh0RWxlbWVudDsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBT
Vkdab29tQW5kUGFuTWFnbmlmeSB9OwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFu
c2Zvcm07Ci0gICAgRmxvYXRSZWN0IG1fdmlld0JveDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90
cmFuc2Zvcm07CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0
cmluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2Zm
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSwy
MiArNTYsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9w
ZXJ0eVRlYXJPZmY8dW5zaWduZWQ+OjpzZXRCYXNlVmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5
cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBFbnVtVHlwZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1l
cmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2Zm
PEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQmPihwcm9wZXJ0eSkpKTsKLSAgICB9Ci0K
LSAgICBFbnVtVHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQotICAgIHsKLSAgICAgICAgdW5z
aWduZWQmIGFuaW1hdGVkVmFsdWUgPSBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1
bnNpZ25lZD46OmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7Ci0gICAgICAgIEFTU0VSVChhbmltYXRl
ZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJhaXRzPEVudW1UeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSgp
KTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RW51bVR5cGUmPihhbmltYXRlZFZh
bHVlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
blByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUs
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3Bl
cnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQotICAgICAg
ICA6IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxl
bWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAg
IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJv
cGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25l
ZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2
YWx1ZSkKICAgICB7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAko
cmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcg
QEAgcHVibGljOgogICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQ
cm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpMaXN0UHJvcGVydHlUZWFyT2ZmOwogICAgIHVz
aW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1
ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVy
dHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQs
IGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTg1LDQ0
ICs4NSw1MCBAQCBwdWJsaWM6CiAgICAgICAgIExpc3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBw
ZXJzQW5kUmVzaXplKCZtX3dyYXBwZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAgfQogCi0gICAgUHJv
cGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBj
dXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmlt
YXRpbmcoKSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwog
ICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0
CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlczsKICAgICB9CisgICAgCisgICAgUHJvcGVydHlU
eXBlJiB2YWx1ZXNSZWZlcmVuY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFs
dWVzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAg
fQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwg
Ym9vbCBzaG91bGRPd25WYWx1ZXMgPSBmYWxzZSkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VS
VCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFT
U0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAg
ICAgICBBU1NFUlQobV9hbmltYXRlZFdyYXBwZXJzLmlzRW1wdHkoKSk7CiAKICAgICAgICAgLy8g
U3dpdGNoIHRvIG5ldyBwYXNzZWQgaW4gdmFsdWUgdHlwZSAmIG5ldyB3cmFwcGVycyBsaXN0LiBU
aGUgbmV3IHdyYXBwZXJzIGxpc3QgbXVzdCBiZSBjcmVhdGVkIGZvciB0aGUgbmV3IHZhbHVlLgot
ICAgICAgICBpZiAoIW5ld0FuaW1WYWwtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fYW5pbWF0
ZWRXcmFwcGVycy5maWxsKDAsIG5ld0FuaW1WYWwtPnNpemUoKSk7CisgICAgICAgIGlmIChzaXpl
X3Qgc2l6ZSA9IG5ld0FuaW1WYWwtPmFzPFByb3BlcnR5VHlwZT4oKS5zaXplKCkpCisgICAgICAg
ICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKIAogICAgICAgICBtX2FuaW1h
dGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0
VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxk
T3duVmFsdWVzKTsKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCku
c2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZt
X2FuaW1hdGVkV3JhcHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52
YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygp
LnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCku
c2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0KIAogICAgIHZvaWQg
YW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUo
KSk7CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgp
ID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NF
UlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9hbmlt
YXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1h
dGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXpl
KCkpOwogCi0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMo
Jm1fdmFsdWVzLCAmbV93cmFwcGVycywgZmFsc2UpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVy
cygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3Jh
cHBlcnMobV92YWx1ZXMsICZtX3dyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53
cmFwcGVycygpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKICAgICAgICAgbV9hbmlt
YXRlZFdyYXBwZXJzLmNsZWFyKCk7CkBAIC0xNDIsMzQgKzE0OCwzNCBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIEFsc28gZXhpc3Rpbmcgd3JhcHBlcnMgd2hpY2ggcG9pbnQgZGlyZWN0bHkgYXQgZWxl
bWVudHMgaW4gdGhlIGV4aXN0aW5nIFNWR0xlbmd0aExpc3RWYWx1ZXMgaGF2ZSB0byBiZSBkZXRh
Y2hlZCAoc28gYSBjb3B5CiAgICAgICAgIC8vIG9mIHRoZW0gaXMgY3JlYXRlZCwgc28gZXhpc3Rp
bmcgYW5pbVZhbCB2YXJpYWJsZXMgaW4gSlMgYXJlIGtlcHQtYWxpdmUpLiBJZiB3ZSdkIGRldGFj
aCB0aGVtIGxhdGVyIHRoZSB1bmRlcmx5aW5nCiAgICAgICAgIC8vIFNWR0xlbmd0aExpc3RWYWx1
ZXMgd2FzIGFscmVhZHkgbXV0YXRlZCwgYW5kIG91ciBsaXN0IGl0ZW0gd3JhcHBlciB0ZWFyIG9m
ZnMgd291bGQgcG9pbnQgbm93aGVyZS4gQXNzZXJ0aW9ucyB3b3VsZCBmaXJlLgotICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHkt
PnZhbHVlcygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlz
dFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsK
IAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0g
bV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVCht
X2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX2FuaW1hdGVk
UHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQ
cm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7
CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCiAgICAgewotICAgICAgICBB
U1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNT
RVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAg
ICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAgIH0KIAogICAgIHZvaWQgYW5p
bVZhbERpZENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09
IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNp
emUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJ
Zk5lZWRlZCgpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3Bl
cnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkK
ICAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgewotICAgICAgICBpZiAoIXZhbHVlcy5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7
CisgICAgICAgIGlmICghdmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAg
bV93cmFwcGVycy5maWxsKDAsIHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSk7CiAgICAgfQogCi0g
ICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVz
OwogCiAgICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwogICAgIExpc3RXcmFwcGVyQ2Fj
aGUgbV9hbmltYXRlZFdyYXBwZXJzOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTMxLDcgKzMyLDcgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhcgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OwogCi0gICAgc3RhdGljIFJlZjxTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYg
dmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNzUsOSArNzYsOCBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVCghbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKTsKICAgICAg
ICAgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtID0gYnl0ZVN0cmVhbTsKIAotICAgICAgICAvLyBQ
YXNzIHNob3VsZE93blZhbHVlcz10cnVlLCBhcyB0aGUgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbGlm
ZXRpbWUgaXMgc29sZWx5IG1hbmFnZWQgYnkgaXRzIHRlYXIgb2ZmIGNsYXNzLgotICAgICAgICBh
dXRvKiBjb3B5ID0gbmV3IFNWR1BhdGhTZWdMaXN0VmFsdWVzKCpiYXNlVmFsdWUpOwotICAgICAg
ICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHksIHRydWUpOworICAgICAgICBhdXRvIGNvcHkg
PSBTVkdWYWx1ZTo6Y3JlYXRlKCpiYXNlVmFsdWUpOworICAgICAgICBCYXNlOjphbmltYXRpb25T
dGFydGVkKGNvcHkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtOTUs
NyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElmIHRoZSBhbmltVmFsIGlzIG9ic2VydmVk
IGZyb20gSlMsIHdlIGhhdmUgdG8gdXBkYXRlIGl0IG9uIGVhY2ggYW5pbWF0aW9uIHN0ZXAuCiAg
ICAgICAgIC8vIFRoaXMgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBhbmQgb25seSBkb25lLCBp
ZiBzb21lb25lIGFjdHVhbGx5IG9ic2VydmVzIHRoZSBhbmltYXRlZFBhdGhTZWdMaXN0KCkgd2hp
bGUgYW4gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAgICAgICAgIGlmIChwYXRoRWxlbWVudC0+aXNB
bmltVmFsT2JzZXJ2ZWQoKSkgewotICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3Vy
cmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IGN1
cnJlbnRBbmltYXRlZFZhbHVlKCktPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpOwogICAgICAg
ICAgICAgYW5pbWF0ZWRMaXN0LmNsZWFyKCk7CiAgICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdM
aXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0oKm1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSwgKnBhdGhF
bGVtZW50LCBhbmltYXRlZExpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICB9CkBAIC0x
MDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmltYXRlZFBh
dGhCeXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtOyB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhT
ZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5
VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKGNvbnRleHRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAg
ICAgICAsIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbShudWxscHRyKQogICAgIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsK
K2NsYXNzIFNWR1ZhbHVlOwogCiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDogcHVibGljIFJl
ZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gewogcHVibGljOgpAQCAtNDksNyArNTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFtZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUg
UHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRl
V3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywg
UHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29r
dXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUlu
Zm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGluZm8pOwogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5
KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRlbnRpZmllcik7CkBAIC01OCw3ICs1OSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAot
ICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9IFRlYXJPZmZUeXBlOjpj
cmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0
eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBw
ZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGlu
Zm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSk7CiAgICAgICAgIGlmIChpbmZvLT5hbmlt
YXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJc1JlYWRPbmx5KQogICAgICAgICAgICAgd3Jh
cHBlci0+c2V0SXNSZWFkT25seSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCShyZXZpc2lv
biAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5TWFjcm9zLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMg
PGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjUsNiArMjYsNyBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRl
ICJTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFp
dHMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0
cnVjdCBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkgewogICAgIFNWR1N5bmNocm9u
aXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSgpCi0gICAgICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFp
dHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hy
b25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShT
VkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4oKSkKICAgICB7CiAgICAgfQogCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXph
YmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkK
LSAgICAgICAgOiB2YWx1ZSh2YWx1ZTEpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFs
c2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBh
cmFtZXRlcjI+Ci0gICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENv
bnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUxLCBjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjIm
IHZhbHVlMikKLSAgICAgICAgOiB2YWx1ZSh2YWx1ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91
bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5
bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQor
ICAgICAgICA6IHZhbHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAg
ICAgewogICAgIH0KIApAQCAtNjEsOSArNTAsOSBAQCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVB
bmltYXRlZFByb3BlcnR5CiAgICAgICAgIG93bmVyRWxlbWVudC0+c2V0U3luY2hyb25pemVkTGF6
eUF0dHJpYnV0ZShhdHRyTmFtZSwgdmFsdWUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSB2
YWx1ZTsKLSAgICBib29sIHNob3VsZFN5bmNocm9uaXplIDogMTsKLSAgICBib29sIGlzVmFsaWQg
OiAxOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFsdWU7CisgICAgYm9vbCBzaG91bGRTeW5jaHJv
bml6ZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIC8vIFBy
b3BlcnR5IHJlZ2lzdHJhdGlvbiBoZWxwZXJzCkBAIC0xMjQsMTkgKzExMywxOSBAQCBwdWJsaWM6
IFwKICAgICB7IFwKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVy
dHk6Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJUeXBlLCBUZWFyT2ZmVHlwZT4odGhpcywgTG93ZXJQ
cm9wZXJ0eSMjUHJvcGVydHlJbmZvKCkpKSB7IFwKICAgICAgICAgICAgIGlmICh3cmFwcGVyLT5p
c0FuaW1hdGluZygpKSBcCi0gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXItPmN1cnJlbnRB
bmltYXRlZFZhbHVlKCk7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVu
dEFuaW1hdGVkVmFsdWUoKS0+YXM8UHJvcGVydHlUeXBlPigpOyBcCiAgICAgICAgIH0gXAotICAg
ICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIG1f
IyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7IFwKICAgICB9IFwKIFwK
ICAgICBQcm9wZXJ0eVR5cGUmIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNvbnN0IE92ZXJy
aWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5
LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZS0+YXM8UHJv
cGVydHlUeXBlPigpOyBcCiAgICAgfSBcCiBcCi0gICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkj
I0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHR5cGUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1
ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwKKyAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0
eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUsIGNvbnN0IGJvb2wgdmFsaWRW
YWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgbV8jI0xv
d2VyUHJvcGVydHkudmFsdWUgPSB0eXBlOyBcCisgICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnZh
bHVlLT5hczxQcm9wZXJ0eVR5cGU+KCkgPSB2YWx1ZTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9w
ZXJ0eS5pc1ZhbGlkID0gdmFsaWRWYWx1ZTsgXAogICAgIH0gXAogXApAQCAtMTU2LDcgKzE0NSw3
IEBAIHByaXZhdGU6IFwKICAgICB7IFwKICAgICAgICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5z
aG91bGRTeW5jaHJvbml6ZSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCi0gICAgICAgIEF0b21p
Y1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyht
XyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkpOyBcCisgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShT
VkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0
eS52YWx1ZS0+YXM8UHJvcGVydHlUeXBlPigpKSk7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVy
dHkuc3luY2hyb25pemUodGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCktPmF0dHJp
YnV0ZU5hbWUsIHZhbHVlKTsgXAogICAgIH0gXAogXApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5o
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAg
QEAgcHVibGljOgogICAgIHVzaW5nIFByb3BlcnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVh
ck9mZjo6UHJvcGVydHlUeXBlOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBl
OwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRl
YXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0
eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5
VHlwZSwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFyT2ZmPihjb250ZXh0RWxlbWVudCwgYXR0cmli
dXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgUmVm
PFByb3BlcnR5VGVhck9mZj4gYmFzZVZhbCgpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKG1fYmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJv
cGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgpKTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5
ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBtX3Byb3BlcnR5
KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlz
LCBCYXNlVmFsUm9sZSwgbV92YWx1ZSk7CiAgICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5j
cmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CkBAIC01Mywz
NiArNTMsMzYgQEAgcHVibGljOgogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAg
cmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwog
Ci0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywg
QW5pbVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVy
dHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX3ZhbHVlKTsKICAgICAgICAg
bV9hbmltVmFsID0gcHJvcGVydHktPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHBy
b3BlcnR5OwogICAgIH0KIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFu
aW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBy
ZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICBy
ZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZSgpOwogICAgIH0KIAotICAgIGNvbnN0IFBy
b3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBt
X3Byb3BlcnR5OworICAgICAgICByZXR1cm4gbV92YWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFu
aW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0
aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwp
OwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5p
bWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUoKm5ld0FuaW1WYWwpOworICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlKG5ld0FuaW1WYWwpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0
aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG1fcHJvcGVydHkpOworICAgICAgICBtX2Fu
aW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG1fdmFsdWUpOwogICAgICAgICBtX2FuaW1hdGVkUHJv
cGVydHkgPSBudWxscHRyOwogICAgIH0KIApAQCAtMTA0LDEzICsxMDQsMTMgQEAgcHVibGljOgog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYg
cHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5
KHByb3BlcnR5KQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KIAotICAg
IFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWU7
CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gbV9iYXNlVmFs
OwogICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYW5pbVZh
bDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1By
b3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNs
dWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKKyNp
bmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDUzICsz
Myw1MyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYmFzZVZh
bCgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1f
dmFsdWUtPmFzPFByb3BlcnR5VHlwZT4oKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IFBy
b3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAgICAgewotICAgICAgICBpZiAobV9hbmltYXRlZFByb3Bl
cnR5KQotICAgICAgICAgICAgcmV0dXJuICptX2FuaW1hdGVkUHJvcGVydHk7Ci0gICAgICAgIHJl
dHVybiBtX3Byb3BlcnR5OworICAgICAgICBpZiAobV9hbmltYXRlZFZhbHVlKQorICAgICAgICAg
ICAgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZS0+YXM8UHJvcGVydHlUeXBlPigpOworICAgICAgICBy
ZXR1cm4gYmFzZVZhbCgpOwogICAgIH0KIAotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHZpcnR1YWwgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQogICAg
IHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgICBtX3ZhbHVlLT5hczxQ
cm9wZXJ0eVR5cGU+KCkgPSB2YWx1ZTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgfQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2FuaW1hdGVkVmFsdWU7IH0KIAotICAgIHN0YXRp
YyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3Jl
YXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJv
cGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJv
cGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
eXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3Rh
dGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0
ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIFByb3Bl
cnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3Vy
cmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0
aW5nKCkpOwotICAgICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICAgICAgcmV0
dXJuIG1fYW5pbWF0ZWRWYWx1ZTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1
cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVu
dEJhc2VWYWx1ZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAg
ICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVk
KFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCgh
aXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgbV9h
bmltYXRlZFByb3BlcnR5ID0gbmV3QW5pbVZhbDsKKyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0g
bmV3QW5pbVZhbDsKICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5
ID0gbnVsbHB0cjsKKyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkKQEAgLTk5LDE2ICsxMDAsMTUgQEAgcHVibGlj
OgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFy
T2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJv
cGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
ZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0
IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHko
Y29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAg
ICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCi0gICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5
KG51bGxwdHIpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1f
YW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWU7CisgICAgUmVm
UHRyPFNWR1ZhbHVlPiBtX2FuaW1hdGVkVmFsdWU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBm
aW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisg
ICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNy
ZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250
ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5
VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVk
UHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDog
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVz
KQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0UHJvcGVydHkuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTQgKzI2
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIExpc3RNb2RpZmljYXRpb24gewot
ICAgIExpc3RNb2RpZmljYXRpb25Vbmtub3duID0gMCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5z
ZXJ0ID0gMSwKLSAgICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlm
aWNhdGlvblJlbW92ZSA9IDMsCi0gICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0K
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjsKIApAQCAtNzUsMTkgKzY4LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0
YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKG1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9
CiAKLSAgICB2b2lkIHNldFZhbHVlc0FuZFdyYXBwZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycywgYm9vbCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9p
ZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5
IHVzZWQgZm9yIGFuaW1WYWwgc3VwcG9ydCwgdG8gc3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVl
cyAmIHdyYXBwZXJzCiAgICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywg
b25jZSBhbmltYXRpb24gZm9yIGEgbGlzdCBzdGFydHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVl
cyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9
PSBBbmltVmFsUm9sZSk7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBk
ZWxldGUgbV92YWx1ZXM7CiAgICAgICAgIG1fdmFsdWVzID0gdmFsdWVzOwotICAgICAgICBtX293
bnNWYWx1ZXMgPSBzaG91bGRPd25WYWx1ZXM7CiAgICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVy
czsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgp
KTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOwogICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKQEAgLTk4LDcgKzg4
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAg
ICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigp
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBA
IC0xMTEsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAg
IG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigpOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0x
MTksNyArMTA5LDcgQEAgcHVibGljOgogICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQog
ICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHJldHVybiB2YWx1ZXNSZWZlcmVuY2UoKS5zaXpl
KCk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0xMzQsOCArMTI0
LDggQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0
ZW0sIDApOwogCiAgICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBp
dGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRo
ZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAgICAgbV92YWx1
ZXMtPmNsZWFyKCk7Ci0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAg
IHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9
OwpAQCAtMTUwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1f
d3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRl
bShpdGVtKTsKIApAQCAtMTU5LDkgKzE0OSw5IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVj
OiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUt
aW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5
IHRoZSBwYXJhbWV0ZXIuCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAg
bV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CiAK
LSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsK
KyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAg
ICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAg
ICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTE3MSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8g
U1ZHTGlzdDo6Z2V0SXRlbSgpCiAgICAgRXhjZXB0aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNp
Z25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgp
KQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0xODUsNyArMTc1LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRo
ZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUg
aXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUg
eyBtX3ZhbHVlcy0+YXQoaW5kZXgpIH07CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyB2
YWx1ZXNSZWZlcmVuY2UoKS5hdFJlZmVyZW5jZShpbmRleCkgfTsKICAgICB9CiAKICAgICBFeGNl
cHRpb25PcjxSZWY8TGlzdEl0ZW1UZWFyT2ZmPj4gZ2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkK
QEAgLTE5OSwxMyArMTg5LDEzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5z
IHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0
aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1h
ZGUgdG8gdGhlIGl0ZW0gYXJlIGltbWVkaWF0ZWx5IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAg
ICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAg
ICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXpl
KCkpOwogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiB3cmFwcGVyID0gc3RhdGljX2Nh
c3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAg
ICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdo
aWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3
L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4gb3VyIG1hcC4KICAgICAgICAgICAg
IC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28g
aXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVk
Kkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVz
IGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4K
LSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExp
c3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAgICAgd3Jh
cHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9s
ZSwgdmFsdWVzUmVmZXJlbmNlKCkuYXQoaW5kZXgpKTsKICAgICAgICAgICAgIG1fd3JhcHBlcnMt
PmF0KGluZGV4KSA9IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgfQogCkBAIC0y
MjEsOCArMjExLDggQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0
aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVu
ZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVz
LT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAg
IGlmIChpbmRleCA+IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4
ID0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0
ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMg
bGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIGlmICgh
cHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5kZXgpKSB7CkBAIC0yMzIs
NyArMjIyLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRl
bSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0
aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGlu
c2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFs
IHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUg
bGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAgICAg
IHZhbHVlc1JlZmVyZW5jZSgpLmluc2VydChpbmRleCwgU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRl
bVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTI0OCwxMCArMjM4LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAg
ICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1i
ZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRo
ZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAg
ICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNS
ZWZlcmVuY2UoKS5zaXplKCkpCisgICAgICAgICAgICBpbmRleCA9IHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJz
LT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1f
d3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRl
bShpdGVtKTsKIApAQCAtMjYxLDcgKzI1MSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVj
OiBJbnNlcnRzIGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0
aW9uLiBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0
byBiZQogICAgICAgICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElm
IHRoZSBpbmRleCBpcyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBh
dCB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgs
IG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2Uo
KS5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnZhbHVlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5l
dyB3cmFwcGVyIGF0IHBvc2l0aW9uICdpbmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1
ZSwgc28gbXV0YXRpb25zIG9mIG5ld0l0ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0
aGUgbGlzdC4KICAgICAgICAgbV93cmFwcGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVh
dGVXZWFrUHRyKCkpOwpAQCAtMjc4LDcgKzI2OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNp
emUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMjk4LDEzICsyODgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
IChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNSZWZlcmVuY2UoKS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91
ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0
aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbmRleFNpemVFcnJvciB9OwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2
YWx1ZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMt
PmF0KGluZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmF0UmVmZXJl
bmNlKGluZGV4KSA9IG5ld0l0ZW07CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0zMTksNyArMzA5LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAg
ICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VS
VChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VS
VCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAg
ICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0zMjgsNyArMzE4
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIXByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBl
cihuZXdJdGVtLCAmaW5kZXgpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7
CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVl
c1JlZmVyZW5jZSgpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMt
PmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBv
dXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMg
dGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW5kZXhTaXplRXJyb3IgfTsKQEAgLTM0MCw3ICszMzAsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBvbGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2
YWx1ZSBhbmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0g
ICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgp
OworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpbmRleCkgPSBuZXdJdGVtLT52YWx1ZSgp
OwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRy
KCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0zNTUsNyArMzQ1LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRl
eCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJl
bmNlKCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVy
cm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsOCArMzU4LDggQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIExpc3RJdGVt
VHlwZSBvbGRJdGVtID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJl
bW92ZShpbmRleCk7CisgICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gdmFsdWVzUmVmZXJl
bmNlKCkuYXRSZWZlcmVuY2UoaW5kZXgpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1v
dmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gV1RG
TW92ZShvbGRJdGVtKTsKQEAgLTM4NCwxNiArMzc0LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUo
KSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNl
KCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRo
ZSBleGlzdGluZyB3cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBvbGRJ
dGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgp
LmdldCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xkSXRlbSA9IExp
c3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1
ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpj
cmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNSZWZlcmVuY2UoKS5hdChp
bmRleCkpOwogCiAgICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93
cmFwcGVycy0+cmVtb3ZlKGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7
CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLnJlbW92ZShpbmRleCk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBvbGRJdGVtLnJlbGVhc2VOb25OdWxsKCk7CkBA
IC00MTEsNyArNDAxLDcgQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRl
bVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhl
IGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAg
ICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1U
eXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25B
cHBlbmQpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtNDI2
LDcgKzQxNiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMt
PnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsK
IApAQCAtNDM0LDE5ICs0MjQsMjUgQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdM
aXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1
ZSBhbmQgd3JhcHBlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+
YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNSZWZl
cmVuY2UoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmFw
cGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZShM
aXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7
CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMoKQorICAgIFJlZjxTVkdWYWx1ZT4g
dmFsdWVzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAg
IHJldHVybiAqbV92YWx1ZXM7CiAgICAgfQogCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNSZWZl
cmVuY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAg
cmV0dXJuIG1fdmFsdWVzLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgfQorCiAgICAgTGlzdFdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fd3Jh
cHBlcnMpOwpAQCAtNDU5LDIwICs0NTUsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBl
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0
eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAgICAgICAgOiBtX3JvbGUocm9sZSkKLSAgICAg
ICAgLCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAgICAgICwgbV92YWx1ZXMoJnZhbHVlcykKKyAg
ICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAgICAgICwgbV93cmFwcGVycyh3cmFwcGVycykK
ICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U1ZHTGlzdFByb3BlcnR5KCkKLSAgICB7Ci0g
ICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7Ci0g
ICAgfQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uKQogICAgIHsKQEAgLTQ4Myw4ICs0
NzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJ
dGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4
VG9Nb2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgYm9vbCBt
X293bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZH
VmFsdWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUqIG1fd3JhcHBlcnM7CiAgICAg
V2Vha1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNiwyMSAr
MzcsMjAgQEAgcHVibGljOgogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSB0eXBlbmFtZSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6TGlzdFdyYXBwZXJD
YWNoZTsKIAogICAgIHVzaW5nIEJhc2U6Om1fcm9sZTsKLSAgICB1c2luZyBCYXNlOjptX3ZhbHVl
czsKKyAgICB1c2luZyBCYXNlOjp2YWx1ZXNSZWZlcmVuY2U7CiAgICAgdXNpbmcgQmFzZTo6bV93
cmFwcGVyczsKIAotICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3Bl
cnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMg
UmVmPFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1
ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VsZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJz
KSk7CiAgICAgfQogCiAgICAgaW50IGZpbmRJdGVtKExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29u
c3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dy
YXBwZXJzKTsKIAogICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwot
ICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHNpemUgPT0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlmIChpdGVtID09IG1fd3JhcHBl
cnMtPmF0KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwpAQCAtNjEsMTUgKzYxLDE0IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgs
IGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZh
bHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCBtX3dyYXBwZXJzLT5z
aXplKCkpOwogCiAgICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGl0ZW1JbmRleCk7
CiAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVt
b3ZlKGl0ZW1JbmRleCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRlbUluZGV4KTsKKyAg
ICAgICAgdmFsdWVzUmVmZXJlbmNlKCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYg
KHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsK
QEAgLTExMiw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZH
TGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUs
IHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRl
ZFByb3BlcnR5KQogICAgIHsKQEAgLTEyOSwxOCArMTI4LDE3IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUg
ZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNo
YW5nZWQuCiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAg
ICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6
ZSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJz
LT5hdChpKTsKICAgICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHkobV9hbmltYXRlZFByb3Bl
cnR5LnB0cigpKTsKLSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5hdChpKSk7
CisgICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNSZWZlcmVuY2UoKS5hdChpKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwpA
QCAtMTY5LDcgKzE2Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIC8vIFNWR1JlY3RFbGVt
ZW50cyBTVkdBbmltYXRlZExlbmd0aCAnd2lkdGgnIHByb3BlcnR5IGJhc2VWYWwgcG9pbnRzIHRv
IHRoZSBzYW1lIHRlYXIgb2ZmIG9iamVjdAogICAgICAgICAgICAgLy8gdGhhdCdzIGluc2VydGVk
IGludG8gU1ZHVGV4dEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCAneCcuIHRleHRFbGVt
ZW50LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlICs9IDE1MCB3b3VsZAogICAgICAgICAgICAg
Ly8gbXV0YXRlIHRoZSByZWN0RWxlbWVudCB3aWR0aCBfYW5kXyB0aGUgdGV4dEVsZW1lbnQgeCBs
aXN0LiBUaGF0J3Mgb2J2aW91c2x5IHdyb25nLCB0YWtlIGNhcmUgb2YgdGhhdC4KLSAgICAgICAg
ICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShuZXdJdGVtLT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0
ZShuZXdJdGVtLT52YWx1ZVJlZmVyZW5jZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJp
eFRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdNYXRyaXhUZWFyT2ZmLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxOSArMjks
MTkgQEAgY2xhc3MgU1ZHTWF0cml4VGVhck9mZiBmaW5hbCA6IHB1YmxpYyBTVgogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4VGVhck9mZj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFy
ZW50LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlRfVU5VU0VE
KHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVl
KTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgJnBhcmVudC52YWx1ZVJlZmVyZW5jZSgp
LnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CiAgICAgICAgIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IFNWR01hdHJpeFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAg
IHBhcmVudC5hZGRDaGlsZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cihyZXN1
bHQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBTVkdNYXRyaXhWYWx1
ZSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlS
ZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQorICAgIFNWR01hdHJpeFZhbHVlJiB2YWx1ZVJlZmVy
ZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50LT52YWx1ZVJlZmVyZW5jZSgpLnN2Z01hdHJp
eCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkgZmluYWwg
eyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUpOyB9CisgICAg
dm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkgZmluYWwgeyBtX3Bh
cmVudC0+dmFsdWVSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUtPmFzPFNWR01hdHJpeFZhbHVl
PigpKTsgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbAogICAgIHsKLSAgICAgICAg
bV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCkudXBkYXRlU1ZHTWF0cml4KCk7CisgICAgICAg
IG1fcGFyZW50LT52YWx1ZVJlZmVyZW5jZSgpLnVwZGF0ZVNWR01hdHJpeCgpOwogICAgICAgICBt
X3BhcmVudC0+Y29tbWl0Q2hhbmdlKCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2Zm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25P
ci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdQcm9w
ZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsMTcgKzYxLDE2IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0
dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgdmFsdWVSZWZlcmVuY2Uo
KSB7IHJldHVybiBtX3ZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7IH0KICAgICBTVkdBbmltYXRl
ZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBy
b3BlcnR5LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBl
JiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAgICBp
ZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAg
ICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAgfQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0g
ZmFsc2U7Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFsdWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1
ZTsKICAgICB9CiAKICAgICB2b2lkIHNldEFuaW1hdGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRvIHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8g
YmUgcG9zc2libGUgdG8gbW9kaWZ5ICdpdGVtJwogICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhl
ICJuZXcgaXRlbSIgKHdpdGggeD0xMDApIGluIHRoZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8v
IFdoZW5ldmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVzIHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhp
c3Rpbmcgd3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAg
ICBtX3ZhbHVlID0gbmV3IFByb3BlcnR5VHlwZSgqbV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUg
PSBTVkdWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUtPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKSk7
CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVlOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVy
dHkgPSBudWxscHRyOwogICAgIH0KQEAgLTEzMSwxMSArMTMxLDEwIEBAIHB1YmxpYzoKICAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYg
dmFsdWUpCisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkK
ICAgICAgICAgLCBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKLSAgICAg
ICAgLCBtX3ZhbHVlSXNDb3B5KGZhbHNlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAg
ewogICAgIH0KIApAQCAtMTQ3LDE3ICsxNDYsMTYgQEAgcHJvdGVjdGVkOgogICAgIFNWR1Byb3Bl
cnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUqIGluaXRpYWxWYWx1ZSkKICAgICAgICAgOiBt
X2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAgICAgICAgLCBtX3JvbGUoVW5kZWZpbmVkUm9s
ZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxWYWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUoKmlu
aXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAgICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkKICAg
ICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUpCisgICAgICAgICAgICBtX3ZhbHVlID0gU1ZH
VmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5TVkdQ
cm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAg
ICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwot
ICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICB2b2lk
IGRldGFjaENoaWxkcmVuKCkKQEAgLTE3MSwxMCArMTY5LDEwIEBAIHByb3RlY3RlZDoKIAogICAg
IFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBtX2FuaW1hdGVkUHJvcGVydHk7CiAgICAgU1ZH
UHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAgUmVm
UHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZlY3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5VGVh
ck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVy
dHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIGJvb2wgbV92YWx1ZUlzQ29weTsKKyAg
ICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9OwogfTsKIAogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lv
biAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxNCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2VudW0gTGlzdE1vZGlmaWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVu
a25vd24gPSAwLAorICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2Rp
ZmljYXRpb25SZXBsYWNlID0gMiwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAg
ICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1l
IFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKQEAgLTM5LDcg
KzQ3LDYgQEAgdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAg
ICBzdGF0aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRp
YyBib29sIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9
PSAidHJ1ZSI7IH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIGluaXRpYWxWYWx1ZSgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5
cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9OwogCkBAIC02MCw3ICs2
Nyw2IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj4gewogdGVtcGxhdGU8Pgogc3Ry
dWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGlu
aXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcodW5zaWduZWQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7
IH0KIH07CiAKQEAgLTY4LDcgKzc0LDYgQEAgdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5
VHJhaXRzPGludD4gewogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsg
fQogICAgIHN0YXRpYyBpbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVy
biBzdHJpbmcudG9JbnRTdHJpY3QoKTsgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGludD4g
cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoaW50IHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OwogCkBA
IC04Miw4ICs4Nyw2IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCAK
ICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihz
dGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51bWJlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KHJv
dW5kZihzZWNvbmROdW1iZXIpKSk7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxpbnQsIGludD4+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJp
bmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHN0ZDo6cGFpcjxpbnQsIGludD4pIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CkBA
IC0xMTYsOCArMTE5LDYgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9h
dAogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWly
KGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpOwogICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFs
dWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoc3RkOjpwYWlyPGZsb2F0LCBmbG9h
dD4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiB9Owog
CiB0ZW1wbGF0ZTw+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsOSArMzQsOSBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgTGlzdEl0ZW1UZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6TGlzdEl0ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVz
aW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZhbHVlc1JlZmVyZW5jZTsKIAot
ICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQ
cm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVt
ZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFs
dWVzKSk7CiAgICAgfQpAQCAtNzYsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5
VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRy
KQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAg
LTg5LDggKzkwLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVy
cmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMt
PmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNl
KCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wgcHJv
Y2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCop
IG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQ
cm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMzYsNyArMzcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBVc2VkIGZvciBub24t
YW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmlt
YXRlZFByb3BlcnR5IG9iamVjdCwgbm9yIHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8v
IChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3Rh
dGljIFJlZjxTZWxmPiBjcmVhdGUoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2Vs
Zj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAg
ICAgfQpAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBm
aW5hbCB7IChtX2NvbnRleHRFbGVtZW50LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0
ZToKLSAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRF
bGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNW
R1N0YXRpY1Byb3BlcnR5VGVhck9mZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAg
ICA6IFByb3BlcnR5VGVhck9mZihVbmRlZmluZWRSb2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3Vw
ZGF0ZSh1cGRhdGUpCiAgICAgICAgICwgbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336521</attachid>
            <date>2018-03-26 09:58:44 -0700</date>
            <delta_ts>2018-04-13 19:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180326095843.patch</filename>
            <type>text/plain</type>
            <size>240871</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzNyBAQAorMjAxOC0wMy0yNSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBpc3N1ZXMgd2hpY2ggYXJl
CisgICAgICAgIGRpZmZpY3VsdCB0byB0cmFjay4gVGhlIFNWRyB0ZWFyLW9mZiBvYmplY3RzIGFy
ZSBjcmVhdGVkIG9uIGRlbWFuZC4gTW9yZQorICAgICAgICBzcGVjaWZpY2FsbHksIHRoZXkgYXJl
IGNyZWF0ZWQgd2hlbiBhbmltYXRpbmcgdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUKKyAgICAg
ICAgb3Igd2hlbiBjcmVhdGluZyBhIERPTSBvYmplY3QgZm9yIHRoYXQgYXR0cmlidXRlLiBUaGUg
cHJvYmxlbSBpcyB0aGVzZQorICAgICAgICB0ZWFyLW9mZiBvYmplY3RzIGhvbGQgYSByYXcgcmVm
ZXJlbmNlIHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbworICAgICAgICBrZWVwIHRo
aXMgcmVmZXJlbmNlIHZhbGlkLCBib3RoIHRoZSBTVkdFbGVtZW50IGFuZCB0aGUgdGVhci1vZmYg
b2JqZWN0CisgICAgICAgIHVzZWQgdG8gaG9sZCBhIFJlZlB0ciB0byBlYWNoIG90aGVyIHdoaWNo
IHdhcyBjYXVzaW5nIG1lbW9yeSBsZWFrcy4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisgCisgICAgICAgIFRvIGZpeCB0aGVzZSBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVt
ZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQKKyAgICAgICAgb2JqZWN0cy4K
KyAKKyAgICAgICAgQ3JlYXRpbmcgZGlmZmVyZW50IGNsYXNzZXMgZm9yIGV2ZXJ5IGRhdGEgdHlw
ZSBvZiB0aGUgU1ZHIGF0dHJpYnV0ZXMgZG9lcworICAgICAgICBub3QgbG9vayB0aGUgY2xlYW5l
c3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgdW5pb24KKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFsbCB0aGUgZGF0YSB0
eXBlcy4gU28gaGVyZSBpcyB0aGUKKyAgICAgICAgb3V0bGluZSBvZiB0aGlzIHBhdGNoOgorIAor
ICAgICAgICAtLSBDcmVhdGUgdGhlIGNsYXNzIFNWR1ZhbHVlIHdoaWNoIGlzIGEgdmFyaWFudCBv
ZiBhbGwgdGhlIFNWRyBhdHRyaWJ1dGUKKyAgICAgICAgYmFzaWMgZGF0YSB0eXBlcyBpbmNsdWRp
bmcgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAg
IGxpc3RzLgorIAorICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdv
IFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkg
dXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisg
CisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGF0dHJpYnV0ZXMgb2YgYWxsIHRoZSBTVkdFbGVt
ZW50IHRvIGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKyAKKyAgICAgICAgLS0gQ2hhbmdl
IGFsbCB0aGUgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+LgorIAorICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRv
IGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcg
cmVmZXJlbmNlCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRo
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OnBhdGhGcm9tUG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5nbGU6OnVuaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1
ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5p
dHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmdsZTo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmdsZTo6bmV3VmFsdWVTcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OlNWR0FuZ2xlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJ
bnRlZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5
cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpj
YWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9y
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRo
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0
ZURpc3RhbmNlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFR5cGU6OlNWR0FuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlZFR5cGU6OmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6
YXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjogY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFR5cGU6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1ZUFuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFR5cGU6On5TVkdBbmltYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFR5cGVBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VW
YWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0
RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3I6OmV4ZWN1dGVBY3Rpb24pOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojp0
cmFuc2ZlckZ1bmN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgorICAgICAgICAqIHN2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dW5pdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpz
ZXRWYWx1ZUFzU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6bmV3VmFsdWVT
cGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6U1ZHTGVuZ3RoKToK
KyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xl
bmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAq
IHN2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQ6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0xpc3RWYWx1
ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6cmVzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM8UHJvcGVydHlU
eXBlPjo6ZGVlcENvcHkgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdMaXN0VmFsdWVzLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVlczo6U1ZHTGlzdFZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVzOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGlzdFZhbHVlczo6YXRSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFZhbHVlczo6Zmlyc3RSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFZhbHVl
czo6bGFzdFJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0VmFsdWVz
OjpsYXN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RWYWx1ZXM6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlIGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJUeXBlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6YSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEEpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpiKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6c2V0Qik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRDKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTWF0cml4OjplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0RSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4OjpzZXRGKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6bXVsdGlwbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjppbnZlcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R01hdHJpeDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2NhbGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZU5vblVuaWZvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpyb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0
cml4Ojpyb3RhdGVGcm9tVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Zmxp
cFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OnNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tl
d1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpTVkdNYXRyaXgpOgorICAgICAgICAq
IHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXI6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTnVtYmVyOjpTVkdOdW1iZXIpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6U1ZHTnVtYmVyTGlzdCk6CisgICAgICAgICogc3ZnL1NW
R051bWJlckxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZh
bHVlczo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051bWJlckxpc3RWYWx1ZXM+
Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR051
bWJlckxpc3RWYWx1ZXM+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhcnNl
clV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb2ludHNMaXN0RnJvbVNWR0RhdGEp
OgorICAgICAgICAqIHN2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+Ojpmcm9tU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZWFtPjo6cGFyc2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aEJ5
dGVTdHJlYW0+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6bG9va3VwT3JDcmVhdGVEV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXRoU2VnTGlzdENoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoU2VnTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OnJl
cGxhY2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpyZW1vdmVJdGVt
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
bGluZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRv
SG9yaXpvbnRhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Omxp
bmVUb1ZlcnRpY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6
Y3VydmVUb0N1YmljU21vb3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVp
bGRlcjo6Y3VydmVUb1F1YWRyYXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlz
dEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjphcmNUbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXI6OmNsb3NlUGF0aCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0U291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNW
R1NlZ21lbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0U291cmNlOjpu
ZXh0Q29tbWFuZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250ZXh0QW5k
Um9sZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmg6CisgICAgICAgICog
c3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyk6CisgICAgICAgICogc3ZnL1NWR1BvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BvaW50Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRYKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BvaW50Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjpzZXRZ
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50OjptYXRyaXhUcmFuc2Zvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OlNWR1BvaW50KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OlNWR1BvaW50TGlzdCk6CisgICAgICAgICogc3ZnL1NW
R1BvaW50TGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3RWYWx1
ZXM6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZh
bHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8
U1ZHUG9pbnRMaXN0VmFsdWVzPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6dG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9s
eUVsZW1lbnQ6OnN5bmNocm9uaXplUG9pbnRzKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50Ojpwb2ludExpc3QgY29uc3Qp
OgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6YWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6c2V0QWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6bWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6c2V0TWVldE9yU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbzo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAgICogc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICog
c3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZWN0Ojp4KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNl
dFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OndpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
Y3Q6OmhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpzZXRIZWlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6U1ZHUmVjdCk6CisgICAgICAgICogc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrRW5jbG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9y
bUZyb21NYXRyaXgpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbnNsYXRlVmFsdWUpOgorICAgICAgICAq
IHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RyaW5nTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
ICogc3ZnL1NWR1N0cmluZ0xpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGVzdHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OlNWR1Rlc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1Rlc3RzOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3Rz
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6c3luY2hyb25p
emVBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojp0ZXh0TGVu
Z3RoQW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpn
ZXRDaGFyTnVtQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9y
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06Om1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjp0eXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJh
bnNmb3JtOjpzZXRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRU
cmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTY2FsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFJvdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OnNldFNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5z
Zm9ybTo6c2V0U2tld1kpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpTVkdUcmFu
c2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uc29saWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNm
b3JtTGlzdFZhbHVlczo6Y29uY2F0ZW5hdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OjpwYXJzZSk6
IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT46OmluaXRpYWxWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1
ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjppcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZTo6YXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFs
dWU6OmFzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VmFsdWU6OlNWR1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjp0b1N0cmluZyk6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1ZpZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
aWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnRy
YW5zZm9ybVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dmll
d0JveFN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3Bl
Yzo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMp
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVk
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6dmFsdWVzUmVmZXJlbmNlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uU3Rh
cnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6
OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjo6c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbVZhbFdpbGxDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFs
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6Y3VycmVudEFuaW1hdGVkVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBP
ckNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlNYWNyb3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YmFzZVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5p
bVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zjo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGlj
UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6Y3VycmVudEJhc2VWYWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9uRW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OnNldFZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2xlYXJWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGlzdFByb3BlcnR5OjpjbGVhclZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6bnVtYmVyT2ZJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6OmluaXRpYWxpemVWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGlzdFByb3BlcnR5Ojppbml0aWFsaXplVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5HZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xpc3RQcm9wZXJ0eTo6Z2V0SXRlbVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6OmdldEl0ZW1WYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5OjppbnNlcnRJdGVtQmVmb3JlVmFsdWVzQW5kV3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpjYW5SZXBsYWNlSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlcGxhY2VJdGVtVmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXNBbmRXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlbW92ZUl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVtb3ZlSXRlbVZhbHVlc0FuZFdy
YXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZh
bHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmFwcGVuZEl0ZW1WYWx1
ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnZhbHVlc1JlZmVy
ZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OlNWR0xpc3RQ
cm9wZXJ0eSk6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5Ojp2YWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5Ojp+U1ZHTGlzdFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0
UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjo6ZmluZEl0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
VGVhck9mZjo6dmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFy
T2ZmOjp2YWx1ZVJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6U1ZH
UHJvcGVydHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6
flNWR1Byb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJP
ZmY6OnByb3BlcnR5UmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8Ym9vbD46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8dW5zaWduZWQ+Ojppbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8aW50Pjo6ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxib29sPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlUcmFpdHM8dW5zaWduZWQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcm9wZXJ0eVRyYWl0czxpbnQ+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmY6OlNWR1N0YXRpY0xpc3RQcm9wZXJ0
eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1N0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oOgorCiAyMDE4LTAzLTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5OTU0LgpJbmRleDog
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMTUyLDYgKzIxNTIsNyBAQCBzdmcvU1ZHTGVuZ3RoTGlz
dFZhbHVlcy5jcHAKIHN2Zy9TVkdMZW5ndGhWYWx1ZS5jcHAKIHN2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHTGlzdFZhbHVlcy5j
cHAKIHN2Zy9TVkdMb2NhdGFibGUuY3BwCiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAogc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2ODcsNiArMTY4NywxNCBAQAogCQk1NTc2QTU2NTFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VG
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU3
NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0Qzcg
LyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9Owog
CQk1NUEzMzZGOTFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0Mw
MDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQTlEMjA1QUZFQ0YwMERDNDcwRSAvKiBTVkdW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUx
MzdCMzQyMDNDRUI3MTAwMDEwMDRCIC8qIFNWR1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBOUYyMDVBRkYwQzAwREM0NzBFIC8q
IFNWR0FuZ2xlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDOEYyMjQzMUREM0IzQjkwMEU5MkRBMyAvKiBTVkdBbmdsZVZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTAyMDVB
RkYzRjAwREM0NzBFIC8qIFNWR051bWJlckxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY5MUREQjg2RDMwMEZFRkIyOSAvKiBT
VkdOdW1iZXJMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8qIFNWR1BhdGhTZWdMaXN0
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzM5QzM2RjFEREJBM0UwMDBGRUZCMjkgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NUE5MUFBMjIwNUFG
RjY2MDBEQzQ3MEUgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2QjFEREI4NzFDMDBGRUZCMjkgLyogU1ZH
UG9pbnRMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M4RjIyNDYxREQzRDFDNTAwRTkyREEzIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
QTkxQUE0MjA1QUZGOTIwMERDNDcwRSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2RDFEREI4QkIw
MDBGRUZCMjkgLyogU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAv
KiBTVkdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU1QUYxNEU2MUVB
QUM1OUIwMDI2RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTVBRjE0RTQxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lz
dHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTcwNDQwNUExRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA0NDA1OTFFNTM5MzYyMDAz
NTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OTYxRERFNUM5NTAw
QTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk1MURERTVDOTUwMEEwM0IxNCAv
KiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggKi87IH07CkBAIC0xOTkyLDcgKzIwMDAs
NyBAQAogCQk3MTVBRDcyMDIwNTA1MTMyMDBENTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxNUFENzFE
MjA1MDUxMjQwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxNUFENzIxMjA1MDUxM0YwMEQ1
OTJEQyAvKiBDU1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MTIzQzE4NjIwNDczOUJBMDA3ODkzOTIgLyogQ1NTVHJhbnNpdGlvbi5o
ICovOyB9OwogCQk3MUExQjYwODFERUU1QUQ3MDA3M0JDRkIgLyogbW9kZXJuLW1lZGlhLWNvbnRy
b2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MUExQjYwNjFERUU1QTgyMDA3M0JDRkIgLyogbW9kZXJuLW1lZGlh
LWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzLmpzICovOyB9OwotCQk3MUE1N0RGMjE1NEJFMjVD
MDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCAqLzsgfTsKKwkJNzFBNTdERjIxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcxQTU3REYwMTU0QkUyNUMwMDA5RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFCMjg0MjcyMDNDRUM0
QzAwMzZBQTVEIC8qIEpTQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUIyODQyNjIwM0NFQzBEMDAzNkFBNUQgLyogSlNDU1NBbmlt
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MUMyOUUzMjIwM0NFNzgxMDA4RjM2RDIgLyogQ1NTQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUMyOUUzMDIwM0NFNzZCMDA4RjM2
RDIgLyogQ1NTQW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzFDOTE2MDgxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxQzkxNjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTIwOTYsNyArMjEwNCw3IEBACiAJCTdDMzBEOTg2MUY4MTVBRUMwMDI2ODM1NiAvKiBKU0Fi
b3J0U2lnbmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzMwRDk4MTFGODE1QUMxMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25hbC5oICovOyB9OwogCQk3
QzMzMEEwMjFERjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwMTFE
RjhGQUM2MDBEMzM5NUMgLyogR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzMzBBMDgxREY5Rjk1
MTAwRDMzOTVDIC8qIEpTUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzMzMEEwNjFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3Np
dGlvbk9wdGlvbnMuaCAqLzsgfTsKLQkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xl
bmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMzlDMzYzMUREQTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmgg
Ki87IH07CisJCTdDMzlDMzY1MUREQTg2NTIwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2
MzFEREE4NjQ5MDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMzlDMzc3MUREQkUxNzAwMEZF
RkIyOSAvKiBTVkdTdHJpbmdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2NzFEREI4MkNGMDBGRUZCMjkgLyogU1ZHU3RyaW5n
TGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDM0E5MUU2MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0E5MUU1
MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzNCNzk3MTE5MDg3NTdCMDBC
NDdBMkQgLyogVXNlck1lc3NhZ2VIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0I3OTZGMTkwODc1N0IwMEI0N0EyRCAvKiBVc2VyTWVz
c2FnZUhhbmRsZXIuY3BwICovOyB9OwpAQCAtMjIyOSw4ICsyMjM3LDggQEAKIAkJN0NFMTkxN0Ix
RjJBQkU3MTAwMjcyRjc4IC8qIEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTE5MTZBMUYyQUI3MDYwMDI3MkY3
OCAvKiBKU0ZldGNoUmVxdWVzdFJlZGlyZWN0LmggKi87IH07CiAJCTdDRTU4RDRBMURENjRBNUIw
MDEyODU1MiAvKiBTVkdQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi87IH07
CiAJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDRGMURENjlBMUUwMDEyODU1
MiAvKiBTVkdOdW1iZXIuaCAqLzsgfTsKLQkJN0NFNThENTgxREQ3RDk2RDAwMTI4NTUyIC8qIFNW
R1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCAq
LzsgfTsKLQkJN0NFNThENUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1QjFERDdF
QzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCAqLzsgfTsKKwkJN0NFNThENTgxREQ3RDk2
RDAwMTI4NTUyIC8qIFNWR1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U1OEQ1NjFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VD
OUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQyMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2Fn
ZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCAqLzsgfTsKIAkJN0NFNjgzNDUxOTIxNDNBODAwRjREOTI4
IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTY4MzQzMTkyMTQzQTgwMEY0RDkyOCAvKiBVc2Vy
TWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDcxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNz
YWdlSGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yMzczLDcgKzIzODEsNyBAQAogCQk4M0ZFN0NBNzFEQTlGMUE3
MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzRkU3Q0E0MURBOUYxNjYwMDM3MjM3QyAvKiBVSUV2ZW50SW5pdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRkU3
Q0E4MURBOUYxQjYwMDM3MjM3QyAvKiBFdmVudE1vZGlmaWVySW5pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGRTdDQTMxREE5RjE2NTAwMzcyMzdD
IC8qIEV2ZW50TW9kaWZpZXJJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODNGRTkwMjcxRTMwN0MzMDAwM0U5MTk5IC8qIFBlcmZvcm1hbmNl
TW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNGRTkwMjYxRTMwN0MxQzAwM0U5MTk5IC8qIFBlcmZvcm1hbmNlTW9uaXRvci5oICovOyB9Owot
CQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OworCQk4NDE5RDJBNzEyMEQ5MkQw
MDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlE
MkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsK
IAkJODQxOUQyQUQxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBQjEy
MEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJODQx
OUQyQkExMjBFMEM3NjAwMTQxRjhGIC8qIFNWR1BhdGhTdHJpbmdCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJCODEyMEUwQzc2MDAx
NDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCAqLzsgfTsKQEAgLTI0MDAsNyArMjQwOCw3
IEBACiAJCTg0NzMwRDkzMTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzMwRDc2MTI0OEYw
QjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2UuaCAqLzsgfTsKIAkJODQ3NkM5RTYxMURGNkEw
QjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNW
R1BhdGhTZWdMaXN0QnVpbGRlci5oICovOyB9OwogCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIg
LyogU1ZHUGF0aEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0NzZDOUU4MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oICov
OyB9OwotCQk4NDc2QzlFQzExREY2QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFOTExREY2
QTI5MDA1NTVCMDIgLyogU1ZHUGF0aENvbnN1bWVyLmggKi87IH07CisJCTg0NzZDOUVDMTFERjZB
MjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRo
Q29uc3VtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RUUxMURGNkE1ODAw
NTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCAqLzsgfTsKIAkJODQ4MDE5NTUxMDhCQUZCMzAwQ0Iy
QjFGIC8qIEZFR2F1c3NpYW5CbHVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
aCAqLzsgfTsKIAkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ0MkJCRjgx
MTk0QzlEMzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovOyB9OwpAQCAtMzM1Myw3ICsz
MzYxLDcgQEAKIAkJQjIyMjdBNTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEJCMEQw
MEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QzEwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyMjI3
QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzMwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR1BhdGhFbGVtZW50LmggKi87IH07Ci0JCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oICovOyB9OworCQlCMjIy
N0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzUwRDAwQkYyMDAwNzFCNzgyIC8qIFNW
R1BhdGhTZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCMjIyN0E1RTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0FyYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QzgwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR1BhdGhTZWdBcmMuaCAqLzsgfTsKIAkJQjIyMjdBNjIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDbG9zZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OENDMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2Vn
Q2xvc2VQYXRoLmggKi87IH07CiAJCUIyMjI3QTY1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhDRjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Yy5oICovOyB9OwpAQCAtODI2MSw4ICs4MjY5LDEwIEBACiAJCTU1NUI4N0VCMUNBQUYwQUIwMDM0
OTQyNSAvKiBJbWFnZURlY29kZXJDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZURlY29kZXJDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTc2QTU2
MjFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1NTdFREI5QjIwNUEwMTVCMDA3RDVGQ0YgLyogU1ZHTGlzdFZhbHVlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdMaXN0VmFsdWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NUEzMzZGODFEODIxRTNDMDAyMkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCYWNraW5nU3RvcmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTVBOTFBQTYyMDVCMTNGNTAwREM0NzBFIC8q
IFNWR0xpc3RWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGlzdFZhbHVlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEUzMUVBQUM1OUIwMDI2RUVBQSAv
KiBVVElSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVElSZWdpc3RyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAvKiBV
VElSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVElSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NUQ0MDhGNzFBN0M2MzE4MDBDNzg0NTAgLyogU1ZHSW1hZ2VDbGll
bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2xpZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4NzcsNiArMjI4ODcsOCBAQAogCQkJ
CUIyMjI3OEE1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5jcHAgKi8sCiAJCQkJ
QjIyMjc4QTYwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmggKi8sCiAJCQkJQjIy
Mjc4QTcwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpbmVFbGVtZW50LmlkbCAqLywKKwkJCQk1NUE5
MUFBNjIwNUIxM0Y1MDBEQzQ3MEUgLyogU1ZHTGlzdFZhbHVlcy5jcHAgKi8sCisJCQkJNTU3RURC
OUIyMDVBMDE1QjAwN0Q1RkNGIC8qIFNWR0xpc3RWYWx1ZXMuaCAqLywKIAkJCQlCMjIyNzhBQTBE
MDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmNwcCAqLywKIAkJCQlCMjIyNzhBQjBEMDBC
RjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggKi8sCiAJCQkJQjIyMjc4QUQwRDAwQkYyMDAw
NzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuY3BwICovLApAQCAtMjk5OTAsNiArMzAwMDIsNyBA
QAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlw
aEl0ZW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQTlGMjA1QUZGMEMwMERD
NDcwRSAvKiBTVkdBbmdsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xl
YW4uaCBpbiBIZWFkZXJzICovLApAQCAtMzAxMDEsNiArMzAxMTQsNyBAQAogCQkJCUIyMjI3QTND
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDgxMDc2NDQxMjgyODU1NjAwN0M2M0JBIC8qIFNWR0xpc3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAvKiBTVkdM
aXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFRTEyRDlDQTRCMDAw
NDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNDQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR01hcmtlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAx
MTMsNiArMzAxMjcsNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlBMUUwMDEyODU1MiAv
KiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUFBMDIwNUFGRjNG
MDBEQzQ3MEUgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNpbmdFcnJvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8qIFNWR1BhdGhCbGVu
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTUxLDYgKzMwMTY2LDcgQEAKIAkJCQlCMjIyN0E4
MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlz
dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTEyMDVBRkY1OTAwREM0NzBFIC8q
IFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNTE3OEQ1
QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENv
bnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAxNjIsMTAgKzMwMTc4LDEyIEBACiAJCQkJQjIy
MjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU1QTkxQUEyMjA1QUZGNjYwMERDNDcwRSAvKiBTVkdQb2ludExpc3RW
YWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEExMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODFERDQ5QzEzQkEx
QTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhB
MEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwMjE3LDYgKzMwMjM1LDcgQEAKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTVBOTFBQTQyMDVBRkY5MjAwREM0NzBFIC8qIFNWR1RyYW5zZm9ybUxpc3RWYWx1
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjI0
LDYgKzMwMjQzLDcgQEAKIAkJCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIgLyogU1ZHVW5rbm93
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVBMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVEMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5MUE5RDIw
NUFGRUNGMDBEQzQ3MEUgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUYw
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdTcGVjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktlcm5FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUGF0aERh
dGEuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1BhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgc3Rh
dGljIFBhdGggcGF0aEZyb21QYXRoRWxlbWVudChTVkdFbGVtZQogCiBzdGF0aWMgUGF0aCBwYXRo
RnJvbVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9p
bnRzID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRz
KCktPnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25jYXN0PFNWR1BvbHlnb25FbGVt
ZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNSZWZlcmVuY2UoKTsKICAgICBp
ZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFBhdGggcGF0
aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7CisgICAgcGF0aC5tb3ZlVG8ocG9p
bnRzLmZpcnN0UmVmZXJlbmNlKCkpOwogCiAgICAgdW5zaWduZWQgc2l6ZSA9IHBvaW50cy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGF0
aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRz
LmF0UmVmZXJlbmNlKGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7CiAgICAgcmV0dXJu
IHBhdGg7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25F
bGVtZW50KFNWR0VsCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9seWxpbmVFbGVtZW50KFNWR0Vs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWxp
bmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXMoKTsKKyAgICBhdXRv
JiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+KGVsZW1lbnQpLmFuaW1hdGVk
UG9pbnRzKCktPnZhbHVlc1JlZmVyZW5jZSgpOwogICAgIGlmIChwb2ludHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwotICAgIHBhdGgubW92ZVRvKHBv
aW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3RSZWZlcmVuY2UoKSk7
CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXQo
aSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXRSZWZlcmVuY2UoaSkpOwogICAg
IHJldHVybiBwYXRoOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY3BwCShy
ZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxNSArMTYz
LDE1IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyOjpidWkKIHN0YXRpYyBp
bmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90
YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxl
bmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMqIHhMaXN0LCBjb25zdCBTVkdM
ZW5ndGhMaXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyogZHhMaXN0
LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3RW
YWx1ZXMqIHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQotICAgICAgICBkYXRhLnggPSB4
TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgIGRhdGEueCA9IHhMaXN0
LT5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoeUxpc3QpCi0g
ICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAg
ICAgZGF0YS55ID0geUxpc3QtPmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwog
ICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExpc3QtPmF0KGkpLnZhbHVlKGxl
bmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0LT5hdFJlZmVyZW5jZShpKS52
YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQotICAgICAgICBkYXRhLmR5ID0g
ZHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS5keSA9IGR5
TGlzdC0+YXRSZWZlcmVuY2UoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CiAgICAgaWYgKHJvdGF0
ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdChpKTsKKyAgICAg
ICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdFJlZmVyZW5jZShpKTsKICAgICAgICAgbGFz
dFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xl
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlVmFsdWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFs
dWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTUx
LDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgU1ZHQW5nbGVWYWx1ZTo6VHlwZSB1bml0VHlwZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFsdWUpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIAogICAg
IGZsb2F0IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5
UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkudmFs
dWUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUluU3BlY2lmaWVk
VW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtNzUsNyArNzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlQXNTdHJp
bmcodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTEwMSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1
cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7CisgICAgICAgIHJldHVybiB2
YWx1ZVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBm
bG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBw
cm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5pdFR5cGUsIHZhbHVl
SW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMp
OwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgICAgICBp
ZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRUeXBlKTsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRU
eXBlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xlVmFsdWUmIHZhbHVlKQorICAg
IFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRBbmdsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
QW5nbGUuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAgdm9pZCBTVkdB
bmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFTU0VSVChmcm9tLT50eXBlKCkg
PT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgp
KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKTsKLSAgICBhdXRvJiB0b0FuZ2xl
QW5kRW51bWVyYXRpb24gPSB0by0+YXM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVk
Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21BbmdsZUFuZEVudW1lcmF0aW9uID0gZnJvbS0+YXM8
U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CisgICAgYXV0byB0b0FuZ2xlQW5kRW51bWVyYXRp
b24gPSB0by0+YXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CiAgICAgLy8gT25seSByZXNw
ZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBib3RoIHNwZWNpZmllZCBpbiBh
bmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0
aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kIHx8IGZyb21BbmdsZUFu
ZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRBbmdsZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtODAsMTAgKzgwLDEwIEBAIHZvaWQgU1ZHQW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpj
YWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9j
b250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlv
biA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFzPHN0ZDo6cGFpcjxT
VkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25B
bmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uID0gYW5pbWF0ZWQtPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7CisgICAgY29uc3QgYXV0byBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9IChtX2FuaW1hdGlv
bkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJv
bSktPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gdG9BbmdsZUFuZEVu
dW1lcmF0aW9uID0gdG8tPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8g
dG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24t
PmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1dG8gYW5pbWF0ZWRBbmdsZUFu
ZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOwog
CiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51
bWVyYXRpb24uc2Vjb25kKSB7CiAgICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiAtIG5vIGxp
bmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFsdWVzIChlLmcuIGF1dG8gdG8g
YW5nbGUpLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9u
YWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IEFuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSB0by0+dHlwZSgpKTsK
IAotICAgIGNvbnN0IGF1dG8mIGZyb21JbnRlZ2VyUGFpciA9IGZyb20tPmFzPHN0ZDo6cGFpcjxp
bnQsIGludD4+KCk7Ci0gICAgYXV0byYgdG9JbnRlZ2VyUGFpciA9IHRvLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOworICAgIGNvbnN0IGF1dG8gZnJvbUludGVnZXJQYWlyID0gZnJvbS0+YXM8
aW50LCBpbnQ+KCk7CisgICAgYXV0byB0b0ludGVnZXJQYWlyID0gdG8tPmFzPGludCwgaW50Pigp
OwogCiAgICAgdG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50ZWdlclBhaXIuZmlyc3Q7CiAg
ICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQYWlyLnNlY29uZDsKQEAgLTc4
LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAg
ICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1l
bnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUludGVnZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKLSAgICBjb25zdCBhdXRvJiB0b0ludGVnZXJQYWly
ID0gdG8tPmFzPHN0ZDo6cGFpcjxpbnQsIGludD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVu
ZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8
aW50LCBpbnQ+PigpOwotICAgIGF1dG8mIGFuaW1hdGVkSW50ZWdlclBhaXIgPSBhbmltYXRlZC0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21JbnRlZ2VyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGludCwgaW50PigpOworICAgIGNvbnN0IGF1dG8gdG9JbnRl
Z2VyUGFpciA9IHRvLT5hczxpbnQsIGludD4oKTsKKyAgICBjb25zdCBhdXRvIHRvQXRFbmRPZkR1
cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8aW50LCBpbnQ+KCk7Cisg
ICAgYXV0byBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGludCwgaW50PigpOwog
CiAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkSW50ZWdl
cihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tSW50ZWdl
clBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdl
clBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3QpOwogICAgIFNWR0FuaW1hdGVk
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVnZXIobV9hbmltYXRpb25FbGVt
ZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVnZXJQYWlyLnNlY29uZCwgdG9J
bnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuc2Vjb25kLCBh
bmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1
LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcjo6YWRkQQogCiAg
ICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29udGV4dEVsZW1lbnQpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTGVuZ3RoTGlzdFNpemU7ICsraSkKLSAgICAg
ICAgdG9MZW5ndGhMaXN0W2ldLnNldFZhbHVlKHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhD
b250ZXh0KSArIGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhD
b250ZXh0KTsKKyAgICAgICAgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnNldFZhbHVlKHRv
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5n
dGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBsZW5ndGhDb250ZXh0
KTsKIH0KIAogc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgcGFyc2VMZW5ndGhMaXN0RnJvbVN0
cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBjb25zdCBTdHJpbmcm
IHN0cmluZykKQEAgLTEwOCwxOCArMTA4LDE4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
QW5pbWF0b3I6OmNhbGMKIAogICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dChtX2Nv
bnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9MZW5ndGhMaXN0
U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5n
dGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgICAgICBTVkdMZW5ndGhUeXBlIHVu
aXRUeXBlID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7CisgICAgICAgIGZsb2F0IGFuaW1h
dGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0
LmF0UmVmZXJlbmNlKGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20g
PSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7CiAgICAgICAgICAgICBpZiAo
cGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0VHlwZSA9IGZyb21MZW5ndGhM
aXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbUxlbmd0
aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAgICAgICAgICAgdW5pdFR5cGUg
PSBmcm9tTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS51bml0VHlwZSgpOworICAgICAgICAgICAg
ZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0
aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBp
IDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlz
dFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRv
QXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9u
TGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CiAKLSAg
ICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFn
ZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5n
dGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXIpOwotICAgICAgICBh
bmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29udGV4dCwgYW5pbWF0ZWROdW1i
ZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZl
RnJvbSwgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpLCBl
ZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAgICAgIGFuaW1hdGVkTGVuZ3Ro
TGlzdC5hdFJlZmVyZW5jZShpKS5zZXRWYWx1ZShsZW5ndGhDb250ZXh0LCBhbmltYXRlZE51bWJl
ciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjI5ODU5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRv
cjo6YWRkQQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZnJvbU51bWJlckxpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTnVtYmVyTGlzdFtpXSArPSBmcm9t
TnVtYmVyTGlzdFtpXTsKKyAgICAgICAgdG9OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpICs9IGZy
b21OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVkTnVtYmVy
TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVu
c2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlw
ZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlw
ZSogYW5pbWF0ZWQpCkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZEdXJhdGlvblNpemUgPSB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAgICBmbG9hdCBlZmZlY3RpdmVG
cm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxpc3RbaV0gOiAwOwotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxl
bWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZl
Y3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRvQXRFbmQsIGFuaW1hdGVkTnVt
YmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZyb20gPSBmcm9tTnVtYmVyTGlz
dFNpemUgPyBmcm9tTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSA6IDA7CisgICAgICAgIGZsb2F0
IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9BdEVuZE9m
RHVyYXRpb25OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpIDogMDsKKyAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSwgZWZmZWN0aXZlVG9B
dEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpKTsKICAgICB9CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRp
b25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
OCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAg
QVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyKTsKICAg
ICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwogCi0gICAgY29uc3QgYXV0byYg
ZnJvbU51bWJlclBhaXIgPSBmcm9tLT5hczxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsKLSAg
ICBhdXRvJiB0b051bWJlclBhaXIgPSB0by0+YXM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7
CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFpciA9IGZyb20tPmFzPGZsb2F0LCBmbG9hdD4o
KTsKKyAgICBhdXRvIHRvTnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CiAKICAg
ICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIuZmlyc3Q7CiAgICAgdG9OdW1i
ZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7CkBAIC03OCwxMCArNzgsMTAg
QEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyQW5pbQogICAgIEFTU0VSVCht
X2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAg
IGNvbnN0IGF1dG8mIGZyb21OdW1iZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0
aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9OdW1iZXJQYWlyID0gdG8tPmFz
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwotICAgIGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1
cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxzdGQ6OnBhaXI8ZmxvYXQs
IGZsb2F0Pj4oKTsKLSAgICBhdXRvJiBhbmltYXRlZE51bWJlclBhaXIgPSBhbmltYXRlZC0+YXM8
c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFp
ciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPGZsb2F0LCBmbG9hdD4oKTsKKyAgICBjb25zdCBhdXRvIHRv
TnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7CisgICAgY29uc3QgYXV0byB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8ZmxvYXQsIGZs
b2F0PigpOworICAgIGF1dG8gYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5pbWF0ZWQtPmFzPGZsb2F0
LCBmbG9hdD4oKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVt
YmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVyUGFpci5maXJzdCwgdG9OdW1i
ZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIuZmlyc3QsIGFuaW1hdGVk
TnVtYmVyUGFpci5maXJzdCk7CiAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRp
dmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21OdW1iZXJQYWlyLnNlY29uZCwg
dG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJQYWlyLnNlY29uZCwg
YW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQYXRoLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBT
VkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIFJlZlB0cjxTVkdBbmltYXRl
ZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFu
aW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgY29uc3QgYXV0byYgYmFz
ZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAotICAgIGJ1aWxkU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoYmFzZVZhbHVlLCAqYnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQ
YXRoU2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLCAq
Ynl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1bHQ7CiAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAgIGlmICgh
cmVzdWx0LmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJs
b2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNvbnRleHRFbGVtZW50KCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIHNlZ21lbnQgOiByZXN1bHQpCi0gICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25T
dGFydGVkKGJ5dGVTdHJlYW0sICZiYXNlVmFsdWUpOworICAgICAgICAgICAgc2VnbWVudC0+YW5p
bWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZh
bHVlcz4oKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcg
QEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbgogICAgICAgICByZXR1
cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJvbVBvaW50TGlzdFNpemU7ICsr
aSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50TGlzdFtpXTsKKyAgICAgICAg
dG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkgKz0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShp
KTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9B
dEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC05NiwxNCArOTYs
MTQgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjpjYWxjdQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsraSkgewogICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9tUG9pbnRMaXN0U2l6ZSkKLSAg
ICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0W2ldOwotICAgICAgICBGbG9h
dFBvaW50IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25TaXplID8gdG9B
dEVuZE9mRHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICBl
ZmZlY3RpdmVGcm9tID0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5jZShpKTsKKyAgICAgICAgRmxv
YXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRPZkR1cmF0aW9uU2l6ZSA/IHRv
QXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LmF0UmVmZXJlbmNlKGkpIDogRmxvYXRQb2ludCgpOwog
Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9pbnRMaXN0W2ldLngoKTsKLSAg
ICAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExpc3RbaV0ueSgpOwotICAgICAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCBy
ZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRMaXN0W2ldLngoKSwgZWZmZWN0
aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3RpdmVG
cm9tLnkoKSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVUb0F0RW5kLnkoKSwgYW5pbWF0
ZWRZKTsKLSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBGbG9hdFBvaW50KGFuaW1hdGVk
WCwgYW5pbWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRQb2ludExp
c3QuYXRSZWZlcmVuY2UoaSkueCgpOworICAgICAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRl
ZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCk7CisgICAgICAgIG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBlZmZlY3Rp
dmVGcm9tLngoKSwgdG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkueCgpLCBlZmZlY3RpdmVUb0F0
RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRl
QWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20ueSgp
LCB0b1BvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCksIGVmZmVjdGl2ZVRvQXRFbmQueSgpLCBh
bmltYXRlZFkpOworICAgICAgICBhbmltYXRlZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKSA9IEZs
b2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGZyb21U
cmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAgICBjb25zdCBhdXRvJiBmcm9tVHJhbnNmb3JtID0g
ZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3RbMF07CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9ybSA9IGZyb21UcmFuc2Zvcm1M
aXN0LmZpcnN0UmVmZXJlbmNlKCk7CisgICAgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9y
bUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKIAogICAgIEFTU0VSVChmcm9tVHJhbnNmb3JtLnR5cGUo
KSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRvVHJhbnNmb3JtID0gU1ZHVHJhbnNmb3Jt
RGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm0pOwpA
QCAtMTA5LDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRv
cjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAgIGF1dG8g
ZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwotICAgIGNv
bnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0WzBdOwotICAgIGNvbnN0IGF1
dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA/IGZyb21UcmFuc2Zvcm1M
aXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zv
cm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgY29uc3QgYXV0byYgdG9UcmFu
c2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKKyAgICBjb25zdCBhdXRv
IGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUgPyBmcm9tVHJhbnNmb3JtTGlz
dC5maXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CiAgICAgYXV0byBj
dXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2UoZWZmZWN0aXZlRnJvbSwgdG9U
cmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFkZFRvU1ZHVHJhbnNmb3JtKGVm
ZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWNjdW11bGF0ZWQo
KSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZVRvQXRFbmQg
PSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgpID8gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgp
LCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7Ci0gICAgICAgIGFu
aW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1Ry
YW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQp
KTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5kID0gdG9BdEVuZE9mRHVyYXRp
b25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0aW9uVHJhbnNmb3JtTGlzdC5m
aXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0udHlwZSgpLCBT
VkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAgICAgIGFuaW1h
dGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1
ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9y
bSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRyYW5zZm9ybSk7CisgICAgICAg
IGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zv
cm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9hdCBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTM1LDEzICsxMzUsMTMgQEAgZmxvYXQg
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAgICAgICByZXR1cm4gLTE7CiAK
ICAgICBBU1NFUlQoaXRlbXNDb3VudCA9PSAxKTsKLSAgICBpZiAoZnJvbVRyYW5zZm9ybUxpc3Rb
MF0udHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdFswXS50eXBlKCkpCisgICAgaWYgKGZyb21UcmFu
c2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCkudHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdC5maXJz
dFJlZmVyZW5jZSgpLnR5cGUoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgLy8gU3BlYzog
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2FuaW1hdGUuaHRtbCNjb21wbGV4RGlzdGFuY2VzCiAg
ICAgLy8gUGFjZWQgYW5pbWF0aW9ucyBhc3N1bWUgYSBub3Rpb24gb2YgZGlzdGFuY2UgYmV0d2Vl
biB0aGUgdmFyaW91cyBhbmltYXRpb24gdmFsdWVzIGRlZmluZWQgYnkgdGhlIOKAmHRv4oCZLCDi
gJhmcm9t4oCZLCDigJhieeKAmSBhbmQg4oCYdmFsdWVz4oCZIGF0dHJpYnV0ZXMuCiAgICAgLy8g
RGlzdGFuY2UgaXMgZGVmaW5lZCBvbmx5IGZvciBzY2FsYXIgdHlwZXMgKHN1Y2ggYXMgPGxlbmd0
aD4pLCBjb2xvcnMgYW5kIHRoZSBzdWJzZXQgb2YgdHJhbnNmb3JtYXRpb24gdHlwZXMgdGhhdCBh
cmUgc3VwcG9ydGVkIGJ5IOKAmGFuaW1hdGVUcmFuc2Zvcm3igJkuCi0gICAgcmV0dXJuIFNWR1Ry
YW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0WzBdLCB0b1RyYW5zZm9ybUxpc3RbMF0p
LmRpc3RhbmNlKCk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zv
cm1MaXN0LmZpcnN0UmVmZXJlbmNlKCksIHRvVHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgp
KS5kaXN0YW5jZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlw
ZS5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRU
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgorc3RydWN0IFNWR0FuaW1hdGVkVHlwZSB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlPgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKQEAgLTM0LDE1ICszMiwxNCBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3Jl
YXRlKFByb3BlcnR5VHlwZSYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0KIAot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRy
PFNWR1ZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5
VHlwZTI+CkBAIC01Miw4NiArNDksMTAzIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29uc3Qgc3RkOjpw
YWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiBwcm9wZXJ0aWVzKQorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoc3RkOjpwYWlyPFByb3Bl
cnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgdmFsdWVzKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0aWVzKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHZhbHVlcykp
OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1l
IFByb3BlcnR5VHlwZTI+Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiBwcm9w
ZXJ0aWVzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4o
V1RGTW92ZShwcm9wZXJ0aWVzKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNW
R0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3ZlKHZhbHVlMikpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAgICBTVkdBbmltYXRlZFR5
cGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKLSAgICAgICAgOiBtX3ZhbHVlKHN0ZDo6
bWFrZV91bmlxdWU8UHJvcGVydHlUeXBlPihwcm9wZXJ0eSkucmVsZWFzZSgpKQorICAgIFNWR0Fu
aW1hdGVkVHlwZShQcm9wZXJ0eVR5cGUmJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChTVkdWYWx1
ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkg
IT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5VHlwZSYmIHByb3BlcnR5KQot
ICAgICAgICA6IG1fdmFsdWUoc3RkOjptYWtlX3VuaXF1ZTxQcm9wZXJ0eVR5cGU+KFdURk1vdmUo
cHJvcGVydHkpKS5yZWxlYXNlKCkpCisgICAgU1ZHQW5pbWF0ZWRUeXBlKFJlZlB0cjxTVkdWYWx1
ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChXVEZNb3ZlKHZhbHVlKSkKICAgICB7CisgICAg
ICAgIEFTU0VSVCh0eXBlKCkgIT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUyPgotICAg
IFNWR0FuaW1hdGVkVHlwZShjb25zdCBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVydHlU
eXBlMj4mIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4ocHJvcGVydGllcykucmVsZWFz
ZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJvcGVy
dHlUeXBlMj4mJiB2YWx1ZXMpCisgICAgICAgIDogZmlyc3QoU1ZHVmFsdWU6OmNyZWF0ZSh2YWx1
ZXMuZmlyc3QpKQorICAgICAgICAsIHNlY29uZChTVkdWYWx1ZTo6Y3JlYXRlKHZhbHVlcy5zZWNv
bmQpKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEsIHR5cGVuYW1lIFBy
b3BlcnR5VHlwZTI+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUx
LCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4oV1RGTW92
ZShwcm9wZXJ0aWVzKSkucmVsZWFzZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShSZWZQdHI8U1ZH
VmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUyKQorICAgICAgICA6IGZp
cnN0KFdURk1vdmUodmFsdWUxKSkKKyAgICAgICAgLCBzZWNvbmQoV1RGTW92ZSh2YWx1ZTIpKQog
ICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRlZFVua25vd24pOwogICAgIH0K
IAotICAgIH5TVkdBbmltYXRlZFR5cGUoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZT4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFzKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IFdURjo6dmlzaXQoW10oYXV0byYgdmFsdWUpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZTsK
LSAgICAgICAgfSwgbV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFz
KCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CisgICAgUHJvcGVy
dHlUeXBlJiBhcygpCiAgICAgewotICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxQcm9wZXJ0eVR5cGUqPihtX3ZhbHVlKSk7Ci0gICAgICAgIHJldHVybiAqV1RGOjpnZXQ8UHJv
cGVydHlUeXBlKj4obV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChmaXJzdCAmJiAhc2Vjb25kKTsK
KyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+KCk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBQcm9wZXJ0eVR5cGUmIGFzKCkKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9wZXJ0eVR5cGUy
PgorICAgIGNvbnN0IHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxJiwgUHJvcGVydHlUeXBlMiY+IGFz
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFBy
b3BlcnR5VHlwZSo+KG1fdmFsdWUpKTsKLSAgICAgICAgcmV0dXJuICpXVEY6OmdldDxQcm9wZXJ0
eVR5cGUqPihtX3ZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGZpcnN0ICYmIHNlY29uZCk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdC0+YXM8UHJvcGVydHlUeXBlMT4oKSwgc2Vj
b25kLT5hczxQcm9wZXJ0eVR5cGUyPigpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlMj4KKyAgICBzdGQ6OnBh
aXI8UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBhcygpCisgICAgeworICAgICAgICBB
U1NFUlQoZmlyc3QgJiYgc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHN0
ZDo6cmVmKGZpcnN0LT5hczxQcm9wZXJ0eVR5cGUxPigpKSwgc3RkOjpyZWYoc2Vjb25kLT5hczxQ
cm9wZXJ0eVR5cGUyPigpKSk7CiAgICAgfQogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlw
ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZS5pbmRleCgpID49IEFuaW1h
dGVkUHJvcGVydHlUeXBlTWluICYmIG1fdmFsdWUuaW5kZXgoKSA8IEFuaW1hdGVkUHJvcGVydHlU
eXBlTWF4KTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFuaW1hdGVkUHJvcGVydHlUeXBl
PihtX3ZhbHVlLmluZGV4KCkpOworICAgICAgICBBU1NFUlQoZmlyc3QpOworICAgICAgICBBbmlt
YXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVBbmltYXRlZFR5cGUoKmZpcnN0
KTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRUeXBlMiA9IHNlY29uZCA/
IHZhbHVlQW5pbWF0ZWRUeXBlKCpzZWNvbmQpIDogQW5pbWF0ZWRVbmtub3duOworCisgICAgICAg
IGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsKKyAgICAgICAgICAgIEFTU0VS
VChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYW5pbWF0ZWRUeXBl
MSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRlZEludGVnZXIp
CisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOworCisg
ICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkTnVtYmVyICYmIGFuaW1hdGVkVHlw
ZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXJP
cHRpb25hbE51bWJlcjsKKworICAgICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlMiA9PSBBbmltYXRl
ZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlMTsKICAgICB9CiAKICAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjp2
aXNpdChbXShhdXRvJiB2YWx1ZSkgewotICAgICAgICAgICAgdXNpbmcgUHJvcGVydHlUeXBlID0g
c3RkOjpkZWNheV90PGRlY2x0eXBlKCp2YWx1ZSk+OwotICAgICAgICAgICAgcmV0dXJuIFNWR1By
b3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCp2YWx1ZSk7Ci0gICAgICAgIH0s
IG1fdmFsdWUpOworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJl
dHVybiBmaXJzdC0+dG9TdHJpbmcoKTsKICAgICB9CiAKICAgICBib29sIHNldFZhbHVlQXNTdHJp
bmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGF1dG8mIHZhbHVlKSB7Ci0gICAg
ICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5X3Q8ZGVjbHR5cGUoKnZhbHVl
KT47Ci0gICAgICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9w
ZXJ0eVR5cGU+OjpwYXJzZShhdHRyTmFtZSwgc3RyaW5nKSkgewotICAgICAgICAgICAgICAgICp2
YWx1ZSA9ICpyZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0sIG1fdmFsdWUpOworICAg
ICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAgIHJldHVybiBmaXJzdC0+cGFy
c2UoYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNB
bmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCkBAIC0xNDAsOCArMTU0LDQ3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmIHR5cGUgIT0g
QW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgU1ZHVmFsdWVWYXJpYW50IG1f
dmFsdWU7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBlIHZhbHVlQW5pbWF0ZWRUeXBl
KGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0
KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25zdCBTVkdBbmdsZVZhbHVlJikg
eworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xlOworICAgICAgICAgICAgfSwg
W10oY29uc3QgYm9vbCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRCb29sZWFu
OworICAgICAgICAgICAgfSwgW10oY29uc3QgQ29sb3ImKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEFuaW1hdGVkQ29sb3I7CisgICAgICAgICAgICB9LCBbXShjb25zdCB1bnNpZ25lZCYpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRFbnVtZXJhdGlvbjsKKyAgICAgICAgICAg
IH0sIFtdKGNvbnN0IGludCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRl
Z2VyOworICAgICAgICAgICAgfSwgW10oY29uc3QgU1ZHTGVuZ3RoVmFsdWUmKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOworICAgICAgICAgICAgfSwgW10oY29uc3Qg
U1ZHTGVuZ3RoTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRM
ZW5ndGhMaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgZmxvYXQpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXI7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdO
dW1iZXJMaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZE51bWJl
ckxpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOworICAgICAgICAgICAgfSwgW10oY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJikgeworICAgICAgICAgICAgICAgIHJldHVy
biBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAgICAgICB9LCBbXShjb25zdCBT
VkdQb2ludExpc3RWYWx1ZXMmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkUG9p
bnRzOworICAgICAgICAgICAgfSwgW10oY29uc3QgRmxvYXRSZWN0JikgeworICAgICAgICAgICAg
ICAgIHJldHVybiBBbmltYXRlZFJlY3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTdHJpbmcm
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3RyaW5nOworICAgICAgICAgICAg
fSwgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgYXV0
byYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOworICAgICAgICAg
ICAgfQorICAgICAgICApLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdWYWx1ZVZhcmlhbnQmPih2YWx1
ZSkpOworICAgIH0KKworICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmlyc3Q7CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiBzZWNvbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDEwICs2OSw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgQVNTRVJU
KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzLnNpemUoKSA9PSAxKTsKICAgICAgICAg
Y29uc3QgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1
YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3BlcnRpZXNbMF0ucHJvcGVydGllc1swXS5n
ZXQoKSk7CiAKLSAgICAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBTVkdBbmltYXRlZFR5cGU6OmNy
ZWF0ZShhbmltYXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCkpOwotICAgICAgICBhdXRv
JiBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsICZhbmltYXRl
ZFZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsKKyAgICAgICAgYXV0byBhbmlt
YXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZT4oU3RhcnRBbmlt
YXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMCwgYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZNb3ZlKGFuaW1hdGVkVmFsdWUp
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KQEAgLTgzLDkg
KzgyLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNh
c3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3Bl
cnRpZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgICAgIGFuaW1hdGVkUHJvcGVydHkt
PnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFuaW1hdGVk
VmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBl
PigpOwotICAgICAgICBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJh
c2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlPihTdGFydEFuaW1h
dGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAwLCAmYW5pbWF0ZWRWYWx1ZSk7CisgICAg
ICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IGFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNl
VmFsdWUoKTsKKyAgICAgICAgYXV0byYgYW5pbWF0ZWRWYWx1ZSA9IGFuaW1hdGVkVHlwZS5maXJz
dDsKKyAgICAgICAgYW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5
cGU6OkNvbnRlbnRUeXBlPigpID0gYmFzZVZhbHVlLT50ZW1wbGF0ZSBhczx0eXBlbmFtZSBBbmlt
VmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGFuaW1hdGVk
VmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFuaW1WYWxUeXBlPgpAQCAt
MTE3LDExICsxMTcsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdCBhdXRvKiBmaXJzdEFu
aW1hdGVkUHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxBbmltVmFs
VHlwZTE+KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKICAgICAg
ICAgY29uc3QgYXV0byogc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3Bl
cnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLnByb3Bl
cnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gYW5pbWF0ZWRUeXBlID0gU1ZHQW5pbWF0
ZWRUeXBlOjpjcmVhdGUoc3RkOjptYWtlX3BhaXIoZmlyc3RBbmltYXRlZFByb3BlcnR5LT5jdXJy
ZW50QmFzZVZhbHVlKCksIHNlY29uZEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUo
KSkpOwotICAgICAgICBhdXRvJiBBbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0
ZSBhczxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZSwgdHlwZW5h
bWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAw
LCAmQW5pbWF0ZWRWYWx1ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5
cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCAmQW5pbWF0
ZWRWYWx1ZS5zZWNvbmQpOwotICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBlOworICAgICAgICBh
dXRvIGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVhdGUoKmZpcnN0QW5pbWF0ZWRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgYXV0byBzZWNvbmRBbmltYXRl
ZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0
QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1
ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFj
dGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1vdmUoZmlyc3RBbmltYXRlZFZh
bHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmltVmFsVHlwZTI+CkBAIC0xMzQs
MTEgKzEzNCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGZpcnN0QW5pbWF0ZWRQcm9wZXJ0eS0+
c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgICAgIHNlY29uZEFuaW1hdGVkUHJv
cGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAgICAgIGF1dG8mIGFu
aW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8c3RkOjpwYWlyPHR5cGVuYW1lIEFuaW1WYWxU
eXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMjo6Q29udGVudFR5cGU+Pigp
OwotICAgICAgICBhbmltYXRlZFZhbHVlLmZpcnN0ID0gZmlyc3RBbmltYXRlZFByb3BlcnR5LT5j
dXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVmFsdWUuc2Vjb25kID0gc2Vjb25k
QW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0
aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGll
cywgMCwgJmFuaW1hdGVkVmFsdWUuZmlyc3QpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMSwgJmFu
aW1hdGVkVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgY29uc3QgYXV0byYgZmlyc3RCYXNlVmFsdWUg
PSBmaXJzdEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgY29u
c3QgYXV0byYgc2Vjb25kQmFzZVZhbHVlID0gc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVu
dEJhc2VWYWx1ZSgpOworICAgICAgICBhdXRvJiBmaXJzdEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuZmlyc3Q7CisgICAgICAgIGF1dG8mIHNlY29uZEFuaW1hdGVkVmFsdWUgPSBhbmltYXRl
ZFR5cGUuc2Vjb25kOworICAgICAgICBmaXJzdEFuaW1hdGVkVmFsdWUtPnRlbXBsYXRlIGFzPHR5
cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGU+KCkgPSBmaXJzdEJhc2VWYWx1ZS0+dGVt
cGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAg
c2Vjb25kQW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpD
b250ZW50VHlwZT4oKSA9IHNlY29uZEJhc2VWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5p
bVZhbFR5cGUyOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmltVmFs
VHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAsIGZpcnN0
QW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFy
dEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmltYXRlZFZh
bHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZTEsIHR5cGVu
YW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MSw3ICsxOTQsNyBAQCBwcml2YXRlOgogICAgIH07CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAgICB2b2lkIGV4ZWN1dGVBY3Rp
b24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFByb3BlcnRpZXMsIHVuc2lnbmVkIHdoaWNoUHJvcGVydHksIHR5cGVu
YW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogYW5pbWF0ZWRWYWx1ZSA9IG51bGxwdHIpCisg
ICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBhY3Rpb24sIGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRQcm9wZXJ0aWVzLCB1bnNpZ25lZCB3
aGljaFByb3BlcnR5LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBhbmltYXRlZFZhbHVlID0gbnVs
bHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1c2UgU1ZHRWxlbWVudDo6SW5z
dGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3ku
IFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAgICAgc2V0SW5zdGFuY2VVcGRh
dGVzQmxvY2tlZCgqYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLmVsZW1lbnQsIHRydWUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbmRp
dGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5cGU7CitzdHJ1Y3QgU1ZHQW5p
bWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51bSBBbmltYXRpb25Nb2RlIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwLDcgKzE0MCw3IEBAIENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gU1ZH
Q29tcG9uZW50VHIKICAgICBmdW5jLmFtcGxpdHVkZSA9IGFtcGxpdHVkZSgpOwogICAgIGZ1bmMu
ZXhwb25lbnQgPSBleHBvbmVudCgpOwogICAgIGZ1bmMub2Zmc2V0ID0gb2Zmc2V0KCk7Ci0gICAg
ZnVuYy50YWJsZVZhbHVlcyA9IHRhYmxlVmFsdWVzKCk7CisgICAgZnVuYy50YWJsZVZhbHVlcyA9
IHRhYmxlVmFsdWVzKCkudmFsdWVzKCk7CiAgICAgcmV0dXJuIGZ1bmM7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50OjpzZXRGaWx0ZXJFCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBl
QXR0cikKICAgICAgICAgcmV0dXJuIGNvbG9yTWF0cml4LT5zZXRUeXBlKHR5cGUoKSk7CiAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKQotICAgICAgICByZXR1cm4gY29s
b3JNYXRyaXgtPnNldFZhbHVlcyh2YWx1ZXMoKSk7CisgICAgICAgIHJldHVybiBjb2xvck1hdHJp
eC0+c2V0VmFsdWVzKHZhbHVlcygpLnZhbHVlcygpKTsKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBTVkdGRUNvbG9yTWF0cml4RWxlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGZpbHRlclZhbHVlcyA9IHZhbHVlcygpOworICAgICAg
ICBmaWx0ZXJWYWx1ZXMgPSB2YWx1ZXMoKS52YWx1ZXMoKTsKICAgICAgICAgdW5zaWduZWQgc2l6
ZSA9IGZpbHRlclZhbHVlcy5zaXplKCk7CiAKICAgICAgICAgaWYgKChmaWx0ZXJUeXBlID09IEZF
Q09MT1JNQVRSSVhfVFlQRV9NQVRSSVggJiYgc2l6ZSAhPSAyMCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg0LDEzICsyODQsMTMgQEAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeAogICAgIGlmIChoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6
OmRpdmlzb3JBdHRyKSAmJiAhZGl2aXNvclZhbHVlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBpZiAoIWhhc0F0dHJpYnV0ZShTVkdOYW1lczo6ZGl2aXNvckF0dHIpKSB7Ci0gICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwga2VybmVsTWF0cml4U2l6ZTsgKytpKQotICAgICAgICAgICAg
ZGl2aXNvclZhbHVlICs9IGtlcm5lbE1hdHJpeC5hdChpKTsKKyAgICAgICAgZm9yIChjb25zdCBh
dXRvJiB2YWx1ZSA6IGtlcm5lbE1hdHJpeCkKKyAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSB2
YWx1ZS0+YXM8ZmxvYXQ+KCk7CiAgICAgICAgIGlmICghZGl2aXNvclZhbHVlKQogICAgICAgICAg
ICAgZGl2aXNvclZhbHVlID0gMTsKICAgICB9CiAKLSAgICBhdXRvIGVmZmVjdCA9IEZFQ29udm9s
dmVNYXRyaXg6OmNyZWF0ZShmaWx0ZXIsIEludFNpemUob3JkZXJYVmFsdWUsIG9yZGVyWVZhbHVl
KSwgZGl2aXNvclZhbHVlLCBiaWFzKCksIEludFBvaW50KHRhcmdldFhWYWx1ZSwgdGFyZ2V0WVZh
bHVlKSwgZWRnZU1vZGUoKSwgRmxvYXRQb2ludChrZXJuZWxVbml0TGVuZ3RoWFZhbHVlLCBrZXJu
ZWxVbml0TGVuZ3RoWVZhbHVlKSwgcHJlc2VydmVBbHBoYSgpLCBrZXJuZWxNYXRyaXgpOworICAg
IGF1dG8gZWZmZWN0ID0gRkVDb252b2x2ZU1hdHJpeDo6Y3JlYXRlKGZpbHRlciwgSW50U2l6ZShv
cmRlclhWYWx1ZSwgb3JkZXJZVmFsdWUpLCBkaXZpc29yVmFsdWUsIGJpYXMoKSwgSW50UG9pbnQo
dGFyZ2V0WFZhbHVlLCB0YXJnZXRZVmFsdWUpLCBlZGdlTW9kZSgpLCBGbG9hdFBvaW50KGtlcm5l
bFVuaXRMZW5ndGhYVmFsdWUsIGtlcm5lbFVuaXRMZW5ndGhZVmFsdWUpLCBwcmVzZXJ2ZUFscGhh
KCksIGtlcm5lbE1hdHJpeC52YWx1ZXMoKSk7CiAgICAgZWZmZWN0LT5pbnB1dEVmZmVjdHMoKS5h
cHBlbmQoaW5wdXQxKTsKICAgICByZXR1cm4gV1RGTW92ZShlZmZlY3QpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NywxMCArNjcsMTAgQEAgaW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1l
bgogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fZmlsdGVyVW5p
dHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKQogICAgICwg
bV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05V
U0UpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAgLCBtX3koTGVuZ3Ro
TW9kZUhlaWdodCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMjAl
IikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikKKyAgICAsIG1feChT
VkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAgLCBtX3koU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0
aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEg
dmFsdWUgb2YgIi0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0
aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYg
YSB2YWx1ZSBvZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDEwICs1
NCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVX
aWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAiMCUiKQotICAgICwgbV93
aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVI
ZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgs
ICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIwJSIp
KQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikp
CisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0LCAiMTAwJSIp
KQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQs
IHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lmaWVkLgogICAg
IC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQs
IHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMCBAQCBFTkRfUkVHSVNU
RVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6
OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhl
aWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAgICwgbV9oZWlnaHQoTGVu
Z3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgp
KQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwgbV93
aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9oZWlnaHQoU1ZH
TGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
U1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVy
dGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDEwICs1OCwxMCBA
QCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHSW1hZ2VFbGVt
ZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0
KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX2hlaWdodChMZW5ndGhN
b2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisg
ICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX3dpZHRo
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX2hlaWdodChTVkdMZW5n
dGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1faW1hZ2VMb2FkZXIoKnRoaXMpCiB7
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdJbWFnZUVsZW1lbnQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBFX1BDID0gTGVuZ3RoVHlwZVBDCiAgICAgfTsKIAot
ICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aFZhbHVlJiB2YWx1
ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xl
bmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTY2LDEyICs2
NiwxMiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlwZSgpOworICAgICAgICBy
ZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlv
bk9yPGZsb2F0PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRl
eHRFbGVtZW50KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLnZhbHVlRm9y
QmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9hdCB2YWx1ZSkK
QEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlKHZh
bHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250
ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtODksNyArODks
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRV
bml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS52YWx1ZUluU3BlY2lmaWVk
VW5pdHMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUluU3BlY2lm
aWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtOTcsNyArOTcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5p
dHMpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAg
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIAog
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJl
bmNlKCkudmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTExMyw3ICsxMTMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJl
c3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1ZUluU3BlY2lm
aWVkVW5pdHMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkubmV3VmFs
dWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIApAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNv
bnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVuZ3RoQ29udGV4dCB7IGNv
bnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0OCw3ICsxNDgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTGVuZ3RoVmFs
dWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aFZhbHVlPigmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDEzIEBAIHB1Ymxp
YzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdFdy
YXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBwZXJDYWNo
ZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNW
R0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisg
ICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBT
VkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlz
dFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlzdChBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4o
YW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykKICAgICB7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmNwcAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU1ZHTGVuZ3RoTGlzdFZhbHVl
czo6cGFyc2UoY29uc3QgU3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGxlbmd0
aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlU3RyaW5nKS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKGxlbmd0aCk7CisgICAgICAgIGFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFNWR0xlbmd0aFZhbHVlPihsZW5ndGgpKTsKICAgICAgICAgc2tpcE9wdGlv
bmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBlbmQpOwogICAgIH0KIH0KQEAgLTYwLDcgKzYw
LDcgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBp
ZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGF0UmVmZXJlbmNlKGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAgfQogCiAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhM
aXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExp
c3RWYWx1ZXMuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE0ICsyMiwxNCBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1ZHTGVuZ3RoOwogY2xhc3MgU1ZHTGVuZ3RoTGlzdDsKIAotY2xh
c3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHTGVuZ3RoVmFs
dWU+IHsKK2NsYXNzIFNWR0xlbmd0aExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHTGlzdFZh
bHVlczxTVkdMZW5ndGhWYWx1ZT4gewogcHVibGljOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgU1ZHTGVuZ3RoTW9kZSk7CiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsMTAgKzU1LDEwIEBAIEVORF9SRUdJU1RFUl9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNW
R0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCi0gICAgLCBtX3gxKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feTEoTGVuZ3RoTW9kZUhl
aWdodCkKLSAgICAsIG1feDIoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIpCi0gICAgLCBtX3kyKExl
bmd0aE1vZGVIZWlnaHQpCisgICAgLCBtX3gxKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0
aCkpCisgICAgLCBtX3kxKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQorICAgICwg
bV94MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikpCisgICAgLCBtX3ky
KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQpKQogewogICAgIC8vIFNwZWM6IElmIHRo
ZSB4MiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZh
bHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6bGluZWFyR3JhZGllbnRUYWcpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZh
bHVlcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNWR0xpc3RWYWx1ZXMuaCIKKworI2luY2x1ZGUgIlNWR1ZhbHVlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK3ZvaWQgU1ZH
TGlzdFZhbHVlczxQcm9wZXJ0eVR5cGU+OjpyZXNpemUoc2l6ZV90IG5ld1NpemUpCit7CisgICAg
c2l6ZV90IGluZGV4ID0gc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+Pjo6cmVz
aXplKG5ld1NpemUpOworICAgIGZvciAoOyBpbmRleCA8IG5ld1NpemU7ICsraW5kZXgpCisgICAg
ICAgIGF0KGluZGV4KSA9IFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPigpOworfQorCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+
IFNWR0xpc3RWYWx1ZXM8UHJvcGVydHlUeXBlPjo6ZGVlcENvcHkoKSBjb25zdAoreworICAgIFZl
Y3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiB2YWx1ZXM7CisgICAgZm9yIChjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICB2YWx1ZXMuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGUoKnZhbHVlKSk7CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLy8gVGVtcGxhdGUgZnVu
Y3Rpb24gZXhwbGljaXQgaW5zdGFudGlhdGlvbi4KK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVl
czxmbG9hdD46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFsdWVzPEZs
b2F0UG9pbnQ+OjpyZXNpemUoc2l6ZV90KTsKK3RlbXBsYXRlIHZvaWQgU1ZHTGlzdFZhbHVlczxT
VkdMZW5ndGhWYWx1ZT46OnJlc2l6ZShzaXplX3QpOwordGVtcGxhdGUgdm9pZCBTVkdMaXN0VmFs
dWVzPFNWR1RyYW5zZm9ybVZhbHVlPjo6cmVzaXplKHNpemVfdCk7CisKK3RlbXBsYXRlIFZlY3Rv
cjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPGZsb2F0Pjo6ZGVlcENvcHkoKSBjb25z
dDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFN0cmlu
Zz46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4g
U1ZHTGlzdFZhbHVlczxGbG9hdFBvaW50Pjo6ZGVlcENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZl
Y3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0VmFsdWVzPFNWR0xlbmd0aFZhbHVlPjo6ZGVl
cENvcHkoKSBjb25zdDsKK3RlbXBsYXRlIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBTVkdMaXN0
VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj46OmRlZXBDb3B5KCkgY29uc3Q7Cit0ZW1wbGF0ZSBW
ZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT46
OmRlZXBDb3B5KCkgY29uc3Q7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaXN0
VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpc3RWYWx1ZXMu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlzdFZhbHVlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHVmFsdWU7CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK2NsYXNzIFNWR0xpc3RWYWx1ZXMgOiBwdWJsaWMgVmVj
dG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHsKK3B1YmxpYzoKKyAgICBTVkdMaXN0VmFsdWVzKCkgPSBk
ZWZhdWx0OworCisgICAgU1ZHTGlzdFZhbHVlcyhjb25zdCBTVkdMaXN0VmFsdWVzJiBvdGhlcikK
KyAgICAgICAgOiBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4ob3RoZXIuZGVlcENvcHkoKSkKKyAg
ICB7CisgICAgfQorICAgIAorICAgIFNWR0xpc3RWYWx1ZXMmIG9wZXJhdG9yPShjb25zdCBTVkdM
aXN0VmFsdWVzJiBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdM
aXN0VmFsdWVzJj4oVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpvcGVyYXRvcj0ob3RoZXIuZGVl
cENvcHkoKSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlc2l6ZShzaXplX3QpOworICAgIAor
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSBjb25zdCB7
IHJldHVybiBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorICAgIFBy
b3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSB7IHJldHVybiBhdChpbmRleCkt
PnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBl
JiBmaXJzdFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIGF0UmVmZXJlbmNlKDApOyB9CisgICAg
UHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKDApOyB9
CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RSZWZlcmVuY2UoKSBjb25zdCB7IHJldHVy
biBhdFJlZmVyZW5jZShzaXplKCkgLSAxKTsgfQorICAgIFByb3BlcnR5VHlwZSYgbGFzdFJlZmVy
ZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKHNpemUoKSAtIDEpOyB9CisgICAgCisgICAgVmVj
dG9yPFByb3BlcnR5VHlwZT4gdmFsdWVzKCkgY29uc3QKKyAgICB7CisgICAgICAgIFZlY3RvcjxQ
cm9wZXJ0eVR5cGU+IHZhbHVlczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0
aGlzKQorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2YWx1ZS0+dGVtcGxhdGUgYXM8UHJvcGVy
dHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisgICAgCitwcml2YXRl
OgorICAgIFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiBkZWVwQ29weSgpIGNvbnN0OworfTsKKwor
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NCwxMCArNzQsMTAgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIAogaW5saW5lIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVmWChMZW5ndGhNb2RlV2lkdGgpCi0g
ICAgLCBtX3JlZlkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fbWFya2VyV2lkdGgoTGVuZ3Ro
TW9kZVdpZHRoLCAiMyIpCi0gICAgLCBtX21hcmtlckhlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAi
MyIpIAorICAgICwgbV9yZWZYKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAg
LCBtX3JlZlkoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAgLCBtX21hcmtl
cldpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjMiKSkKKyAgICAsIG1fbWFy
a2VySGVpZ2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIzIikpCiAgICAgLCBt
X21hcmtlclVuaXRzKFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpCiAgICAgLCBtX29yaWVudFR5
cGUoU1ZHTWFya2VyT3JpZW50QW5nbGUpCiB7CkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTVkdN
YXJrZXJFbGVtZW50OjpzZXRPcmllbnRUb0F1dG8oKQogCiB2b2lkIFNWR01hcmtlckVsZW1lbnQ6
OnNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUmIGFuZ2xlKQogewotICAgIHNldE9yaWVudChTVkdN
YXJrZXJPcmllbnRBbmdsZSwgYW5nbGUucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgc2V0T3Jp
ZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBhbmdsZS52YWx1ZVJlZmVyZW5jZSgpKTsKIH0KIAog
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpA
QCAtMjQxLDEyICsyNDEsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzeW5jaHJvbml6ZU9y
aWVudAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1dG9TdGFydFJl
dmVyc2VTdHJpbmcoImF1dG8tc3RhcnQtcmV2ZXJzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gSWYgb3JpZW50IGlzIG5vdCBhdXRvIG9yIGF1dG8tc3Rh
cnQtcmV2ZXJzZSwgdGhlIHByZXZpb3VzIGNhbGwgdG8gc3luY2hyb25pemVPcmllbnRBbmdsZSBh
bHJlYWR5IHNldCB0aGUgb3JpZW50QXR0ciB0byB0aGUgcmlnaHQgYW5nbGUuCi0gICAgaWYgKG93
bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0bykgeworICAg
IGlmIChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlLT5hczxTVkdNYXJrZXJPcmllbnRUeXBl
PigpID09IFNWR01hcmtlck9yaWVudEF1dG8pIHsKICAgICAgICAgb3duZXJUeXBlLm1fb3JpZW50
VHlwZS5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0
dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKG93bmVyVHlwZS5tX29yaWVudFR5cGUudmFsdWUgPT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0
YXJ0UmV2ZXJzZSkKKyAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlwZS52YWx1ZS0+YXM8U1ZH
TWFya2VyT3JpZW50VHlwZT4oKSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQog
ICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZvd25lclR5cGUsIG9y
aWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0YXJ0UmV2ZXJzZVN0
cmluZyk7CiB9CiAKQEAgLTI2MiwxMSArMjYyLDExIEBAIFNWR01hcmtlck9yaWVudFR5cGUmIFNW
R01hcmtlckVsZW1lbnQ6Om8KIHsKICAgICBpZiAoYXV0byB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxVc2VPd25lclR5cGUsIFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+KHRoaXMsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKSkpIHsKICAgICAgICAgaWYgKHdyYXBw
ZXItPmlzQW5pbWF0aW5nKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVyLT5jdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpIDwgU1ZHTWFya2VyT3JpZW50TWF4KTsKLSAgICAgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVudFR5cGUmPih3cmFwcGVyLT5jdXJyZW50
QW5pbWF0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCh3cmFwcGVyLT5jdXJyZW50QW5p
bWF0ZWRWYWx1ZSgpLT5hczxTVkdNYXJrZXJPcmllbnRUeXBlPigpIDwgU1ZHTWFya2VyT3JpZW50
TWF4KTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNWR01hcmtlck9yaWVu
dFR5cGUmPih3cmFwcGVyLT5jdXJyZW50QW5pbWF0ZWRWYWx1ZSgpLT5hczxTVkdNYXJrZXJPcmll
bnRUeXBlPigpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gbV9vcmllbnRUeXBlLnZh
bHVlOworICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWUtPmFzPFNWR01hcmtlck9yaWVudFR5
cGU+KCk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPFNW
R01hcmtlck9yaWVudFR5cGU+PiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRUeXBlQW5pbWF0ZWQo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lvbiAyMjk4
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC05OCw4ICs5OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6
ZU9yaWVudFR5cGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogICAgIHN0YXRpYyBSZWY8
U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gbG9va3VwT3JDcmVhdGVPcmllbnRUeXBlV3JhcHBlcihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50
VHlwZSgpIGNvbnN0OwotICAgIFNWR01hcmtlck9yaWVudFR5cGUmIG9yaWVudFR5cGVCYXNlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7IH0KLSAgICB2b2lkIHNldE9y
aWVudFR5cGVCYXNlVmFsdWUoY29uc3QgU1ZHTWFya2VyT3JpZW50VHlwZSYgdHlwZSkgeyBtX29y
aWVudFR5cGUudmFsdWUgPSB0eXBlOyB9CisgICAgU1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50
VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50VHlwZS52YWx1ZS0+YXM8U1ZH
TWFya2VyT3JpZW50VHlwZT4oKTsgfQorICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShj
b25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG9yaWVudFR5cGVCYXNlVmFsdWUoKSA9
IHR5cGU7IH0KICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxT
VkdNYXJrZXJPcmllbnRUeXBlPj4gb3JpZW50VHlwZUFuaW1hdGVkKCk7CiAKIHByaXZhdGU6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyVHlwZXMuaAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
Myw4ICsxMDMsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8c3RkOjpwYWlyPFNWR0FuCiAg
ICAgICAgICAgICBhbmdsZSA9IHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjxTVkdBbmds
ZVZhbHVlLCB1bnNpZ25lZD4oYW5nbGUsIG9yaWVudFR5cGUpOwogICAgIH0KLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+PiBwYXJzZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+JikgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDEwIEBAIGlubGluZSBTVkdNYXNrRWxlbWVudDo6U1ZHTWFz
a0VsZW1lbnQoY28KICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBt
X21hc2tVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gp
CiAgICAgLCBtX21hc2tDb250ZW50VW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VT
RVJTUEFDRU9OVVNFKQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiKQotICAgICwg
bV95KExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdp
ZHRoLCAiMTIwJSIpCi0gICAgLCBtX2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0LCAiMTIwJSIpCisg
ICAgLCBtX3goU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpKQorICAgICwg
bV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICItMTAlIikpCisgICAgLCBtX3dp
ZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgIjEyMCUiKSkKKyAgICAsIG1faGVp
Z2h0KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikpCiB7CiAgICAgLy8g
U3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICItMTAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJ
ZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXRyaXguaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBjbGFzcyBvbmNlIFNWR01hdHJpeCBiZWNvbWVz
IGFuIGFsaWFzIHRvIERPTU1hdHJpeC4KIGNsYXNzIFNWR01hdHJpeCA6IHB1YmxpYyBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNW
R01hdHJpeD4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCisgICAgc3RhdGljIFJl
ZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgoYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAgICB9CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIGRvdWJsZSBhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
LmEoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuYSgpOwogICAgIH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEEoZG91YmxlIHZhbHVlKQpAQCAtNjAsNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNldEEodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldEEo
dmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpA
QCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYigpCiAgICAgewotICAgICAg
ICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5iKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJl
ZmVyZW5jZSgpLmIoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCKGRvdWJs
ZSB2YWx1ZSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25s
eSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKKyAg
ICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRCKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogCiAg
ICAgZG91YmxlIGMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
YygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5jKCk7CiAgICAgfQogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0Qyhkb3VibGUgdmFsdWUpCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5
UmVmZXJlbmNlKCkuc2V0Qyh2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0Qyh2
YWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGQoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuZCgpOworICAgICAgICByZXR1cm4gdmFsdWVS
ZWZlcmVuY2UoKS5kKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RChkb3Vi
bGUgdmFsdWUpCkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFk
T25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxs
b3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXREKHZhbHVlKTsK
KyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXREKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExNiw3ICsxMTYsNyBAQCBwdWJsaWM6
CiAKICAgICBkb3VibGUgZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVu
Y2UoKS5lKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmUoKTsKICAgICB9CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFKGRvdWJsZSB2YWx1ZSkKQEAgLTEyNCw3ICsxMjQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldEUodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgp
LnNldEUodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBmKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmYoKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlUmVmZXJlbmNlKCkuZigpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dEYoZG91YmxlIHZhbHVlKQpAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Rih2
YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0Rih2YWx1ZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNTEsNyArMTUxLDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byBy
ZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC5wcm9wZXJ0
eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLm11
bHRpcGx5KHNlY29uZE1hdHJpeC52YWx1ZVJlZmVyZW5jZSgpKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0x
NjIsNyArMTYyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmludmVyc2UoKTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmludmVyc2UoKTsKICAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3BlcnR5UmVmZXJlbmNlKCkudHJhbnNsYXRlKHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS50cmFuc2xhdGUoeCwgeSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1bHQpOwpA
QCAtMTg2LDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9
OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zY2FsZShzY2Fs
ZUZhY3Rvcik7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgp
LnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAg
cmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xOTcsNyArMTk3LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1
bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNj
YWxlRmFjdG9yWSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5j
ZSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZUZhY3RvclgsIHNjYWxlRmFjdG9yWSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShyZXN1
bHQpOwpAQCAtMjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5yb3Rh
dGUoYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2Uo
KS5yb3RhdGUoYW5nbGUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9
IHByb3BlcnR5UmVmZXJlbmNlKCkucm90YXRlRnJvbVZlY3Rvcih4LCB5KTsgICAgICAgIAorICAg
ICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkucm90YXRlRnJvbVZlY3Rvcih4LCB5
KTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICAKQEAgLTIzMiw3ICsyMzIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRv
IHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFgoKTsgICAgICAgIAorICAgICAgICBh
dXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuZmxpcFgoKTsKICAgICAgICAgY29tbWl0Q2hh
bmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0y
NDMsNyArMjQzLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmZsaXBZKCk7ICAgICAg
ICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmZsaXBZKCk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0ZShy
ZXN1bHQpOwpAQCAtMjU0LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5z
a2V3WChhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5j
ZSgpLnNrZXdYKGFuZ2xlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0
dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNjUsMTQgKzI2NSwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2tld1koYW5nbGUpOyAgICAgICAgCisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5za2V3WShhbmdsZSk7ICAgICAgICAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJl
c3VsdCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdNYXRyaXhW
YWx1ZSYgdmFsdWUpCisgICAgU1ZHTWF0cml4KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTWF0cml4VmFsdWU+KCZhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR051bWJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXIuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU1ZHTnVtYmVyIDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0JiB2
YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlcj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R051bWJlcihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewot
ICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
UmVmZXJlbmNlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JC
aW5kaW5ncyhmbG9hdCB2YWx1ZSkKQEAgLTU4LDE0ICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpID0g
dmFsdWU7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkgPSB2YWx1ZTsKICAgICAgICAgY29tbWl0
Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
U1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBmbG9hdCYgdmFsdWUpCisgICAgU1ZHTnVtYmVyKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8ZmxvYXQ+
KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMg
QEAgcHVibGljOgogICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0VmFsdWVzPjsKICAgICB1c2lu
ZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpMaXN0V3Jh
cHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRl
ZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHTnVtYmVyTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdOdW1iZXJMaXN0KEFuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdOdW1iZXJMaXN0
VmFsdWVzPihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuY3Bw
CShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZh
bHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJTVkdO
dW1iZXJMaXN0VmFsdWVzLmgiCiAKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNyArNDAsNyBAQCB2b2lkIFNWR051bWJlckxp
c3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgd2hpbGUgKHB0ciA8IGVuZCkgewogICAgICAg
ICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCBudW1iZXIpKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBhcHBlbmQobnVtYmVyKTsKKyAgICAgICAgYXBwZW5kKFNWR1ZhbHVlOjpjcmVh
dGU8ZmxvYXQ+KG51bWJlcikpOwogICAgIH0KIH0KIApAQCAtNTIsNyArNTMsNyBAQCBTdHJpbmcg
U1ZHTnVtYmVyTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluCiAgICAgICAgIGlmIChpID4gMCkKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIoYXQoaSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhdFJlZmVyZW5jZShp
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjI5ODU5KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMjAsMTUgKzIwLDE1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHTGlzdFZh
bHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR051bWJlcjsKIGNsYXNz
IFNWR051bWJlckxpc3Q7CiAKLWNsYXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJs
aWMgVmVjdG9yPGZsb2F0PiB7CitjbGFzcyBTVkdOdW1iZXJMaXN0VmFsdWVzIGZpbmFsIDogcHVi
bGljIFNWR0xpc3RWYWx1ZXM8ZmxvYXQ+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlKGNvbnN0
IFN0cmluZyYpOwogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Q7CkBAIC00Miw3ICs0
Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR04KICAgICAgICAg
bGlzdC5wYXJzZShzdHJpbmcpOwogICAgICAgICByZXR1cm4gbGlzdDsKICAgICB9Ci0gICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U1ZHTnVtYmVyTGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBp
bml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHTnVt
YmVyTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5nKCk7IH0KIAog
ICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IGZsb2F0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhcnNlclV0aWxpdGllcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNyAr
Mjg5LDcgQEAgYm9vbCBwb2ludHNMaXN0RnJvbVNWR0RhdGEoU1ZHUG9pbnRMaXN0VgogICAgICAg
ICB9CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlcyhjdXIsIGVuZCk7CiAKLSAgICAgICAg
cG9pbnRzTGlzdC5hcHBlbmQoRmxvYXRQb2ludCh4UG9zLCB5UG9zKSk7CisgICAgICAgIHBvaW50
c0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oRmxvYXRQb2ludCh4UG9z
LCB5UG9zKSkpOwogICAgIH0KICAgICByZXR1cm4gY3VyID09IGVuZCAmJiAhZGVsaW1QYXJzZWQ7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJ5dGVTdHJlYW0uaAkocmV2aXNpb24g
MjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwOCw4ICsxMDgsNiBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZH
UGF0aEJ5dGVTdHJlCiAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKHN0
cmluZywgYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIHJldHVybiBieXRl
U3RyZWFtOwogICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTVkdQYXRoQnl0ZVN0cmVh
bT4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFNWR1BhdGhCeXRlU3RyZWFtJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyAr
ODQsNyBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHUGF0
aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKLSAgICAsIG1fcGF0aFNlZ0xpc3QoUGF0aFNlZ1VuYWx0ZXJlZFJvbGUpCisgICAgLCBt
X3BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0VmFsdWVzKFBhdGhTZWdVbmFsdGVyZWRSb2xlKSkK
ICAgICAsIG1faXNBbmltVmFsT2JzZXJ2ZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnBhdGhUYWcpKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIFNWR1BhdGhF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkCiAgICAgICAgIGlmIChtX3BhdGhTZWdMaXN0LnNo
b3VsZFN5bmNocm9uaXplICYmICFTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNW
R1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPih0aGlz
LCBkUHJvcGVydHlJbmZvKCkpLT5pc0FuaW1hdGluZygpKSB7CiAgICAgICAgICAgICBTVkdQYXRo
U2VnTGlzdFZhbHVlcyBuZXdMaXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKTsKICAgICAgICAgICAg
IGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShtX3BhdGhCeXRlU3RyZWFt
LCAqdGhpcywgbmV3TGlzdCwgVW5hbHRlcmVkUGFyc2luZyk7Ci0gICAgICAgICAgICBtX3BhdGhT
ZWdMaXN0LnZhbHVlID0gV1RGTW92ZShuZXdMaXN0KTsKKyAgICAgICAgICAgIG1fcGF0aFNlZ0xp
c3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpID0gV1RGTW92ZShuZXdMaXN0KTsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikKQEAgLTMzMSw4ICszMzEsOCBAQCBS
ZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHUGF0aEVsZW1lbnQ6CiAgICAgaWYgKGF1dG8gcHJv
cGVydHkgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR1BhdGhFbGVtZW50
LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPigmb3duZXJUeXBlLCBkUHJv
cGVydHlJbmZvKCkpKQogICAgICAgICByZXR1cm4gKnByb3BlcnR5OwogCi0gICAgaWYgKG93bmVy
VHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgYnVpbGRTVkdQYXRo
U2VnTGlzdFZhbHVlc0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBv
d25lclR5cGUsIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLCBVbmFsdGVyZWRQYXJzaW5n
KTsKKyAgICBpZiAob3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdM
aXN0VmFsdWVzPigpLmlzRW1wdHkoKSkKKyAgICAgICAgYnVpbGRTVkdQYXRoU2VnTGlzdFZhbHVl
c0Zyb21CeXRlU3RyZWFtKG93bmVyVHlwZS5tX3BhdGhCeXRlU3RyZWFtLCBvd25lclR5cGUsIG93
bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKSwg
VW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9v
a3VwT3JDcmVhdGVXcmFwcGVyPFNWR1BhdGhFbGVtZW50LCBTVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmLCBTVkdQYXRoU2VnTGlzdFZhbHVlcz4oJm93bmVyVHlwZSwgZFByb3Bl
cnR5SW5mbygpLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZSk7CiB9CkBAIC0zNDMsNyAr
MzQzLDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3luY2hyb25pemVEKFNWR0VsZQogICAgIFNW
R1BhdGhFbGVtZW50JiBvd25lclR5cGUgPSBkb3duY2FzdDxTVkdQYXRoRWxlbWVudD4oKmNvbnRl
eHRFbGVtZW50KTsKICAgICBpZiAoIW93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnNob3VsZFN5bmNo
cm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3Quc3lu
Y2hyb25pemUoJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lLCBvd25l
clR5cGUubV9wYXRoU2VnTGlzdC52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG93bmVyVHlw
ZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKS0+
YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPigpLnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1l
bnQ6OmFuaW1hdGVkUHJvcGVydHlXaWxsQmVEZWxldGVkKCkKQEAgLTM5NiwxMCArMzk2LDEwIEBA
IHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCgKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBQYXRoU2VnVW5hbHRlcmVkUm9sZToKICAgICAgICAgaWYgKGxpc3RNb2RpZmlj
YXRpb24gPT0gTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCkgewotICAgICAgICAgICAgQVNTRVJUKCFt
X3BhdGhTZWdMaXN0LnZhbHVlLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBhcHBlbmRTVkdQYXRo
Qnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUubGFzdCgpLmNvcHlS
ZWYoKSwgbV9wYXRoQnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBB
U1NFUlQoIW1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLmlz
RW1wdHkoKSk7CisgICAgICAgICAgICBhcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnKG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpLmxhc3RS
ZWZlcmVuY2UoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9t
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMobV9wYXRoU2VnTGlzdC52YWx1ZSwgbV9wYXRoQnl0ZVN0cmVh
bSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFt
RnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1fcGF0aFNlZ0xpc3QudmFsdWUtPmFzPFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPigpLCBtX3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAg
ICAgICAgbV9jYWNoZWRQYXRoID0gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBhdGhTZWdVbmRlZmluZWRSb2xlOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpc3QuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IFNWR1BhdGhTZWdMaXN0OjpjbGVhcigpCiB7CiAg
ICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICBpZiAobV92YWx1ZXMtPmlzRW1wdHkoKSkKKyAgICBp
ZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogICAg
IHJldHVybiBCYXNlOjpjbGVhclZhbHVlcygpOwogfQpAQCAtNDIsMTUgKzQyLDE1IEBAIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFMKIAogRXhjZXB0aW9uT3I8UmVmUHRy
PFNWR1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0oUmVmPFNWR1BhdGhTZWc+
JiYgbmV3SXRlbSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgbV92YWx1ZXMt
PnNpemUoKSkKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFySXRlbUNvbnRleHRBbmRSb2xlKGluZGV4
KTsKKyAgICBpZiAoaW5kZXggPCB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpCisgICAgICAgIHZh
bHVlc1JlZmVyZW5jZSgpLmNsZWFySXRlbUNvbnRleHRBbmRSb2xlKGluZGV4KTsKICAgICByZXR1
cm4gQmFzZTo6cmVwbGFjZUl0ZW1WYWx1ZXMoV1RGTW92ZShuZXdJdGVtKSwgaW5kZXgpOwogfQog
CiBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IFNWR1BhdGhTZWdMaXN0OjpyZW1vdmVJ
dGVtKHVuc2lnbmVkIGluZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFsdWVzLT5zaXplKCkp
Ci0gICAgICAgIG1fdmFsdWVzLT5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CisgICAg
aWYgKGluZGV4IDwgdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQorICAgICAgICB2YWx1ZXNSZWZl
cmVuY2UoKS5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CiAgICAgYXV0byByZXN1bHQg
PSBCYXNlOjpyZW1vdmVJdGVtVmFsdWVzKGluZGV4KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsMTIgQEAgcHVibGljOgog
ICAgIHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdFZhbHVlcz47CiAgICAgdXNpbmcgTGlzdEl0ZW1U
eXBlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OjpMaXN0SXRlbVR5
cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xp
c3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVk
UHJvcGVydHksIHJvbGUsIHBhdGhTZWdSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1Bh
dGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAg
IHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQ
dHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1BhdGhTZWdMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIFBhdGhTZWdVbmRlZmlu
ZWRSb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAKLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9
IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSB2YWx1ZXNSZWZlcmVu
Y2UoKS5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7
Ci0gICAgICAgICAgICBpZiAoaXRlbSA9PSBtX3ZhbHVlcy0+YXQoaSkpCisgICAgICAgICAgICBp
ZiAoaXRlbSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpKS0+YXM8TGlzdEl0ZW1UeXBlPigpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAKQEAgLTYwLDkgKzYwLDkgQEAg
cHVibGljOgogICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJv
b2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7Ci0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRl
eCA8IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKGl0ZW1JbmRleCA8IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSk7CiAK
LSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpdGVtSW5kZXgpOworICAgICAgICB2YWx1ZXNSZWZl
cmVuY2UoKS5yZW1vdmUoaXRlbUluZGV4KTsKIAogICAgICAgICBpZiAoc2hvdWxkU3luY2hyb25p
emVXcmFwcGVycykKICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtOTMsNyArOTMsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KEFuaW1hdGVk
TGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJv
bGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdSb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQYXRoU2VnTGlzdChBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9s
ZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRoU2VnUm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0
UHJvcGVydHk8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQog
ICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eSgmYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAg
LCBtX3BhdGhTZWdSb2xlKHBhdGhTZWdSb2xlKQpAQCAtMTE1LDEzICsxMTUsMTMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQo
bV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJv
cGVydHktPmNvbnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKKyAgICAg
ICAgdmFsdWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNv
bnRleHRFbGVtZW50KCksIExpc3RNb2RpZmljYXRpb25Vbmtub3duKTsKICAgICB9CiAKICAgICB2
b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uIGxpc3RNb2RpZmljYXRpb24pIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBtX3ZhbHVlcy0+Y29t
bWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRFbGVtZW50KCksIGxpc3RNb2Rp
ZmljYXRpb24pOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jb21taXRDaGFuZ2UoKm1fYW5p
bWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlmaWNhdGlvbik7CiAgICAg
fQogCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVt
VHlwZSYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIGZpbmFsOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0QnVpbGRlci5jcHAJKHJldmlzaW9uIDIy
OTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw3OCArNTgsNzggQEAgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpT
VkdQYXRoU2VnTGlzdEJ1aQogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6Om1vdmVUbyhjb25z
dCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgYm9vbCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUp
CiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRo
U2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAg
IG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+
PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnModGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBt
X3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9S
ZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbCh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUbyhjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBt
X3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpj
cmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdM
aW5ldG9BYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUp
KSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55
KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFs
dWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0
aFNlZ0xpbmV0b1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb0hvcml6b250
YWwoZmxvYXQgeCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdS
b2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVm
UHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoeCwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmxpbmVUb1ZlcnRpY2FsKGZsb2F0IHksIFBhdGhD
b29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0
ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9w
YXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKHksIG1fcGF0aFNl
Z1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCh5LCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bFJlbCh5LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRl
cjo6Y3VydmVUb0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVN
b2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAg
ICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgp
LCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBv
aW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCks
IHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9p
bnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRo
U2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiBwb2lu
dDIsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9k
ZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3Bh
dGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCks
IHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyh0YXJnZXRQb2ludC54KCksIHRhcmdl
dFBvaW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKICAg
ICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKHRh
cmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBt
X3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVU
b1F1YWRyYXRpYyhjb25zdCBGbG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHRh
cmdldFBvaW50LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBB
YnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhF
bGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2lu
dDEueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlz
dC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnko
KSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwg
cG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogdm9pZCBTVkdQ
YXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWNTbW9vdGgoY29uc3QgRmxvYXRQb2lu
dCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2Rl
ID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1f
cGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnModGFy
Z2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0
QnVpbGRlcjo6YXJjVG8oZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJn
ZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwg
UGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29y
ZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVh
dGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCByMSwg
cjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZywgbV9wYXRoU2VnUm9sZSkpOworICAg
ICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRo
U2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQXJjQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCByMSwgcjIsIGFuZ2xlLCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxh
ZywgbV9wYXRoU2VnUm9sZSkpKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcs
IG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0FyY1JlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwg
bGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjpjbG9zZVBhdGgoKQogewotICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhTZWdSb2xl
KSk7CisgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZH
UGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aChtX3BhdGhT
ZWdSb2xlKSkpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3RTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFNvdXJjZS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAg
Ym9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6aGFzTW9yZURhdGEoKQogCiBib29sIFNWR1BhdGhT
ZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lbnRUeXBlKFNWR1BhdGhTZWdUeXBlJiBwYXRoU2Vn
VHlwZSkKIHsKLSAgICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQp
OworICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXRSZWZlcmVuY2UobV9pdGVtQ3VycmVu
dCk7CiAgICAgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9zZWdt
ZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZH
U2VnbWUKIAogU1ZHUGF0aFNlZ1R5cGUgU1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5k
KFNWR1BhdGhTZWdUeXBlKQogewotICAgIG1fc2VnbWVudCA9IG1fcGF0aFNlZ0xpc3QuYXQobV9p
dGVtQ3VycmVudCk7CisgICAgbV9zZWdtZW50ID0gbV9wYXRoU2VnTGlzdC5hdFJlZmVyZW5jZSht
X2l0ZW1DdXJyZW50KTsKICAgICBTVkdQYXRoU2VnVHlwZSBwYXRoU2VnVHlwZSA9IHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdUeXBlPihtX3NlZ21lbnQtPnBhdGhTZWdUeXBlKCkpOwogICAgICsrbV9p
dGVtQ3VycmVudDsKICAgICByZXR1cm4gcGF0aFNlZ1R5cGU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBTVkdQYXRoU2VnTGlzdFZhbHVlczo6Y29tbWl0Q2hhbmdl
KAogCiB2b2lkIFNWR1BhdGhTZWdMaXN0VmFsdWVzOjpjbGVhckl0ZW1Db250ZXh0QW5kUm9sZSh1
bnNpZ25lZCBpbmRleCkKIHsKLSAgICBhdXRvJiBpdGVtID0gYXQoaW5kZXgpOworICAgIGF1dG8m
IGl0ZW0gPSBhdFJlZmVyZW5jZShpbmRleCk7CiAgICAgc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1dp
dGhDb250ZXh0Jj4oKml0ZW0pLnNldENvbnRleHRBbmRSb2xlKG51bGxwdHIsIFBhdGhTZWdVbmRl
ZmluZWRSb2xlKTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsMTAgKzIwLDkgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdMaXN0UHJvcGVydHkuaCIKKyNpbmNsdWRlICJT
VkdMaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2luY2x1ZGUgIlNWR1By
b3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw5ICszMyw5IEBA
IGNsYXNzIFNWR1BhdGhTZWdMaXN0OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBjbGFzcyBTVkdQ
cm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDogcHVibGljIFZl
Y3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+IHsKK2NsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDog
cHVibGljIFNWR0xpc3RWYWx1ZXM8UmVmUHRyPFNWR1BhdGhTZWc+PiB7CiBwdWJsaWM6Ci0gICAg
dXNpbmcgQmFzZSA9IFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+OworICAgIHVzaW5nIEJhc2Ug
PSBTVkdMaXN0VmFsdWVzPFJlZlB0cjxTVkdQYXRoU2VnPj47CiAgICAgCiAgICAgZXhwbGljaXQg
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoU1ZHUGF0aFNlZ1JvbGUgcm9sZSkKICAgICAgICAgOiBtX3Jv
bGUocm9sZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHJl
dmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgYXBwZW5kU1ZHUGF0aEJ5
dGVTdHJlYW1Gcm9tU1ZHUGF0aFMKICAgICBBU1NFUlQocGFyc2luZ01vZGUgPT0gVW5hbHRlcmVk
UGFyc2luZyk7CiAKICAgICBTVkdQYXRoU2VnTGlzdFZhbHVlcyBhcHBlbmRlZEl0ZW1MaXN0KFBh
dGhTZWdVbmFsdGVyZWRSb2xlKTsKLSAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChXVEZNb3Zl
KHBhdGhTZWcpKTsKKyAgICBhcHBlbmRlZEl0ZW1MaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRl
KFdURk1vdmUocGF0aFNlZykpKTsKIAogICAgIFNWR1BhdGhCeXRlU3RyZWFtIGFwcGVuZGVkQnl0
ZVN0cmVhbTsKICAgICBTVkdQYXRoU2VnTGlzdFNvdXJjZSBzb3VyY2UoYXBwZW5kZWRJdGVtTGlz
dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludCA6IHB1YmxpYyBTVkdQcm9wZXJ0
eVRlYXJPZmY8RmxvYXRQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+
IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludD4g
Y3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlKSk7CiAgICAgfQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB4KCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLngoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkueCgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFgoZmxvYXQgeFZhbHVlKQpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNl
dFgoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC02OSw3ICs2OSw3
IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IHkoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3Bl
cnR5UmVmZXJlbmNlKCkueSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS55KCk7
CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WShmbG9hdCB4VmFsdWUpCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0WSh4VmFsdWUpOworICAgICAgICB2YWx1ZVJl
ZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAg
ICAgcmV0dXJuIHsgfTsKQEAgLTg4LDE5ICs4OCwxOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIG5ld1BvaW50ID0gcHJvcGVydHlSZWZl
cmVuY2UoKS5tYXRyaXhUcmFuc2Zvcm0obWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAg
ICAgICBhdXRvIG5ld1BvaW50ID0gdmFsdWVSZWZlcmVuY2UoKS5tYXRyaXhUcmFuc2Zvcm0obWF0
cml4LnZhbHVlUmVmZXJlbmNlKCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShuZXdQb2ludCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgU1ZHUG9pbnQoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJP
ZmY8RmxvYXRQb2ludD4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAg
ICB9CiAKLSAgICBTVkdQb2ludChTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRQb2ludCYgdmFs
dWUpCisgICAgU1ZHUG9pbnQoU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxGbG9hdFBvaW50Pihu
dWxscHRyLCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
aW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTMgQEAgcHVibGljOgogICAg
IHVzaW5nIEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiA9IFNWR0FuaW1hdGVkTGlzdFByb3Bl
cnR5VGVhck9mZjxTVkdQb2ludExpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2Fj
aGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlz
dFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMg
UmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwg
dmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQb2ludExpc3Qo
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUG9pbnRMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQorICAgIFNWR1BvaW50TGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYm
IGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFsdWVzPihhbmltYXRlZFByb3BlcnR5
LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcAkocmV2aXNpb24gMjI5ODU5KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDcgQEAgU3RyaW5nIFNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZwog
ICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBG
SVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAKLSAgICAgICAgY29u
c3QgYXV0byYgcG9pbnQgPSBhdChpKTsKKyAgICAgICAgY29uc3QgYXV0byYgcG9pbnQgPSBhdFJl
ZmVyZW5jZShpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9pbnQueCgpKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
cG9pbnQueSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1ZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJ
KHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3RWYWx1
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDE1ICsyMiwxNSBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1BvaW50OwogY2xhc3MgU1ZHUG9pbnRMaXN0
OwogCi1jbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgVmVjdG9yPEZsb2F0
UG9pbnQ+IHsKK2NsYXNzIFNWR1BvaW50TGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdMaXN0
VmFsdWVzPEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygp
IGNvbnN0OwogfTsKQEAgLTQzLDggKzQ0LDYgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R1BvaW50TGlzdFZhbAogICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0RhdGEobGlzdCwgc3RyaW5n
KTsKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFNWR1BvaW50TGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0
cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5
cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9mZiA9IFNWR1BvaW50OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1
cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih0aGlzLCBwb2lu
dHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0Fu
aW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3Quc2l6
ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IFdURk1vdmUobmV3TGlzdCk7CisgICAg
ICAgIHBvaW50TGlzdCgpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN5bmNocm9uaXpl
UG9pbnRzKFMKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0gZG93bmNhc3Q8U1ZHUG9s
eUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25lclR5cGUubV9wb2ludHMu
c2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBvd25lclR5cGUubV9wb2lu
dHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0
ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3RyaW5nKCkpOworICAgIG93
bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBwb2ludHNQcm9wZXJ0eUlu
Zm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLnBvaW50TGlzdCgpLnZhbHVlQXNTdHJpbmco
KSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5RWxlbWVudDo6bG9va3Vw
T3JDcmVhdGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw3IEBAIHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2ludHMoKTsKICAgICBSZWY8
U1ZHUG9pbnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZHUG9pbnRMaXN0VmFsdWVz
JiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1ZTsgfQorICAgIFNWR1Bv
aW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludHMudmFsdWUt
PmFzPFNWR1BvaW50TGlzdFZhbHVlcz4oKTsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNWR1Byb3Bl
cnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
bz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQorICAgIHN0
YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8
U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKICAg
ICB9CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IGFsaWdu
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmFsaWduKCk7Cisg
ICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmFsaWduKCk7CiAgICAgfQogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24oZmxvYXQgdmFsdWUpCkBAIC01OSw3ICs1OSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVz
dWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7CiAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC02
OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1lZXRPclNsaWNlKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLm1lZXRPclNsaWNlKCk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxvYXQgdmFsdWUpCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNZWV0T3JTbGljZSh2
YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRNZWV0T3JT
bGljZSh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFs
dWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
MTIgKzU4LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdHcmFk
aWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4KExlbmd0aE1vZGVXaWR0
aCwgIjUwJSIpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQsICI1MCUiKQotICAgICwgbV9y
KExlbmd0aE1vZGVPdGhlciwgIjUwJSIpCi0gICAgLCBtX2Z4KExlbmd0aE1vZGVXaWR0aCkKLSAg
ICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fZnIoTGVuZ3RoTW9kZU90aGVyLCAi
MCUiKQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICI1MCUiKSkK
KyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjUwJSIpKQorICAg
ICwgbV9yKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjUwJSIpKQorICAgICwgbV9m
eChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV9meShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fZnIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3Ro
TW9kZU90aGVyLCAiMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgY3gvY3kvci9mciBhdHRy
aWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICI1
MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpyYWRp
YWxHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCShyZXZpc2lvbiAyMjk4NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3
ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHUmVjdCA6IHB1YmxpYyBT
VkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxT
VkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZH
UHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdS
ZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChhbmltYXRlZFByb3BlcnR5LCByb2xl
LCB2YWx1ZSkpOwogICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQg
eCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS54KCk7CisgICAg
ICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLngoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
TW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0WCh4VmFsdWUpOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtNjIsNyAr
NjIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCku
eSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFkoZmxvYXQgeFZhbHVlKQpA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
IAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKKyAgICAgICAgdmFs
dWVSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0
IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLndpZHRo
KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLndpZHRoKCk7CiAgICAgfQogCiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgoZmxvYXQgd2lkdGhWYWx1ZSkKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKKyAgICAgICAgdmFs
dWVSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdl
KCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogCiAg
ICAgZmxvYXQgaGVpZ2h0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLmhlaWdodCgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5oZWlnaHQoKTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQoZmxvYXQgaGVpZ2h0VmFs
dWUpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEhlaWdodChoZWlnaHRW
YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0SGVpZ2h0KGhlaWdodFZhbHVlKTsK
ICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1ZSkKKyAgICBTVkdSZWN0
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0
eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAg
ewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzQsMTEgKzc0LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAg
LCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoLCBB
U0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsIEFT
Q0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVX
aWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCisgICAg
LCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwgQVNDSUlMaXRlcmFsKCIx
MDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwg
QVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFpbmVyKFNNSUxUaW1lQ29u
dGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJhbnNsYXRlKFNWR1ZhbHVl
OjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdTVkdFbGVt
ZW50KCk7CkBAIC0yMDAsOSArMjAxLDkgQEAgUmVmPFNWR1BvaW50PiBTVkdTVkdFbGVtZW50Ojpj
dXJyZW50VHJhbgogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUoY29u
c3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1fY3VycmVudFRyYW5zbGF0
ZSA9PSB0cmFuc2xhdGlvbikKKyAgICBpZiAobV9jdXJyZW50VHJhbnNsYXRlLT5hczxGbG9hdFBv
aW50PigpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50VHJh
bnNsYXRlID0gdHJhbnNsYXRpb247CisgICAgbV9jdXJyZW50VHJhbnNsYXRlLT5hczxGbG9hdFBv
aW50PigpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVudFRyYW5zbGF0ZSgpOwogfQog
CkBAIC0zMzgsMTIgKzMzOSwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6OmNvbGxl
Y3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0aG91dFVwZGF0aW5nTGF5
b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIFJl
bmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCks
IHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2Jq
ZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QudmFsdWVSZWZl
cmVuY2UoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBjaGVja0VuY2xvc3VyZVdpdGhvdXRVcGRh
dGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiByZWN0KQogewotICAgIHJl
dHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJl
cigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBSZW5kZXJTVkdNb2Rl
bE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnZhbHVlUmVm
ZXJlbmNlKCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1lbnQ6OmdldEludGVyc2Vj
dGlvbkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJlbmNlRWxlbWVudCkKQEAg
LTQxNyw3ICs0MTgsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdFbGVtZW50OjpjcmVhdGVT
CiAKIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZVNWR1RyYW5zZm9ybUZy
b21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiB7Ci0gICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6
Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkgfSk7
CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0
cml4LnZhbHVlUmVmZXJlbmNlKCkgfSk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBTVkdTVkdFbGVt
ZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFibGU6OkNUTVNjb3Bl
IG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VDdXJyZW50
VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96b29tQW5kUGFuIHsgU1ZH
Wm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250YWluZXI+IG1fdGltZUNv
bnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0ZTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+IG1f
dmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVudElkZW50aWZpZXI7CiB9
OwpAQCAtMTc2LDcgKzE3Niw3IEBAIGlubGluZSBib29sIFNWR1NWR0VsZW1lbnQ6OnVzZUN1cnJl
bnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0
ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRlOworICAgIHJldHVybiBt
X2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9pbnQ+KCk7CiB9CiAKIGlubGluZSBTVkdab29t
QW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5kUGFuKCkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDEyIEBA
IHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVlcz47CiAgICAgdXNpbmcg
TGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6TGlzdFdyYXBw
ZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKFNWR0VsZW1l
bnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3Rh
dGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50LCB2YWx1ZXMpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmluZ0xpc3RWYWx1ZXMmIHZh
bHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBj
cmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJvcGVydHlSb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmKQogICAgIHsKICAg
ICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMuIEl0J3Mgb25seSBuZWVk
ZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZH
U3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHU3RyaW5nTGlzdFZhbHVl
cyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdTdGF0aWNMaXN0
UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRleHRFbGVtZW50LCB2YWx1
ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0
VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1t
ZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM5LDcgKzQwLDcgQEAgdm9p
ZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldChjb25zdCBTdAogCiAgICAgLy8gQWRkIGVtcHR5
IHN0cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0eSgpKQotICAgICAgICBh
cHBlbmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFN0
cmluZz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBh
cnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpAQCAtNTYsNyArNTcsNyBA
QCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0CiAgICAgICAgICAgICBw
dHIrKzsKICAgICAgICAgaWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOworICAgICAgICBhcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRyIC0gc3RhcnQpKSk7CiAg
ICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0ciwgZW5kLCBkZWxpbWl0
ZXIpOwogICAgIH0KIH0KQEAgLTcwLDcgKzcxLDcgQEAgU3RyaW5nIFNWR1N0cmluZ0xpc3RWYWx1
ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2UoaSkpOwogICAgIH0KIAogICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFs
dWVzLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdM
aXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMyw3ICsxNCw3IEBACiAgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICAqCiAgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG/iiKsKICAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwpAQCAtMjEsOCAr
MjIsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5j
bHVkZSAiU1ZHTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDcg
KzMzLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xh
c3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFs
IDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmlu
YWwgOiBwdWJsaWMgU1ZHTGlzdFZhbHVlczxTdHJpbmc+IHsKIHB1YmxpYzoKICAgICBTVkdTdHJp
bmdMaXN0VmFsdWVzKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgICAg
IDogbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsOSBAQCBzdGF0aWMgY29uc3QgSGFzaFNl
dDxTdHJpbmcsIEFTQ0lJQ2FzZUluCiB9CiAKIFNWR1Rlc3RzOjpTVkdUZXN0cygpCi0gICAgOiBt
X3JlcXVpcmVkRmVhdHVyZXMocmVxdWlyZWRGZWF0dXJlc0F0dHIpCi0gICAgLCBtX3JlcXVpcmVk
RXh0ZW5zaW9ucyhyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAgICwgbV9zeXN0ZW1MYW5ndWFn
ZShzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgOiBtX3JlcXVpcmVkRmVhdHVyZXMoU1ZHU3RyaW5n
TGlzdFZhbHVlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikpCisgICAgLCBtX3JlcXVpcmVkRXh0ZW5z
aW9ucyhTVkdTdHJpbmdMaXN0VmFsdWVzKHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpKQorICAgICwg
bV9zeXN0ZW1MYW5ndWFnZShTVkdTdHJpbmdMaXN0VmFsdWVzKHN5c3RlbUxhbmd1YWdlQXR0cikp
CiB7CiB9CiAKQEAgLTE1NCwxNSArMTU0LDIwIEBAIGJvb2wgU1ZHVGVzdHM6Omhhc0V4dGVuc2lv
bihjb25zdCBTdHJpbmcKIAogYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB7Ci0gICAg
Zm9yIChhdXRvJiBmZWF0dXJlIDogbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlKSB7CisgICAgYXV0
byBmZWF0dXJlcyA9IG1fcmVxdWlyZWRGZWF0dXJlcy52YWx1ZS0+YXM8U1ZHU3RyaW5nTGlzdFZh
bHVlcz4oKS52YWx1ZXMoKTsKKyAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmZWF0dXJlcykgewog
ICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNWR0ZlYXR1cmVzKCku
Y29udGFpbnMoZmVhdHVyZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAg
IGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlKSB7CisgICAgCisg
ICAgYXV0byBsYW5ndWFnZXMgPSBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdM
aXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBsYW5ndWFn
ZXMpIHsKICAgICAgICAgaWYgKGxhbmd1YWdlICE9IGRlZmF1bHRMYW5ndWFnZSgpLnN1YnN0cmlu
ZygwLCAyKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgZm9yIChhdXRv
JiBleHRlbnNpb24gOiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkgeworICAgIAorICAgIGF1
dG8gZXh0ZW5zaW9ucyA9IG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdM
aXN0VmFsdWVzPigpLnZhbHVlcygpOworICAgIGZvciAoYXV0byYgZXh0ZW5zaW9uIDogZXh0ZW5z
aW9ucykgewogICAgICAgICBpZiAoIWhhc0V4dGVuc2lvbihleHRlbnNpb24pKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE3MiwxMSArMTc3LDExIEBAIGJvb2wgU1ZHVGVz
dHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
IHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAg
ICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJlc2V0KHZhbHVlKTsKKyAgICAgICAgbV9yZXF1
aXJlZEZlYXR1cmVzLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0KHZhbHVl
KTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEV4dGVuc2lvbnNBdHRyKQotICAg
ICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS5yZXNldCh2YWx1ZSk7CisgICAgICAgIG1f
cmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0
KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5ndWFnZUF0dHIpCi0g
ICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUpOworICAgICAgICBtX3N5
c3RlbUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0KHZhbHVl
KTsKIH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIxMyw3IEBAIHZvaWQgU1ZHVGVzdHM6OnN5
bmNocm9uaXplQXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3BlcnR5LnNob3VsZFN5bmNo
cm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZlYXR1cmVzLnN5bmNocm9u
aXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHkudmFsdWUudmFsdWVB
c1N0cmluZygpKTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hyb25pemUoJmNvbnRleHRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS0+YXM8U1ZHU3RyaW5nTGlzdFZh
bHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rlc3RzOjpzeW5jaHJvbml6
ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1lbnQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDggQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BF
UlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
R3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgbV90ZXh0TGVuZ3RoKExl
bmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChMZW5ndGhNb2RlT3Ro
ZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyKSkK
KyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlT3Ro
ZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0U3BhY2luZykKIHsKICAg
ICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250ZW50RWxlbWVudCgpOwpA
QCAtOTgsNyArOTgsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1RleHRDb250ZW50RWxl
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZhbHVlPiBkZWZhdWx0VGV4
dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNpZmllZFRleHRMZW5ndGgg
PT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZS5uZXdWYWx1
ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExlbmd0aCgp
KTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdMZW5ndGhWYWx1ZT4oKS5uZXdW
YWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExlbmd0
aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5jaHJvbml6ZSA9IHRydWU7CiAgICAg
cmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmltYXRlZExlbmd0aD4obG9va3VwT3JD
cmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0xNjEsNyArMTYxLDcgQEAgRXhjZXB0
aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAogaW50IFNWR1RleHRDb250ZW50RWxl
bWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50KQogewogICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJu
IFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHBvaW50
LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIo
KSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52YWx1ZVJlZmVyZW5jZSgpKTsKIH0K
IAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJp
bmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzKQpAQCAtMjMyLDcgKzIzMiw3IEBA
IHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnUKICAgICAgICAgaWYgKHBy
b3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVuZ3RoQWRqdXN0QmFzZVZhbHVlKHBy
b3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1lczo6dGV4dExlbmd0
aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9IFNWR0xlbmd0aFZhbHVlOjpjb25z
dHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVM
ZW5ndGhzKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdMZW5ndGhWYWx1ZT4o
KSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFy
c2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBh
cnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKQEAgLTI0OCw3ICsyNDgsNyBA
QCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAgICAgfQogCiAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikKLSAgICAgICAgbV9zcGVj
aWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLnZhbHVlOworICAgICAgICBtX3NwZWNpZmll
ZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWUtPmFzPFNWR0xlbmd0aFZhbHVlPigpOwog
CiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIElu
c3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNmb3JtOjptYXRyaXgoKQog
ewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHByb3BlcnR5UmVm
ZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVh
dGUoKnRoaXMsIHZhbHVlUmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCShyZXZpc2lvbiAy
Mjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdUcmFu
c2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdBbmltYXRlZFBy
b3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNm
b3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGUoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7
CiAgICAgfQpAQCAtNTIsMTQgKzUyLDE0IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0
IHR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudHlwZSgp
OworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS50eXBlKCk7CiAgICAgfQogCiAgICAg
UmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmdsZSgpCiAgICAgewotICAg
ICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOworICAgICAgICByZXR1cm4g
dmFsdWVSZWZlcmVuY2UoKS5hbmdsZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgog
ICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVu
Y2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1
ZVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgudmFsdWVSZWZlcmVuY2UoKSk7CiAgICAgICAg
IGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03OCw3ICs3OCw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3Bl
cnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CisgICAgICAgIHZhbHVlUmVmZXJl
bmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAg
ICAgICAgIHJldHVybiB7IH07CkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0U2Nh
bGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTY2FsZShzeCwgc3kpOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTAwLDcg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAg
ICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Um90YXRlKGFuZ2xlLCBjeCwgY3kpOworICAgICAg
ICB2YWx1ZVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5KTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExMSw3ICsxMTEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0
eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5z
ZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVy
biB7IH07CkBAIC0xMjIsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdZKGFuZ2xl
KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTa2V3WShhbmdsZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBT
VkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIFNWR1Ry
YW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bUxpc3QuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR0xpc3RQcm9wZXJ0eVRl
YXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMxLDIwICszMywxOCBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+OwogICAgIHVz
aW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RX
cmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKEFu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlS
b2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFu
c2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRlU1ZHVHJhbnNmb3JtRnJv
bU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUmVmZXJlbmNlKCkuY3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAgewotICAgICAgICBBU1NF
UlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7CiAKICAgICAgICAgYXV0
byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1MiwyMyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgQVNT
RVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVl
c1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIC8v
IFNwZWM6IElmIHRoZSBsaXN0IHdhcyBlbXB0eSwgdGhlbiBhIHZhbHVlIG9mIG51bGwgaXMgcmV0
dXJuZWQuCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQorICAgICAgICBpZiAodmFs
dWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAKLSAgICAgICAgUmVmUHRy
PFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xpZGF0ZSgpOworICAgICAg
ICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUmVmZXJlbmNlKCkuY29uc29s
aWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBwZXItPmNyZWF0ZVdlYWtQ
dHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZSh3cmFwcGVyKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zv
cm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIFNW
R1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZh
bHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQx
LDcgKzQyLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcwogCiAg
ICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAgICAgY2xlYXIoKTsKLSAg
ICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFu
c2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRl
KHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUzLDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1bHQgKj0gYXQoaSkubWF0
cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBhdFJlZmVyZW5jZShpKS5tYXRyaXgoKTsKIAogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcgU1ZHVHJhbnNmb3JtTGlz
dFZhbHVlczo6dmFsdWVBc1N0CiAgICAgICAgIGlmIChpID4gMCkKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoYXQoaSkudmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2UoaSkudmFsdWVBc1N0
cmluZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAy
Mjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMCwxOCArMjAsMTkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgotI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdMaXN0VmFsdWVzLmgiCisjaW5jbHVk
ZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogY2xhc3MgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjsKIAorY2xhc3MgU1ZH
TWF0cml4OworY2xhc3MgU1ZHVHJhbnNmb3JtOwogY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAot
Y2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8U1ZHVHJh
bnNmb3JtVmFsdWUsIDE+IHsKK2NsYXNzIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgZmluYWwgOiBw
dWJsaWMgU1ZHTGlzdFZhbHVlczxTVkdUcmFuc2Zvcm1WYWx1ZT4gewogcHVibGljOgogICAgIFJl
ZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4Jikg
Y29uc3Q7CiAgICAgUmVmPFNWR1RyYW5zZm9ybT4gY29uc29saWRhdGUoKTsKQEAgLTUwLDcgKzUx
LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVAogICAgICAgICB2
YWx1ZXMucGFyc2Uoc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHZhbHVlczsKICAgICB9Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJl
dHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3Qg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYgbGlzdCkgeyByZXR1cm4gbGlzdC52YWx1ZUFzU3RyaW5n
KCk7IH0KIAogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1RyYW5zZm9ybVZhbHVlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybVZhbHVlLmgJKHJldmlzaW9uIDIyOTg1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC05MCw1ICs5MCwxMCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNWR1RyYW5z
Zm9yCiB7CiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KKyAgICAKK3RlbXBsYXRlPD4gc3RydWN0
IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPiB7CisgICAgc3RhdGljIFNWR1Ry
YW5zZm9ybVZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgU1ZHVHJhbnNmb3JtVmFsdWUmIHRyYW5zZm9ybSkgeyByZXR1
cm4gdHJhbnNmb3JtLnZhbHVlQXNTdHJpbmcoKTsgfQorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdUcmFuc2Zvcm1hYmxlOjpw
YXJzZVRyYW5zZm9ybUF0dAogICAgICAgICBpZiAoIXBhcnNlVHJhbnNmb3JtVmFsdWUodHlwZSwg
Y3VyclRyYW5zZm9ybSwgZW5kLCB0cmFuc2Zvcm0pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGxpc3QuYXBwZW5kKHRyYW5zZm9ybSk7CisgICAgICAgIGxpc3QuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8U1ZHVHJhbnNmb3JtVmFsdWU+KHRyYW5zZm9ybSkpOwogICAgICAg
ICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoY3VyclRyYW5zZm9ybSwgZW5kKTsKICAgICAgICAgaWYg
KGN1cnJUcmFuc2Zvcm0gPCBlbmQgJiYgKmN1cnJUcmFuc2Zvcm0gPT0gJywnKSB7CiAgICAgICAg
ICAgICBkZWxpbVBhcnNlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFs
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWUuaAkocmV2aXNp
b24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDQxICsyNiwxODYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29sb3Iu
aCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5j
bHVkZSAiU1ZHQW5nbGVWYWx1ZS5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aExpc3RWYWx1ZXMuaCIK
ICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1ZS5oIgotI2luY2x1ZGUgIlNWR01hcmtlclR5cGVzLmgi
CisjaW5jbHVkZSAiU1ZHTWF0cml4VmFsdWUuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0VmFs
dWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW0uaCIKKyNpbmNsdWRlICJTVkdQYXRo
U2VnTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdFZhbHVlcy5oIgogI2luY2x1
ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5
SW5mby5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHU3Ry
aW5nTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKKyNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1WYWx1ZS5oIgogCiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBTVkdWYWx1ZVZhcmlhbnQgPSBWYXJpYW50
PAotICAgIHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4qLAotICAgIGJvb2wqLAot
ICAgIENvbG9yKiwKLSAgICB1bnNpZ25lZCosCi0gICAgaW50KiwKLSAgICBzdGQ6OnBhaXI8aW50
LCBpbnQ+KiwKLSAgICBTVkdMZW5ndGhWYWx1ZSosCi0gICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcyos
Ci0gICAgZmxvYXQqLAotICAgIFNWR051bWJlckxpc3RWYWx1ZXMqLAotICAgIHN0ZDo6cGFpcjxm
bG9hdCwgZmxvYXQ+KiwKLSAgICBTVkdQYXRoQnl0ZVN0cmVhbSosCi0gICAgU1ZHUG9pbnRMaXN0
VmFsdWVzKiwKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUqLAotICAgIEZsb2F0UmVj
dCosCi0gICAgU3RyaW5nKiwKLSAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzKgorICAgIFNWR0Fu
Z2xlVmFsdWUsCisgICAgYm9vbCwKKyAgICBDb2xvciwKKyAgICB1bnNpZ25lZCwKKyAgICBpbnQs
CisgICAgU1ZHTGVuZ3RoVmFsdWUsCisgICAgU1ZHTGVuZ3RoTGlzdFZhbHVlcywKKyAgICBTVkdN
YXRyaXhWYWx1ZSwKKyAgICBmbG9hdCwKKyAgICBTVkdOdW1iZXJMaXN0VmFsdWVzLAorICAgIFNW
R1BhdGhCeXRlU3RyZWFtLAorICAgIFJlZlB0cjxTVkdQYXRoU2VnPiwKKyAgICBTVkdQYXRoU2Vn
TGlzdFZhbHVlcywKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUsCisgICAgRmxvYXRQ
b2ludCwKKyAgICBTVkdQb2ludExpc3RWYWx1ZXMsCisgICAgRmxvYXRSZWN0LAorICAgIFN0cmlu
ZywKKyAgICBTVkdTdHJpbmdMaXN0VmFsdWVzLAorICAgIFNWR1RyYW5zZm9ybVZhbHVlLAorICAg
IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMKID47CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZT4KK3N0cnVjdCBTVkdUcmFpdEhhc1RvU3RyaW5nIHsKK3ByaXZhdGU6CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6dHJ1ZV90eXBlIHRlc3QoZGVjbHR5cGUoJlNWR1By
b3BlcnR5VHJhaXRzPFQ+Ojp0b1N0cmluZykpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBzdGQ6OmZhbHNlX3R5cGUgdGVzdCguLi4pOworcHVibGljOgorICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfc2FtZTxkZWNsdHlwZSh0ZXN0PFByb3BlcnR5VHlw
ZT4oMCkpLCBzdGQ6OnRydWVfdHlwZT46OnZhbHVlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgorc3RydWN0IFNWR1RyYWl0SGFzUGFyc2UgeworcHJpdmF0ZToKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgc3RkOjp0cnVlX3R5cGUgdGVzdChkZWNsdHlwZSgm
U1ZHUHJvcGVydHlUcmFpdHM8VD46OnBhcnNlKSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSB0ZXN0KC4uLik7CitwdWJsaWM6CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIHZhbHVlID0gc3RkOjppc19zYW1lPGRlY2x0eXBlKHRlc3Q8UHJvcGVydHlU
eXBlPigwKSksIHN0ZDo6dHJ1ZV90eXBlPjo6dmFsdWU7Cit9OworCitjbGFzcyBTVkdWYWx1ZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFNWR1ZhbHVlPiwgcHVibGljIFNWR1ZhbHVlVmFyaWFudCB7Citw
dWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIHN0YXRpYyBS
ZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlPFBy
b3BlcnR5VHlwZT4oU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVl
KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgor
ICAgIHN0YXRpYyBSZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZh
bHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdWYWx1ZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkJj4odmFsdWUpKSk7CisgICAgfQorCisgICAgdGVtcGxh
dGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFBy
b3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBSZWZQdHI8U1ZHVmFs
dWU+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIHN0YXRpYyBS
ZWZQdHI8U1ZHVmFsdWU+IGNyZWF0ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1ZhbHVlKHZhbHVlKSk7CisgICAgfQorCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorICAgIGJvb2wgaXMoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UHJvcGVydHlUeXBlPigq
dGhpcykgfHwgKHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZSAmJiBXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxj
bGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5
VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYXMoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8dW5zaWdu
ZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IFByb3Bl
cnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKworICAgIHRlbXBs
YXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfZW51bTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUm
IGFzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOwor
ICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgUHJvcGVydHlUeXBl
JiBhcygpCisgICAgeworICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNp
Z25lZD4oKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHJvcGVydHlU
eXBlJj4oV1RGOjpnZXQ8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUg
PGNsYXNzIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19lbnVtPFByb3Bl
cnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIFByb3BlcnR5VHlwZSYgYXMoKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKGlzPFByb3BlcnR5VHlwZT4oKSk7CisgICAgICAgIHJldHVybiBX
VEY6OmdldDxQcm9wZXJ0eVR5cGU+KCp0aGlzKTsKKyAgICB9CisKKyAgICBTdHJpbmcgdG9TdHJp
bmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGNvbnN0IGF1
dG8mIHZhbHVlKSB7CisgICAgICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5
X3Q8ZGVjbHR5cGUodmFsdWUpPjsKKyAgICAgICAgICAgIHJldHVybiB0b1N0cmluZzxQcm9wZXJ0
eVR5cGU+KHZhbHVlKTsKKyAgICAgICAgfSwgc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJp
YW50Jj4oKnRoaXMpKTsKKyAgICB9CisKKyAgICBib29sIHBhcnNlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHJldHVy
biBXVEY6OnZpc2l0KFsmXShhdXRvJiB2YWx1ZSkgeworICAgICAgICAgICAgdXNpbmcgUHJvcGVy
dHlUeXBlID0gc3RkOjpkZWNheV90PGRlY2x0eXBlKHZhbHVlKT47CisgICAgICAgICAgICByZXR1
cm4gcGFyc2U8UHJvcGVydHlUeXBlPih2YWx1ZSwgYXR0ck5hbWUsIHN0cmluZyk7CisgICAgICAg
IH0sIHN0YXRpY19jYXN0PFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBleHBsaWNpdCBT
VkdWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IFNWR1ZhbHVlVmFy
aWFudCh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOwor
ICAgIH0KKworICAgIFNWR1ZhbHVlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBT
VkdWYWx1ZVZhcmlhbnQoc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHVmFsdWVWYXJpYW50Jj4odmFsdWUp
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4KCkgPT0gdmFsdWUuaW5kZXgoKSk7CisgICAg
fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90
PFNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+Cisg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3Ry
aW5nKHZhbHVlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUs
IHN0ZDo6ZW5hYmxlX2lmX3Q8IVNWR1RyYWl0SGFzVG9TdHJpbmc8UHJvcGVydHlUeXBlPjo6dmFs
dWU+KiA9IG51bGxwdHI+CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBQcm9wZXJ0
eVR5cGUmKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46
OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBib29sIHBhcnNlKFByb3BlcnR5VHlwZSYg
dmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZykKKyAgICB7CisgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OnBhcnNlKGF0dHJOYW1lLCBzdHJpbmcpKSB7CisgICAgICAgICAgICB2YWx1
ZSA9ICpyZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1BhcnNlPFByb3BlcnR5VHlwZT46OnZh
bHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBib29sIHBhcnNlKFByb3BlcnR5VHlwZSYsIGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKQorICAgIHsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5j
cHAJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1B
VEVEX1BST1BFUlRJRVMKIGlubGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZH
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBhbihTVkdab29tQW5k
UGFuTWFnbmlmeSkKLSAgICAsIG1fdmlld1RhcmdldChTVkdOYW1lczo6dmlld1RhcmdldEF0dHIp
CisgICAgLCBtX3ZpZXdUYXJnZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJpbmdMaXN0VmFsdWVz
KFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNW
R05hbWVzOjp2aWV3VGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdW
aWV3RWxlbWVudCgpOwpAQCAtNjMsNyArNjMsNyBAQCBSZWY8U1ZHU3RyaW5nTGlzdD4gU1ZHVmll
d0VsZW1lbnQ6OnZpZXdUCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjp2aWV3VGFyZ2V0QXR0cikKLSAgICAgICAgbV92aWV3VGFy
Z2V0LnJlc2V0KHZhbHVlKTsKKyAgICAgICAgbV92aWV3VGFyZ2V0LT5hczxTVkdTdHJpbmdMaXN0
VmFsdWVzPigpLnJlc2V0KHZhbHVlKTsKIAogICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBh
cnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
ICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAogICAgIFNWR1pvb21BbmRQYW5U
eXBlIG1fem9vbUFuZFBhbjsKLSAgICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsK
KyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmlld1RhcmdldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksNiArNzksOSBAQCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIFNWR1ZpZXdTcGVjOjp0
cmFuCiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVu
dCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQorICAgICwgbV90cmFu
c2Zvcm0oU1ZHVmFsdWU6OmNyZWF0ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICwg
bV92aWV3Qm94KFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRSZWN0PigpKQorICAgICwgbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvKFNWR1ZhbHVlOjpjcmVhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
PigpKQogewogfQogCkBAIC0xMDgsMTcgKzExMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTVkdW
aWV3U3BlYzo6c2V0Wm9vbUFuCiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3RyaW5n
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz46OnRvU3RyaW5nKG1fdHJhbnNmb3JtKTsKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0t
PnRvU3RyaW5nKCk7CiB9CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dmlld0JveFN0cmluZygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5n
KG1fdmlld0JveCk7CisgICAgcmV0dXJuIG1fdmlld0JveC0+dG9TdHJpbmcoKTsKIH0KIAogU3Ry
aW5nIFNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6
dG9TdHJpbmcobV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKKyAgICByZXR1cm4gbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvLT50b1N0cmluZygpOwogfQogCiBTVkdFbGVtZW50KiBTVkdWaWV3U3BlYzo6dmll
d1RhcmdldCgpIGNvbnN0CkBAIC0xNzcsOSArMTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVy
dHk+IFNWR1ZpZXdTcGVjOjpsbwogdm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQoKQogewogICAgIG1f
em9vbUFuZFBhbiA9IFNWR1pvb21BbmRQYW5NYWduaWZ5OwotICAgIG1fdHJhbnNmb3JtLmNsZWFy
KCk7Ci0gICAgbV92aWV3Qm94ID0geyB9OwotICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHsg
fTsKKyAgICBtX3RyYW5zZm9ybS0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKS5jbGVhcigp
OworICAgIG1fdmlld0JveC0+YXM8RmxvYXRSZWN0PigpID0geyB9OworICAgIG1fcHJlc2VydmVB
c3BlY3RSYXRpby0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpID0geyB9OwogICAg
IG1fdmlld1RhcmdldFN0cmluZyA9IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQs
NyBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAg
ICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAg
ICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJh
bnNmb3JtLCBjdXJyVmlld1NwZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxp
c3QpOworICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1
dGUobV90cmFuc2Zvcm0tPmFzPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCksIGN1cnJWaWV3U3Bl
YywgZW5kLCBTVkdUcmFuc2Zvcm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBp
ZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcgKzU1LDE3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9ybScgcHJvcGVy
dHkuCiAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwotICAgIFNWR1Ry
YW5zZm9ybUxpc3RWYWx1ZXMgdHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2Zvcm07IH0KKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNmb3JtLT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVz
PigpOyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHByb3BlcnR5LgogICAg
IFJlZlB0cjxTVkdBbmltYXRlZFJlY3Q+IHZpZXdCb3hBbmltYXRlZCgpOwotICAgIEZsb2F0UmVj
dCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAgIHZvaWQgc2V0Vmlld0JveEJh
c2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94ID0gdmlld0JveDsg
fQorICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveC0+YXM8RmxvYXRS
ZWN0PigpOyB9CisgICAgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYg
dmlld0JveCkgeyB0aGlzLT52aWV3Qm94KCkgPSB2aWV3Qm94OyB9CiAKICAgICAvLyBDdXN0b20g
YW5pbWF0ZWQgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgp
OwotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygp
IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotICAgIHZvaWQgc2V0UHJlc2VydmVB
c3BlY3RSYXRpb0Jhc2VWYWx1ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHBy
ZXNlcnZlQXNwZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3Bl
Y3RSYXRpbzsgfQorICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3Bl
Y3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlPigpOyB9CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFz
ZVZhbHVlKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RS
YXRpbykgeyB0aGlzLT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlv
OyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpA
QCAtODQsOSArODQsOSBAQCBwcml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxl
bWVudDsKICAgICBTVkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFu
TWFnbmlmeSB9OwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAg
RmxvYXRSZWN0IG1fdmlld0JveDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07Cisg
ICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3By
ZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRp
b25Qcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51
bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSwyMiArNTYsMTUgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8
dW5zaWduZWQ+OjpzZXRCYXNlVmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBFbnVtVHlw
ZSYgcHJvcGVydHkpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVy
dHlUZWFyT2ZmPEVudW1UeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBh
bmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAg
ewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQmPihwcm9wZXJ0eSkpKTsKLSAgICB9Ci0KLSAgICBFbnVtVHlw
ZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQmIGFuaW1h
dGVkVmFsdWUgPSBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OmN1
cnJlbnRBbmltYXRlZFZhbHVlKCk7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlIDw9IFNW
R1Byb3BlcnR5VHJhaXRzPEVudW1UeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSgpKTsKLSAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RW51bVR5cGUmPihhbmltYXRlZFZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVh
ck9mZjxFbnVtVHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCB2YWx1ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmlt
YXRlZFByb3BlcnR5VHlwZSwgdW5zaWduZWQmIHByb3BlcnR5KQotICAgICAgICA6IFNWR0FuaW1h
dGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmli
dXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVk
RW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFu
aW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKKyAgICAg
ICAgOiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD4oY29udGV4dEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkKICAgICB7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5
ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIExpc3RQcm9wZXJ0eVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0
czxQcm9wZXJ0eVR5cGU+OjpMaXN0UHJvcGVydHlUZWFyT2ZmOwogICAgIHVzaW5nIENvbnRlbnRU
eXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5
VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3Jl
YXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29u
c3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRl
eHRFbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTg1LDQ0ICs4NSw1MCBAQCBw
dWJsaWM6CiAgICAgICAgIExpc3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXpl
KCZtX3dyYXBwZXJzLCBuZXdMaXN0U2l6ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBj
dXJyZW50QW5pbWF0ZWRWYWx1ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0
ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CiAg
ICAgICAgIHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwogICAgIH0KIAotICAg
IGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBtX3ZhbHVlczsKICAgICB9CisgICAgCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNS
ZWZlcmVuY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAg
ICAgcmV0dXJuIG1fdmFsdWVzLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgfQogCi0gICAgdm9p
ZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwgYm9vbCBzaG91bGRP
d25WYWx1ZXMgPSBmYWxzZSkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRp
bmcoKSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgQVNTRVJUKG1fdmFs
dWVzLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNS
ZWZlcmVuY2UoKS5zaXplKCkgPT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBBU1NFUlQo
bV9hbmltYXRlZFdyYXBwZXJzLmlzRW1wdHkoKSk7CiAKICAgICAgICAgLy8gU3dpdGNoIHRvIG5l
dyBwYXNzZWQgaW4gdmFsdWUgdHlwZSAmIG5ldyB3cmFwcGVycyBsaXN0LiBUaGUgbmV3IHdyYXBw
ZXJzIGxpc3QgbXVzdCBiZSBjcmVhdGVkIGZvciB0aGUgbmV3IHZhbHVlLgotICAgICAgICBpZiAo
IW5ld0FuaW1WYWwtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5m
aWxsKDAsIG5ld0FuaW1WYWwtPnNpemUoKSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IG5l
d0FuaW1WYWwtPmFzPFByb3BlcnR5VHlwZT4oKS5zaXplKCkpCisgICAgICAgICAgICBtX2FuaW1h
dGVkV3JhcHBlcnMuZmlsbCgwLCBzaXplKTsKIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkg
PSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3Jh
cHBlcnMobmV3QW5pbVZhbCwgJm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxkT3duVmFsdWVzKTsK
LSAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlc0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3Jh
cHBlcnMpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNSZWZlcmVu
Y2UoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAg
ICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1f
YW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5k
ZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBBU1NF
UlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAg
ICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHkt
PndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogCi0gICAg
ICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMoJm1fdmFsdWVzLCAm
bV93cmFwcGVycywgZmFsc2UpOwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52
YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7
CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobV92YWx1
ZXMsICZtX3dyYXBwZXJzKTsKKyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFs
dWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5z
aXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNp
emUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJz
LmNsZWFyKCk7CkBAIC0xNDIsMzQgKzE0OCwzNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEFsc28g
ZXhpc3Rpbmcgd3JhcHBlcnMgd2hpY2ggcG9pbnQgZGlyZWN0bHkgYXQgZWxlbWVudHMgaW4gdGhl
IGV4aXN0aW5nIFNWR0xlbmd0aExpc3RWYWx1ZXMgaGF2ZSB0byBiZSBkZXRhY2hlZCAoc28gYSBj
b3B5CiAgICAgICAgIC8vIG9mIHRoZW0gaXMgY3JlYXRlZCwgc28gZXhpc3RpbmcgYW5pbVZhbCB2
YXJpYWJsZXMgaW4gSlMgYXJlIGtlcHQtYWxpdmUpLiBJZiB3ZSdkIGRldGFjaCB0aGVtIGxhdGVy
IHRoZSB1bmRlcmx5aW5nCiAgICAgICAgIC8vIFNWR0xlbmd0aExpc3RWYWx1ZXMgd2FzIGFscmVh
ZHkgbXV0YXRlZCwgYW5kIG91ciBsaXN0IGl0ZW0gd3JhcHBlciB0ZWFyIG9mZnMgd291bGQgcG9p
bnQgbm93aGVyZS4gQXNzZXJ0aW9ucyB3b3VsZCBmaXJlLgotICAgICAgICBtX2FuaW1hdGVkUHJv
cGVydHktPmRldGFjaExpc3RXcmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNp
emUoKSk7CisgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsKIAotICAgICAgICBB
U1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFBy
b3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHktPnZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndy
YXBwZXJzKCkuc2l6ZSgpKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3Jh
cHBlcnMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1
ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1Jl
ZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9u
aXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbERpZENoYW5n
ZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMu
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwog
ICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5
VHlwZSYgdmFsdWVzKQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAgLCBt
X3ZhbHVlcyh2YWx1ZXMpCiAgICAgewotICAgICAgICBpZiAoIXZhbHVlcy5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7CisgICAgICAgIGlm
ICghdmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV93cmFwcGVycy5m
aWxsKDAsIHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlU
eXBlJiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogCiAgICAgTGlz
dFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV9hbmltYXRl
ZFdyYXBwZXJzOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYu
aAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQgMjAxMCwgMjAxMi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTMxLDcgKzMyLDcgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhcgog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+OwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhT
ZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzKQorICAg
IHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRl
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRF
bGVtZW50KTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQYXRoU2Vn
TGlzdFByb3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNzUsOSArNzYsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVCghbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtKTsKICAgICAgICAgbV9hbmltYXRl
ZFBhdGhCeXRlU3RyZWFtID0gYnl0ZVN0cmVhbTsKIAotICAgICAgICAvLyBQYXNzIHNob3VsZE93
blZhbHVlcz10cnVlLCBhcyB0aGUgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbGlmZXRpbWUgaXMgc29s
ZWx5IG1hbmFnZWQgYnkgaXRzIHRlYXIgb2ZmIGNsYXNzLgotICAgICAgICBhdXRvKiBjb3B5ID0g
bmV3IFNWR1BhdGhTZWdMaXN0VmFsdWVzKCpiYXNlVmFsdWUpOwotICAgICAgICBCYXNlOjphbmlt
YXRpb25TdGFydGVkKGNvcHksIHRydWUpOworICAgICAgICBhdXRvIGNvcHkgPSBTVkdWYWx1ZTo6
Y3JlYXRlKCpiYXNlVmFsdWUpOworICAgICAgICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHkp
OwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgICAgIC8vIElmIHRoZSBhbmltVmFsIGlzIG9ic2VydmVkIGZyb20gSlMsIHdl
IGhhdmUgdG8gdXBkYXRlIGl0IG9uIGVhY2ggYW5pbWF0aW9uIHN0ZXAuCiAgICAgICAgIC8vIFRo
aXMgaXMgYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiBhbmQgb25seSBkb25lLCBpZiBzb21lb25lIGFj
dHVhbGx5IG9ic2VydmVzIHRoZSBhbmltYXRlZFBhdGhTZWdMaXN0KCkgd2hpbGUgYW4gYW5pbWF0
aW9uIGlzIHJ1bm5pbmcuCiAgICAgICAgIGlmIChwYXRoRWxlbWVudC0+aXNBbmltVmFsT2JzZXJ2
ZWQoKSkgewotICAgICAgICAgICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3VycmVudEFuaW1hdGVk
VmFsdWUoKTsKKyAgICAgICAgICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IGN1cnJlbnRBbmltYXRl
ZFZhbHVlKCktPmFzPFNWR1BhdGhTZWdMaXN0VmFsdWVzPigpOwogICAgICAgICAgICAgYW5pbWF0
ZWRMaXN0LmNsZWFyKCk7CiAgICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJv
bUJ5dGVTdHJlYW0oKm1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVhbSwgKnBhdGhFbGVtZW50LCBhbmlt
YXRlZExpc3QsIFVuYWx0ZXJlZFBhcnNpbmcpOwogICAgICAgICB9CkBAIC0xMDYsNyArMTA2LDcg
QEAgcHVibGljOgogICAgIFNWR1BhdGhCeXRlU3RyZWFtKiBhbmltYXRlZFBhdGhCeXRlU3RyZWFt
KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtOyB9CiAKIHByaXZhdGU6
Ci0gICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVz
JiB2YWx1ZXMpCisgICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0
cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAgOiBCYXNlKGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAgICAgICAsIG1fYW5p
bWF0ZWRQYXRoQnl0ZVN0cmVhbShudWxscHRyKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHJldmlzaW9u
IDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsKK2NsYXNzIFNWR1Zh
bHVlOwogCiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZH
QW5pbWF0ZWRQcm9wZXJ0eT4gewogcHVibGljOgpAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgT3duZXJUeXBlLCB0eXBlbmFtZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlUeXBl
PgotICAgIHN0YXRpYyBSZWY8VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBlcihPd25l
clR5cGUqIGVsZW1lbnQsIGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgUHJvcGVydHlUeXBl
JiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdy
YXBwZXIoT3duZXJUeXBlKiBlbGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZm8p
OwogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5KGVsZW1lbnQsIGlu
Zm8tPnByb3BlcnR5SWRlbnRpZmllcik7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUZWFyT2ZmVHlwZSY+KCpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAotICAgICAgICBSZWY8
U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gd3JhcHBlciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVu
dCwgaW5mby0+YXR0cmlidXRlTmFtZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3Bl
cnR5KTsKKyAgICAgICAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2Zm
VHlwZTo6Y3JlYXRlKGVsZW1lbnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVk
UHJvcGVydHlUeXBlLCB2YWx1ZSk7CiAgICAgICAgIGlmIChpbmZvLT5hbmltYXRlZFByb3BlcnR5
U3RhdGUgPT0gUHJvcGVydHlJc1JlYWRPbmx5KQogICAgICAgICAgICAgd3JhcHBlci0+c2V0SXNS
ZWFkT25seSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5TWFjcm9zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCShyZXZpc2lvbiAyMjk4NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9y
Zz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDEx
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNiArMjYsNyBA
QAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1
dGVUb1Byb3BlcnR5TWFwLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNs
dWRlICJTVkdWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdTeW5j
aHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkgewogICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eSgpCi0gICAgICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6aW5pdGlhbFZhbHVlKCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2Up
Ci0gICAgICAgICwgaXNWYWxpZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3Jl
YXRlPFByb3BlcnR5VHlwZT4oKSkKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ29uc3RydWN0b3JQYXJhbWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQ
cm9wZXJ0eShjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkKLSAgICAgICAgOiB2
YWx1ZSh2YWx1ZTEpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAg
ICwgaXNWYWxpZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q29uc3RydWN0b3JQYXJhbWV0ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjI+Ci0g
ICAgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFy
YW1ldGVyMSYgdmFsdWUxLCBjb25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjImIHZhbHVlMikKLSAg
ICAgICAgOiB2YWx1ZSh2YWx1ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6
ZShmYWxzZSkKLSAgICAgICAgLCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5bmNocm9uaXphYmxl
QW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IHZh
bHVlKFNWR1ZhbHVlOjpjcmVhdGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAgICAgewogICAgIH0K
IApAQCAtNjEsOSArNTAsOSBAQCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3Bl
cnR5CiAgICAgICAgIG93bmVyRWxlbWVudC0+c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShh
dHRyTmFtZSwgdmFsdWUpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSB2YWx1ZTsKLSAgICBi
b29sIHNob3VsZFN5bmNocm9uaXplIDogMTsKLSAgICBib29sIGlzVmFsaWQgOiAxOworICAgIFJl
ZlB0cjxTVkdWYWx1ZT4gdmFsdWU7CisgICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc1ZhbGlkIHsgZmFsc2UgfTsKIH07CiAKIC8vIFByb3BlcnR5IHJlZ2lz
dHJhdGlvbiBoZWxwZXJzCkBAIC0xMjQsMTkgKzExMywxOSBAQCBwdWJsaWM6IFwKICAgICB7IFwK
ICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdy
YXBwZXI8VXNlT3duZXJUeXBlLCBUZWFyT2ZmVHlwZT4odGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJv
cGVydHlJbmZvKCkpKSB7IFwKICAgICAgICAgICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGluZygp
KSBcCi0gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVl
KCk7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFs
dWUoKS0+YXM8UHJvcGVydHlUeXBlPigpOyBcCiAgICAgICAgIH0gXAotICAgICAgICByZXR1cm4g
bV8jI0xvd2VyUHJvcGVydHkudmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3Bl
cnR5LnZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7IFwKICAgICB9IFwKIFwKICAgICBQcm9wZXJ0
eVR5cGUmIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgpIGNvbnN0IE92ZXJyaWRlU3BlY2lmaWVy
IFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlOyBcCisg
ICAgICAgIHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZS0+YXM8UHJvcGVydHlUeXBlPigp
OyBcCiAgICAgfSBcCiBcCi0gICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShj
b25zdCBQcm9wZXJ0eVR5cGUmIHR5cGUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92
ZXJyaWRlU3BlY2lmaWVyIFwKKyAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVl
KGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUp
IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAgICAgbV8jI0xvd2VyUHJvcGVydHku
dmFsdWUgPSB0eXBlOyBcCisgICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9w
ZXJ0eVR5cGU+KCkgPSB2YWx1ZTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5pc1ZhbGlk
ID0gdmFsaWRWYWx1ZTsgXAogICAgIH0gXAogXApAQCAtMTU2LDcgKzE0NSw3IEBAIHByaXZhdGU6
IFwKICAgICB7IFwKICAgICAgICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJv
bml6ZSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCi0gICAgICAgIEF0b21pY1N0cmluZyB2YWx1
ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9w
ZXJ0eS52YWx1ZSkpOyBcCisgICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRy
YWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZS0+YXM8
UHJvcGVydHlUeXBlPigpKSk7IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuc3luY2hyb25p
emUodGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHZh
bHVlKTsgXAogICAgIH0gXAogXApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAy
Mjk4NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAgcHVibGljOgog
ICAgIHVzaW5nIFByb3BlcnR5VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVy
dHlUeXBlOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3Rh
dGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVh
dGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9w
ZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmY8UHJvcGVydHlUZWFyT2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewogICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNv
bnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVy
dHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRl
YXJPZmY8UHJvcGVydHlUZWFyT2ZmPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgUmVmPFByb3BlcnR5VGVh
ck9mZj4gYmFzZVZhbCgpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1f
YmFzZVZhbCkKICAgICAgICAgICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2Zm
Kj4obV9iYXNlVmFsLmdldCgpKTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlU
ZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEJhc2VWYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAg
YXV0byBwcm9wZXJ0eSA9IFByb3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9s
ZSwgbV92YWx1ZSk7CiAgICAgICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRy
KCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKICAgICB9CkBAIC01MywzNiArNTMsMzYgQEAg
cHVibGljOgogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxQcm9wZXJ0eVRlYXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1
dG8gcHJvcGVydHkgPSBQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUs
IG1fcHJvcGVydHkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpj
cmVhdGUoKnRoaXMsIEFuaW1WYWxSb2xlLCBtX3ZhbHVlKTsKICAgICAgICAgbV9hbmltVmFsID0g
cHJvcGVydHktPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAg
IH0KIAogICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2FuaW1h
dGVkUHJvcGVydHk7IH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUo
KQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAg
IHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gbV9hbmlt
YXRlZFByb3BlcnR5LT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gbV9hbmlt
YXRlZFByb3BlcnR5LT52YWx1ZSgpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYg
Y3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJy
ZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5Owor
ICAgICAgICByZXR1cm4gbV92YWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0
ZWQoUHJvcGVydHlUeXBlKiBuZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJU
KCFpc0FuaW1hdGluZygpKTsKICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwogICAgICAgICBt
X2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0
eS0+c2V0VmFsdWUoKm5ld0FuaW1WYWwpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNl
dFZhbHVlKG5ld0FuaW1WYWwpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPnNldFZhbHVlKG1fcHJvcGVydHkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVy
dHktPnNldFZhbHVlKG1fdmFsdWUpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxs
cHRyOwogICAgIH0KIApAQCAtMTA0LDEzICsxMDQsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisg
ICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAg
ICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1l
LCBhbmltYXRlZFByb3BlcnR5VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQor
ICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFByb3BlcnR5VHlw
ZSYgbV9wcm9wZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWU7CiAgICAgV2Vha1B0
cjxTVkdQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gbV9iYXNlVmFsOwogICAgIFdlYWtQ
dHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IG1fYW5pbVZhbDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9m
Zi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRp
b25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdW
YWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDUzICszMyw1MyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpCiAgICAgewot
ICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUtPmFzPFBy
b3BlcnR5VHlwZT4oKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYg
YW5pbVZhbCgpCiAgICAgewotICAgICAgICBpZiAobV9hbmltYXRlZFByb3BlcnR5KQotICAgICAg
ICAgICAgcmV0dXJuICptX2FuaW1hdGVkUHJvcGVydHk7Ci0gICAgICAgIHJldHVybiBtX3Byb3Bl
cnR5OworICAgICAgICBpZiAobV9hbmltYXRlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIG1f
YW5pbWF0ZWRWYWx1ZS0+YXM8UHJvcGVydHlUeXBlPigpOworICAgICAgICByZXR1cm4gYmFzZVZh
bCgpOwogICAgIH0KIAotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChj
b25zdCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5KQorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQogICAgIHsKLSAgICAgICAg
bV9wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgICBtX3ZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+
KCkgPSB2YWx1ZTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2FuaW1hdGVkVmFsdWU7IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT4+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0
RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1h
dGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3Vy
cmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVk
VmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAg
ICAgICByZXR1cm4gKm1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0
ZWRWYWx1ZTsKICAgICB9CiAKLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFs
dWUoKSBjb25zdAorICAgIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJu
IG1fdmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlw
ZSogbmV3QW5pbVZhbCkKKyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgbmV3QW5pbVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmco
KSk7CiAgICAgICAgIEFTU0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3Bl
cnR5ID0gbmV3QW5pbVZhbDsKKyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbmV3QW5pbVZhbDsK
ICAgICB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbnVsbHB0cjsK
KyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGFu
aW1WYWxXaWxsQ2hhbmdlKCkKQEAgLTk5LDE2ICsxMDAsMTUgQEAgcHVibGljOgogICAgIH0KIAog
cHJvdGVjdGVkOgotICAgIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBB
bmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBw
cm9wZXJ0eSkKKyAgICBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZihTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdW
YWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1l
bnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJv
cGVydHkocHJvcGVydHkpCi0gICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCisg
ICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBy
b3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9w
ZXJ0eTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBtX2FuaW1hdGVkVmFsdWU7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2Zm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjYsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBmaW5hbCA6IHB1Ymxp
YyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVy
dHlUZWFyT2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJv
cGVydHlUeXBlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJl
ZjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFBy
b3BlcnR5VGVhck9mZihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUsIHZhbHVlcykpOwpAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBw
cml2YXRlOgotICAgIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9y
bUxpc3RWYWx1ZXMmIHZhbHVlcykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRM
aXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNvbnRleHRFbGVtZW50
LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAgIHsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJv
cGVydHkuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTGlzdFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTQgKzI2LDYgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2Rp
ZmljYXRpb25Vbmtub3duID0gMCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAg
ICBMaXN0TW9kaWZpY2F0aW9uUmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92
ZSA9IDMsCi0gICAgTGlzdE1vZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5
cGVuYW1lIFByb3BlcnR5VHlwZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZjsKIApAQCAtNzUsMTkgKzY4LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBw
ZXJzQW5kUmVzaXplKG1fd3JhcHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lk
IHNldFZhbHVlc0FuZFdyYXBwZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlKiB3cmFwcGVycywgYm9vbCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNB
bmRXcmFwcGVycyhjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUqIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFu
aW1WYWwgc3VwcG9ydCwgdG8gc3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJz
CiAgICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRp
b24gZm9yIGEgbGlzdCBzdGFydHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAg
IEFTU0VSVChtX3dyYXBwZXJzKTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9s
ZSk7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1
ZXM7CiAgICAgICAgIG1fdmFsdWVzID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBz
aG91bGRPd25WYWx1ZXM7CiAgICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAg
QVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwog
ICAgIH0KIAogICAgIC8vIFNWR0xpc3Q6OmNsZWFyKCkKQEAgLTk4LDcgKzg4LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAg
IEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIG1fdmFsdWVz
LT5jbGVhcigpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigpOwogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTEsNyArMTAx
LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgICAgICBkZXRhY2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFsdWVzLT5j
bGVhcigpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigpOwogICAgICAgICBjb21t
aXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA5LDcg
QEAgcHVibGljOgogICAgIC8vIFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVk
IG51bWJlck9mSXRlbXMoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5z
aXplKCk7CisgICAgICAgIHJldHVybiB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCk7CiAgICAgfQog
CiAgICAgLy8gU1ZHTGlzdDo6aW5pdGlhbGl6ZSgpCkBAIC0xMzQsOCArMTI0LDggQEAgcHVibGlj
OgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAg
ICAgICAgIC8vIFNwZWM6IENsZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVtcyBmcm9tIHRo
ZSBsaXN0IGFuZCByZS1pbml0aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBzaW5nbGUgaXRl
bSBzcGVjaWZpZWQgYnkgdGhlIHBhcmFtZXRlci4KLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7
Ci0gICAgICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1JlZmVy
ZW5jZSgpLmNsZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmFwcGVuZChTVkdWYWx1
ZTo6Y3JlYXRlPExpc3RJdGVtVHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5n
ZSgpOwogICAgICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcg
KzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApA
QCAtMTU5LDkgKzE0OSw5IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxs
IGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMg
dGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0
ZXIuCiAgICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1ZXMtPmNs
ZWFyKCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CiAKLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFs
dWVzUmVmZXJlbmNlKCkuYXBwZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBw
ZXJzLT5hcHBlbmQobmV3SXRlbS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRD
aGFuZ2UoKTsKQEAgLTE3MSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0
SXRlbSgpCiAgICAgRXhjZXB0aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkK
ICAgICB7Ci0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBp
ZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC0xODUsNyArMTc1LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQg
aXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYg
YW5kIG5vdCBhIGNvcHkuCi0gICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBtX3ZhbHVlcy0+
YXQoaW5kZXgpIH07CisgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyB2YWx1ZXNSZWZlcmVu
Y2UoKS5hdFJlZmVyZW5jZShpbmRleCkgfTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8
TGlzdEl0ZW1UZWFyT2ZmPj4gZ2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5OSwxMyAr
MTg5LDEzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZp
ZWQgaXRlbSBmcm9tIHRoZSBsaXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNl
bGYgYW5kIG5vdCBhIGNvcHkuCiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0
ZW0gYXJlIGltbWVkaWF0ZWx5IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAgICAgQVNTRVJU
KG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJU
KHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAg
ICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiB3cmFwcGVyID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1U
ZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFw
cGVyKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93
ZWQgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBh
bmQgY2FjaGUgdGhlIHdyYXBwZXIgaW4gb3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFs
c28gYXNzb2NpYXRlZCB3aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlm
eSB0aGUgU1ZHIEVsZW1lbnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAg
ICAgICAgIC8vIHRoYXQgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAg
IHdyYXBwZXIgPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5l
ZFJvbGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOworICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJ
dGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUmVm
ZXJlbmNlKCkuYXQoaW5kZXgpKTsKICAgICAgICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9
IHdyYXBwZXItPmNyZWF0ZVdlYWtQdHIoKTsKICAgICAgICAgfQogCkBAIC0yMjEsOCArMjExLDgg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAogICAgICAgICAvLyBTcGVjOiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvIG51bWJlck9mSXRlbXMsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBl
bmQgb2YgdGhlIGxpc3QuCi0gICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0g
ICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChpbmRleCA+
IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUmVm
ZXJlbmNlKCkuc2l6ZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFk
eSBpbiBhIGxpc3QsIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUg
aXQgaXMgaW5zZXJ0ZWQgaW50byB0aGlzIGxpc3QuCiAgICAgICAgIGlmICghcHJvY2Vzc0luY29t
aW5nTGlzdEl0ZW1WYWx1ZShuZXdJdGVtLCAmaW5kZXgpKSB7CkBAIC0yMzIsNyArMjIyLDcgQEAg
cHVibGljOgogCiAgICAgICAgIC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBs
aXN0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZv
cmUgd2hpY2ggdGhlIG5ldyBpdGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUg
Zmlyc3QgaXRlbSBpcyBudW1iZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4g
dGhlIG5ldyBpdGVtIGlzIGluc2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAg
ICAgbV92YWx1ZXMtPmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1JlZmVy
ZW5jZSgpLmluc2VydChpbmRleCwgU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0
ZW0pKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVt
VHlwZSB7IG5ld0l0ZW0gfTsKQEAgLTI0OCwxMCArMjM4LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
QVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzog
SWYgdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0
aGVuIHRoZSBuZXcgaXRlbSBpcyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAg
ICAgICBpZiAoaW5kZXggPiBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAgICAgaW5kZXggPSBt
X3ZhbHVlcy0+c2l6ZSgpOworICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNSZWZlcmVuY2UoKS5z
aXplKCkpCisgICAgICAgICAgICBpbmRleCA9IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKTsKIAot
ICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNp
emUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApA
QCAtMjYxLDcgKzI1MSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJbnNlcnRzIGEg
bmV3IGl0ZW0gaW50byB0aGUgbGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBUaGUgaW5k
ZXggb2YgdGhlIGl0ZW0gYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQogICAgICAg
ICAvLyBpbnNlcnRlZC4gVGhlIGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBpbmRleCBp
cyBlcXVhbCB0byAwLCB0aGVuIHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUgZnJvbnQg
b2YgdGhlIGxpc3QuCi0gICAgICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnBy
b3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5pbnNlcnQoaW5k
ZXgsIG5ld0l0ZW0tPnZhbHVlKCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0
IHBvc2l0aW9uICdpbmRleCcsIGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRp
b25zIG9mIG5ld0l0ZW0sIGRpcmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAg
ICAgICAgbV93cmFwcGVycy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkp
OwpAQCAtMjc4LDcgKzI2OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKIAotICAgICAgICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAg
ICAgaWYgKGluZGV4ID49IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVl
OwpAQCAtMjk4LDEzICsyODgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIExpc3RJ
dGVtVHlwZSB7IG5ld0l0ZW0gfTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+
aXNFbXB0eSgpKSB7CisgICAgICAgIGlmICh2YWx1ZXNSZWZlcmVuY2UoKS5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIC8vICduZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBsaXN0LCB3ZSBy
ZW1vdmVkIGl0LCBhbmQgbm93IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVyZSdzIG5vdGhp
bmcgdG8gcmVwbGFjZS4KICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVF
cnJvciB9OwogICAgICAgICB9CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhdCB0aGUg
ZGVzaXJlZCBwb3NpdGlvbiAnaW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9
IG5ld0l0ZW07CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmF0UmVmZXJlbmNlKGluZGV4KSA9
IG5ld0l0ZW07CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0
SXRlbVR5cGUgeyBuZXdJdGVtIH07CkBAIC0zMTksNyArMzA5LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+
c2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZl
cmVuY2UoKS5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlz
dEl0ZW1UZWFyT2ZmPiBuZXdJdGVtKGl0ZW0pOwogCkBAIC0zMjgsNyArMzE4LDcgQEAgcHVibGlj
OgogICAgICAgICBpZiAoIXByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAm
aW5kZXgpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAKLSAgICAgICAg
aWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlc1JlZmVyZW5jZSgp
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMtPmlzRW1wdHkoKSk7
CiAgICAgICAgICAgICAvLyAnbmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2Ug
cmVtb3ZlZCBpdCwgYW5kIG5vdyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3Ro
aW5nIHRvIHJlcGxhY2UuCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXpl
RXJyb3IgfTsKQEAgLTM0MCw3ICszMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBvbGRJdGVt
LT5kZXRhY2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgdGhl
IHdyYXBwZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFs
dWVzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICB2
YWx1ZXNSZWZlcmVuY2UoKS5hdChpbmRleCkgPSBuZXdJdGVtLT52YWx1ZSgpOwogICAgICAgICBt
X3dyYXBwZXJzLT5hdChpbmRleCkgPSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCk7CiAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CkBAIC0zNTUsNyArMzQ1LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVl
cy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNjgsOCArMzU4LDggQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVt
ID0gbV92YWx1ZXMtPmF0KGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7
CisgICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gdmFsdWVzUmVmZXJlbmNlKCkuYXRSZWZl
cmVuY2UoaW5kZXgpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1vdmUoaW5kZXgpOwog
CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShvbGRJdGVt
KTsKQEAgLTM4NCwxNiArMzc0LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBw
ZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09
IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3
cmFwcGVyLgogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBvbGRJdGVtID0gc3RhdGlj
X2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAg
ICAgICAgaWYgKCFvbGRJdGVtKQotICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9m
Zjo6Y3JlYXRlKGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGluZGV4
KSk7CisgICAgICAgICAgICBvbGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0
ZWRMaXN0LCBVbmRlZmluZWRSb2xlLCB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpbmRleCkpOwogCiAg
ICAgICAgIG9sZEl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVt
b3ZlKGluZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIHZh
bHVlc1JlZmVyZW5jZSgpLnJlbW92ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAgICAgICAgIHJldHVybiBvbGRJdGVtLnJlbGVhc2VOb25OdWxsKCk7CkBAIC00MTEsNyArNDAx
LDcgQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0
ZW0sIDApOwogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUg
bGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVz
UmVmZXJlbmNlKCkuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVt
KSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAg
ICAgICByZXR1cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtNDI2LDcgKzQxNiw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwog
ICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBB
U1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBB
U1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAK
ICAgICAgICAgUmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5
ICs0MjQsMjUgQEAgcHVibGljOgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBw
ZXIobmV3SXRlbSwgMCk7CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBl
ciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0
ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5hcHBl
bmQobmV3SXRlbS0+dmFsdWUoKSk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVt
LT5jcmVhdGVXZWFrUHRyKCkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0
aW9uQXBwZW5kKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAgICAgfQogCi0g
ICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMoKQorICAgIFJlZjxTVkdWYWx1ZT4gdmFsdWVzKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIHJldHVybiAqbV92
YWx1ZXM7CiAgICAgfQogCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNSZWZlcmVuY2UoKSBjb25z
dAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWVzLT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgfQorCiAgICAgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwpAQCAt
NDU5LDIwICs0NTUsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0xp
c3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExp
c3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlKiB3cmFwcGVycykKICAgICAgICAgOiBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX293bnNW
YWx1ZXMoZmFsc2UpCi0gICAgICAgICwgbV92YWx1ZXMoJnZhbHVlcykKKyAgICAgICAgLCBtX3Zh
bHVlcyh2YWx1ZXMpCiAgICAgICAgICwgbV93cmFwcGVycyh3cmFwcGVycykKICAgICB7CiAgICAg
fQogCi0gICAgdmlydHVhbCB+U1ZHTGlzdFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIGlmICht
X293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7Ci0gICAgfQotCiAgICAg
dm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1p
dENoYW5nZShMaXN0TW9kaWZpY2F0aW9uKQogICAgIHsKQEAgLTQ4Myw4ICs0NzIsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihS
ZWY8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpID0g
MDsKIAogICAgIFNWR1Byb3BlcnR5Um9sZSBtX3JvbGU7Ci0gICAgYm9vbCBtX293bnNWYWx1ZXM7
Ci0gICAgUHJvcGVydHlUeXBlKiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFs
dWVzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUqIG1fd3JhcHBlcnM7CiAgICAgV2Vha1B0ckZhY3Rv
cnk8U1ZHTGlzdFByb3BlcnR5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2Zm
LmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNiwyMSArMzcsMjAgQEAgcHVi
bGljOgogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSB0eXBlbmFtZSBTVkdBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6TGlzdFdyYXBwZXJDYWNoZTsKIAogICAg
IHVzaW5nIEJhc2U6Om1fcm9sZTsKLSAgICB1c2luZyBCYXNlOjptX3ZhbHVlczsKKyAgICB1c2lu
ZyBCYXNlOjp2YWx1ZXNSZWZlcmVuY2U7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAot
ICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFs
dWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNy
ZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1By
b3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFw
cGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U2VsZihhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQog
CiAgICAgaW50IGZpbmRJdGVtKExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAog
ICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NF
UlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFs
dWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpIHsKICAgICAgICAgICAgIGlmIChpdGVtID09IG1fd3JhcHBlcnMtPmF0KGkpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBpOwpAQCAtNjEsMTUgKzYxLDE0IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcmVtb3ZlSXRlbUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxk
U3luY2hyb25pemVXcmFwcGVycykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAg
ICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXpl
KCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5j
ZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAg
ICAgICAgIGF1dG8gaXRlbSA9IG1fd3JhcHBlcnMtPmF0KGl0ZW1JbmRleCk7CiAgICAgICAgIGl0
ZW0tPmRldGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGl0ZW1JbmRl
eCk7Ci0gICAgICAgIG1fdmFsdWVzLT5yZW1vdmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVz
UmVmZXJlbmNlKCkucmVtb3ZlKGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNo
cm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsx
MTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5
VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9w
ZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25z
dCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQog
ICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndy
YXBwZXJzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQog
ICAgIHsKQEAgLTEyOSwxOCArMTI4LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0
Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAg
ICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3Jh
cHBlcnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAg
ICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChz
aXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNS
ZWZlcmVuY2UoKS5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpKTsKICAg
ICAgICAgICAgIGlmICghaXRlbSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGl0ZW0tPnNldEFuaW1hdGVkUHJvcGVydHkobV9hbmltYXRlZFByb3BlcnR5LnB0cigpKTsK
LSAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKG1fdmFsdWVzLT5hdChpKSk7CisgICAgICAgICAg
ICBpdGVtLT5zZXRWYWx1ZSh2YWx1ZXNSZWZlcmVuY2UoKS5hdChpKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwpAQCAtMTY5LDcgKzE2
Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIC8vIFNWR1JlY3RFbGVtZW50cyBTVkdBbmlt
YXRlZExlbmd0aCAnd2lkdGgnIHByb3BlcnR5IGJhc2VWYWwgcG9pbnRzIHRvIHRoZSBzYW1lIHRl
YXIgb2ZmIG9iamVjdAogICAgICAgICAgICAgLy8gdGhhdCdzIGluc2VydGVkIGludG8gU1ZHVGV4
dEVsZW1lbnRzIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCAneCcuIHRleHRFbGVtZW50LnguYmFzZVZh
bC5nZXRJdGVtKDApLnZhbHVlICs9IDE1MCB3b3VsZAogICAgICAgICAgICAgLy8gbXV0YXRlIHRo
ZSByZWN0RWxlbWVudCB3aWR0aCBfYW5kXyB0aGUgdGV4dEVsZW1lbnQgeCBsaXN0LiBUaGF0J3Mg
b2J2aW91c2x5IHdyb25nLCB0YWtlIGNhcmUgb2YgdGhhdC4KLSAgICAgICAgICAgIG5ld0l0ZW0g
PSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsK
KyAgICAgICAgICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShuZXdJdGVtLT52
YWx1ZVJlZmVyZW5jZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFy
T2ZmLmgJKHJldmlzaW9uIDIyOTg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR01hdHJpeFRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxOSArMjksMTkgQEAgY2xhc3Mg
U1ZHTWF0cml4VGVhck9mZiBmaW5hbCA6IHB1YmxpYyBTVgogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8U1ZHTWF0cml4VGVhck9mZj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFyZW50LCBTVkdNYXRy
aXhWYWx1ZSYgdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFy
ZW50LnByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsKKyAgICAgICAg
QVNTRVJUX1VOVVNFRCh2YWx1ZSwgJnBhcmVudC52YWx1ZVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgp
ID09ICZ2YWx1ZSk7CiAgICAgICAgIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IFNWR01hdHJpeFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAgIHBhcmVudC5hZGRD
aGlsZChyZXN1bHQtPm1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlS
ZWZlcmVuY2UoKSBmaW5hbCB7IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5z
dmdNYXRyaXgoKTsgfQorICAgIFNWR01hdHJpeFZhbHVlJiB2YWx1ZVJlZmVyZW5jZSgpIGZpbmFs
IHsgcmV0dXJuIG1fcGFyZW50LT52YWx1ZVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CiAKLSAg
ICB2b2lkIHNldFZhbHVlKFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+
cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+dmFsdWVS
ZWZlcmVuY2UoKS5zZXRNYXRyaXgodmFsdWUtPmFzPFNWR01hdHJpeFZhbHVlPigpKTsgfQogCiAg
ICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbAogICAgIHsKLSAgICAgICAgbV9wYXJlbnQtPnBy
b3BlcnR5UmVmZXJlbmNlKCkudXBkYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIG1fcGFyZW50LT52
YWx1ZVJlZmVyZW5jZSgpLnVwZGF0ZVNWR01hdHJpeCgpOwogICAgICAgICBtX3BhcmVudC0+Y29t
bWl0Q2hhbmdlKCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2lu
Y2x1ZGUgIlNWR1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjAsMTcgKzYxLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVl
OyB9CisgICAgUmVmUHRyPFNWR1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KKyAgICB2aXJ0dWFsIFByb3BlcnR5VHlwZSYgdmFsdWVSZWZlcmVuY2UoKSB7IHJldHVybiBt
X3ZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCk7IH0KICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBh
bmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LmdldCgp
OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAg
ICAgewotICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92YWx1ZUlz
Q29weSkKICAgICAgICAgICAgIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBkZWxldGUg
bV92YWx1ZTsKLSAgICAgICAgfQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gZmFsc2U7Ci0gICAg
ICAgIG1fdmFsdWUgPSAmdmFsdWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAgICB9CiAK
ICAgICB2b2lkIHNldEFuaW1hdGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0
ZWRQcm9wZXJ0eSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGl0ZW0u
dmFsdWUgc3RpbGwgaGFzIHRvIHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8gYmUgcG9zc2libGUg
dG8gbW9kaWZ5ICdpdGVtJwogICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhlICJuZXcgaXRlbSIg
KHdpdGggeD0xMDApIGluIHRoZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8vIFdoZW5ldmVyIHRo
ZSBYTUwgRE9NIG1vZGlmaWVzIHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhpc3Rpbmcgd3JhcHBl
cnMgYXJlIGRldGFjaGVkLCB1c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAgICBtX3ZhbHVlID0g
bmV3IFByb3BlcnR5VHlwZSgqbV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6
Y3JlYXRlKG1fdmFsdWUtPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKSk7CiAgICAgICAgIG1f
dmFsdWVJc0NvcHkgPSB0cnVlOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRy
OwogICAgIH0KQEAgLTEzMSwxMSArMTMxLDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3Rl
ZDoKLSAgICBTVkdQcm9wZXJ0eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAg
U1ZHUHJvcGVydHlUZWFyT2ZmKFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHks
IFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAg
ICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBt
X3JvbGUocm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKLSAgICAgICAgLCBtX3ZhbHVl
SXNDb3B5KGZhbHNlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KIApA
QCAtMTQ3LDE3ICsxNDYsMTYgQEAgcHJvdGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihj
b25zdCBQcm9wZXJ0eVR5cGUqIGluaXRpYWxWYWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJv
cGVydHkobnVsbHB0cikKICAgICAgICAgLCBtX3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAg
LCBtX3ZhbHVlKGluaXRpYWxWYWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkg
OiBudWxscHRyKQogICAgICAgICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAg
IGlmIChpbml0aWFsVmFsdWUpCisgICAgICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0
ZSgqaW5pdGlhbFZhbHVlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJP
ZmYoKQogICAgIHsKLSAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1f
dmFsdWVJc0NvcHkpCiAgICAgICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAg
ZGVsZXRlIG1fdmFsdWU7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxk
cmVuKCkKQEAgLTE3MSwxMCArMTY5LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdB
bmltYXRlZFByb3BlcnR5PiBtX2FuaW1hdGVkUHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xl
IG1fcm9sZTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBtX3ZhbHVlOwogICAgIFZlY3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBt
X2NoaWxkVGVhck9mZnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBt
X3dlYWtQdHJGYWN0b3J5OwotICAgIGJvb2wgbV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFs
dWVJc0NvcHkgeyBmYWxzZSB9OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiAyMjk4NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Vu
dW0gTGlzdE1vZGlmaWNhdGlvbiB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAor
ICAgIExpc3RNb2RpZmljYXRpb25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBs
YWNlID0gMiwKKyAgICBMaXN0TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZp
Y2F0aW9uQXBwZW5kID0gNAorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0cyB7IH07CiAKQEAgLTM5LDcgKzQ3LDYgQEAgdGVt
cGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9v
bCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0K
LSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxW
YWx1ZSgpOyB9CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJu
IHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CiB9OwogCkBAIC02MCw3ICs2Nyw2IEBAIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj4gewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3Bl
cnR5VHJhaXRzPHVuc2lnbmVkPiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgp
IHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gcGFyc2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
dW5zaWduZWQgdHlwZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKQEAg
LTY4LDcgKzc0LDYgQEAgdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGludD4g
ewogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRp
YyBpbnQgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVybiBzdHJpbmcudG9J
bnRTdHJpY3QoKTsgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGludD4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJl
dHVybiBpbml0aWFsVmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5
cGUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHR5cGUpOyB9CiB9OwogCkBAIC04Miw4ICs4Nyw2
IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCAKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDxp
bnQ+KHJvdW5kZihmaXJzdE51bWJlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNvbmRO
dW1iZXIpKSk7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxpbnQs
IGludD4+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nKHN0ZDo6cGFpcjxpbnQsIGludD4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CkBAIC0xMTYsOCArMTE5
LDYgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdAogICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZpcnN0TnVtYmVy
LCBzZWNvbmROdW1iZXIpOwogICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBh
aXI8ZmxvYXQsIGZsb2F0Pj4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmlu
ZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4pIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiB9OwogCiB0ZW1wbGF0ZTw+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVy
dHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMjk4NTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzMsOSArMzQsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0ZW1U
ZWFyT2ZmID0gdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0
ZW1UZWFyT2ZmOwogCiAgICAgdXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1f
dmFsdWVzOworICAgIHVzaW5nIEJhc2U6OnZhbHVlc1JlZmVyZW5jZTsKIAotICAgIHN0YXRpYyBS
ZWY8U2VsZj4gY3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUm
IHZhbHVlcykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWVzKSk7CiAgICAg
fQpAQCAtNzYsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJv
cGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQog
ICAgICAgICA6IEJhc2UoVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAgICAs
IG1fY29udGV4dEVsZW1lbnQoKmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzkwLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsK
LSAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5n
ZShtX2NvbnRleHRFbGVtZW50KTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hh
bmdlKG1fY29udGV4dEVsZW1lbnQpOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5n
TGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0
aWNQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjI5ODU5KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzYsNyArMzcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9E
IHR5cGVzIHRoYXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5
IG9iamVjdCwgbm9yIHdpdGggYSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBs
ZTogU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxm
PiBjcmVhdGUoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZh
bHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENv
bnRleHRFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUsIFVwZGF0ZU1ldGhvZCB1cGRhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTZWxmKGNvbnRleHRFbGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQs
NyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2Nv
bnRleHRFbGVtZW50LmdldCgpLT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdT
dGF0aWNQcm9wZXJ0eVRlYXJPZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9w
ZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3Bl
cnR5VGVhck9mZihDb250ZXh0RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxT
VkdWYWx1ZT4mIHZhbHVlLCBVcGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5
VGVhck9mZihVbmRlZmluZWRSb2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUp
CiAgICAgICAgICwgbV9jb250ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337942</attachid>
            <date>2018-04-13 19:01:10 -0700</date>
            <delta_ts>2018-04-13 20:03:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168586-20180413190109.patch</filename>
            <type>text/plain</type>
            <size>235666</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDY1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzMiBAQAorMjAxOC0wNC0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYWxs
IHRoZSBTVkdFbGVtZW50cycgYXR0cmlidXRlcyBiZSBSZWZDb3VudGVkIG9iamVjdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBTVkcgdGVhci1v
ZmYgb2JqZWN0cyBoYXZlIGJlZW4gY2F1c2luZyBtYW55IG1lbW9yeSBpc3N1ZXMgd2hpY2ggYXJl
CisgICAgICAgIGRpZmZpY3VsdCB0byB0cmFjay4gVGhlIFNWRyB0ZWFyLW9mZiBvYmplY3RzIGFy
ZSBjcmVhdGVkIG9uIGRlbWFuZC4gTW9yZQorICAgICAgICBzcGVjaWZpY2FsbHksIHRoZXkgYXJl
IGNyZWF0ZWQgd2hlbiBhbmltYXRpbmcgdGhlIFNWR0VsZW1lbnQncyBhdHRyaWJ1dGUKKyAgICAg
ICAgb3Igd2hlbiBjcmVhdGluZyBhIERPTSBvYmplY3QgZm9yIHRoYXQgYXR0cmlidXRlLiBUaGUg
cHJvYmxlbSBpcyB0aGVzZQorICAgICAgICB0ZWFyLW9mZiBvYmplY3RzIGhvbGQgYSByYXcgcmVm
ZXJlbmNlIHRvIHRoZSBTVkdFbGVtZW50J3MgYXR0cmlidXRlLiBUbworICAgICAgICBrZWVwIHRo
aXMgcmVmZXJlbmNlIHZhbGlkLCBib3RoIHRoZSBTVkdFbGVtZW50IGFuZCB0aGUgdGVhci1vZmYg
b2JqZWN0CisgICAgICAgIHVzZWQgdG8gaG9sZCBhIFJlZlB0ciB0byBlYWNoIG90aGVyIHdoaWNo
IHdhcyBjYXVzaW5nIG1lbW9yeSBsZWFrcy4gV2hlbgorICAgICAgICB0aGlzIHN0cm9uZyBkb3Vi
bGUgcmVmZXJlbmNpbmcgd2FzIHJlbGF4ZWQgYnkgdXNpbmcgV2Vha1B0ciBvciByYXcgcG9pbnRl
cgorICAgICAgICBmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgbWVtb3J5IGJ1Z3Mgc3RhcnRl
ZCB0byBvY2N1ci4gQSBtb3JlICBzdWJ0bGUKKyAgICAgICAgcHJvYmxlbSBjYW4gaGFwcGVuIHdo
ZW4gdGhlIHRlYXItb2ZmIG9iamVjdCBpcyBjcmVhdGVkIGZvciBhbiBlbGVtZW50IGluCisgICAg
ICAgIGEgbGlzdCBhdHRyaWJ1dGUuIEV2ZW4gaWYgYm90aCB0aGUgU1ZHRWxlbWVudCBhbmQgdGhl
IHRlYXItb2ZmIGV4aXN0IGluCisgICAgICAgIG1lbW9yeSwgYWNjZXNzaW5nIGZyZWVkIG1lbW9y
eSBtYXkgc3RpbGwgaGFwcGVuIGlmIHRoZSBsaXN0IGF0dHJpYnV0ZSB3YXMKKyAgICAgICAgcmVh
bGxvY2F0ZWQuCisgCisgICAgICAgIFRvIGZpeCB0aGVzZSBpc3N1ZSwgYWxsIHRoZSBTVkdFbGVt
ZW50J3MgYXR0cmlidXRlcyBoYXZlIHRvIGJlIFJlZkNvdW50ZWQKKyAgICAgICAgb2JqZWN0cy4K
KyAKKyAgICAgICAgQ3JlYXRpbmcgZGlmZmVyZW50IGNsYXNzZXMgZm9yIGV2ZXJ5IGRhdGEgdHlw
ZSBvZiB0aGUgU1ZHIGF0dHJpYnV0ZXMgZG9lcworICAgICAgICBub3QgbG9vayB0aGUgY2xlYW5l
c3Qgc29sdXRpb24uIEJlc2lkZXMsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUgdW5pb24KKyAg
ICAgICAgU1ZHQW5pbWF0ZWRUeXBlIGlzIHVzZWQgdG8gcmVwcmVzZW50IGFsbCB0aGUgZGF0YSB0
eXBlcy4gU28gaGVyZSBpcyB0aGUKKyAgICAgICAgb3V0bGluZSBvZiB0aGlzIHBhdGNoOgorIAor
ICAgICAgICAtLSBDcmVhdGUgdGhlIGNsYXNzIFNWR1ZhbHVlIHdoaWNoIGlzIGEgdmFyaWFudCBv
ZiBhbGwgdGhlIFNWRyBhdHRyaWJ1dGUKKyAgICAgICAgYmFzaWMgZGF0YSB0eXBlcyBpbmNsdWRp
bmcgdGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBTVkcgYXR0cmlidXRlCisgICAgICAg
IGxpc3RzLgorIAorICAgICAgICAtLSBDaGFuZ2UgU1ZHQW5pbWF0ZWRUeXBlIHRvIGhvbGQgdHdv
IFNWR1ZhbHVlcy4gVGhlIHNlY29uZCBvbmUgaXMgb3B0aW9uYWwKKyAgICAgICAgYW5kIG9ubHkg
dXNlZCBmb3IgYW5pbWF0ZWQgdHlwZXMgd2hpY2ggcmVxdWlyZXMgdHdvIGRhdGEgdHlwZXMuCisg
CisgICAgICAgIC0tIENoYW5nZSBhbGwgdGhlIGF0dHJpYnV0ZXMgb2YgYWxsIHRoZSBTVkdFbGVt
ZW50IHRvIGJlIG9mIHR5cGUgUmVmUHRyPFNWR1ZhbHVlPi4KKyAKKyAgICAgICAgLS0gQ2hhbmdl
IGFsbCB0aGUgbGlzdCBhdHRyaWJ1dGVzIHRvIGJlIG9mIHR5cGUgVmVjdG9yPFJlZlB0cjxTVkdW
YWx1ZT4+LgorIAorICAgICAgICAtLSBDaGFuZ2UgYWxsIHRoZSB0ZWFyLW9mZiBvYmplY3RzIHRv
IGhvbGQgUmVmUHRyPFNWR1ZhbHVlPiBpbnN0ZWFkIG9mCisgICAgICAgIGhvbGRpbmcgYSByYXcg
cmVmZXJlbmNlCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdQYXRoRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwYXRoRnJvbVBvbHlnb25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhGcm9t
UG9seWxpbmVFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVDaGFyYWN0ZXJE
YXRhKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
Z2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OnVuaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpzZXRWYWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuZ2xlOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuZ2xlOjpzZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5nbGU6OnZhbHVlSW5TcGVjaWZpZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmdsZTo6c2V0VmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6dmFs
dWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6bmV3VmFsdWVTcGVjaWZp
ZWRVbml0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6Y29udmVydFRvU3BlY2lmaWVk
VW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OlNWR0FuZ2xlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlckFuaW1hdG9yOjphZGRBbmlt
YXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFs
SW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
TGVuZ3RoTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkTGVuZ3RoTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwpOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUG9pbnRMaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0
b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZWRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OlNWR0FuaW1hdGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OmFzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6YXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRUeXBlOjogY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRU
eXBlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkVHlwZTo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6OnNl
dFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlOjp2YWx1
ZUFuaW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFR5cGU6On5TVkdB
bmltYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFR5cGVBbmlt
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmNvbnN0
cnVjdEZyb21CYXNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFR5cGVBbmltYXRvcjo6Y29uc3RydWN0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OnJlc2V0RnJvbUJhc2VWYWx1ZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I6OmV4ZWN1dGVBY3Rpb24pOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6U1ZHRmlsdGVyRWxlbWVudCk6
CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OlNW
R0ltYWdlRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp1
bml0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnZhbHVlRm9yQmluZGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRWYWx1ZUZvckJpbmRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVJblNwZWNpZmllZFVuaXRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVBc1N0cmluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnNldFZhbHVlQXNTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoOjpuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0
aDo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3Ro
OjpTVkdMZW5ndGgpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25z
dCk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVh
ckdyYWRpZW50RWxlbWVudDo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBz
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVt
ZW50OjpTVkdNYXJrZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1l
bnQ6OnNldE9yaWVudFRvQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVu
dDo6c3luY2hyb25pemVPcmllbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVs
ZW1lbnQ6Om9yaWVudFR5cGUgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR01hcmtlclR5cGVzLmg6CisgICAgICAgICogc3ZnL1NWR01h
c2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpTVkdNYXNr
RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjphKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2V0QSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXRyaXg6OmIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRCKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNl
dEMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR01hdHJpeDo6c2V0RCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnNldEYpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRy
aXg6OmludmVyc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojp0cmFuc2xhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpzY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXRyaXg6OnNjYWxlTm9uVW5pZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6
OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpmbGlwWCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OmZsaXBZKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6c2tld1gp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpza2V3WSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdNYXRyaXg6OlNWR01hdHJpeCk6CisgICAgICAgICogc3ZnL1NWR051bWJlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TnVtYmVyOjp2YWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6
c2V0VmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OlNWR051
bWJlcik6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0
OjpTVkdOdW1iZXJMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0VmFsdWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHTnVtYmVyTGlzdFZhbHVlcz46OnBhcnNl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvaW50c0xpc3RGcm9tU1ZHRGF0YSk6CisgICAgICAgICogc3ZnL1NWR1Bh
dGhCeXRlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQ
YXRoQnl0ZVN0cmVhbT46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHUGF0aEJ5dGVTdHJlYW0+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQYXRoQnl0ZVN0cmVhbT46OnRvU3RyaW5nKTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1BhdGhFbGVtZW50Ojpsb29rdXBPckNyZWF0ZURXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BhdGhFbGVtZW50OjpzeW5jaHJvbml6ZUQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0aEVsZW1lbnQ6OnBhdGhTZWdMaXN0Q2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhT
ZWdMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0OjpjbGVhcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6cmVwbGFjZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3Q6OnJlbW92ZUl0ZW0pOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjptb3ZlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9Ib3Jpem9udGFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6bGluZVRvVmVydGljYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWMpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvQ3ViaWNTbW9vdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRvUXVhZHJhdGlj
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y3VydmVUb1F1YWRy
YXRpY1Ntb290aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmFy
Y1RvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y2xvc2VQYXRo
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUGF0aFNlZ0xpc3RTb3VyY2U6OnBhcnNlU1ZHU2VnbWVudFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFNlZ0xpc3RTb3VyY2U6Om5leHRDb21tYW5kKToKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aFNlZ0xpc3RWYWx1ZXM6OmNsZWFySXRlbUNvbnRleHRBbmRSb2xlKToKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRo
U2VnKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bv
aW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OngpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9pbnQ6OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6Onkp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnQ6OnNldFkpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUG9pbnQ6Om1hdHJpeFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludDo6
U1ZHUG9pbnQpOgorICAgICAgICAqIHN2Zy9TVkdQb2ludExpc3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvaW50TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlz
dDo6U1ZHUG9pbnRMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdFZhbHVlczo6dmFsdWVBc1N0cmluZyBjb25z
dCk6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUG9pbnRMaXN0VmFsdWVzPjo6ZnJvbVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQb2ludExpc3RWYWx1ZXM+Ojpw
YXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQ
b2ludExpc3RWYWx1ZXM+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3luY2hyb25pemVQ
b2ludHMpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUG9seUVsZW1lbnQ6OnBvaW50TGlzdCBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0
UmF0aW86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
OjphbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRB
bGlnbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjptZWV0T3JT
bGljZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRNZWV0
T3JTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKToKKyAgICAgICAgKiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6U1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6
OngpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6c2V0WCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZWN0Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFkpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUmVjdDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6
c2V0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6aGVpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlY3Q6OnNldEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0
OjpTVkdSZWN0KToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y2hlY2tFbmNsb3N1cmVXaXRob3V0VXBkYXRpbmdMYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCk6CisgICAgICAg
ICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmN1cnJlbnRUcmFuc2xhdGVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoK
KyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJp
bmdMaXN0VmFsdWVzOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHJpbmdMaXN0VmFs
dWVzOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5nTGlzdFZh
bHVlcy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUZXN0czo6U1ZHVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnRleHRMZW5ndGhBbmltYXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1RyYW5zZm9ybTo6bWF0cml4KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUcmFuc2Zvcm06OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3Jt
OjphbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldE1hdHJpeCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUcmFuc2Zvcm06OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Ry
YW5zZm9ybTo6c2V0Um90YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5zZm9ybTo6c2V0
U2tld1gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVHJhbnNmb3JtOjpzZXRTa2V3WSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybSk6CisgICAgICAgICogc3Zn
L1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25zb2xp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRl
bmF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlz
dFZhbHVlcz46OmZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OnBhcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBz
dmcvU1ZHVHJhbnNmb3JtVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJh
aXRzPFNWR1RyYW5zZm9ybVZhbHVlPjo6aW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1RyYW5zZm9ybVZhbHVlPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHN2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RyYW5z
Zm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVmFs
dWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWU6OmlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlOjph
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6YXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zh
bHVlOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZTo6U1ZHVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHVmFs
dWVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVMaXN0OjpTVkdWYWx1
ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVMaXN0OjpvcGVyYXRvcj0pOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVMaXN0OjpvcGVyYXRvciBWZWN0b3I8UHJvcGVydHlUeXBl
PiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZUxpc3Q6OnJlc2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWYWx1ZUxpc3Q6OmF0UmVmZXJlbmNlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlTGlzdDo6YXRSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVmFsdWVMaXN0OjpmaXJzdFJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdWYWx1ZUxpc3Q6OmZpcnN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVl
TGlzdDo6bGFzdFJlZmVyZW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZUxp
c3Q6Omxhc3RSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVMaXN0OjpjcmVh
dGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZUxpc3Q6OmNvcHlWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZUxpc3Q6OmRlZXBDb3B5IGNvbnN0KToKKyAgICAgICAg
KiBzdmcvU1ZHVmlld0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld0VsZW1l
bnQ6OlNWR1ZpZXdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpT
VkdWaWV3U3BlYyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3Ry
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjp2aWV3Qm94U3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3BlYyk6CisgICAgICAg
ICogc3ZnL1NWR1ZpZXdTcGVjLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmN1
cnJlbnRCYXNlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmOjp2YWx1ZXNSZWZlcmVuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25TdGFydGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0aW9u
RW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
OjpzeW5jaHJvbml6ZVdyYXBwZXJzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltVmFsV2lsbENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWxEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QW5pbWF0ZWRWYWx1ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3Jh
cHBlcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jv
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5
OjpTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpiYXNlVmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltVmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpzZXRCYXNl
VmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRl
YXJPZmY6OmN1cnJlbnRBbmltYXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjpjdXJyZW50QmFzZVZhbHVlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmlt
YXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVy
dHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFN0YXRpY1Byb3BlcnR5VGVhck9mZjo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY6OmN1
cnJlbnRBbmltYXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6c2V0VmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlz
dFByb3BlcnR5OjpjbGVhclZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHk6OmNsZWFyVmFsdWVzQW5kV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5OjpudW1iZXJPZkl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6aW5pdGlhbGl6ZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJv
cGVydHk6OmluaXRpYWxpemVWYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHk6OmNhbkdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5OjpnZXRJdGVtVmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eTo6Z2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQ
cm9wZXJ0eTo6aW5zZXJ0SXRlbUJlZm9yZVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHk6Omluc2VydEl0ZW1CZWZvcmVWYWx1ZXNBbmRXcmFwcGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OmNhblJlcGxhY2VJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6cmVwbGFjZUl0ZW1WYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZXBsYWNlSXRlbVZhbHVlc0FuZFdyYXBwZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6Y2FuUmVtb3ZlSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6OnJlbW92ZUl0ZW1WYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjpyZW1vdmVJdGVtVmFsdWVzQW5kV3JhcHBlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5OjphcHBlbmRJdGVtVmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6YXBwZW5kSXRlbVZhbHVlc0FuZFdyYXBw
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6dmFsdWVzUmVmZXJlbmNlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eTo6U1ZHTGlzdFByb3BlcnR5KToK
KyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6
OnZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHk6On5T
VkdMaXN0UHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0eVRl
YXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
OjpmaW5kSXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3Bl
cnR5VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHTWF0cml4VGVhck9mZi5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5VGVhck9mZi5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp2
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY6OnZhbHVl
UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6c2V0VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjpTVkdQcm9wZXJ0eVRl
YXJPZmYpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmOjp+U1ZHUHJvcGVy
dHlUZWFyT2ZmKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjo6cHJvcGVy
dHlSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6
ZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czx1bnNpZ25l
ZD46OmluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxp
bnQ+Ojpmcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGJv
b2w+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czx1bnNpZ25lZD46OnBhcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5VHJhaXRzPGludD46OnBhcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
dGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U3RhdGljTGlzdFByb3BlcnR5VGVhck9mZjo6U1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZik6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmg6CisK
IDIwMTgtMDQtMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
V2ViS2l0IGNyYXNoZXMgd2hlbiBsaWJ3ZWJydGMuZHlsaWIgaXMgbWlzc2luZwpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg5LDggKzE2ODksMTcgQEAKIAkJNTU1MTMw
MDExRTdDQ0NDQjAwQTY5RTM4IC8qIERlY29kaW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1MTMwMDAxRTdDQ0NDQTAwQTY5RTM4IC8q
IERlY29kaW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTU1NUI4N0VEMUNBQUYwQUIwMDM0OTQyNSAvKiBJbWFnZURlY29kZXJDRy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU1Qjg3RUIx
Q0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggKi87IH07CiAJCTU1NzZBNTY1MUQ4
OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFt
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1
Nzc0MEYyMjA4MDEzQTUwMDU1QjE0MSAvKiBTVkdWYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1Nzc0MEYwMjA4MDEzODkwMDU1QjE0MSAv
KiBTVkdWYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1NUEzMzZGNzFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5
RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyB9OwogCQk1NUEzMzZGOTFEODIxRTNDMDAy
MkM0QzcgLyogSW1hZ2VCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY4MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tp
bmdTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTU1QTkxQTlEMjA1QUZFQ0YwMERDNDcwRSAvKiBTVkdWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUxMzdCMzQyMDNDRUI3MTAwMDEwMDRC
IC8qIFNWR1ZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNTVBOTFBOUYyMDVBRkYwQzAwREM0NzBFIC8qIFNWR0FuZ2xlVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQzMUREM0Iz
QjkwMEU5MkRBMyAvKiBTVkdBbmdsZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTAyMDVBRkYzRjAwREM0NzBFIC8qIFNWR051
bWJlckxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMzlDMzY5MUREQjg2RDMwMEZFRkIyOSAvKiBTVkdOdW1iZXJMaXN0VmFsdWVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFB
QTEyMDVBRkY1OTAwREM0NzBFIC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2RjFEREJBM0UwMDBGRUZC
MjkgLyogU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk1NUE5MUFBMjIwNUFGRjY2MDBEQzQ3MEUgLyogU1ZHUG9p
bnRMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzM5QzM2QjFEREI4NzFDMDBGRUZCMjkgLyogU1ZHUG9pbnRMaXN0VmFsdWVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTVBOTFBQTMy
MDVBRkY3NDAwREM0NzBFIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4RjIyNDYxREQzRDFDNTAw
RTkyREEzIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU1QTkxQUE0MjA1QUZGOTIwMERDNDcw
RSAvKiBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzM5QzM2RDFEREI4QkIwMDBGRUZCMjkgLyogU1ZHVHJhbnNm
b3JtTGlzdFZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTU1QTkxQUE1MjA1QUZGRDYwMERDNDcwRSAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUFGMTRFNDFF
QUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NUVDOTU5OTIwNkFBN0EwMDA3REQwQTkgLyogUGFp
bnRGcmVxdWVuY3lUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NUVDOTU5NzIwNjlDOTJEMDA3REQwQTkgLyogUGFpbnRGcmVxdWVuY3lUcmFj
a2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTcwNDQwNUExRTUzOTM2MjAwMzU2NjAxIC8qIEpTQWVzQ2JjQ2ZiUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA0NDA1OTFFNTM5MzYyMDAz
NTY2MDEgLyogSlNBZXNDYmNDZmJQYXJhbXMuaCAqLzsgfTsKQEAgLTE5OTcsNyArMjAwNiw3IEBA
CiAJCTcxNUFENzIwMjA1MDUxMzIwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE1QUQ3MUQyMDUw
NTEyNDAwRDU5MkRDIC8qIERlY2xhcmF0aXZlQW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzE1QUQ3MjEyMDUwNTEzRjAwRDU5MkRD
IC8qIENTU1RyYW5zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxMjNDMTg2MjA0NzM5QkEwMDc4OTM5MiAvKiBDU1NUcmFuc2l0aW9uLmggKi87
IH07CiAJCTcxQTFCNjA4MURFRTVBRDcwMDczQkNGQiAvKiBtb2Rlcm4tbWVkaWEtY29udHJvbHMt
bG9jYWxpemVkLXN0cmluZ3MuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxQTFCNjA2MURFRTVBODIwMDczQkNGQiAvKiBtb2Rlcm4tbWVkaWEtY29u
dHJvbHMtbG9jYWxpemVkLXN0cmluZ3MuanMgKi87IH07Ci0JCTcxQTU3REYyMTU0QkUyNUMwMDA5
RDEyMCAvKiBTVkdQYXRoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MUE1N0RGMDE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxp
dGllcy5oICovOyB9OworCQk3MUE1N0RGMjE1NEJFMjVDMDAwOUQxMjAgLyogU1ZHUGF0aFV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFB
NTdERjAxNTRCRTI1QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MUIyODQyNzIwM0NFQzRDMDAz
NkFBNUQgLyogSlNDU1NBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxQjI4NDI2MjAzQ0VDMEQwMDM2QUE1RCAvKiBKU0NTU0FuaW1hdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcx
QzI5RTMyMjAzQ0U3ODEwMDhGMzZEMiAvKiBDU1NBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQzI5RTMwMjAzQ0U3NkIwMDhGMzZEMiAv
KiBDU1NBbmltYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MUM5MTYwODFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzFDOTE2MDcxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MjEwMSw3ICsyMTEwLDcgQEAKIAkJN0MzMEQ5ODYxRjgxNUFFQzAwMjY4MzU2IC8qIEpTQWJvcnRT
aWduYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
MzBEOTgxMUY4MTVBQzEwMDI2ODM1NiAvKiBKU0Fib3J0U2lnbmFsLmggKi87IH07CiAJCTdDMzMw
QTAyMURGOEZBQzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzMwQTAxMURGOEZB
QzYwMEQzMzk1QyAvKiBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzMzMEEwODFERjlGOTUxMDBE
MzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzMwQTA2MURGOUY5NTEwMEQzMzk1QyAvKiBKU1Bvc2l0aW9u
T3B0aW9ucy5oICovOyB9OwotCQk3QzM5QzM2NTFEREE4NjUyMDBGRUZCMjkgLyogU1ZHTGVuZ3Ro
TGlzdFZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0MzOUMzNjMxRERBODY0OTAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCAqLzsg
fTsKKwkJN0MzOUMzNjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMzlDMzYzMURE
QTg2NDkwMEZFRkIyOSAvKiBTVkdMZW5ndGhMaXN0VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MzOUMzNzcxRERCRTE3MDAwRkVGQjI5
IC8qIFNWR1N0cmluZ0xpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMzlDMzY3MUREQjgyQ0YwMEZFRkIyOSAvKiBTVkdTdHJpbmdMaXN0
VmFsdWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MzQTkxRTUxQzk2
M0I4ODAwRDFBN0UzIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDM0I3OTcxMTkwODc1N0IwMEI0N0Ey
RCAvKiBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0MzQjc5NkYxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdl
SGFuZGxlci5jcHAgKi87IH07CkBAIC0yMjM0LDggKzIyNDMsOCBAQAogCQk3Q0UxOTE3QjFGMkFC
RTcxMDAyNzJGNzggLyogSlNGZXRjaFJlcXVlc3RSZWRpcmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFMTkxNkExRjJBQjcwNjAwMjcyRjc4IC8q
IEpTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuaCAqLzsgfTsKIAkJN0NFNThENEExREQ2NEE1QjAwMTI4
NTUyIC8qIFNWR1BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQuaCAqLzsgfTsKIAkJ
N0NFNThENTAxREQ2OUExRTAwMTI4NTUyIC8qIFNWR051bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENEYxREQ2OUExRTAwMTI4NTUyIC8q
IFNWR051bWJlci5oICovOyB9OwotCQk3Q0U1OEQ1ODFERDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJh
bnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oICovOyB9
OwotCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDVCMUREN0VDOUMw
MDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oICovOyB9OworCQk3Q0U1OEQ1ODFERDdEOTZEMDAx
Mjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRTU4RDU2MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdUcmFuc2Zv
cm1WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTdDRTU4RDVDMUREN0VDOUMwMDEyODU1MiAvKiBTVkdNYXRyaXhWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENUIxREQ3RUM5QzAw
MTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNz
YWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NFNjgzNDIxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwICovOyB9OwogCQk3Q0U2ODM0NTE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNjgzNDMxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNz
YWdlSGFuZGxlckRlc2NyaXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3Q0U2ODM0NzE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VI
YW5kbGVyRGVzY3JpcHRvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0U2ODM0NjE5MjE4MjE1MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5k
bGVyRGVzY3JpcHRvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTIzNzgsNyArMjM4Nyw3IEBACiAJCTgzRkU3Q0E3MURBOUYxQTcwMDM3
MjM3QyAvKiBVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNGRTdDQTQxREE5RjE2NjAwMzcyMzdDIC8qIFVJRXZlbnRJbml0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNGRTdDQTgx
REE5RjFCNjAwMzcyMzdDIC8qIEV2ZW50TW9kaWZpZXJJbml0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZFN0NBMzFEQTlGMTY1MDAzNzIzN0MgLyog
RXZlbnRNb2RpZmllckluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4M0ZFOTAyNzFFMzA3QzMwMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25p
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0ZF
OTAyNjFFMzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi87IH07Ci0JCTg0
MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQx
RjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CisJCTg0MTlEMkE3MTIwRDkyRDAwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRl
U3RyZWFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODQxOUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwogCQk4
NDE5RDJBRDEyMEQ5MkZDMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkFCMTIwRDky
RkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oICovOyB9OwogCQk4NDE5RDJC
QTEyMEUwQzc2MDAxNDFGOEYgLyogU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkI4MTIwRTBDNzYwMDE0MUY4
RiAvKiBTVkdQYXRoU3RyaW5nQnVpbGRlci5oICovOyB9OwpAQCAtMjQwNSw3ICsyNDE0LDcgQEAK
IAkJODQ3MzBEOTMxMjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ3MzBENzYxMjQ4RjBCMzAw
RDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oICovOyB9OwogCQk4NDc2QzlFNjExREY2QTBCMDA1
NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFNDExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmggKi87IH07CiAJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBT
VkdQYXRoQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODQ3NkM5RTgxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggKi87IH07
Ci0JCTg0NzZDOUVDMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NzZDOUU5MTFERjZBMjkw
MDU1NUIwMiAvKiBTVkdQYXRoQ29uc3VtZXIuaCAqLzsgfTsKKwkJODQ3NkM5RUMxMURGNkEyOTAw
NTU1QjAyIC8qIFNWR1BhdGhDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ3NkM5RTkxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhDb25z
dW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg0NzZDOUYwMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDc2QzlFRTExREY2QTU4MDA1NTVC
MDIgLyogU1ZHUGF0aFBhcnNlci5oICovOyB9OwogCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYg
LyogRkVHYXVzc2lhbkJsdXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICov
OyB9OwogCQk4NDgyQjc0NjExOThDMzU0MDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDQyQkJGODExOTRD
OUQzMDBENDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi87IH07CkBAIC0zMzU3LDcgKzMzNjYs
NyBAQAogCQlCMjIyN0E1MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QkIwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR051bWJlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0E1NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFy
c2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjIyNzhDMTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjIyMjdBNTkw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDMzBEMDBCRjIwMDA3MUI3ODIgLyogU1ZH
UGF0aEVsZW1lbnQuaCAqLzsgfTsKLQkJQjIyMjdBNUIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bh
dGhTZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
MjI3OEM1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggKi87IH07CisJCUIyMjI3QTVC
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDNTBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHUGF0
aFNlZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUIyMjI3QTVFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhDODBEMDBCRjIwMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0FyYy5oICovOyB9OwogCQlCMjIyN0E2MjBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjIyMjc4Q0MwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDbG9z
ZVBhdGguaCAqLzsgfTsKIAkJQjIyMjdBNjUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyMjI3OENGMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljLmgg
Ki87IH07CkBAIC04Mjc0LDYgKzgyODMsNyBAQAogCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUg
LyogSW1hZ2VEZWNvZGVyQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VEZWNvZGVyQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU3NkE1NjIxRDg4
QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW1hZ2VGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTU3NzQwRjAyMDgwMTM4OTAwNTVCMTQxIC8qIFNWR1ZhbHVlTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTU5N0ZDQ0IyMDc2QzA2ODAwRDM1QkIwIC8qIEdseXBoRGlzcGxheUxp
c3RDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaERpc3BsYXlM
aXN0Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBMzM2RjYxRDgyMDlG
NDAwMjJDNEM3IC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QTMzNkY4
MUQ4MjFFM0MwMDIyQzRDNyAvKiBJbWFnZUJhY2tpbmdTdG9yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUJhY2tpbmdTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjMxMTQsNiArMjMxMjQsNyBAQAogCQkJCUIyMjI3OTU3MEQwMEJGMjEwMDcx
Qjc4MiAvKiBTVkdVc2VFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc5NTgwRDAwQkYyMTAwNzFCNzgy
IC8qIFNWR1VzZUVsZW1lbnQuaWRsICovLAogCQkJCTU1MTM3QjM0MjAzQ0VCNzEwMDAxMDA0QiAv
KiBTVkdWYWx1ZS5oICovLAorCQkJCTU1Nzc0MEYwMjA4MDEzODkwMDU1QjE0MSAvKiBTVkdWYWx1
ZUxpc3QuaCAqLywKIAkJCQlCMjIyNzk1OTBEMDBCRjIxMDA3MUI3ODIgLyogU1ZHVmlld0VsZW1l
bnQuY3BwICovLAogCQkJCUIyMjI3OTVBMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVu
dC5oICovLAogCQkJCUIyMjI3OTVCMEQwMEJGMjEwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5p
ZGwgKi8sCkBAIC0yNjcxMiw2ICsyNjcyMyw3IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJ
CQk1NUE5MUFBNTIwNUFGRkQ2MDBEQzQ3MEUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0NEMEUyQjgxRjgwQTQ4MjAwMTZBNENFIC8qIEFib3J0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0NEMEUyQkYxRjgwQTU2RTAwMTZBNENFIC8qIEFib3J0U2lnbmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NkI5NTE5NTIwN0Q2MzM0MDBBN0QyREQgLyogQWJzdHJhY3RET01XaW5k
b3cuaCBpbiBIZWFkZXJzICovLApAQCAtMzAwMjMsNiArMzAwMzUsNyBAQAogCQkJCTY1NjUzRjJF
MEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI0RDkxMkI4MTNDQTlBNjkwMEQyMTkxNSAvKiBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5nbGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQTlGMjA1QUZGMEMwMERDNDcwRSAvKiBTVkdBbmds
ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0OTYxMjcy
Q0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzAxNDYsNiArMzAxNTksNyBAQAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDUwMURENjlB
MUUwMDEyODU1MiAvKiBTVkdOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTUxMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdOdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NUE5
MUFBMDIwNUFGRjNGMDBEQzQ3MEUgLyogU1ZHTnVtYmVyTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8qIFNWR1BhcnNp
bmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAwQTkyOTAyIC8q
IFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTg0LDYgKzMwMTk4LDcgQEAK
IAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1
aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBT
VkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTEyMDVBRkY1
OTAwREM0NzBFIC8qIFNWR1BhdGhTZWdMaXN0VmFsdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9S
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQ
YXRoU2VnV2l0aENvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzAxOTUsMTAgKzMwMjEwLDEy
IEBACiAJCQkJQjIyMjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ0QTFERDY0QTVCMDAxMjg1NTIgLyogU1ZHUG9pbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2lu
dExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTU1QTkxQUEyMjA1QUZGNjYwMERDNDcwRSAvKiBT
VkdQb2ludExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QThGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdQb2x5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTMyMDVBRkY3NDAwREM0NzBFIC8q
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBF
MEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODFERDQ5QzEzQkExQTYwMDBEQzc2MjcgLyogU1ZHUHJvcGVydHlJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwMjUwLDYgKzMwMjY3LDcgQEAKIAkJCQlCMjIyN0FEQTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
MjdBREQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9ybURpc3RhbmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0FERjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtTGlzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTVBOTFBQTQyMDVBRkY5MjAwREM0NzBFIC8qIFNWR1RyYW5z
Zm9ybUxpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEy
ODU1MiAvKiBTVkdUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0FFNTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTMwMjU3LDYgKzMwMjc1LDggQEAKIAkJCQkzN0M3MzhFRDFFREJENUJDMDAzRjJCMEIg
LyogU1ZHVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUVBMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdVUklSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QUVEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdVc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NUE5MUE5RDIwNUFGRUNGMDBEQzQ3MEUgLyogU1ZHVmFsdWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTU1Nzc0MEYyMjA4MDEzQTUwMDU1QjE0MSAvKiBTVkdWYWx1ZUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QUYwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRjMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ZpZXdTcGVj
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDg1MjI4QjExOTAxNzNDMDA2RURDN0YgLyogU1ZHVktl
cm5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUGF0aERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUGF0aERhdGEuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1BhdGhEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAw
LDE2ICsxMDAsMTYgQEAgc3RhdGljIFBhdGggcGF0aEZyb21QYXRoRWxlbWVudChTVkdFbGVtZQog
CiBzdGF0aWMgUGF0aCBwYXRoRnJvbVBvbHlnb25FbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQp
CiB7Ci0gICAgYXV0byYgcG9pbnRzID0gZG93bmNhc3Q8U1ZHUG9seWdvbkVsZW1lbnQ+KGVsZW1l
bnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlcygpOworICAgIGF1dG8mIHBvaW50cyA9IGRvd25j
YXN0PFNWR1BvbHlnb25FbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52YWx1ZXNS
ZWZlcmVuY2UoKTsKICAgICBpZiAocG9pbnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAogICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLm1vdmVUbyhwb2ludHMuZmlyc3QoKSk7Cisg
ICAgcGF0aC5tb3ZlVG8ocG9pbnRzLmZpcnN0UmVmZXJlbmNlKCkpOwogCiAgICAgdW5zaWduZWQg
c2l6ZSA9IHBvaW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemU7
ICsraSkKLSAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzLmF0KGkpKTsKKyAgICAgICAgcGF0
aC5hZGRMaW5lVG8ocG9pbnRzLmF0UmVmZXJlbmNlKGkpKTsKIAogICAgIHBhdGguY2xvc2VTdWJw
YXRoKCk7CiAgICAgcmV0dXJuIHBhdGg7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgUGF0
aCBwYXRoRnJvbVBvbHlnb25FbGVtZW50KFNWR0VsCiAKIHN0YXRpYyBQYXRoIHBhdGhGcm9tUG9s
eWxpbmVFbGVtZW50KFNWR0VsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcG9pbnRzID0g
ZG93bmNhc3Q8U1ZHUG9seWxpbmVFbGVtZW50PihlbGVtZW50KS5hbmltYXRlZFBvaW50cygpLT52
YWx1ZXMoKTsKKyAgICBhdXRvJiBwb2ludHMgPSBkb3duY2FzdDxTVkdQb2x5bGluZUVsZW1lbnQ+
KGVsZW1lbnQpLmFuaW1hdGVkUG9pbnRzKCktPnZhbHVlc1JlZmVyZW5jZSgpOwogICAgIGlmIChw
b2ludHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aCBwYXRoOwot
ICAgIHBhdGgubW92ZVRvKHBvaW50cy5maXJzdCgpKTsKKyAgICBwYXRoLm1vdmVUbyhwb2ludHMu
Zmlyc3RSZWZlcmVuY2UoKSk7CiAKICAgICB1bnNpZ25lZCBzaXplID0gcG9pbnRzLnNpemUoKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYXRoLmFk
ZExpbmVUbyhwb2ludHMuYXQoaSkpOworICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHMuYXRS
ZWZlcmVuY2UoaSkpOwogICAgIHJldHVybiBwYXRoOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmli
dXRlc0J1aWxkZXIuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2MywxNSArMTYzLDE1IEBAIHZvaWQgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWls
ZGVyOjpidWkKIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVk
IGksIGZsb2F0JiBsYXN0Um90YXRpb24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNW
R0xlbmd0aENvbnRleHQmIGxlbmd0aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3RWYWx1ZXMq
IHhMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3Ro
TGlzdFZhbHVlcyogZHhMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzKiBkeUxpc3QsIGNv
bnN0IFNWR051bWJlckxpc3RWYWx1ZXMqIHJvdGF0ZUxpc3QpCiB7CiAgICAgaWYgKHhMaXN0KQot
ICAgICAgICBkYXRhLnggPSB4TGlzdC0+YXQoaSkudmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAg
ICAgIGRhdGEueCA9IHhMaXN0LT5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsK
ICAgICBpZiAoeUxpc3QpCi0gICAgICAgIGRhdGEueSA9IHlMaXN0LT5hdChpKS52YWx1ZShsZW5n
dGhDb250ZXh0KTsKKyAgICAgICAgZGF0YS55ID0geUxpc3QtPmF0UmVmZXJlbmNlKGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpOwogICAgIGlmIChkeExpc3QpCi0gICAgICAgIGRhdGEuZHggPSBkeExp
c3QtPmF0KGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBkYXRhLmR4ID0gZHhMaXN0
LT5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKICAgICBpZiAoZHlMaXN0KQot
ICAgICAgICBkYXRhLmR5ID0gZHlMaXN0LT5hdChpKS52YWx1ZShsZW5ndGhDb250ZXh0KTsKKyAg
ICAgICAgZGF0YS5keSA9IGR5TGlzdC0+YXRSZWZlcmVuY2UoaSkudmFsdWUobGVuZ3RoQ29udGV4
dCk7CiAgICAgaWYgKHJvdGF0ZUxpc3QpIHsKLSAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVM
aXN0LT5hdChpKTsKKyAgICAgICAgZGF0YS5yb3RhdGUgPSByb3RhdGVMaXN0LT5hdFJlZmVyZW5j
ZShpKTsKICAgICAgICAgbGFzdFJvdGF0aW9uID0gZGF0YS5yb3RhdGU7CiAgICAgfQogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmdsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5nbGUgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2Zm
PFNWR0FuZ2xlVmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVh
dGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xl
IHJvbGUsIFNWR0FuZ2xlVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNy
ZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJv
bGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1
ZSkpOwogICAgIH0KQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgU1ZHQW5nbGVWYWx1
ZTo6VHlwZSB1bml0VHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVu
Y2UoKS51bml0VHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlw
ZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3Mo
ZmxvYXQgdmFsdWUpCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWUodmFs
dWUpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAg
Y29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTY3LDcgKzY3LDcgQEAg
cHVibGljOgogICAgIAogICAgIGZsb2F0IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWUoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUmVmZXJlbmNlKCkudmFsdWUoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAt
NzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5T
cGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04Myw3ICs4Myw3IEBAIHB1
YmxpYzoKICAgICAKICAgICBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkudmFsdWVJblNwZWNpZmllZFVuaXRzKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLnZhbHVlSW5TcGVjaWZpZWRVbml0cygp
OwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVl
UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAg
LTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpCiAg
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS52YWx1ZUFzU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0xMDksNyAr
MTA5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLm5ld1ZhbHVlU3BlY2lmaWVkVW5p
dHModW5pdFR5cGUsIHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdmFsdWVSZWZlcmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBlLCB2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xMjIsNyArMTIyLDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byBy
ZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuaXRU
eXBlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKHVuaXRUeXBlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTMxLDcgKzEzMSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5nbGUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0FuZ2xl
VmFsdWUmIHZhbHVlKQorICAgIFNWR0FuZ2xlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
UHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2
YWx1ZSkKICAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGVWYWx1ZT4oJmFuaW1h
dGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDgg
KzY1LDggQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I6OmFkZEFuaW1hdAogICAgIEFT
U0VSVChmcm9tLT50eXBlKCkgPT0gQW5pbWF0ZWRBbmdsZSk7CiAgICAgQVNTRVJUKGZyb20tPnR5
cGUoKSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uID0gZnJvbS0+YXM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPj4oKTsK
LSAgICBhdXRvJiB0b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YXM8c3RkOjpwYWlyPFNWR0Fu
Z2xlVmFsdWUsIHVuc2lnbmVkPj4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21BbmdsZUFuZEVudW1l
cmF0aW9uID0gZnJvbS0+YXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7CisgICAgYXV0byB0
b0FuZ2xlQW5kRW51bWVyYXRpb24gPSB0by0+YXM8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KCk7
CiAgICAgLy8gT25seSByZXNwZWN0IGJ5IGFuaW1hdGlvbnMsIGlmIGZyb20gYW5kIGJ5IGFyZSBi
b3RoIHNwZWNpZmllZCBpbiBhbmdsZXMgKGFuZCBub3QgZWcuICdhdXRvJykuCiAgICAgaWYgKGZy
b21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vj
b25kIHx8IGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29uZCAhPSBTVkdNYXJrZXJPcmllbnRB
bmdsZSkKICAgICAgICAgcmV0dXJuOwpAQCAtODAsMTAgKzgwLDEwIEBAIHZvaWQgU1ZHQW5pbWF0
ZWRBbmdsZUFuaW1hdG9yOjpjYWxjdWxhdGUKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50
KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvJiBmcm9t
QW5nbGVBbmRFbnVtZXJhdGlvbiA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJvbSktPmFzPHN0ZDo6cGFpcjxTVkdBbmds
ZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0g
dG8tPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYg
dG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24t
PmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7Ci0gICAgYXV0byYgYW5p
bWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFzPHN0ZDo6cGFpcjxTVkdBbmds
ZVZhbHVlLCB1bnNpZ25lZD4+KCk7CisgICAgY29uc3QgYXV0byBmcm9tQW5nbGVBbmRFbnVtZXJh
dGlvbiA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IGFuaW1hdGVkIDogZnJvbSktPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAg
IGF1dG8gdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2ln
bmVkPigpOworICAgIGF1dG8gdG9BdEVuZE9mRHVyYXRpb25BbmdsZUFuZEVudW1lcmF0aW9uID0g
dG9BdEVuZE9mRHVyYXRpb24tPmFzPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPigpOworICAgIGF1
dG8gYW5pbWF0ZWRBbmdsZUFuZEVudW1lcmF0aW9uID0gYW5pbWF0ZWQtPmFzPFNWR0FuZ2xlVmFs
dWUsIHVuc2lnbmVkPigpOwogCiAgICAgaWYgKGZyb21BbmdsZUFuZEVudW1lcmF0aW9uLnNlY29u
ZCAhPSB0b0FuZ2xlQW5kRW51bWVyYXRpb24uc2Vjb25kKSB7CiAgICAgICAgIC8vIERpc2NyZXRl
IGFuaW1hdGlvbiAtIG5vIGxpbmVhciBpbnRlcnBvbGF0aW9uIHBvc3NpYmxlIGJldHdlZW4gdmFs
dWVzIChlLmcuIGF1dG8gdG8gYW5nbGUpLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAJKHJldmlzaW9u
IDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25h
bEludGVnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBAIHZvaWQgU1ZHQW5p
bWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW4KICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09
IEFuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlcik7CiAgICAgQVNTRVJUKGZyb20tPnR5cGUo
KSA9PSB0by0+dHlwZSgpKTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21JbnRlZ2VyUGFpciA9IGZy
b20tPmFzPHN0ZDo6cGFpcjxpbnQsIGludD4+KCk7Ci0gICAgYXV0byYgdG9JbnRlZ2VyUGFpciA9
IHRvLT5hczxzdGQ6OnBhaXI8aW50LCBpbnQ+PigpOworICAgIGNvbnN0IGF1dG8gZnJvbUludGVn
ZXJQYWlyID0gZnJvbS0+YXM8aW50LCBpbnQ+KCk7CisgICAgYXV0byB0b0ludGVnZXJQYWlyID0g
dG8tPmFzPGludCwgaW50PigpOwogCiAgICAgdG9JbnRlZ2VyUGFpci5maXJzdCArPSBmcm9tSW50
ZWdlclBhaXIuZmlyc3Q7CiAgICAgdG9JbnRlZ2VyUGFpci5zZWNvbmQgKz0gZnJvbUludGVnZXJQ
YWlyLnNlY29uZDsKQEAgLTc4LDEwICs3OCwxMCBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlck9w
dGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNT
RVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUludGVnZXJQYWly
ID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8g
YW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKLSAgICBjb25zdCBh
dXRvJiB0b0ludGVnZXJQYWlyID0gdG8tPmFzPHN0ZDo6cGFpcjxpbnQsIGludD4+KCk7Ci0gICAg
Y29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25JbnRlZ2VyUGFpciA9IHRvQXRFbmRPZkR1cmF0
aW9uLT5hczxzdGQ6OnBhaXI8aW50LCBpbnQ+PigpOwotICAgIGF1dG8mIGFuaW1hdGVkSW50ZWdl
clBhaXIgPSBhbmltYXRlZC0+YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKKyAgICBjb25zdCBh
dXRvIGZyb21JbnRlZ2VyUGFpciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJvbSktPmFzPGludCwgaW50PigpOworICAg
IGNvbnN0IGF1dG8gdG9JbnRlZ2VyUGFpciA9IHRvLT5hczxpbnQsIGludD4oKTsKKyAgICBjb25z
dCBhdXRvIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+
YXM8aW50LCBpbnQ+KCk7CisgICAgYXV0byBhbmltYXRlZEludGVnZXJQYWlyID0gYW5pbWF0ZWQt
PmFzPGludCwgaW50PigpOwogCiAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1
bGF0ZUFuaW1hdGVkSW50ZWdlcihtX2FuaW1hdGlvbkVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBmcm9tSW50ZWdlclBhaXIuZmlyc3QsIHRvSW50ZWdlclBhaXIuZmlyc3QsIHRvQXRF
bmRPZkR1cmF0aW9uSW50ZWdlclBhaXIuZmlyc3QsIGFuaW1hdGVkSW50ZWdlclBhaXIuZmlyc3Qp
OwogICAgIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZEludGVn
ZXIobV9hbmltYXRpb25FbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbUludGVn
ZXJQYWlyLnNlY29uZCwgdG9JbnRlZ2VyUGFpci5zZWNvbmQsIHRvQXRFbmRPZkR1cmF0aW9uSW50
ZWdlclBhaXIuc2Vjb25kLCBhbmltYXRlZEludGVnZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcAkocmV2aXNpb24gMjMw
NjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZExlbmd0aExpc3RB
bmltYXRvcjo6YWRkQQogCiAgICAgU1ZHTGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KG1fY29u
dGV4dEVsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcm9tTGVuZ3RoTGlz
dFNpemU7ICsraSkKLSAgICAgICAgdG9MZW5ndGhMaXN0W2ldLnNldFZhbHVlKHRvTGVuZ3RoTGlz
dFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSArIGZyb21MZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0
aENvbnRleHQpLCBsZW5ndGhDb250ZXh0KTsKKyAgICAgICAgdG9MZW5ndGhMaXN0LmF0UmVmZXJl
bmNlKGkpLnNldFZhbHVlKHRvTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhD
b250ZXh0KSArIGZyb21MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVlKGxlbmd0aENvbnRl
eHQpLCBsZW5ndGhDb250ZXh0KTsKIH0KIAogc3RhdGljIFNWR0xlbmd0aExpc3RWYWx1ZXMgcGFy
c2VMZW5ndGhMaXN0RnJvbVN0cmluZyhTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVt
ZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTEwOCwxOCArMTA4LDE4IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMKIAogICAgIFNWR0xlbmd0aENvbnRleHQg
bGVuZ3RoQ29udGV4dChtX2NvbnRleHRFbGVtZW50KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgdG9MZW5ndGhMaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIGZsb2F0IGFuaW1hdGVkTnVt
YmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0W2ldLnZhbHVlKGxlbmd0aENvbnRleHQpOwotICAgICAg
ICBTVkdMZW5ndGhUeXBlIHVuaXRUeXBlID0gdG9MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7Cisg
ICAgICAgIGZsb2F0IGFuaW1hdGVkTnVtYmVyID0gYW5pbWF0ZWRMZW5ndGhMaXN0LmF0UmVmZXJl
bmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOworICAgICAgICBTVkdMZW5ndGhUeXBlIHVuaXRU
eXBlID0gdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnVuaXRUeXBlKCk7CiAgICAgICAgIGZs
b2F0IGVmZmVjdGl2ZUZyb20gPSAwOwogICAgICAgICBpZiAoZnJvbUxlbmd0aExpc3RTaXplKSB7
CiAgICAgICAgICAgICBpZiAocGVyY2VudGFnZSA8IDAuNSkKLSAgICAgICAgICAgICAgICB1bml0
VHlwZSA9IGZyb21MZW5ndGhMaXN0W2ldLnVuaXRUeXBlKCk7Ci0gICAgICAgICAgICBlZmZlY3Rp
dmVGcm9tID0gZnJvbUxlbmd0aExpc3RbaV0udmFsdWUobGVuZ3RoQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgdW5pdFR5cGUgPSBmcm9tTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS51bml0VHlw
ZSgpOworICAgICAgICAgICAgZWZmZWN0aXZlRnJvbSA9IGZyb21MZW5ndGhMaXN0LmF0UmVmZXJl
bmNlKGkpLnZhbHVlKGxlbmd0aENvbnRleHQpOwogICAgICAgICB9Ci0gICAgICAgIGZsb2F0IGVm
ZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/IHRvQXRFbmRP
ZkR1cmF0aW9uTGVuZ3RoTGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSA6IDA7CisgICAgICAg
IGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRpb25MaXN0U2l6ZSA/
IHRvQXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS52YWx1ZShsZW5ndGhD
b250ZXh0KSA6IDA7CiAKLSAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRp
dmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTGVuZ3Ro
TGlzdFtpXS52YWx1ZShsZW5ndGhDb250ZXh0KSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWRO
dW1iZXIpOwotICAgICAgICBhbmltYXRlZExlbmd0aExpc3RbaV0uc2V0VmFsdWUobGVuZ3RoQ29u
dGV4dCwgYW5pbWF0ZWROdW1iZXIsIG1fbGVuZ3RoTW9kZSwgdW5pdFR5cGUpOworICAgICAgICBt
X2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBl
YXRDb3VudCwgZWZmZWN0aXZlRnJvbSwgdG9MZW5ndGhMaXN0LmF0UmVmZXJlbmNlKGkpLnZhbHVl
KGxlbmd0aENvbnRleHQpLCBlZmZlY3RpdmVUb0F0RW5kLCBhbmltYXRlZE51bWJlcik7CisgICAg
ICAgIGFuaW1hdGVkTGVuZ3RoTGlzdC5hdFJlZmVyZW5jZShpKS5zZXRWYWx1ZShsZW5ndGhDb250
ZXh0LCBhbmltYXRlZE51bWJlciwgbV9sZW5ndGhNb2RlLCB1bml0VHlwZSk7CiAgICAgfQogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAko
cmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdBbmltYXRl
ZE51bWJlckxpc3RBbmltYXRvcjo6YWRkQQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZnJvbU51bWJlckxpc3RTaXplOyArK2kpCi0gICAgICAgIHRvTnVt
YmVyTGlzdFtpXSArPSBmcm9tTnVtYmVyTGlzdFtpXTsKKyAgICAgICAgdG9OdW1iZXJMaXN0LmF0
UmVmZXJlbmNlKGkpICs9IGZyb21OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpOwogfQogCiB2b2lk
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZs
b2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZy
b20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNWR0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRp
b24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0ZWQpCkBAIC05Myw5ICs5Myw5IEBAIHZvaWQgU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0QW5pbWF0b3I6OmNhbGMKICAgICB1bnNpZ25lZCB0b0F0RW5kT2ZE
dXJhdGlvblNpemUgPSB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlckxpc3Quc2l6ZSgpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvTnVtYmVyTGlzdFNpemU7ICsraSkgewotICAgICAg
ICBmbG9hdCBlZmZlY3RpdmVGcm9tID0gZnJvbU51bWJlckxpc3RTaXplID8gZnJvbU51bWJlckxp
c3RbaV0gOiAwOwotICAgICAgICBmbG9hdCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyTGlzdFtpXSA6IDA7Ci0gICAg
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLCB0b051bWJlckxpc3RbaV0sIGVmZmVjdGl2ZVRv
QXRFbmQsIGFuaW1hdGVkTnVtYmVyTGlzdFtpXSk7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZUZy
b20gPSBmcm9tTnVtYmVyTGlzdFNpemUgPyBmcm9tTnVtYmVyTGlzdC5hdFJlZmVyZW5jZShpKSA6
IDA7CisgICAgICAgIGZsb2F0IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9mRHVyYXRp
b25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25OdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkpIDogMDsK
KyAgICAgICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGVmZmVjdGl2ZUZyb20sIHRvTnVtYmVyTGlzdC5hdFJlZmVyZW5j
ZShpKSwgZWZmZWN0aXZlVG9BdEVuZCwgYW5pbWF0ZWROdW1iZXJMaXN0LmF0UmVmZXJlbmNlKGkp
KTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjYsOCArNjYsOCBAQCB2b2lkIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZE51bWJlck9w
dGlvbmFsTnVtYmVyKTsKICAgICBBU1NFUlQoZnJvbS0+dHlwZSgpID09IHRvLT50eXBlKCkpOwog
Ci0gICAgY29uc3QgYXV0byYgZnJvbU51bWJlclBhaXIgPSBmcm9tLT5hczxzdGQ6OnBhaXI8Zmxv
YXQsIGZsb2F0Pj4oKTsKLSAgICBhdXRvJiB0b051bWJlclBhaXIgPSB0by0+YXM8c3RkOjpwYWly
PGZsb2F0LCBmbG9hdD4+KCk7CisgICAgY29uc3QgYXV0byBmcm9tTnVtYmVyUGFpciA9IGZyb20t
PmFzPGZsb2F0LCBmbG9hdD4oKTsKKyAgICBhdXRvIHRvTnVtYmVyUGFpciA9IHRvLT5hczxmbG9h
dCwgZmxvYXQ+KCk7CiAKICAgICB0b051bWJlclBhaXIuZmlyc3QgKz0gZnJvbU51bWJlclBhaXIu
Zmlyc3Q7CiAgICAgdG9OdW1iZXJQYWlyLnNlY29uZCArPSBmcm9tTnVtYmVyUGFpci5zZWNvbmQ7
CkBAIC03OCwxMCArNzgsMTAgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
QW5pbQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRl
eHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJQYWlyID0gKG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBm
cm9tKS0+YXM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7Ci0gICAgY29uc3QgYXV0byYgdG9O
dW1iZXJQYWlyID0gdG8tPmFzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwotICAgIGNvbnN0
IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uTnVtYmVyUGFpciA9IHRvQXRFbmRPZkR1cmF0aW9uLT5h
czxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsKLSAgICBhdXRvJiBhbmltYXRlZE51bWJlclBh
aXIgPSBhbmltYXRlZC0+YXM8c3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4+KCk7CisgICAgY29uc3Qg
YXV0byBmcm9tTnVtYmVyUGFpciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUo
KSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDogZnJvbSktPmFzPGZsb2F0LCBmbG9hdD4oKTsK
KyAgICBjb25zdCBhdXRvIHRvTnVtYmVyUGFpciA9IHRvLT5hczxmbG9hdCwgZmxvYXQ+KCk7Cisg
ICAgY29uc3QgYXV0byB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJh
dGlvbi0+YXM8ZmxvYXQsIGZsb2F0PigpOworICAgIGF1dG8gYW5pbWF0ZWROdW1iZXJQYWlyID0g
YW5pbWF0ZWQtPmFzPGZsb2F0LCBmbG9hdD4oKTsKIAogICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tTnVtYmVy
UGFpci5maXJzdCwgdG9OdW1iZXJQYWlyLmZpcnN0LCB0b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBh
aXIuZmlyc3QsIGFuaW1hdGVkTnVtYmVyUGFpci5maXJzdCk7CiAgICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21O
dW1iZXJQYWlyLnNlY29uZCwgdG9OdW1iZXJQYWlyLnNlY29uZCwgdG9BdEVuZE9mRHVyYXRpb25O
dW1iZXJQYWlyLnNlY29uZCwgYW5pbWF0ZWROdW1iZXJQYWlyLnNlY29uZCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDcgKzU1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVzZXRBbmltVgogICAg
IFJlZlB0cjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmPiBwcm9wZXJ0eSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmY+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAg
ICAgY29uc3QgYXV0byYgYmFzZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsK
IAotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMoYmFz
ZVZhbHVlLCAqYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgYnVpbGRTVkdQYXRo
Qnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVlcyhiYXNlVmFsdWUtPmFzPFNWR1BhdGhT
ZWdMaXN0VmFsdWVzPigpLCAqYnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAKICAgICBW
ZWN0b3I8UmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1
bHQ7CiAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVz
ZXRBbmltVgogICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFbGVtZW50
OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNvbnRleHRFbGVtZW50
KCkpOwogICAgICAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiByZXN1bHQpCi0gICAgICAgICAgICBz
ZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0sICZiYXNlVmFsdWUpOworICAgICAg
ICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlLT5h
czxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9yOjph
ZGRBbgogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJv
bVBvaW50TGlzdFNpemU7ICsraSkKLSAgICAgICAgdG9Qb2ludExpc3RbaV0gKz0gZnJvbVBvaW50
TGlzdFtpXTsKKyAgICAgICAgdG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSkgKz0gZnJvbVBvaW50
TGlzdC5hdFJlZmVyZW5jZShpKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1h
dG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJl
cGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8sIFNW
R0FuaW1hdGVkVHlwZSogdG9BdEVuZE9mRHVyYXRpb24sIFNWR0FuaW1hdGVkVHlwZSogYW5pbWF0
ZWQpCkBAIC05NiwxNCArOTYsMTQgQEAgdm9pZCBTVkdBbmltYXRlZFBvaW50TGlzdEFuaW1hdG9y
OjpjYWxjdQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b1BvaW50TGlzdFNpemU7ICsr
aSkgewogICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2ZUZyb207CiAgICAgICAgIGlmIChmcm9t
UG9pbnRMaXN0U2l6ZSkKLSAgICAgICAgICAgIGVmZmVjdGl2ZUZyb20gPSBmcm9tUG9pbnRMaXN0
W2ldOwotICAgICAgICBGbG9hdFBvaW50IGVmZmVjdGl2ZVRvQXRFbmQgPSBpIDwgdG9BdEVuZE9m
RHVyYXRpb25TaXplID8gdG9BdEVuZE9mRHVyYXRpb25Qb2ludExpc3RbaV0gOiBGbG9hdFBvaW50
KCk7CisgICAgICAgICAgICBlZmZlY3RpdmVGcm9tID0gZnJvbVBvaW50TGlzdC5hdFJlZmVyZW5j
ZShpKTsKKyAgICAgICAgRmxvYXRQb2ludCBlZmZlY3RpdmVUb0F0RW5kID0gaSA8IHRvQXRFbmRP
ZkR1cmF0aW9uU2l6ZSA/IHRvQXRFbmRPZkR1cmF0aW9uUG9pbnRMaXN0LmF0UmVmZXJlbmNlKGkp
IDogRmxvYXRQb2ludCgpOwogCi0gICAgICAgIGZsb2F0IGFuaW1hdGVkWCA9IGFuaW1hdGVkUG9p
bnRMaXN0W2ldLngoKTsKLSAgICAgICAgZmxvYXQgYW5pbWF0ZWRZID0gYW5pbWF0ZWRQb2ludExp
c3RbaV0ueSgpOwotICAgICAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVBZGRpdGl2ZU51
bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZWZmZWN0aXZlRnJvbS54KCksIHRvUG9pbnRM
aXN0W2ldLngoKSwgZWZmZWN0aXZlVG9BdEVuZC54KCksIGFuaW1hdGVkWCk7Ci0gICAgICAgIG1f
YW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJlcGVh
dENvdW50LCBlZmZlY3RpdmVGcm9tLnkoKSwgdG9Qb2ludExpc3RbaV0ueSgpLCBlZmZlY3RpdmVU
b0F0RW5kLnkoKSwgYW5pbWF0ZWRZKTsKLSAgICAgICAgYW5pbWF0ZWRQb2ludExpc3RbaV0gPSBG
bG9hdFBvaW50KGFuaW1hdGVkWCwgYW5pbWF0ZWRZKTsKKyAgICAgICAgZmxvYXQgYW5pbWF0ZWRY
ID0gYW5pbWF0ZWRQb2ludExpc3QuYXRSZWZlcmVuY2UoaSkueCgpOworICAgICAgICBmbG9hdCBh
bmltYXRlZFkgPSBhbmltYXRlZFBvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCk7CisgICAgICAg
IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2UsIHJl
cGVhdENvdW50LCBlZmZlY3RpdmVGcm9tLngoKSwgdG9Qb2ludExpc3QuYXRSZWZlcmVuY2UoaSku
eCgpLCBlZmZlY3RpdmVUb0F0RW5kLngoKSwgYW5pbWF0ZWRYKTsKKyAgICAgICAgbV9hbmltYXRp
b25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGVmZmVjdGl2ZUZyb20ueSgpLCB0b1BvaW50TGlzdC5hdFJlZmVyZW5jZShpKS55KCksIGVmZmVj
dGl2ZVRvQXRFbmQueSgpLCBhbmltYXRlZFkpOworICAgICAgICBhbmltYXRlZFBvaW50TGlzdC5h
dFJlZmVyZW5jZShpKSA9IEZsb2F0UG9pbnQoYW5pbWF0ZWRYLCBhbmltYXRlZFkpOwogICAgIH0K
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdC5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw4ICs4MSw4IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OmEKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQVNTRVJUKGZyb21UcmFuc2Zvcm1MaXN0U2l6ZSA9PSAxKTsKLSAgICBjb25zdCBhdXRv
JiBmcm9tVHJhbnNmb3JtID0gZnJvbVRyYW5zZm9ybUxpc3RbMF07Ci0gICAgYXV0byYgdG9UcmFu
c2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3RbMF07CisgICAgY29uc3QgYXV0byYgZnJvbVRyYW5zZm9y
bSA9IGZyb21UcmFuc2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCk7CisgICAgYXV0byYgdG9UcmFu
c2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QuZmlyc3RSZWZlcmVuY2UoKTsKIAogICAgIEFTU0VSVChm
cm9tVHJhbnNmb3JtLnR5cGUoKSA9PSB0b1RyYW5zZm9ybS50eXBlKCkpOwogICAgIHRvVHJhbnNm
b3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoZnJvbVRyYW5zZm9y
bSwgdG9UcmFuc2Zvcm0pOwpAQCAtMTA5LDE0ICsxMDksMTQgQEAgdm9pZCBTVkdBbmltYXRlZFRy
YW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xl
YXIoKTsKIAogICAgIGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxp
c3Quc2l6ZSgpOwotICAgIGNvbnN0IGF1dG8mIHRvVHJhbnNmb3JtID0gdG9UcmFuc2Zvcm1MaXN0
WzBdOwotICAgIGNvbnN0IGF1dG8gZWZmZWN0aXZlRnJvbSA9IGZyb21UcmFuc2Zvcm1MaXN0U2l6
ZSA/IGZyb21UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9UcmFuc2Zvcm0u
dHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9ybSk7CisgICAg
Y29uc3QgYXV0byYgdG9UcmFuc2Zvcm0gPSB0b1RyYW5zZm9ybUxpc3QuZmlyc3RSZWZlcmVuY2Uo
KTsKKyAgICBjb25zdCBhdXRvIGVmZmVjdGl2ZUZyb20gPSBmcm9tVHJhbnNmb3JtTGlzdFNpemUg
PyBmcm9tVHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUo
dG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5z
Zm9ybSk7CiAgICAgYXV0byBjdXJyZW50VHJhbnNmb3JtID0gU1ZHVHJhbnNmb3JtRGlzdGFuY2Uo
ZWZmZWN0aXZlRnJvbSwgdG9UcmFuc2Zvcm0pLnNjYWxlZERpc3RhbmNlKHBlcmNlbnRhZ2UpLmFk
ZFRvU1ZHVHJhbnNmb3JtKGVmZmVjdGl2ZUZyb20pOwogICAgIGlmIChtX2FuaW1hdGlvbkVsZW1l
bnQtPmlzQWNjdW11bGF0ZWQoKSAmJiByZXBlYXRDb3VudCkgewotICAgICAgICBjb25zdCBhdXRv
IGVmZmVjdGl2ZVRvQXRFbmQgPSB0b0F0RW5kT2ZEdXJhdGlvblRyYW5zZm9ybUxpc3Quc2l6ZSgp
ID8gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0WzBdIDogU1ZHVHJhbnNmb3JtVmFsdWUo
dG9UcmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5z
Zm9ybSk7Ci0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVHJhbnNmb3Jt
RGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9ybXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9B
dEVuZCwgcmVwZWF0Q291bnQpKTsKKyAgICAgICAgY29uc3QgYXV0byBlZmZlY3RpdmVUb0F0RW5k
ID0gdG9BdEVuZE9mRHVyYXRpb25UcmFuc2Zvcm1MaXN0LnNpemUoKSA/IHRvQXRFbmRPZkR1cmF0
aW9uVHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgpIDogU1ZHVHJhbnNmb3JtVmFsdWUodG9U
cmFuc2Zvcm0udHlwZSgpLCBTVkdUcmFuc2Zvcm1WYWx1ZTo6Q29uc3RydWN0WmVyb1RyYW5zZm9y
bSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0
ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oU1ZHVHJhbnNmb3JtRGlzdGFuY2U6OmFkZFNWR1RyYW5zZm9y
bXMoY3VycmVudFRyYW5zZm9ybSwgZWZmZWN0aXZlVG9BdEVuZCwgcmVwZWF0Q291bnQpKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoY3VycmVudFRy
YW5zZm9ybSk7CisgICAgICAgIGFuaW1hdGVkVHJhbnNmb3JtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4oY3VycmVudFRyYW5zZm9ybSkpOwogfQogCiBmbG9h
dCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQpAQCAtMTM1LDEz
ICsxMzUsMTMgQEAgZmxvYXQgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3I6OgogICAg
ICAgICByZXR1cm4gLTE7CiAKICAgICBBU1NFUlQoaXRlbXNDb3VudCA9PSAxKTsKLSAgICBpZiAo
ZnJvbVRyYW5zZm9ybUxpc3RbMF0udHlwZSgpICE9IHRvVHJhbnNmb3JtTGlzdFswXS50eXBlKCkp
CisgICAgaWYgKGZyb21UcmFuc2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCkudHlwZSgpICE9IHRv
VHJhbnNmb3JtTGlzdC5maXJzdFJlZmVyZW5jZSgpLnR5cGUoKSkKICAgICAgICAgcmV0dXJuIC0x
OwogCiAgICAgLy8gU3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL2FuaW1hdGUuaHRtbCNj
b21wbGV4RGlzdGFuY2VzCiAgICAgLy8gUGFjZWQgYW5pbWF0aW9ucyBhc3N1bWUgYSBub3Rpb24g
b2YgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmFyaW91cyBhbmltYXRpb24gdmFsdWVzIGRlZmluZWQg
YnkgdGhlIOKAmHRv4oCZLCDigJhmcm9t4oCZLCDigJhieeKAmSBhbmQg4oCYdmFsdWVz4oCZIGF0
dHJpYnV0ZXMuCiAgICAgLy8gRGlzdGFuY2UgaXMgZGVmaW5lZCBvbmx5IGZvciBzY2FsYXIgdHlw
ZXMgKHN1Y2ggYXMgPGxlbmd0aD4pLCBjb2xvcnMgYW5kIHRoZSBzdWJzZXQgb2YgdHJhbnNmb3Jt
YXRpb24gdHlwZXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IOKAmGFuaW1hdGVUcmFuc2Zvcm3igJku
Ci0gICAgcmV0dXJuIFNWR1RyYW5zZm9ybURpc3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0WzBdLCB0
b1RyYW5zZm9ybUxpc3RbMF0pLmRpc3RhbmNlKCk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybURp
c3RhbmNlKGZyb21UcmFuc2Zvcm1MaXN0LmZpcnN0UmVmZXJlbmNlKCksIHRvVHJhbnNmb3JtTGlz
dC5maXJzdFJlZmVyZW5jZSgpKS5kaXN0YW5jZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkVHlwZS5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTVkdBbmltYXRlZFR5cGUgewotICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgorc3RydWN0IFNWR0FuaW1hdGVkVHlwZSB7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoKQogICAgIHsKQEAgLTM0LDE1ICszMiwx
NCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBl
PgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVhdGUoY29u
c3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNW
R0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5VHlwZSYmIHZhbHVlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9wZXJ0eSk7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2
YWx1ZSkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY3JlYXRlKFByb3BlcnR5
VHlwZSYmIHByb3BlcnR5KQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92
ZSh2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZTEs
IHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+CkBAIC01Miw4NiArNDksMTAzIEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGUyPgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBj
cmVhdGUoY29uc3Qgc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiBwcm9w
ZXJ0aWVzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjcmVh
dGUoc3RkOjpwYWlyPFByb3BlcnR5VHlwZTEsIFByb3BlcnR5VHlwZTI+JiYgdmFsdWVzKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBlPihwcm9w
ZXJ0aWVzKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRUeXBl
PihXVEZNb3ZlKHZhbHVlcykpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3Bl
cnR5VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IGNyZWF0ZShzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSwgUHJv
cGVydHlUeXBlMj4mJiBwcm9wZXJ0aWVzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBjcmVhdGUoUmVmUHRyPFNWR1ZhbHVlPiYmIHZhbHVlMSwgUmVmUHRyPFNW
R1ZhbHVlPiYmIHZhbHVlMikKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZShwcm9wZXJ0aWVzKSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkVHlwZT4oV1RGTW92ZSh2YWx1ZTEpLCBXVEZNb3Zl
KHZhbHVlMikpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
LSAgICBTVkdBbmltYXRlZFR5cGUoY29uc3QgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKLSAgICAg
ICAgOiBtX3ZhbHVlKHN0ZDo6bWFrZV91bmlxdWU8UHJvcGVydHlUeXBlPihwcm9wZXJ0eSkucmVs
ZWFzZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShQcm9wZXJ0eVR5cGUmJiB2YWx1ZSkKKyAgICAg
ICAgOiBmaXJzdChTVkdWYWx1ZTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKICAgICB7CisgICAg
ICAgIEFTU0VSVCh0eXBlKCkgIT0gQW5pbWF0ZWRVbmtub3duKTsKICAgICB9CiAKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKFByb3BlcnR5
VHlwZSYmIHByb3BlcnR5KQotICAgICAgICA6IG1fdmFsdWUoc3RkOjptYWtlX3VuaXF1ZTxQcm9w
ZXJ0eVR5cGU+KFdURk1vdmUocHJvcGVydHkpKS5yZWxlYXNlKCkpCisgICAgU1ZHQW5pbWF0ZWRU
eXBlKFJlZlB0cjxTVkdWYWx1ZT4mJiB2YWx1ZSkKKyAgICAgICAgOiBmaXJzdChXVEZNb3ZlKHZh
bHVlKSkKICAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlKCkgIT0gQW5pbWF0ZWRVbmtub3duKTsK
ICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBlbmFtZSBQ
cm9wZXJ0eVR5cGUyPgotICAgIFNWR0FuaW1hdGVkVHlwZShjb25zdCBzdGQ6OnBhaXI8UHJvcGVy
dHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mIHByb3BlcnRpZXMpCi0gICAgICAgIDogbV92YWx1ZShz
dGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPj4o
cHJvcGVydGllcykucmVsZWFzZSgpKQorICAgIFNWR0FuaW1hdGVkVHlwZShzdGQ6OnBhaXI8UHJv
cGVydHlUeXBlMSwgUHJvcGVydHlUeXBlMj4mJiB2YWx1ZXMpCisgICAgICAgIDogZmlyc3QoU1ZH
VmFsdWU6OmNyZWF0ZSh2YWx1ZXMuZmlyc3QpKQorICAgICAgICAsIHNlY29uZChTVkdWYWx1ZTo6
Y3JlYXRlKHZhbHVlcy5zZWNvbmQpKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBB
bmltYXRlZFVua25vd24pOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5
VHlwZTEsIHR5cGVuYW1lIFByb3BlcnR5VHlwZTI+Ci0gICAgU1ZHQW5pbWF0ZWRUeXBlKHN0ZDo6
cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9wZXJ0eVR5cGUyPiYmIHByb3BlcnRpZXMpCi0gICAgICAg
IDogbV92YWx1ZShzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxLCBQcm9w
ZXJ0eVR5cGUyPj4oV1RGTW92ZShwcm9wZXJ0aWVzKSkucmVsZWFzZSgpKQorICAgIFNWR0FuaW1h
dGVkVHlwZShSZWZQdHI8U1ZHVmFsdWU+JiYgdmFsdWUxLCBSZWZQdHI8U1ZHVmFsdWU+JiYgdmFs
dWUyKQorICAgICAgICA6IGZpcnN0KFdURk1vdmUodmFsdWUxKSkKKyAgICAgICAgLCBzZWNvbmQo
V1RGTW92ZSh2YWx1ZTIpKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSAhPSBBbmltYXRl
ZFVua25vd24pOwogICAgIH0KIAotICAgIH5TVkdBbmltYXRlZFR5cGUoKQorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFzKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIFdURjo6dmlzaXQoW10oYXV0byYgdmFsdWUpIHsKLSAgICAgICAg
ICAgIGRlbGV0ZSB2YWx1ZTsKLSAgICAgICAgfSwgbV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChm
aXJzdCAmJiAhc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+
KCk7CiAgICAgfQogCi0gICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBjb25z
dCBQcm9wZXJ0eVR5cGUmIGFzKCkgY29uc3QKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+CisgICAgUHJvcGVydHlUeXBlJiBhcygpCiAgICAgewotICAgICAgICBBU1NFUlQoV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxQcm9wZXJ0eVR5cGUqPihtX3ZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybiAqV1RGOjpnZXQ8UHJvcGVydHlUeXBlKj4obV92YWx1ZSk7CisgICAgICAgIEFTU0VSVChm
aXJzdCAmJiAhc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGZpcnN0LT5hczxQcm9wZXJ0eVR5cGU+
KCk7CiAgICAgfQogCi0gICAgdGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5VHlwZT4KLSAgICBQcm9w
ZXJ0eVR5cGUmIGFzKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGUxLCB0eXBl
bmFtZSBQcm9wZXJ0eVR5cGUyPgorICAgIGNvbnN0IHN0ZDo6cGFpcjxQcm9wZXJ0eVR5cGUxJiwg
UHJvcGVydHlUeXBlMiY+IGFzKCkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChXVEY6Omhv
bGRzX2FsdGVybmF0aXZlPFByb3BlcnR5VHlwZSo+KG1fdmFsdWUpKTsKLSAgICAgICAgcmV0dXJu
ICpXVEY6OmdldDxQcm9wZXJ0eVR5cGUqPihtX3ZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGZpcnN0
ICYmIHNlY29uZCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihmaXJzdC0+YXM8UHJv
cGVydHlUeXBlMT4oKSwgc2Vjb25kLT5hczxQcm9wZXJ0eVR5cGUyPigpKTsKKyAgICB9CisgICAg
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlMSwgdHlwZW5hbWUgUHJvcGVydHlU
eXBlMj4KKyAgICBzdGQ6OnBhaXI8UHJvcGVydHlUeXBlMSYsIFByb3BlcnR5VHlwZTImPiBhcygp
CisgICAgeworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgc2Vjb25kKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKHN0ZDo6cmVmKGZpcnN0LT5hczxQcm9wZXJ0eVR5cGUxPigpKSwgc3Rk
OjpyZWYoc2Vjb25kLT5hczxQcm9wZXJ0eVR5cGUyPigpKSk7CiAgICAgfQogCiAgICAgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgdHlwZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1
ZS5pbmRleCgpID49IEFuaW1hdGVkUHJvcGVydHlUeXBlTWluICYmIG1fdmFsdWUuaW5kZXgoKSA8
IEFuaW1hdGVkUHJvcGVydHlUeXBlTWF4KTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFu
aW1hdGVkUHJvcGVydHlUeXBlPihtX3ZhbHVlLmluZGV4KCkpOworICAgICAgICBBU1NFUlQoZmly
c3QpOworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFR5cGUxID0gdmFsdWVB
bmltYXRlZFR5cGUoKmZpcnN0KTsKKyAgICAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0
ZWRUeXBlMiA9IHNlY29uZCA/IHZhbHVlQW5pbWF0ZWRUeXBlKCpzZWNvbmQpIDogQW5pbWF0ZWRV
bmtub3duOworCisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkQW5nbGUpIHsK
KyAgICAgICAgICAgIEFTU0VSVChhbmltYXRlZFR5cGUyID09IEFuaW1hdGVkRW51bWVyYXRpb24p
OworICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQW5nbGU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoYW5pbWF0ZWRUeXBlMSA9PSBBbmltYXRlZEludGVnZXIgJiYgYW5pbWF0ZWRUeXBlMiA9
PSBBbmltYXRlZEludGVnZXIpCisgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyT3B0
aW9uYWxJbnRlZ2VyOworCisgICAgICAgIGlmIChhbmltYXRlZFR5cGUxID09IEFuaW1hdGVkTnVt
YmVyICYmIGFuaW1hdGVkVHlwZTIgPT0gQW5pbWF0ZWROdW1iZXIpCisgICAgICAgICAgICByZXR1
cm4gQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlcjsKKworICAgICAgICBBU1NFUlQoYW5pbWF0
ZWRUeXBlMiA9PSBBbmltYXRlZFVua25vd24pOworICAgICAgICByZXR1cm4gYW5pbWF0ZWRUeXBl
MTsKICAgICB9CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gV1RGOjp2aXNpdChbXShhdXRvJiB2YWx1ZSkgewotICAgICAgICAgICAgdXNp
bmcgUHJvcGVydHlUeXBlID0gc3RkOjpkZWNheV90PGRlY2x0eXBlKCp2YWx1ZSk+OwotICAgICAg
ICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCp2
YWx1ZSk7Ci0gICAgICAgIH0sIG1fdmFsdWUpOworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgIXNl
Y29uZCk7CisgICAgICAgIHJldHVybiBmaXJzdC0+dG9TdHJpbmcoKTsKICAgICB9CiAKICAgICBi
b29sIHNldFZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGF1
dG8mIHZhbHVlKSB7Ci0gICAgICAgICAgICB1c2luZyBQcm9wZXJ0eVR5cGUgPSBzdGQ6OmRlY2F5
X3Q8ZGVjbHR5cGUoKnZhbHVlKT47Ci0gICAgICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBTVkdQ
cm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpwYXJzZShhdHRyTmFtZSwgc3RyaW5nKSkgewot
ICAgICAgICAgICAgICAgICp2YWx1ZSA9ICpyZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IH0sIG1fdmFsdWUpOworICAgICAgICBBU1NFUlQoZmlyc3QgJiYgIXNlY29uZCk7CisgICAgICAg
IHJldHVybiBmaXJzdC0+cGFyc2UoYXR0ck5hbWUsIHN0cmluZyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNBbmltVmFsKEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUpCkBAIC0x
NDAsOCArMTU0LDQ3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHR5cGUgIT0gQW5pbWF0ZWRV
bmtub3duICYmIHR5cGUgIT0gQW5pbWF0ZWRDb2xvcjsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAg
U1ZHVmFsdWVWYXJpYW50IG1fdmFsdWU7CisgICAgc3RhdGljIEFuaW1hdGVkUHJvcGVydHlUeXBl
IHZhbHVlQW5pbWF0ZWRUeXBlKGNvbnN0IFNWR1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBXVEY6OnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoCisgICAgICAgICAgICBbXShjb25z
dCBTVkdBbmdsZVZhbHVlJikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZEFuZ2xl
OworICAgICAgICAgICAgfSwgW10oY29uc3QgYm9vbCYpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQW5pbWF0ZWRCb29sZWFuOworICAgICAgICAgICAgfSwgW10oY29uc3QgQ29sb3ImKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkQ29sb3I7CisgICAgICAgICAgICB9LCBbXShj
b25zdCB1bnNpZ25lZCYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRFbnVtZXJh
dGlvbjsKKyAgICAgICAgICAgIH0sIFtdKGNvbnN0IGludCYpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQW5pbWF0ZWRJbnRlZ2VyOworICAgICAgICAgICAgfSwgW10oY29uc3QgU1ZHTGVuZ3Ro
VmFsdWUmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkTGVuZ3RoOworICAgICAg
ICAgICAgfSwgW10oY29uc3QgU1ZHTGVuZ3RoTGlzdFZhbHVlcyYpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gQW5pbWF0ZWRMZW5ndGhMaXN0OworICAgICAgICAgICAgfSwgW10oY29uc3QgZmxv
YXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWROdW1iZXI7CisgICAgICAgICAg
ICB9LCBbXShjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJikgeworICAgICAgICAgICAgICAgIHJl
dHVybiBBbmltYXRlZE51bWJlckxpc3Q7CisgICAgICAgICAgICB9LCBbXShjb25zdCBTVkdQYXRo
Qnl0ZVN0cmVhbSYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRQYXRoOworICAg
ICAgICAgICAgfSwgW10oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJikgeworICAg
ICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgICAg
ICAgICB9LCBbXShjb25zdCBTVkdQb2ludExpc3RWYWx1ZXMmKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEFuaW1hdGVkUG9pbnRzOworICAgICAgICAgICAgfSwgW10oY29uc3QgRmxvYXRSZWN0
JikgeworICAgICAgICAgICAgICAgIHJldHVybiBBbmltYXRlZFJlY3Q7CisgICAgICAgICAgICB9
LCBbXShjb25zdCBTdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGVkU3Ry
aW5nOworICAgICAgICAgICAgfSwgW10oY29uc3QgU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcyYpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0OworICAgICAgICAg
ICAgfSwgW10oY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0ZWRV
bmtub3duOworICAgICAgICAgICAgfQorICAgICAgICApLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdW
YWx1ZVZhcmlhbnQmPih2YWx1ZSkpOworICAgIH0KKworICAgIFJlZlB0cjxTVkdWYWx1ZT4gZmly
c3Q7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBzZWNvbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDEwICs2OSw5IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgQVNTRVJUKGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVzLnNpemUo
KSA9PSAxKTsKICAgICAgICAgY29uc3QgYXV0byogYW5pbWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmlt
YXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlPihhbmltYXRlZFByb3BlcnRpZXNb
MF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAKLSAgICAgICAgYXV0byBhbmltYXRlZFR5cGUgPSBT
VkdBbmltYXRlZFR5cGU6OmNyZWF0ZShhbmltYXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVl
KCkpOwotICAgICAgICBhdXRvJiBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRUeXBlLT50ZW1wbGF0
ZSBhczx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KCk7Ci0gICAgICAgIGV4ZWN1
dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3Bl
cnRpZXMsIDAsICZhbmltYXRlZFZhbHVlKTsKLSAgICAgICAgcmV0dXJuIGFuaW1hdGVkVHlwZTsK
KyAgICAgICAgYXV0byBhbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqYW5pbWF0ZWRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxBbmlt
VmFsVHlwZT4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVkUHJvcGVydGllcywgMCwgYW5p
bWF0ZWRWYWx1ZSk7CisgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShXVEZN
b3ZlKGFuaW1hdGVkVmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmlt
VmFsVHlwZT4KQEAgLTgzLDkgKzgyLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgYXV0byogYW5p
bWF0ZWRQcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxU
eXBlPihhbmltYXRlZFByb3BlcnRpZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CiAgICAgICAg
IGFuaW1hdGVkUHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogCi0gICAg
ICAgIGF1dG8mIGFuaW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8dHlwZW5hbWUgQW5pbVZh
bFR5cGU6OkNvbnRlbnRUeXBlPigpOwotICAgICAgICBhbmltYXRlZFZhbHVlID0gYW5pbWF0ZWRQ
cm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwotICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1W
YWxUeXBlPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAwLCAmYW5p
bWF0ZWRWYWx1ZSk7CisgICAgICAgIGNvbnN0IGF1dG8mIGJhc2VWYWx1ZSA9IGFuaW1hdGVkUHJv
cGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKyAgICAgICAgYXV0byYgYW5pbWF0ZWRWYWx1ZSA9
IGFuaW1hdGVkVHlwZS5maXJzdDsKKyAgICAgICAgYW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8
dHlwZW5hbWUgQW5pbVZhbFR5cGU6OkNvbnRlbnRUeXBlPigpID0gYmFzZVZhbHVlLT50ZW1wbGF0
ZSBhczx0eXBlbmFtZSBBbmltVmFsVHlwZTo6Q29udGVudFR5cGU+KCk7CisgICAgICAgIGV4ZWN1
dGVBY3Rpb248QW5pbVZhbFR5cGU+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3Bl
cnRpZXMsIDAsIGFuaW1hdGVkVmFsdWUpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEFuaW1WYWxUeXBlPgpAQCAtMTE3LDExICsxMTcsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBj
b25zdCBhdXRvKiBmaXJzdEFuaW1hdGVkUHJvcGVydHkgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRv
QWN0dWFsVHlwZTxBbmltVmFsVHlwZTE+KGFuaW1hdGVkUHJvcGVydGllc1swXS5wcm9wZXJ0aWVz
WzBdLmdldCgpKTsKICAgICAgICAgY29uc3QgYXV0byogc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eSA9
IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPEFuaW1WYWxUeXBlMj4oYW5pbWF0ZWRQ
cm9wZXJ0aWVzWzBdLnByb3BlcnRpZXNbMV0uZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gYW5pbWF0
ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoc3RkOjptYWtlX3BhaXIoZmlyc3RBbmlt
YXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCksIHNlY29uZEFuaW1hdGVkUHJvcGVydHkt
PmN1cnJlbnRCYXNlVmFsdWUoKSkpOwotICAgICAgICBhdXRvJiBBbmltYXRlZFZhbHVlID0gYW5p
bWF0ZWRUeXBlLT50ZW1wbGF0ZSBhczxzdGQ6OnBhaXI8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpD
b250ZW50VHlwZSwgdHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4+KCk7Ci0gICAg
ICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUxPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5p
bWF0ZWRQcm9wZXJ0aWVzLCAwLCAmQW5pbWF0ZWRWYWx1ZS5maXJzdCk7Ci0gICAgICAgIGV4ZWN1
dGVBY3Rpb248QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9w
ZXJ0aWVzLCAxLCAmQW5pbWF0ZWRWYWx1ZS5zZWNvbmQpOwotICAgICAgICByZXR1cm4gYW5pbWF0
ZWRUeXBlOworICAgICAgICBhdXRvIGZpcnN0QW5pbWF0ZWRWYWx1ZSA9IFNWR1ZhbHVlOjpjcmVh
dGUoKmZpcnN0QW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAg
YXV0byBzZWNvbmRBbmltYXRlZFZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqc2Vjb25kQW5pbWF0
ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgZXhlY3V0ZUFjdGlvbjxB
bmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFByb3BlcnRpZXMsIDAs
IGZpcnN0QW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248QW5pbVZhbFR5cGUy
PihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAxLCBzZWNvbmRBbmlt
YXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFdURk1v
dmUoZmlyc3RBbmltYXRlZFZhbHVlKSwgV1RGTW92ZShzZWNvbmRBbmltYXRlZFZhbHVlKSk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQW5pbVZhbFR5cGUxLCB0eXBlbmFtZSBBbmlt
VmFsVHlwZTI+CkBAIC0xMzQsMTEgKzEzNCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGZpcnN0
QW5pbWF0ZWRQcm9wZXJ0eS0+c3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCk7CiAgICAgICAg
IHNlY29uZEFuaW1hdGVkUHJvcGVydHktPnN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwog
Ci0gICAgICAgIGF1dG8mIGFuaW1hdGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuYXM8c3RkOjpwYWly
PHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGUsIHR5cGVuYW1lIEFuaW1WYWxUeXBl
Mjo6Q29udGVudFR5cGU+PigpOwotICAgICAgICBhbmltYXRlZFZhbHVlLmZpcnN0ID0gZmlyc3RB
bmltYXRlZFByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgICAgIGFuaW1hdGVkVmFs
dWUuc2Vjb25kID0gc2Vjb25kQW5pbWF0ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOwot
ICAgICAgICBleGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMT4oU3RhcnRBbmltYXRpb25BY3Rpb24s
IGFuaW1hdGVkUHJvcGVydGllcywgMCwgJmFuaW1hdGVkVmFsdWUuZmlyc3QpOwotICAgICAgICBl
eGVjdXRlQWN0aW9uPEFuaW1WYWxUeXBlMj4oU3RhcnRBbmltYXRpb25BY3Rpb24sIGFuaW1hdGVk
UHJvcGVydGllcywgMSwgJmFuaW1hdGVkVmFsdWUuc2Vjb25kKTsKKyAgICAgICAgY29uc3QgYXV0
byYgZmlyc3RCYXNlVmFsdWUgPSBmaXJzdEFuaW1hdGVkUHJvcGVydHktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKKyAgICAgICAgY29uc3QgYXV0byYgc2Vjb25kQmFzZVZhbHVlID0gc2Vjb25kQW5pbWF0
ZWRQcm9wZXJ0eS0+Y3VycmVudEJhc2VWYWx1ZSgpOworICAgICAgICBhdXRvJiBmaXJzdEFuaW1h
dGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuZmlyc3Q7CisgICAgICAgIGF1dG8mIHNlY29uZEFuaW1h
dGVkVmFsdWUgPSBhbmltYXRlZFR5cGUuc2Vjb25kOworICAgICAgICBmaXJzdEFuaW1hdGVkVmFs
dWUtPnRlbXBsYXRlIGFzPHR5cGVuYW1lIEFuaW1WYWxUeXBlMTo6Q29udGVudFR5cGU+KCkgPSBm
aXJzdEJhc2VWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUxOjpDb250ZW50
VHlwZT4oKTsKKyAgICAgICAgc2Vjb25kQW5pbWF0ZWRWYWx1ZS0+dGVtcGxhdGUgYXM8dHlwZW5h
bWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4oKSA9IHNlY29uZEJhc2VWYWx1ZS0+dGVtcGxh
dGUgYXM8dHlwZW5hbWUgQW5pbVZhbFR5cGUyOjpDb250ZW50VHlwZT4oKTsKKyAgICAgICAgZXhl
Y3V0ZUFjdGlvbjxBbmltVmFsVHlwZTE+KFN0YXJ0QW5pbWF0aW9uQWN0aW9uLCBhbmltYXRlZFBy
b3BlcnRpZXMsIDAsIGZpcnN0QW5pbWF0ZWRWYWx1ZSk7CisgICAgICAgIGV4ZWN1dGVBY3Rpb248
QW5pbVZhbFR5cGUyPihTdGFydEFuaW1hdGlvbkFjdGlvbiwgYW5pbWF0ZWRQcm9wZXJ0aWVzLCAx
LCBzZWNvbmRBbmltYXRlZFZhbHVlKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBB
bmltVmFsVHlwZTEsIHR5cGVuYW1lIEFuaW1WYWxUeXBlMj4KQEAgLTE5MSw3ICsxOTQsNyBAQCBw
cml2YXRlOgogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltVmFsVHlwZT4KLSAg
ICB2b2lkIGV4ZWN1dGVBY3Rpb24oQW5pbWF0aW9uQWN0aW9uIGFjdGlvbiwgY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFByb3BlcnRpZXMsIHVuc2lnbmVkIHdo
aWNoUHJvcGVydHksIHR5cGVuYW1lIEFuaW1WYWxUeXBlOjpDb250ZW50VHlwZSogYW5pbWF0ZWRW
YWx1ZSA9IG51bGxwdHIpCisgICAgdm9pZCBleGVjdXRlQWN0aW9uKEFuaW1hdGlvbkFjdGlvbiBh
Y3Rpb24sIGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRQcm9w
ZXJ0aWVzLCB1bnNpZ25lZCB3aGljaFByb3BlcnR5LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiBh
bmltYXRlZFZhbHVlID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBDYW4ndCB1
c2UgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJlY2F1c2Ugb2YgY2lyY3VsYXIg
aGVhZGVyIGRlcGVuZGVuY3kuIFdvdWxkIGJlIG5pY2UgdG8gdW50YW5nbGUgdGhpcy4KICAgICAg
ICAgc2V0SW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgqYW5pbWF0ZWRQcm9wZXJ0aWVzWzBdLmVsZW1l
bnQsIHRydWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5o
CShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7Ci1jbGFzcyBTVkdBbmltYXRlZFR5
cGU7CitzdHJ1Y3QgU1ZHQW5pbWF0ZWRUeXBlOwogY2xhc3MgVGltZUNvbnRhaW5lcjsKIAogZW51
bSBBbmltYXRpb25Nb2RlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjg0LDggKzI4NCw4IEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29udm9sdmVNYXRy
aXgKICAgICBpZiAoaGFzQXR0cmlidXRlKFNWR05hbWVzOjpkaXZpc29yQXR0cikgJiYgIWRpdmlz
b3JWYWx1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUo
U1ZHTmFtZXM6OmRpdmlzb3JBdHRyKSkgewotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGtl
cm5lbE1hdHJpeFNpemU7ICsraSkKLSAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSArPSBrZXJuZWxN
YXRyaXguYXQoaSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFsdWUgOiBrZXJuZWxNYXRy
aXgpCisgICAgICAgICAgICBkaXZpc29yVmFsdWUgKz0gdmFsdWUtPmFzPGZsb2F0PigpOwogICAg
ICAgICBpZiAoIWRpdmlzb3JWYWx1ZSkKICAgICAgICAgICAgIGRpdmlzb3JWYWx1ZSA9IDE7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkocmV2aXNp
b24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NywxMCArNjcsMTAgQEAgaW5saW5lIFNWR0ZpbHRlckVsZW1lbnQ6
OlNWR0ZpbHRlckVsZW1lbgogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAg
ICAsIG1fZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5E
SU5HQk9YKQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZ
UEVfVVNFUlNQQUNFT05VU0UpCi0gICAgLCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0g
ICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhN
b2RlV2lkdGgsICIxMjAlIikKLSAgICAsIG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAl
IikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisg
ICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAs
IG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwg
bV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAg
ICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZm
ZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIi0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNw
ZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBl
ZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDEwICs1NCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwog
CiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwg
bV94KExlbmd0aE1vZGVXaWR0aCwgIjAlIikKLSAgICAsIG1feShMZW5ndGhNb2RlSGVpZ2h0LCAi
MCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMDAlIikKLSAgICAsIG1faGVp
Z2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMDAlIikKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgsICIwJSIpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1v
ZGVIZWlnaHQsICIwJSIpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
V2lkdGgsICIxMDAlIikpCisgICAgLCBtX2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
SGVpZ2h0LCAiMTAwJSIpKQogewogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUg
c3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2Vy
ZSBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1Niwx
MCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0dyYXBoaWNzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBt
X3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVuZ3RoTW9kZVdpZHRoKQotICAg
ICwgbV9oZWlnaHQoTGVuZ3RoTW9kZUhlaWdodCkKKyAgICAsIG1feChTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95KFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVIZWln
aHQpKQorICAgICwgbV93aWR0aChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAg
ICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkpCiB7CiAgICAgQVNT
RVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKTsKICAgICByZWdpc3Rl
ckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDEwICs1OCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxp
bmUgU1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQotICAgICwgbV94KExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1feShM
ZW5ndGhNb2RlSGVpZ2h0KQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBt
X2hlaWdodChMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94KFNWR0xlbmd0aFZhbHVlKExlbmd0
aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdodCkp
CisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBt
X2hlaWdodChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKICAgICAsIG1faW1hZ2VM
b2FkZXIoKnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdJbWFn
ZUVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDIzMDY0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19MRU5HVEhUWVBFX1BDID0gTGVuZ3RoVHlw
ZVBDCiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoPiBjcmVhdGUoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xl
bmd0aFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR0Fu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0xlbmd0aChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAg
IH0KQEAgLTY2LDEyICs2NiwxMiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzaG9ydCB1bml0
VHlwZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS51bml0VHlw
ZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS51bml0VHlwZSgpOwogICAgIH0K
IAogICAgIEV4Y2VwdGlvbk9yPGZsb2F0PiB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVy
ZW5jZSgpLnZhbHVlRm9yQmluZGluZ3MoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50
KCkgfSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVGb3JCaW5kaW5n
cyhmbG9hdCB2YWx1ZSkKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLnNldFZhbHVlKHZhbHVlLCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
KTsKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlKHZhbHVl
LCBTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
IApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgZmxvYXQgdmFsdWVJblNwZWNp
ZmllZFVuaXRzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZh
bHVlSW5TcGVjaWZpZWRVbml0cygpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS52
YWx1ZUluU3BlY2lmaWVkVW5pdHMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUluU3BlY2lmaWVkVW5pdHMoZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFZhbHVlSW5TcGVjaWZpZWRVbml0cyh2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFZhbHVlSW5T
cGVjaWZpZWRVbml0cyh2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwogICAgICAgICBjb21taXRDaGFu
Z2UoKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDUsNyArMTA1LDcgQEAg
cHVibGljOgogICAgIAogICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnZhbHVlQXNTdHJpbmcoKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlUmVmZXJlbmNlKCkudmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTEx
Myw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VmFsdWVBc1N0cmlu
Zyh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRWYWx1
ZUFzU3RyaW5nKHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVz
dWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuaXRUeXBl
LCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVm
ZXJlbmNlKCkubmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgdmFsdWVJblNwZWNpZmll
ZFVuaXRzKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIApAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJv
cGVydHlSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
dmFsdWVSZWZlcmVuY2UoKS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bml0VHlwZSwgU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE0
OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0xlbmd0aChT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlKQorICAgIFNWR0xlbmd0aChTVkdBbmltYXRlZFByb3Bl
cnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0
aFZhbHVlPigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMg
KzM2LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYg
PSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdFZhbHVlcz47CiAg
ICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6
TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRl
KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoQW5pbWF0
ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3
cmFwcGVycykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExp
c3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBTVkdMZW5ndGhMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYg
YW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR0xlbmd0aExpc3RWYWx1
ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgU1ZHTGVuZ3RoTGlz
dChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVu
Z3RoTGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykK
ICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0VmFs
dWVzLmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aExpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU1ZH
TGVuZ3RoTGlzdFZhbHVlczo6cGFyc2UoY29uc3QgU3QKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgaWYgKGxlbmd0aC5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlU3RyaW5nKS5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgYXBwZW5kKGxlbmd0aCk7CisgICAg
ICAgIGFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR0xlbmd0aFZhbHVlPihsZW5ndGgpKTsKICAg
ICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzT3JEZWxpbWl0ZXIocHRyLCBlbmQpOwogICAgIH0K
IH0KQEAgLTYwLDcgKzYwLDcgQEAgU3RyaW5nIFNWR0xlbmd0aExpc3RWYWx1ZXM6OnZhbHVlQXNT
dHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0KGkpLnZhbHVlQXNTdHJpbmcoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGF0UmVmZXJlbmNlKGkpLnZhbHVlQXNTdHJpbmcoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3RWYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIxLDE0ICsyMiwxNCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdMZW5ndGhWYWx1
ZS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdWYWx1ZUxpc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdMZW5ndGg7CiBjbGFzcyBTVkdMZW5n
dGhMaXN0OwogCi1jbGFzcyBTVkdMZW5ndGhMaXN0VmFsdWVzIGZpbmFsIDogcHVibGljIFZlY3Rv
cjxTVkdMZW5ndGhWYWx1ZT4geworY2xhc3MgU1ZHTGVuZ3RoTGlzdFZhbHVlcyBmaW5hbCA6IHB1
YmxpYyBTVkdWYWx1ZUxpc3Q8U1ZHTGVuZ3RoVmFsdWU+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBh
cnNlKGNvbnN0IFN0cmluZyYgdmFsdWUsIFNWR0xlbmd0aE1vZGUpOwogICAgIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQs
NiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU0LDEwICs1NSwxMCBAQCBF
TkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQotICAgICwgbV94MShMZW5ndGhNb2RlV2lkdGgpCi0gICAgLCBtX3kx
KExlbmd0aE1vZGVIZWlnaHQpCi0gICAgLCBtX3gyKExlbmd0aE1vZGVXaWR0aCwgIjEwMCUiKQot
ICAgICwgbV95MihMZW5ndGhNb2RlSGVpZ2h0KQorICAgICwgbV94MShTVkdMZW5ndGhWYWx1ZShM
ZW5ndGhNb2RlV2lkdGgpKQorICAgICwgbV95MShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVp
Z2h0KSkKKyAgICAsIG1feDIoU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIp
KQorICAgICwgbV95MihTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKIHsKICAgICAv
LyBTcGVjOiBJZiB0aGUgeDIgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3Qg
aXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgQVNTRVJUKGhh
c1RhZ05hbWUoU1ZHTmFtZXM6OmxpbmVhckdyYWRpZW50VGFnKSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDEw
ICs3NCwxMCBAQCBFTkRfUkVHSVNURVJfQU5JTUFURURfUFJPUEVSVElFUwogCiBpbmxpbmUgU1ZH
TWFya2VyRWxlbWVudDo6U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQotICAgICwgbV9yZWZYKExlbmd0aE1vZGVXaWR0aCkKLSAgICAsIG1fcmVmWShMZW5ndGhN
b2RlSGVpZ2h0KQotICAgICwgbV9tYXJrZXJXaWR0aChMZW5ndGhNb2RlV2lkdGgsICIzIikKLSAg
ICAsIG1fbWFya2VySGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIzIikgCisgICAgLCBtX3JlZlgo
U1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZVdpZHRoKSkKKyAgICAsIG1fcmVmWShTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fbWFya2VyV2lkdGgoU1ZHTGVuZ3RoVmFs
dWUoTGVuZ3RoTW9kZVdpZHRoLCAiMyIpKQorICAgICwgbV9tYXJrZXJIZWlnaHQoU1ZHTGVuZ3Ro
VmFsdWUoTGVuZ3RoTW9kZUhlaWdodCwgIjMiKSkKICAgICAsIG1fbWFya2VyVW5pdHMoU1ZHTWFy
a2VyVW5pdHNTdHJva2VXaWR0aCkKICAgICAsIG1fb3JpZW50VHlwZShTVkdNYXJrZXJPcmllbnRB
bmdsZSkKIHsKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9y
aWVudFRvQXV0bygpCiAKIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShT
VkdBbmdsZSYgYW5nbGUpCiB7Ci0gICAgc2V0T3JpZW50KFNWR01hcmtlck9yaWVudEFuZ2xlLCBh
bmdsZS5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICBzZXRPcmllbnQoU1ZHTWFya2VyT3JpZW50
QW5nbGUsIGFuZ2xlLnZhbHVlUmVmZXJlbmNlKCkpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCkBAIC0yNDEsMTIgKzI0MSwxMiBA
QCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnN5bmNocm9uaXplT3JpZW50CiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gYXV0b1N0YXJ0UmV2ZXJzZVN0cmluZygiYXV0by1z
dGFydC1yZXZlcnNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICAvLyBJZiBvcmllbnQgaXMgbm90IGF1dG8gb3IgYXV0by1zdGFydC1yZXZlcnNlLCB0aGUgcHJl
dmlvdXMgY2FsbCB0byBzeW5jaHJvbml6ZU9yaWVudEFuZ2xlIGFscmVhZHkgc2V0IHRoZSBvcmll
bnRBdHRyIHRvIHRoZSByaWdodCBhbmdsZS4KLSAgICBpZiAob3duZXJUeXBlLm1fb3JpZW50VHlw
ZS52YWx1ZSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvKSB7CisgICAgaWYgKG93bmVyVHlwZS5tX29y
aWVudFR5cGUudmFsdWUtPmFzPFNWR01hcmtlck9yaWVudFR5cGU+KCkgPT0gU1ZHTWFya2VyT3Jp
ZW50QXV0bykgewogICAgICAgICBvd25lclR5cGUubV9vcmllbnRUeXBlLnN5bmNocm9uaXplKCZv
d25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0
cmluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAob3duZXJUeXBlLm1fb3Jp
ZW50VHlwZS52YWx1ZSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvU3RhcnRSZXZlcnNlKQorICAgIGlm
IChvd25lclR5cGUubV9vcmllbnRUeXBlLnZhbHVlLT5hczxTVkdNYXJrZXJPcmllbnRUeXBlPigp
ID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UpCiAgICAgICAgIG93bmVyVHlwZS5t
X29yaWVudFR5cGUuc3luY2hyb25pemUoJm93bmVyVHlwZSwgb3JpZW50VHlwZVByb3BlcnR5SW5m
bygpLT5hdHRyaWJ1dGVOYW1lLCBhdXRvU3RhcnRSZXZlcnNlU3RyaW5nKTsKIH0KIApAQCAtMjYy
LDExICsyNjIsMTEgQEAgU1ZHTWFya2VyT3JpZW50VHlwZSYgU1ZHTWFya2VyRWxlbWVudDo6bwog
ewogICAgIGlmIChhdXRvIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFw
cGVyPFVzZU93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4odGhpcywgb3JpZW50VHlw
ZVByb3BlcnR5SW5mbygpKSkgewogICAgICAgICBpZiAod3JhcHBlci0+aXNBbmltYXRpbmcoKSkg
ewotICAgICAgICAgICAgQVNTRVJUKHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkgPCBT
VkdNYXJrZXJPcmllbnRNYXgpOwotICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U1ZHTWFya2VyT3JpZW50VHlwZSY+KHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCkpOwor
ICAgICAgICAgICAgQVNTRVJUKHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCktPmFzPFNW
R01hcmtlck9yaWVudFR5cGU+KCkgPCBTVkdNYXJrZXJPcmllbnRNYXgpOworICAgICAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U1ZHTWFya2VyT3JpZW50VHlwZSY+KHdyYXBwZXItPmN1
cnJlbnRBbmltYXRlZFZhbHVlKCktPmFzPFNWR01hcmtlck9yaWVudFR5cGU+KCkpOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiBtX29yaWVudFR5cGUudmFsdWU7CisgICAgcmV0dXJuIG1f
b3JpZW50VHlwZS52YWx1ZS0+YXM8U1ZHTWFya2VyT3JpZW50VHlwZT4oKTsKIH0KIAogUmVmPFNW
R0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmY8U1ZHTWFya2VyT3JpZW50VHlwZT4+
IFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVBbmltYXRlZCgpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDggKzk4LDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHN5bmNocm9uaXplT3JpZW50VHlwZShTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCk7CiAgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5
PiBsb29rdXBPckNyZWF0ZU9yaWVudFR5cGVXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KTsKICAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmllbnRUeXBlKCkgY29uc3Q7Ci0gICAg
U1ZHTWFya2VyT3JpZW50VHlwZSYgb3JpZW50VHlwZUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZW50VHlwZS52YWx1ZTsgfQotICAgIHZvaWQgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShj
b25zdCBTVkdNYXJrZXJPcmllbnRUeXBlJiB0eXBlKSB7IG1fb3JpZW50VHlwZS52YWx1ZSA9IHR5
cGU7IH0KKyAgICBTVkdNYXJrZXJPcmllbnRUeXBlJiBvcmllbnRUeXBlQmFzZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9vcmllbnRUeXBlLnZhbHVlLT5hczxTVkdNYXJrZXJPcmllbnRUeXBlPigp
OyB9CisgICAgdm9pZCBzZXRPcmllbnRUeXBlQmFzZVZhbHVlKGNvbnN0IFNWR01hcmtlck9yaWVu
dFR5cGUmIHR5cGUpIHsgb3JpZW50VHlwZUJhc2VWYWx1ZSgpID0gdHlwZTsgfQogICAgIFJlZjxT
VkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPFNWR01hcmtlck9yaWVudFR5cGU+
PiBvcmllbnRUeXBlQW5pbWF0ZWQoKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJUeXBlcy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDggKzEwMyw2IEBAIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxzdGQ6OnBhaXI8U1ZHQW4KICAgICAgICAgICAgIGFuZ2xlID0g
eyB9OwogICAgICAgICByZXR1cm4gc3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVuc2lnbmVkPihh
bmdsZSwgb3JpZW50VHlwZSk7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6
cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZh
bHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gZW1w
dHlTdHJpbmcoKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MywxMCAr
NjMsMTAgQEAgaW5saW5lIFNWR01hc2tFbGVtZW50OjpTVkdNYXNrRWxlbWVudChjbwogICAgIDog
U1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fbWFza1VuaXRzKFNWR1VuaXRU
eXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkKICAgICAsIG1fbWFza0NvbnRl
bnRVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpCi0gICAg
LCBtX3goTGVuZ3RoTW9kZVdpZHRoLCAiLTEwJSIpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdo
dCwgIi0xMCUiKQotICAgICwgbV93aWR0aChMZW5ndGhNb2RlV2lkdGgsICIxMjAlIikKLSAgICAs
IG1faGVpZ2h0KExlbmd0aE1vZGVIZWlnaHQsICIxMjAlIikKKyAgICAsIG1feChTVkdMZW5ndGhW
YWx1ZShMZW5ndGhNb2RlV2lkdGgsICItMTAlIikpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZUhlaWdodCwgIi0xMCUiKSkKKyAgICAsIG1fd2lkdGgoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZVdpZHRoLCAiMTIwJSIpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUo
TGVuZ3RoTW9kZUhlaWdodCwgIjEyMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0
dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2Yg
Ii0xMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQg
YXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBv
ZiAiMTIwJSIgd2VyZSBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0
cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCShyZXZp
c2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGNsYXNzIG9uY2UgU1ZHTWF0cml4IGJlY29tZXMgYW4gYWxpYXMgdG8gRE9NTWF0
cml4LgogY2xhc3MgU1ZHTWF0cml4IDogcHVibGljIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdNYXRy
aXhWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUs
IFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRl
KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkp
OwogICAgIH0KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGEoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYSgpOworICAgICAgICByZXR1
cm4gdmFsdWVSZWZlcmVuY2UoKS5hKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QShkb3VibGUgdmFsdWUpCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0QSh2
YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0QSh2YWx1ZSk7CiAgICAgICAgIGNv
bW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC02OCw3ICs2OCw3IEBAIHB1
YmxpYzoKIAogICAgIGRvdWJsZSBiKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLmIoKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuYigpOwogICAg
IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEIoZG91YmxlIHZhbHVlKQpAQCAtNzYsNyAr
NzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAg
ICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEIodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVyZW5j
ZSgpLnNldEIodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1
cm4geyB9OwpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgYygpCiAgICAg
ewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5jKCk7CisgICAgICAgIHJldHVy
biB2YWx1ZVJlZmVyZW5jZSgpLmMoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRDKGRvdWJsZSB2YWx1ZSkKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
aXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRDKHZh
bHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRDKHZhbHVlKTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEwMCw3ICsxMDAsNyBAQCBw
dWJsaWM6CiAKICAgICBkb3VibGUgZCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlS
ZWZlcmVuY2UoKS5kKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmQoKTsKICAg
ICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXREKGRvdWJsZSB2YWx1ZSkKQEAgLTEwOCw3
ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAg
ICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldEQodmFsdWUpOworICAgICAgICB2YWx1ZVJlZmVy
ZW5jZSgpLnNldEQodmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLmUoKTsKKyAgICAgICAg
cmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkuZSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEUoZG91YmxlIHZhbHVlKQpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0RSh2YWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0RSh2YWx1ZSk7CiAgICAg
ICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMzIsNyArMTMy
LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGYoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHBy
b3BlcnR5UmVmZXJlbmNlKCkuZigpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5m
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Rihkb3VibGUgdmFsdWUpCkBA
IC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRGKHZhbHVlKTsKKyAgICAgICAgdmFs
dWVSZWZlcmVuY2UoKS5zZXRGKHZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAg
ICAgICAgcmV0dXJuIHsgfTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVm
ZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAg
ICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkubXVsdGlwbHkoc2Vjb25kTWF0cml4
LnZhbHVlUmVmZXJlbmNlKCkpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTE2Miw3ICsxNjIsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuaW52ZXJzZSgpOworICAgICAgICBhdXRvIHJlc3VsdCA9
IHZhbHVlUmVmZXJlbmNlKCkuaW52ZXJzZSgpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAg
ICAgICAgIApAQCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS50
cmFuc2xhdGUoeCwgeSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVy
ZW5jZSgpLnRyYW5zbGF0ZSh4LCB5KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAg
ICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0xODYsNyArMTg2LDcgQEAg
cHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byBy
ZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNjYWxlKHNjYWxlRmFjdG9yKTsgICAgICAgIAor
ICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2NhbGUoc2NhbGVGYWN0b3Ip
OwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4Ojpj
cmVhdGUocmVzdWx0KTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChp
c1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJl
bmNlKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2NhbGVOb25Vbmlmb3Jt
KHNjYWxlRmFjdG9yWCwgc2NhbGVGYWN0b3JZKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAK
ICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yMDgsNyArMjA4
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7ICAgICAgICAK
KyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJlZmVyZW5jZSgpLnJvdGF0ZShhbmdsZSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiBTVkdNYXRyaXg6OmNyZWF0
ZShyZXN1bHQpOwpAQCAtMjE5LDcgKzIxOSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVh
ZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2Uo
KS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0g
dmFsdWVSZWZlcmVuY2UoKS5yb3RhdGVGcm9tVmVjdG9yKHgsIHkpOwogICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAgICAgICAgIApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlm
aWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlS
ZWZlcmVuY2UoKS5mbGlwWCgpOyAgICAgICAgCisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVS
ZWZlcmVuY2UoKS5mbGlwWCgpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICBy
ZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKQEAgLTI0Myw3ICsyNDMsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3Vs
dCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuZmxpcFkoKTsgICAgICAgIAorICAgICAgICBhdXRvIHJl
c3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuZmxpcFkoKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CiAKICAgICAgICAgcmV0dXJuIFNWR01hdHJpeDo6Y3JlYXRlKHJlc3VsdCk7CkBAIC0yNTQsNyAr
MjU0LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNrZXdYKGFuZ2xlKTsgICAgICAg
IAorICAgICAgICBhdXRvIHJlc3VsdCA9IHZhbHVlUmVmZXJlbmNlKCkuc2tld1goYW5nbGUpOwog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVh
dGUocmVzdWx0KTsKQEAgLTI2NSwxNCArMjY1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlz
UmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVu
Y2UoKS5za2V3WShhbmdsZSk7ICAgICAgICAKKyAgICAgICAgYXV0byByZXN1bHQgPSB2YWx1ZVJl
ZmVyZW5jZSgpLnNrZXdZKGFuZ2xlKTsgICAgICAgIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsK
IAogICAgICAgICByZXR1cm4gU1ZHTWF0cml4OjpjcmVhdGUocmVzdWx0KTsKICAgICB9CiAKIHBy
b3RlY3RlZDoKLSAgICBTVkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR01hdHJpeFZhbHVlJiB2YWx1ZSkKKyAgICBT
VkdNYXRyaXgoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgICAgICA6IFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdNYXRyaXhWYWx1ZT4oJmFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCShyZXZpc2lv
biAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdOdW1i
ZXIgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPGZsb2F0PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgZmxvYXQmIHZhbHVlKQorICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAK
ICAgICBmbG9hdCB2YWx1ZUZvckJpbmRpbmdzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9w
ZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKTsKICAgICB9
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVl
KQpAQCAtNTgsMTQgKzU4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkgPSB2YWx1ZTsKKyAgICAgICAgdmFs
dWVSZWZlcmVuY2UoKSA9IHZhbHVlOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGZsb2F0
JiB2YWx1ZSkKKyAgICBTVkdOdW1iZXIoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9w
ZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
KQogICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxmbG9hdD4oJmFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJM
aXN0LmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJM
aXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUg
PSBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBz
dGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0
VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUs
IHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTnVtYmVyTGlz
dChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBTVkdOdW1iZXJMaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQorICAgIFNWR051bWJlckxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRy
PFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAg
OiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR051bWJlckxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIzMDY0NykK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0VmFsdWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIlNWR051bWJlckxpc3RWYWx1ZXMuaCIK
IAogI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zOSw3ICs0MCw3IEBAIHZvaWQgU1ZHTnVtYmVyTGlzdFZhbHVlczo6cGFyc2UoY29u
c3QgU3QKICAgICB3aGlsZSAocHRyIDwgZW5kKSB7CiAgICAgICAgIGlmICghcGFyc2VOdW1iZXIo
cHRyLCBlbmQsIG51bWJlcikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGFwcGVuZChu
dW1iZXIpOworICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxmbG9hdD4obnVtYmVyKSk7
CiAgICAgfQogfQogCkBAIC01Miw3ICs1Myw3IEBAIFN0cmluZyBTVkdOdW1iZXJMaXN0VmFsdWVz
Ojp2YWx1ZUFzU3RyaW4KICAgICAgICAgaWYgKGkgPiAwKQogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKIAotICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihhdChpKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF0UmVmZXJlbmNlKGkpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlckxpc3RWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVt
YmVyTGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTnVtYmVyTGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxNCArMjEsMTQgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKLSNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSAiU1ZHVmFsdWVMaXN0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU1ZHTnVtYmVyOwogY2xhc3MgU1ZHTnVtYmVyTGlzdDsKIAotY2xh
c3MgU1ZHTnVtYmVyTGlzdFZhbHVlcyBmaW5hbCA6IHB1YmxpYyBWZWN0b3I8ZmxvYXQ+IHsKK2Ns
YXNzIFNWR051bWJlckxpc3RWYWx1ZXMgZmluYWwgOiBwdWJsaWMgU1ZHVmFsdWVMaXN0PGZsb2F0
PiB7CiBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcg
dmFsdWVBc1N0cmluZygpIGNvbnN0OwpAQCAtNDIsNyArNDIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdOCiAgICAgICAgIGxpc3QucGFyc2Uoc3RyaW5nKTsKICAg
ICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR051
bWJlckxpc3RWYWx1ZXM+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcm
KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KICAgICBz
dGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR051bWJlckxpc3RWYWx1ZXMmIGxpc3QpIHsg
cmV0dXJuIGxpc3QudmFsdWVBc1N0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUg
PSBmbG9hdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3Bw
CShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0
aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDcgKzI4OSw3IEBAIGJvb2wgcG9pbnRzTGlz
dEZyb21TVkdEYXRhKFNWR1BvaW50TGlzdFYKICAgICAgICAgfQogICAgICAgICBza2lwT3B0aW9u
YWxTVkdTcGFjZXMoY3VyLCBlbmQpOwogCi0gICAgICAgIHBvaW50c0xpc3QuYXBwZW5kKEZsb2F0
UG9pbnQoeFBvcywgeVBvcykpOworICAgICAgICBwb2ludHNMaXN0LmFwcGVuZChTVkdWYWx1ZTo6
Y3JlYXRlPEZsb2F0UG9pbnQ+KEZsb2F0UG9pbnQoeFBvcywgeVBvcykpKTsKICAgICB9CiAgICAg
cmV0dXJuIGN1ciA9PSBlbmQgJiYgIWRlbGltUGFyc2VkOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhCeXRlU3RyZWFtLmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOCArMTA4
LDYgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1BhdGhCeXRlU3RyZQogICAgICAgICBi
dWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVN0cmluZyhzdHJpbmcsIGJ5dGVTdHJlYW0sIFVuYWx0
ZXJlZFBhcnNpbmcpOwogICAgICAgICByZXR1cm4gYnl0ZVN0cmVhbTsKICAgICB9Ci0gICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U1ZHUGF0aEJ5dGVTdHJlYW0+IHBhcnNlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4geyB9
OyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgRU5EX1JFR0lTVEVSX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogaW5saW5lIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBTVkdHcmFwaGljc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX3BhdGhTZWdM
aXN0KFBhdGhTZWdVbmFsdGVyZWRSb2xlKQorICAgICwgbV9wYXRoU2VnTGlzdChTVkdQYXRoU2Vn
TGlzdFZhbHVlcyhQYXRoU2VnVW5hbHRlcmVkUm9sZSkpCiAgICAgLCBtX2lzQW5pbVZhbE9ic2Vy
dmVkKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpwYXRoVGFnKSk7
CkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZAogICAgICAgICBpZiAobV9wYXRoU2VnTGlzdC5zaG91bGRTeW5jaHJvbml6ZSAmJiAhU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4odGhpcywgZFByb3BlcnR5SW5mbygpKS0+aXNB
bmltYXRpbmcoKSkgewogICAgICAgICAgICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbmV3TGlzdChQ
YXRoU2VnVW5hbHRlcmVkUm9sZSk7CiAgICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFs
dWVzRnJvbUJ5dGVTdHJlYW0obV9wYXRoQnl0ZVN0cmVhbSwgKnRoaXMsIG5ld0xpc3QsIFVuYWx0
ZXJlZFBhcnNpbmcpOwotICAgICAgICAgICAgbV9wYXRoU2VnTGlzdC52YWx1ZSA9IFdURk1vdmUo
bmV3TGlzdCk7CisgICAgICAgICAgICBtX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2Vn
TGlzdFZhbHVlcz4oKSA9IFdURk1vdmUobmV3TGlzdCk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocmVuZGVyZXIpCkBAIC0zMzEsOCArMzMxLDggQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+
IFNWR1BhdGhFbGVtZW50OgogICAgIGlmIChhdXRvIHByb3BlcnR5ID0gU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZj4oJm93bmVyVHlwZSwgZFByb3BlcnR5SW5mbygpKSkKICAgICAgICAg
cmV0dXJuICpwcm9wZXJ0eTsKIAotICAgIGlmIChvd25lclR5cGUubV9wYXRoU2VnTGlzdC52YWx1
ZS5pc0VtcHR5KCkpCi0gICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0
cmVhbShvd25lclR5cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJUeXBlLCBvd25lclR5cGUubV9w
YXRoU2VnTGlzdC52YWx1ZSwgVW5hbHRlcmVkUGFyc2luZyk7CisgICAgaWYgKG93bmVyVHlwZS5t
X3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS5pc0VtcHR5KCkp
CisgICAgICAgIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RWYWx1ZXNGcm9tQnl0ZVN0cmVhbShvd25lclR5
cGUubV9wYXRoQnl0ZVN0cmVhbSwgb3duZXJUeXBlLCBvd25lclR5cGUubV9wYXRoU2VnTGlzdC52
YWx1ZS0+YXM8U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM+KCksIFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAg
ICAgcmV0dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcjxTVkdQ
YXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZiwgU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXM+KCZvd25lclR5cGUsIGRQcm9wZXJ0eUluZm8oKSwgb3duZXJUeXBlLm1f
cGF0aFNlZ0xpc3QudmFsdWUpOwogfQpAQCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgU1ZHUGF0aEVs
ZW1lbnQ6OnN5bmNocm9uaXplRChTVkdFbGUKICAgICBTVkdQYXRoRWxlbWVudCYgb3duZXJUeXBl
ID0gZG93bmNhc3Q8U1ZHUGF0aEVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFv
d25lclR5cGUubV9wYXRoU2VnTGlzdC5zaG91bGRTeW5jaHJvbml6ZSkKICAgICAgICAgcmV0dXJu
OwotICAgIG93bmVyVHlwZS5tX3BhdGhTZWdMaXN0LnN5bmNocm9uaXplKCZvd25lclR5cGUsIGRQ
cm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLm1fcGF0aFNlZ0xpc3QudmFs
dWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBvd25lclR5cGUubV9wYXRoU2VnTGlzdC5zeW5jaHJv
bml6ZSgmb3duZXJUeXBlLCBkUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlw
ZS5tX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS52YWx1ZUFz
U3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1BhdGhFbGVtZW50OjphbmltYXRlZFByb3BlcnR5V2ls
bEJlRGVsZXRlZCgpCkBAIC0zOTYsMTAgKzM5NiwxMCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50Ojpw
YXRoU2VnTGlzdENoYW5nZWQoCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aFNlZ1VuYWx0
ZXJlZFJvbGU6CiAgICAgICAgIGlmIChsaXN0TW9kaWZpY2F0aW9uID09IExpc3RNb2RpZmljYXRp
b25BcHBlbmQpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9wYXRoU2VnTGlzdC52YWx1ZS5pc0Vt
cHR5KCkpOwotICAgICAgICAgICAgYXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNl
ZyhtX3BhdGhTZWdMaXN0LnZhbHVlLmxhc3QoKS5jb3B5UmVmKCksIG1fcGF0aEJ5dGVTdHJlYW0s
IFVuYWx0ZXJlZFBhcnNpbmcpOworICAgICAgICAgICAgQVNTRVJUKCFtX3BhdGhTZWdMaXN0LnZh
bHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS5pc0VtcHR5KCkpOworICAgICAgICAgICAg
YXBwZW5kU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZyhtX3BhdGhTZWdMaXN0LnZhbHVl
LT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKS5sYXN0UmVmZXJlbmNlKCkuY29weVJlZigpLCBt
X3BhdGhCeXRlU3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0VmFsdWVzKG1f
cGF0aFNlZ0xpc3QudmFsdWUsIG1fcGF0aEJ5dGVTdHJlYW0sIFVuYWx0ZXJlZFBhcnNpbmcpOwor
ICAgICAgICAgICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2VnTGlzdFZhbHVl
cyhtX3BhdGhTZWdMaXN0LnZhbHVlLT5hczxTVkdQYXRoU2VnTGlzdFZhbHVlcz4oKSwgbV9wYXRo
Qnl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CiAgICAgICAgIG1fY2FjaGVkUGF0aCA9IHN0
ZDo6bnVsbG9wdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoU2VnVW5kZWZpbmVkUm9s
ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkocmV2aXNpb24gMjMw
NjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRpb25Pcjx2
b2lkPiBTVkdQYXRoU2VnTGlzdDo6Y2xlYXIoKQogewogICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0g
ICAgaWYgKG1fdmFsdWVzLT5pc0VtcHR5KCkpCisgICAgaWYgKHZhbHVlc1JlZmVyZW5jZSgpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gQmFzZTo6Y2xlYXJWYWx1
ZXMoKTsKIH0KQEAgLTQyLDE1ICs0MiwxNSBAQCBFeGNlcHRpb25PcjxSZWZQdHI8U1ZHUGF0aFNl
Zz4+IFNWR1BhdGhTCiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdQYXRoU2VnPj4gU1ZHUGF0aFNl
Z0xpc3Q6OnJlcGxhY2VJdGVtKFJlZjxTVkdQYXRoU2VnPiYmIG5ld0l0ZW0sIHVuc2lnbmVkIGlu
ZGV4KQogewotICAgIGlmIChpbmRleCA8IG1fdmFsdWVzLT5zaXplKCkpCi0gICAgICAgIG1fdmFs
dWVzLT5jbGVhckl0ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CisgICAgaWYgKGluZGV4IDwgdmFs
dWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQorICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhckl0
ZW1Db250ZXh0QW5kUm9sZShpbmRleCk7CiAgICAgcmV0dXJuIEJhc2U6OnJlcGxhY2VJdGVtVmFs
dWVzKFdURk1vdmUobmV3SXRlbSksIGluZGV4KTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmUHRyPFNW
R1BhdGhTZWc+PiBTVkdQYXRoU2VnTGlzdDo6cmVtb3ZlSXRlbSh1bnNpZ25lZCBpbmRleCkKIHsK
LSAgICBpZiAoaW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICBtX3ZhbHVlcy0+Y2xl
YXJJdGVtQ29udGV4dEFuZFJvbGUoaW5kZXgpOworICAgIGlmIChpbmRleCA8IHZhbHVlc1JlZmVy
ZW5jZSgpLnNpemUoKSkKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY2xlYXJJdGVtQ29udGV4
dEFuZFJvbGUoaW5kZXgpOwogICAgIGF1dG8gcmVzdWx0ID0gQmFzZTo6cmVtb3ZlSXRlbVZhbHVl
cyhpbmRleCk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShyZXZpc2lvbiAy
MzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsMTIgKzMzLDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNl
Z0xpc3RWYWx1ZXM+OwogICAgIHVzaW5nIExpc3RJdGVtVHlwZSA9IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR1BhdGhTZWdMaXN0VmFsdWVzPjo6TGlzdEl0ZW1UeXBlOwogCi0gICAgc3RhdGljIFJlZjxT
VkdQYXRoU2VnTGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BhdGhTZWdSb2xlIHBhdGhTZWdS
b2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFw
cGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHUGF0aFNlZ1JvbGUgcGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChhbmltYXRlZFByb3BlcnR5LCByb2xlLCBwYXRoU2Vn
Um9sZSwgdmFsdWVzLCB3cmFwcGVycykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUGF0
aFNlZ0xpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVz
LCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdM
aXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5
LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBM
aXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChhbmlt
YXRlZFByb3BlcnR5LCByb2xlLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSwgdmFsdWVzLCB3cmFwcGVy
cykpOwpAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobV92
YWx1ZXMpOwogCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3ZhbHVlcy0+c2l6ZSgpOworICAg
ICAgICB1bnNpZ25lZCBzaXplID0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpOwogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgaWYgKGl0ZW0g
PT0gbV92YWx1ZXMtPmF0KGkpKQorICAgICAgICAgICAgaWYgKGl0ZW0gPT0gdmFsdWVzUmVmZXJl
bmNlKCkuYXQoaSktPmFzPExpc3RJdGVtVHlwZT4oKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
aTsKICAgICAgICAgfQogCkBAIC02MCw5ICs2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92
ZUl0ZW1Gcm9tTGlzdChzaXplX3QgaXRlbUluZGV4LCBib29sIHNob3VsZFN5bmNocm9uaXplV3Jh
cHBlcnMpCiAgICAgewogICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwotICAgICAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5kZXggPCBtX3ZhbHVlcy0+c2l6ZSgpKTsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpdGVtSW5k
ZXggPCB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5yZW1v
dmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkucmVtb3ZlKGl0ZW1JbmRl
eCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAgICAgICAgICAg
ICBjb21taXRDaGFuZ2UoKTsKQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFu
aW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQYXRoU2VnUm9sZSBwYXRo
U2VnUm9sZSwgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMpCisgICAgU1ZHUGF0aFNlZ0xpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHUGF0aFNlZ1JvbGUg
cGF0aFNlZ1JvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywgTGlzdFdyYXBwZXJD
YWNoZSYgd3JhcHBlcnMpCiAgICAgICAgIDogU1ZHTGlzdFByb3BlcnR5PFNWR1BhdGhTZWdMaXN0
VmFsdWVzPihyb2xlLCB2YWx1ZXMsICZ3cmFwcGVycykKICAgICAgICAgLCBtX2FuaW1hdGVkUHJv
cGVydHkoJmFuaW1hdGVkUHJvcGVydHkpCiAgICAgICAgICwgbV9wYXRoU2VnUm9sZShwYXRoU2Vn
Um9sZSkKQEAgLTExNSwxMyArMTE1LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRDaGFu
Z2UoKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKLSAgICAgICAgbV92
YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgp
LCBMaXN0TW9kaWZpY2F0aW9uVW5rbm93bik7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNv
bW1pdENoYW5nZSgqbV9hbmltYXRlZFByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBMaXN0TW9k
aWZpY2F0aW9uVW5rbm93bik7CiAgICAgfQogCiAgICAgdm9pZCBjb21taXRDaGFuZ2UoTGlzdE1v
ZGlmaWNhdGlvbiBsaXN0TW9kaWZpY2F0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fdmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZSgqbV9hbmltYXRlZFBy
b3BlcnR5LT5jb250ZXh0RWxlbWVudCgpLCBsaXN0TW9kaWZpY2F0aW9uKTsKKyAgICAgICAgdmFs
dWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hhbmdlKCptX2FuaW1hdGVkUHJvcGVydHktPmNvbnRleHRF
bGVtZW50KCksIGxpc3RNb2RpZmljYXRpb24pOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0lu
Y29taW5nTGlzdEl0ZW1WYWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmIG5ld0l0ZW0sIHVuc2lnbmVk
KiBpbmRleFRvTW9kaWZ5KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGlzdEJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdEJ1aWxkZXIuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNzgg
KzU4LDc4IEBAIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6U1ZHUGF0aFNlZ0xpc3RCdWkKIHZvaWQg
U1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjptb3ZlVG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9p
bnQsIGJvb2wsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFi
c29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVs
ZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChT
VkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVT
VkdQYXRoU2VnTW92ZXRvQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3Bh
dGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9w
YXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKHRhcmdldFBvaW50LngoKSwgdGFy
Z2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCks
IG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5l
VG8oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2Rl
KQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0Ficyh0
YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAg
ICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2Vn
Pj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzKHRhcmdldFBvaW50Lngo
KSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAg
bV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRv
UmVsKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7Cisg
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1Bh
dGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwodGFyZ2V0UG9p
bnQueCgpLCB0YXJnZXRQb2ludC55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyOjpsaW5lVG9Ib3Jpem9udGFsKGZsb2F0IHgsIFBhdGhDb29yZGlu
YXRlTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0g
ICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnMoeCwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyh4LCBtX3BhdGhTZWdS
b2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCh4LCBtX3BhdGhTZWdSb2xl
KSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRy
PFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsKHgsIG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWls
ZGVyOjpsaW5lVG9WZXJ0aWNhbChmbG9hdCB5LCBQYXRoQ29vcmRpbmF0ZU1vZGUgbW9kZSkKIHsK
ICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVzKQotICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFi
cyh5LCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1Zh
bHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbEFicyh5LCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxSZWwoeSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwoeSwgbV9wYXRoU2VnUm9sZSkp
KTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9DdWJpYyhjb25zdCBG
bG9hdFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MiwgY29uc3QgRmxvYXRQ
b2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2RlKQogewogICAgIGlmICht
b2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5k
KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyh0YXJnZXRQb2lu
dC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgcG9pbnQyLngo
KSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFw
cGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5j
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBt
X3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
bV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDEueCgpLCBwb2ludDEueSgpLCBwb2ludDIueCgp
LCBwb2ludDIueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBw
ZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNy
ZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2lu
dC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIHBvaW50Mi54KCksIHBvaW50Mi55KCksIG1f
cGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2ZVRv
Q3ViaWNTbW9vdGgoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyLCBjb25zdCBGbG9hdFBvaW50JiB0
YXJnZXRQb2ludCwgUGF0aENvb3JkaW5hdGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0g
QWJzb2x1dGVDb29yZGluYXRlcykKLSAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRo
RWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzKHRhcmdldFBvaW50
LngoKSwgdGFyZ2V0UG9pbnQueSgpLCBwb2ludDIueCgpLCBwb2ludDIueSgpLCBtX3BhdGhTZWdS
b2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVm
UHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhBYnModGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCks
IHBvaW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKSk7CiAgICAgZWxzZQotICAgICAgICBtX3BhdGhT
ZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50Mi54KCksIHBv
aW50Mi55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQo
U1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBv
aW50LnkoKSwgcG9pbnQyLngoKSwgcG9pbnQyLnkoKSwgbV9wYXRoU2VnUm9sZSkpKTsKIH0KIAog
dm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmN1cnZlVG9RdWFkcmF0aWMoY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgUGF0aENvb3JkaW5h
dGVNb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gQWJzb2x1dGVDb29yZGluYXRlcykKLSAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcG9p
bnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkpOworICAgICAgICBtX3BhdGhTZWdM
aXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxl
bWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyh0YXJnZXRQb2ludC54KCks
IHRhcmdldFBvaW50LnkoKSwgcG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgbV9wYXRoU2VnUm9sZSkp
KTsKICAgICBlbHNlCi0gICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQu
Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJn
ZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCksIG1fcGF0aFNlZ1JvbGUpKTsKKyAg
ICAgICAgbV9wYXRoU2VnTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0
aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwo
dGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHBvaW50MS54KCksIHBvaW50MS55KCks
IG1fcGF0aFNlZ1JvbGUpKSk7CiB9CiAKIHZvaWQgU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyOjpjdXJ2
ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBQYXRoQ29v
cmRpbmF0ZU1vZGUgbW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBBYnNvbHV0ZUNvb3JkaW5hdGVz
KQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0UG9p
bnQueSgpLCBtX3BhdGhTZWdSb2xlKSk7CisgICAgICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNW
R1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKHRhcmdldFBvaW50LngoKSwgdGFyZ2V0
UG9pbnQueSgpLCBtX3BhdGhTZWdSb2xlKSkpOwogICAgIGVsc2UKLSAgICAgICAgbV9wYXRoU2Vn
TGlzdC5hcHBlbmQobV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2VnUm9s
ZSkpOworICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFJlZlB0
cjxTVkdQYXRoU2VnPj4obV9wYXRoRWxlbWVudC5jcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aFJlbCh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgbV9wYXRoU2Vn
Um9sZSkpKTsKIH0KIAogdm9pZCBTVkdQYXRoU2VnTGlzdEJ1aWxkZXI6OmFyY1RvKGZsb2F0IHIx
LCBmbG9hdCByMiwgZmxvYXQgYW5nbGUsIGJvb2wgbGFyZ2VBcmNGbGFnLCBib29sIHN3ZWVwRmxh
ZywgY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0UG9pbnQsIFBhdGhDb29yZGluYXRlTW9kZSBtb2Rl
KQogewogICAgIGlmIChtb2RlID09IEFic29sdXRlQ29vcmRpbmF0ZXMpCi0gICAgICAgIG1fcGF0
aFNlZ0xpc3QuYXBwZW5kKG1fcGF0aEVsZW1lbnQuY3JlYXRlU1ZHUGF0aFNlZ0FyY0Ficyh0YXJn
ZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEsIHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFn
LCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKTsKKyAgICAgICAgbV9wYXRoU2VnTGlzdC5hcHBl
bmQoU1ZHVmFsdWU6OmNyZWF0ZTxSZWZQdHI8U1ZHUGF0aFNlZz4+KG1fcGF0aEVsZW1lbnQuY3Jl
YXRlU1ZHUGF0aFNlZ0FyY0Ficyh0YXJnZXRQb2ludC54KCksIHRhcmdldFBvaW50LnkoKSwgcjEs
IHIyLCBhbmdsZSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIG1fcGF0aFNlZ1JvbGUpKSk7CiAg
ICAgZWxzZQotICAgICAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdBcmNSZWwodGFyZ2V0UG9pbnQueCgpLCB0YXJnZXRQb2ludC55KCksIHIxLCBy
MiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBtX3BhdGhTZWdSb2xlKSk7CisgICAg
ICAgIG1fcGF0aFNlZ0xpc3QuYXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhT
ZWc+PihtX3BhdGhFbGVtZW50LmNyZWF0ZVNWR1BhdGhTZWdBcmNSZWwodGFyZ2V0UG9pbnQueCgp
LCB0YXJnZXRQb2ludC55KCksIHIxLCByMiwgYW5nbGUsIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFn
LCBtX3BhdGhTZWdSb2xlKSkpOwogfQogCiB2b2lkIFNWR1BhdGhTZWdMaXN0QnVpbGRlcjo6Y2xv
c2VQYXRoKCkKIHsKLSAgICBtX3BhdGhTZWdMaXN0LmFwcGVuZChtX3BhdGhFbGVtZW50LmNyZWF0
ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9sZSkpOworICAgIG1fcGF0aFNlZ0xpc3Qu
YXBwZW5kKFNWR1ZhbHVlOjpjcmVhdGU8UmVmUHRyPFNWR1BhdGhTZWc+PihtX3BhdGhFbGVtZW50
LmNyZWF0ZVNWR1BhdGhTZWdDbG9zZVBhdGgobV9wYXRoU2VnUm9sZSkpKTsKIH0KIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0U291cmNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3BwCShyZXZpc2lv
biAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIGJvb2wgU1ZHUGF0aFNlZ0xpc3RTb3Vy
Y2U6Omhhc01vcmVEYXRhKCkKIAogYm9vbCBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6cGFyc2VTVkdT
ZWdtZW50VHlwZShTVkdQYXRoU2VnVHlwZSYgcGF0aFNlZ1R5cGUpCiB7Ci0gICAgbV9zZWdtZW50
ID0gbV9wYXRoU2VnTGlzdC5hdChtX2l0ZW1DdXJyZW50KTsKKyAgICBtX3NlZ21lbnQgPSBtX3Bh
dGhTZWdMaXN0LmF0UmVmZXJlbmNlKG1faXRlbUN1cnJlbnQpOwogICAgIHBhdGhTZWdUeXBlID0g
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ1R5cGU+KG1fc2VnbWVudC0+cGF0aFNlZ1R5cGUoKSk7CiAg
ICAgKyttX2l0ZW1DdXJyZW50OwogICAgIHJldHVybiB0cnVlOwpAQCAtNTEsNyArNTEsNyBAQCBi
b29sIFNWR1BhdGhTZWdMaXN0U291cmNlOjpwYXJzZVNWR1NlZ21lCiAKIFNWR1BhdGhTZWdUeXBl
IFNWR1BhdGhTZWdMaXN0U291cmNlOjpuZXh0Q29tbWFuZChTVkdQYXRoU2VnVHlwZSkKIHsKLSAg
ICBtX3NlZ21lbnQgPSBtX3BhdGhTZWdMaXN0LmF0KG1faXRlbUN1cnJlbnQpOworICAgIG1fc2Vn
bWVudCA9IG1fcGF0aFNlZ0xpc3QuYXRSZWZlcmVuY2UobV9pdGVtQ3VycmVudCk7CiAgICAgU1ZH
UGF0aFNlZ1R5cGUgcGF0aFNlZ1R5cGUgPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnVHlwZT4obV9z
ZWdtZW50LT5wYXRoU2VnVHlwZSgpKTsKICAgICArK21faXRlbUN1cnJlbnQ7CiAgICAgcmV0dXJu
IHBhdGhTZWdUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFs
dWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RW
YWx1ZXMuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQg
U1ZHUGF0aFNlZ0xpc3RWYWx1ZXM6OmNvbW1pdENoYW5nZSgKIAogdm9pZCBTVkdQYXRoU2VnTGlz
dFZhbHVlczo6Y2xlYXJJdGVtQ29udGV4dEFuZFJvbGUodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAg
YXV0byYgaXRlbSA9IGF0KGluZGV4KTsKKyAgICBhdXRvJiBpdGVtID0gYXRSZWZlcmVuY2UoaW5k
ZXgpOwogICAgIHN0YXRpY19jYXN0PFNWR1BhdGhTZWdXaXRoQ29udGV4dCY+KCppdGVtKS5zZXRD
b250ZXh0QW5kUm9sZShudWxscHRyLCBQYXRoU2VnVW5kZWZpbmVkUm9sZSk7CiB9CiAgICAgCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaAkocmV2aXNpb24g
MjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0VmFsdWVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIwLDEwICsyMCw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiU1ZHTGlzdFByb3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2luY2x1ZGUg
IlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUg
IlNWR1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw5ICszMyw5IEBAIGNsYXNzIFNWR1BhdGhTZWdMaXN0Owog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gCiBjbGFzcyBTVkdQcm9wZXJ0eVRlYXJPZmY7CiAKLWNsYXNz
IFNWR1BhdGhTZWdMaXN0VmFsdWVzIDogcHVibGljIFZlY3RvcjxSZWZQdHI8U1ZHUGF0aFNlZz4+
IHsKK2NsYXNzIFNWR1BhdGhTZWdMaXN0VmFsdWVzIDogcHVibGljIFNWR1ZhbHVlTGlzdDxSZWZQ
dHI8U1ZHUGF0aFNlZz4+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gVmVjdG9yPFJlZlB0
cjxTVkdQYXRoU2VnPj47CisgICAgdXNpbmcgQmFzZSA9IFNWR1ZhbHVlTGlzdDxSZWZQdHI8U1ZH
UGF0aFNlZz4+OwogICAgIAogICAgIGV4cGxpY2l0IFNWR1BhdGhTZWdMaXN0VmFsdWVzKFNWR1Bh
dGhTZWdSb2xlIHJvbGUpCiAgICAgICAgIDogbV9yb2xlKHJvbGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3
ICsxMjAsNyBAQCBib29sIGFwcGVuZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTCiAgICAg
QVNTRVJUKHBhcnNpbmdNb2RlID09IFVuYWx0ZXJlZFBhcnNpbmcpOwogCiAgICAgU1ZHUGF0aFNl
Z0xpc3RWYWx1ZXMgYXBwZW5kZWRJdGVtTGlzdChQYXRoU2VnVW5hbHRlcmVkUm9sZSk7Ci0gICAg
YXBwZW5kZWRJdGVtTGlzdC5hcHBlbmQoV1RGTW92ZShwYXRoU2VnKSk7CisgICAgYXBwZW5kZWRJ
dGVtTGlzdC5hcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKHBhdGhTZWcpKSk7CiAKICAg
ICBTVkdQYXRoQnl0ZVN0cmVhbSBhcHBlbmRlZEJ5dGVTdHJlYW07CiAgICAgU1ZHUGF0aFNlZ0xp
c3RTb3VyY2Ugc291cmNlKGFwcGVuZGVkSXRlbUxpc3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
LmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHUG9pbnQgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0
eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZh
bHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnQ+IGNyZWF0ZShTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQ
b2ludChhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTUzLDcgKzUz
LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHlSZWZlcmVuY2UoKS54KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLngo
KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAg
LTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAK
LSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVl
UmVmZXJlbmNlKCkuc2V0WCh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlUmVmZXJlbmNlKCkueSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFkoZmxvYXQgeFZhbHVlKQpAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldFkoeFZhbHVlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CiAg
ICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OCwxOSAr
ODgsMTkgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAg
ICAgYXV0byBuZXdQb2ludCA9IHByb3BlcnR5UmVmZXJlbmNlKCkubWF0cml4VHJhbnNmb3JtKG1h
dHJpeC5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgYXV0byBuZXdQb2ludCA9IHZhbHVl
UmVmZXJlbmNlKCkubWF0cml4VHJhbnNmb3JtKG1hdHJpeC52YWx1ZVJlZmVyZW5jZSgpKTsKICAg
ICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIFNWR1BvaW50OjpjcmVhdGUo
bmV3UG9pbnQpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR1BvaW50KFNWR0FuaW1hdGVk
UHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBGbG9hdFBv
aW50JiB2YWx1ZSkKKyAgICBTVkdQb2ludChTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFBy
b3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFs
dWUpCiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UG9pbnQ+KCZhbmltYXRlZFBy
b3BlcnR5LCByb2xlLCB2YWx1ZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHUG9pbnQoU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIEZsb2F0UG9pbnQmIHZhbHVlKQorICAgIFNWR1BvaW50KFNWR1Byb3Bl
cnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBT
VkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRQb2ludD4obnVsbHB0ciwgcm9sZSwgdmFsdWUpCiAgICAg
ewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgJKHJldmlzaW9uIDIzMDY0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcsMTMgKzM3LDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnRMaXN0VmFs
dWVzPjsKICAgICB1c2luZyBMaXN0V3JhcHBlckNhY2hlID0gQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+
IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQb2ludExpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9p
bnRMaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgU1ZHUG9pbnRMaXN0KEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZiYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1BvaW50TGlzdFZh
bHVlcyYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKKyAgICBTVkdQb2ludExp
c3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1Bv
aW50TGlzdFZhbHVlcz4oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWVzLCB3cmFwcGVycykK
ICAgICB7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVl
cy5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3RWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIFN0cmluZyBTVkdQ
b2ludExpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbmcKICAgICAgICAgaWYgKGkgPiAwKQogICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29t
bWFzIHRvIHNlcGVyYXRlPwogCi0gICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gYXQoaSk7Cisg
ICAgICAgIGNvbnN0IGF1dG8mIHBvaW50ID0gYXRSZWZlcmVuY2UoaSk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHBvaW50LngoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvaW50LnkoKSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdFZhbHVlcy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5p
a29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MiwxNCArMjMsMTQgQEAKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJTVkdQ
cm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdW
YWx1ZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdQb2ludDsKIGNs
YXNzIFNWR1BvaW50TGlzdDsKIAotY2xhc3MgU1ZHUG9pbnRMaXN0VmFsdWVzIGZpbmFsIDogcHVi
bGljIFZlY3RvcjxGbG9hdFBvaW50PiB7CitjbGFzcyBTVkdQb2ludExpc3RWYWx1ZXMgZmluYWwg
OiBwdWJsaWMgU1ZHVmFsdWVMaXN0PEZsb2F0UG9pbnQ+IHsKIHB1YmxpYzoKICAgICBTdHJpbmcg
dmFsdWVBc1N0cmluZygpIGNvbnN0OwogfTsKQEAgLTQzLDggKzQ0LDYgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPFNWR1BvaW50TGlzdFZhbAogICAgICAgICBwb2ludHNMaXN0RnJvbVNWR0Rh
dGEobGlzdCwgc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQotICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFNWR1BvaW50TGlzdFZhbHVlcz4gcGFyc2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiB7IH07
IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1BvaW50TGlzdFZhbHVlcyYp
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAKICAgICB1
c2luZyBMaXN0SXRlbVR5cGUgPSBGbG9hdFBvaW50OwogICAgIHVzaW5nIExpc3RJdGVtVGVhck9m
ZiA9IFNWR1BvaW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnMKICAgICAgICAgaWYgKGF1dG8gd3JhcHBlciA9IFNWR0FuaW1hdGVk
UHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHUG9seUVsZW1lbnQsIFNWR0FuaW1hdGVkUG9pbnRM
aXN0Pih0aGlzLCBwb2ludHNQcm9wZXJ0eUluZm8oKSkpCiAgICAgICAgICAgICBzdGF0aWNfcG9p
bnRlcl9jYXN0PFNWR0FuaW1hdGVkUG9pbnRMaXN0Pih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBw
ZXJzKG5ld0xpc3Quc2l6ZSgpKTsKIAotICAgICAgICBtX3BvaW50cy52YWx1ZSA9IFdURk1vdmUo
bmV3TGlzdCk7CisgICAgICAgIHBvaW50TGlzdCgpID0gV1RGTW92ZShuZXdMaXN0KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgU1ZHUG9seUVsZW1l
bnQ6OnN5bmNocm9uaXplUG9pbnRzKFMKICAgICBTVkdQb2x5RWxlbWVudCYgb3duZXJUeXBlID0g
ZG93bmNhc3Q8U1ZHUG9seUVsZW1lbnQ+KCpjb250ZXh0RWxlbWVudCk7CiAgICAgaWYgKCFvd25l
clR5cGUubV9wb2ludHMuc2hvdWxkU3luY2hyb25pemUpCiAgICAgICAgIHJldHVybjsKLSAgICBv
d25lclR5cGUubV9wb2ludHMuc3luY2hyb25pemUoJm93bmVyVHlwZSwgcG9pbnRzUHJvcGVydHlJ
bmZvKCktPmF0dHJpYnV0ZU5hbWUsIG93bmVyVHlwZS5tX3BvaW50cy52YWx1ZS52YWx1ZUFzU3Ry
aW5nKCkpOworICAgIG93bmVyVHlwZS5tX3BvaW50cy5zeW5jaHJvbml6ZSgmb3duZXJUeXBlLCBw
b2ludHNQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgb3duZXJUeXBlLnBvaW50TGlzdCgp
LnZhbHVlQXNTdHJpbmcoKSk7CiB9CiAKIFJlZjxTVkdBbmltYXRlZFByb3BlcnR5PiBTVkdQb2x5
RWxlbWVudDo6bG9va3VwT3JDcmVhdGVQb2ludHNXcmFwcGVyKFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDIz
MDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBwb2lu
dHMoKTsKICAgICBSZWY8U1ZHUG9pbnRMaXN0PiBhbmltYXRlZFBvaW50cygpOwogCi0gICAgU1ZH
UG9pbnRMaXN0VmFsdWVzJiBwb2ludExpc3QoKSBjb25zdCB7IHJldHVybiBtX3BvaW50cy52YWx1
ZTsgfQorICAgIFNWR1BvaW50TGlzdFZhbHVlcyYgcG9pbnRMaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9wb2ludHMudmFsdWUtPmFzPFNWR1BvaW50TGlzdFZhbHVlcz4oKTsgfQogCiAgICAgc3RhdGlj
IGNvbnN0IFNWR1Byb3BlcnR5SW5mbyogcG9pbnRzUHJvcGVydHlJbmZvKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkocmV2aXNpb24gMjMw
NjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
IHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNW
R0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWUpKTsKICAgICB9CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2ln
bmVkIHNob3J0IGFsaWduKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5j
ZSgpLmFsaWduKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLmFsaWduKCk7CiAg
ICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24oZmxvYXQgdmFsdWUpCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0g
ICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7
CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHNob3J0
IG1lZXRPclNsaWNlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgp
Lm1lZXRPclNsaWNlKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLm1lZXRPclNs
aWNlKCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9yU2xpY2UoZmxv
YXQgdmFsdWUpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5z
ZXRNZWV0T3JTbGljZSh2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdmFsdWVSZWZlcmVu
Y2UoKS5zZXRNZWV0T3JTbGljZSh2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC04Niw3ICs4Niw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKKyAgICBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0ZWRQcm9w
ZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMzA2NDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsMTIgKzU4LDEyIEBAIEVORF9SRUdJU1RFUl9BTklNQVRFRF9QUk9QRVJU
SUVTCiAKIGlubGluZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OlNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBTVkdHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2N4
KExlbmd0aE1vZGVXaWR0aCwgIjUwJSIpCi0gICAgLCBtX2N5KExlbmd0aE1vZGVIZWlnaHQsICI1
MCUiKQotICAgICwgbV9yKExlbmd0aE1vZGVPdGhlciwgIjUwJSIpCi0gICAgLCBtX2Z4KExlbmd0
aE1vZGVXaWR0aCkKLSAgICAsIG1fZnkoTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fZnIoTGVu
Z3RoTW9kZU90aGVyLCAiMCUiKQorICAgICwgbV9jeChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2Rl
V2lkdGgsICI1MCUiKSkKKyAgICAsIG1fY3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9kZUhlaWdo
dCwgIjUwJSIpKQorICAgICwgbV9yKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVPdGhlciwgIjUw
JSIpKQorICAgICwgbV9meChTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlV2lkdGgpKQorICAgICwg
bV9meShTVkdMZW5ndGhWYWx1ZShMZW5ndGhNb2RlSGVpZ2h0KSkKKyAgICAsIG1fZnIoU1ZHTGVu
Z3RoVmFsdWUoTGVuZ3RoTW9kZU90aGVyLCAiMCUiKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUg
Y3gvY3kvci9mciBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBp
ZiBhIHZhbHVlIG9mICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIEFTU0VSVChoYXNUYWdOYW1l
KFNWR05hbWVzOjpyYWRpYWxHcmFkaWVudFRhZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCShy
ZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZH
UmVjdCA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVjdCYgdmFsdWUpCisgICAg
c3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZh
bHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChhbmltYXRl
ZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkpOwogICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGlj
OgogCiAgICAgZmxvYXQgeCgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVu
Y2UoKS54KCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLngoKTsKICAgICB9CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYKGZsb2F0IHhWYWx1ZSkKQEAgLTU0LDcgKzU0LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJv
cGVydHlSZWZlcmVuY2UoKS5zZXRYKHhWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCku
c2V0WCh4VmFsdWUpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBmbG9hdCB5KCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlUmVmZXJlbmNlKCkueSgpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFko
ZmxvYXQgeFZhbHVlKQpAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVl
KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKIAogICAgIGZsb2F0IHdpZHRoKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJl
ZmVyZW5jZSgpLndpZHRoKCk7CisgICAgICAgIHJldHVybiB2YWx1ZVJlZmVyZW5jZSgpLndpZHRo
KCk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0V2lkdGgoZmxvYXQgd2lkdGhW
YWx1ZSkKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVl
KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk0LDcgKzk0LDcg
QEAgcHVibGljOgogCiAgICAgZmxvYXQgaGVpZ2h0KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBw
cm9wZXJ0eVJlZmVyZW5jZSgpLmhlaWdodCgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVu
Y2UoKS5oZWlnaHQoKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIZWlnaHQo
ZmxvYXQgaGVpZ2h0VmFsdWUpCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNl
dEhlaWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0SGVpZ2h0
KGhlaWdodFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdBbmltYXRlZFByb3BlcnR5
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgRmxvYXRSZWN0JiB2YWx1
ZSkKKyAgICBTVkdSZWN0KFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNW
R1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAg
ICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9s
ZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTEgKzc0LDEyIEBAIEVORF9SRUdJU1RFUl9B
TklNQVRFRF9QUk9QRVJUSUVTCiAKIGlubGluZSBTVkdTVkdFbGVtZW50OjpTVkdTVkdFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IFNWR0dyYXBoaWNzRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1feChMZW5ndGhN
b2RlV2lkdGgpCi0gICAgLCBtX3koTGVuZ3RoTW9kZUhlaWdodCkKLSAgICAsIG1fd2lkdGgoTGVu
Z3RoTW9kZVdpZHRoLCBBU0NJSUxpdGVyYWwoIjEwMCUiKSkKLSAgICAsIG1faGVpZ2h0KExlbmd0
aE1vZGVIZWlnaHQsIEFTQ0lJTGl0ZXJhbCgiMTAwJSIpKQorICAgICwgbV94KFNWR0xlbmd0aFZh
bHVlKExlbmd0aE1vZGVXaWR0aCkpCisgICAgLCBtX3koU1ZHTGVuZ3RoVmFsdWUoTGVuZ3RoTW9k
ZUhlaWdodCkpCisgICAgLCBtX3dpZHRoKFNWR0xlbmd0aFZhbHVlKExlbmd0aE1vZGVXaWR0aCwg
QVNDSUlMaXRlcmFsKCIxMDAlIikpKQorICAgICwgbV9oZWlnaHQoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZUhlaWdodCwgQVNDSUlMaXRlcmFsKCIxMDAlIikpKQogICAgICwgbV90aW1lQ29udGFp
bmVyKFNNSUxUaW1lQ29udGFpbmVyOjpjcmVhdGUoKnRoaXMpKQorICAgICwgbV9jdXJyZW50VHJh
bnNsYXRlKFNWR1ZhbHVlOjpjcmVhdGU8RmxvYXRQb2ludD4oKSkKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShTVkdOYW1lczo6c3ZnVGFnKSk7CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRp
ZXNGb3JTVkdTVkdFbGVtZW50KCk7CkBAIC0yMDAsOSArMjAxLDkgQEAgUmVmPFNWR1BvaW50PiBT
VkdTVkdFbGVtZW50OjpjdXJyZW50VHJhbgogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJl
bnRUcmFuc2xhdGUoY29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiB7Ci0gICAgaWYgKG1f
Y3VycmVudFRyYW5zbGF0ZSA9PSB0cmFuc2xhdGlvbikKKyAgICBpZiAobV9jdXJyZW50VHJhbnNs
YXRlLT5hczxGbG9hdFBvaW50PigpID09IHRyYW5zbGF0aW9uKQogICAgICAgICByZXR1cm47Ci0g
ICAgbV9jdXJyZW50VHJhbnNsYXRlID0gdHJhbnNsYXRpb247CisgICAgbV9jdXJyZW50VHJhbnNs
YXRlLT5hczxGbG9hdFBvaW50PigpID0gdHJhbnNsYXRpb247CiAgICAgdXBkYXRlQ3VycmVudFRy
YW5zbGF0ZSgpOwogfQogCkBAIC0zMzgsMTIgKzMzOSwxMiBAQCBSZWY8Tm9kZUxpc3Q+IFNWR1NW
R0VsZW1lbnQ6OmNvbGxlY3RJbnRlCiAKIHN0YXRpYyBib29sIGNoZWNrSW50ZXJzZWN0aW9uV2l0
aG91dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFNWR1JlY3QmIHJlY3QpCiB7
Ci0gICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVt
ZW50LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7CisgICAgcmV0dXJuIFJl
bmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0ludGVyc2VjdGlvbihlbGVtZW50LnJlbmRlcmVyKCks
IHJlY3QudmFsdWVSZWZlcmVuY2UoKSk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBjaGVja0VuY2xv
c3VyZVdpdGhvdXRVcGRhdGluZ0xheW91dChTVkdFbGVtZW50JiBlbGVtZW50LCBTVkdSZWN0JiBy
ZWN0KQogewotICAgIHJldHVybiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUo
ZWxlbWVudC5yZW5kZXJlcigpLCByZWN0LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVy
biBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2hlY2tFbmNsb3N1cmUoZWxlbWVudC5yZW5kZXJlcigp
LCByZWN0LnZhbHVlUmVmZXJlbmNlKCkpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IFNWR1NWR0VsZW1l
bnQ6OmdldEludGVyc2VjdGlvbkxpc3QoU1ZHUmVjdCYgcmVjdCwgU1ZHRWxlbWVudCogcmVmZXJl
bmNlRWxlbWVudCkKQEAgLTQxNyw3ICs0MTgsNyBAQCBSZWY8U1ZHVHJhbnNmb3JtPiBTVkdTVkdF
bGVtZW50OjpjcmVhdGVTCiAKIFJlZjxTVkdUcmFuc2Zvcm0+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoU1ZHTWF0cml4JiBtYXRyaXgpCiB7Ci0gICAgcmV0dXJu
IFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlIHsgbWF0cml4LnByb3BlcnR5
UmVmZXJlbmNlKCkgfSk7CisgICAgcmV0dXJuIFNWR1RyYW5zZm9ybTo6Y3JlYXRlKFNWR1RyYW5z
Zm9ybVZhbHVlIHsgbWF0cml4LnZhbHVlUmVmZXJlbmNlKCkgfSk7CiB9CiAKIEFmZmluZVRyYW5z
Zm9ybSBTVkdTVkdFbGVtZW50Ojpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2Nh
dGFibGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV91c2VDdXJyZW50VmlldyB7IGZhbHNlIH07CiAgICAgU1ZHWm9vbUFuZFBhblR5cGUgbV96
b29tQW5kUGFuIHsgU1ZHWm9vbUFuZFBhbk1hZ25pZnkgfTsKICAgICBSZWY8U01JTFRpbWVDb250
YWluZXI+IG1fdGltZUNvbnRhaW5lcjsKLSAgICBGbG9hdFBvaW50IG1fY3VycmVudFRyYW5zbGF0
ZTsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fY3VycmVudFRyYW5zbGF0ZTsKICAgICBSZWZQdHI8
U1ZHVmlld1NwZWM+IG1fdmlld1NwZWM7CiAgICAgU3RyaW5nIG1fY3VycmVudFZpZXdGcmFnbWVu
dElkZW50aWZpZXI7CiB9OwpAQCAtMTc2LDcgKzE3Niw3IEBAIGlubGluZSBib29sIFNWR1NWR0Vs
ZW1lbnQ6OnVzZUN1cnJlbnRWaWUKIAogaW5saW5lIEZsb2F0UG9pbnQgU1ZHU1ZHRWxlbWVudDo6
Y3VycmVudFRyYW5zbGF0ZVZhbHVlKCkKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50VHJhbnNsYXRl
OworICAgIHJldHVybiBtX2N1cnJlbnRUcmFuc2xhdGUtPmFzPEZsb2F0UG9pbnQ+KCk7CiB9CiAK
IGlubGluZSBTVkdab29tQW5kUGFuVHlwZSBTVkdTVkdFbGVtZW50Ojp6b29tQW5kUGFuKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkocmV2aXNpb24gMjMwNjQ3KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MzYsMTIgKzM2LDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmYgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHU3RyaW5nTGlzdFZhbHVl
cz47CiAgICAgdXNpbmcgTGlzdFdyYXBwZXJDYWNoZSA9IEFuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZjo6TGlzdFdyYXBwZXJDYWNoZTsKIAotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4g
Y3JlYXRlKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBTVkdTdHJpbmdMaXN0VmFsdWVzJiB2
YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHRWxlbWVudCYg
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3QoJmNvbnRleHRFbGVtZW50
LCB2YWx1ZXMpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0
ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmLCBTVkdQcm9wZXJ0eVJvbGUsIFNWR1N0cmlu
Z0xpc3RWYWx1ZXMmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYpCisgICAgc3RhdGljIFJlZjxT
VkdTdHJpbmdMaXN0PiBjcmVhdGUoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmJiwgU1ZHUHJv
cGVydHlSb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2Fj
aGUmKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMu
IEl0J3Mgb25seSBuZWVkZWQgdG8ga2VlcCBXaW5kb3dzIGNvbXBpbGluZy4KICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU1ZHU3RyaW5nTGlzdChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZH
U3RyaW5nTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIFNWR1N0cmluZ0xpc3QoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykKICAgICAgICAg
OiBTVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KGNvbnRl
eHRFbGVtZW50LCB2YWx1ZXMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RyaW5nTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM5
LDcgKzQwLDcgQEAgdm9pZCBTVkdTdHJpbmdMaXN0VmFsdWVzOjpyZXNldChjb25zdCBTdAogCiAg
ICAgLy8gQWRkIGVtcHR5IHN0cmluZywgaWYgbGlzdCBpcyBlbXB0eS4KICAgICBpZiAoaXNFbXB0
eSgpKQotICAgICAgICBhcHBlbmQoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIGFwcGVuZChTVkdW
YWx1ZTo6Y3JlYXRlPFN0cmluZz4oZW1wdHlTdHJpbmcoKSkpOwogfQogCiB2b2lkIFNWR1N0cmlu
Z0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZGF0YSwgVUNoYXIgZGVsaW1pdGVyKQpA
QCAtNTYsNyArNTcsNyBAQCB2b2lkIFNWR1N0cmluZ0xpc3RWYWx1ZXM6OnBhcnNlKGNvbnN0IFN0
CiAgICAgICAgICAgICBwdHIrKzsKICAgICAgICAgaWYgKHB0ciA9PSBzdGFydCkKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBhcHBlbmQoU3RyaW5nKHN0YXJ0LCBwdHIgLSBzdGFydCkpOwor
ICAgICAgICBhcHBlbmQoU1ZHVmFsdWU6OmNyZWF0ZTxTdHJpbmc+KFN0cmluZyhzdGFydCwgcHRy
IC0gc3RhcnQpKSk7CiAgICAgICAgIHNraXBPcHRpb25hbFNWR1NwYWNlc09yRGVsaW1pdGVyKHB0
ciwgZW5kLCBkZWxpbWl0ZXIpOwogICAgIH0KIH0KQEAgLTcwLDcgKzcxLDcgQEAgU3RyaW5nIFNW
R1N0cmluZ0xpc3RWYWx1ZXM6OnZhbHVlQXNTdHJpbgogICAgICAgICBpZiAoaSA+IDApCiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0
KGkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVuY2UoaSkpOwogICAgIH0KIAog
ICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdFZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0VmFsdWVzLmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHJpbmdMaXN0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMyw3
ICsxNCw3IEBACiAgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KICAqCiAgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG/iiKsKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
ICAqLwpAQCAtMjIsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgIlNWR1ZhbHVlTGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDcg
KzMzLDcgQEAgY2xhc3MgU1ZHU3RyaW5nTGlzdDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAogY2xh
c3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwogCi1jbGFzcyBTVkdTdHJpbmdMaXN0VmFsdWVzIGZpbmFs
IDogcHVibGljIFZlY3RvcjxTdHJpbmc+IHsKK2NsYXNzIFNWR1N0cmluZ0xpc3RWYWx1ZXMgZmlu
YWwgOiBwdWJsaWMgU1ZHVmFsdWVMaXN0PFN0cmluZz4gewogcHVibGljOgogICAgIFNWR1N0cmlu
Z0xpc3RWYWx1ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKICAgICAgICAg
OiBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW4KIH0KIAogU1ZHVGVzdHM6OlNWR1Rlc3RzKCkKLSAgICA6IG1f
cmVxdWlyZWRGZWF0dXJlcyhyZXF1aXJlZEZlYXR1cmVzQXR0cikKLSAgICAsIG1fcmVxdWlyZWRF
eHRlbnNpb25zKHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCi0gICAgLCBtX3N5c3RlbUxhbmd1YWdl
KHN5c3RlbUxhbmd1YWdlQXR0cikKKyAgICA6IG1fcmVxdWlyZWRGZWF0dXJlcyhTVkdTdHJpbmdM
aXN0VmFsdWVzKHJlcXVpcmVkRmVhdHVyZXNBdHRyKSkKKyAgICAsIG1fcmVxdWlyZWRFeHRlbnNp
b25zKFNWR1N0cmluZ0xpc3RWYWx1ZXMocmVxdWlyZWRFeHRlbnNpb25zQXR0cikpCisgICAgLCBt
X3N5c3RlbUxhbmd1YWdlKFNWR1N0cmluZ0xpc3RWYWx1ZXMoc3lzdGVtTGFuZ3VhZ2VBdHRyKSkK
IHsKIH0KIApAQCAtMTU0LDE2ICsxNTQsMTYgQEAgYm9vbCBTVkdUZXN0czo6aGFzRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZwogCiBib29sIFNWR1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKIHsKLSAgICBm
b3IgKGF1dG8mIGZlYXR1cmUgOiBtX3JlcXVpcmVkRmVhdHVyZXMudmFsdWUpIHsKLSAgICAgICAg
aWYgKGZlYXR1cmUuaXNFbXB0eSgpIHx8ICFzdXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5z
KGZlYXR1cmUpKQorICAgIGZvciAoY29uc3QgYXV0byYgZmVhdHVyZSA6IG1fcmVxdWlyZWRGZWF0
dXJlcy52YWx1ZS0+YXM8U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKSkgeworICAgICAgICBpZiAoZmVh
dHVyZS0+YXM8U3RyaW5nPigpLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZXMoKS5j
b250YWlucyhmZWF0dXJlLT5hczxTdHJpbmc+KCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbV9zeXN0ZW1MYW5ndWFnZS52YWx1
ZSkgewotICAgICAgICBpZiAobGFuZ3VhZ2UgIT0gZGVmYXVsdExhbmd1YWdlKCkuc3Vic3RyaW5n
KDAsIDIpKQorICAgIGZvciAoY29uc3QgYXV0byYgbGFuZ3VhZ2UgOiBtX3N5c3RlbUxhbmd1YWdl
LnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpKSB7CisgICAgICAgIGlmIChsYW5ndWFn
ZS0+YXM8U3RyaW5nPigpICE9IGRlZmF1bHRMYW5ndWFnZSgpLnN1YnN0cmluZygwLCAyKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgZm9yIChhdXRvJiBleHRlbnNpb24g
OiBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZSkgewotICAgICAgICBpZiAoIWhhc0V4dGVuc2lv
bihleHRlbnNpb24pKQorICAgIGZvciAoY29uc3QgYXV0byYgZXh0ZW5zaW9uIDogbV9yZXF1aXJl
ZEV4dGVuc2lvbnMudmFsdWUtPmFzPFNWR1N0cmluZ0xpc3RWYWx1ZXM+KCkpIHsKKyAgICAgICAg
aWYgKCFoYXNFeHRlbnNpb24oZXh0ZW5zaW9uLT5hczxTdHJpbmc+KCkpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3MiwxMSArMTcyLDEx
IEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogdm9pZCBTVkdUZXN0czo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEZlYXR1
cmVzQXR0cikKLSAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLnJlc2V0KHZhbHVlKTsK
KyAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVz
PigpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEV4dGVu
c2lvbnNBdHRyKQotICAgICAgICBtX3JlcXVpcmVkRXh0ZW5zaW9ucy52YWx1ZS5yZXNldCh2YWx1
ZSk7CisgICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0
VmFsdWVzPigpLnJlc2V0KHZhbHVlKTsKICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1M
YW5ndWFnZUF0dHIpCi0gICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2UudmFsdWUucmVzZXQodmFsdWUp
OworICAgICAgICBtX3N5c3RlbUxhbmd1YWdlLnZhbHVlLT5hczxTVkdTdHJpbmdMaXN0VmFsdWVz
PigpLnJlc2V0KHZhbHVlKTsKIH0KIAogYm9vbCBTVkdUZXN0czo6aXNLbm93bkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMjA4LDcgKzIwOCw3IEBAIHZv
aWQgU1ZHVGVzdHM6OnN5bmNocm9uaXplQXR0cmlidXRlKFNWR0UKIHsKICAgICBpZiAoIXByb3Bl
cnR5LnNob3VsZFN5bmNocm9uaXplKQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXF1aXJlZEZl
YXR1cmVzLnN5bmNocm9uaXplKCZjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVy
dHkudmFsdWUudmFsdWVBc1N0cmluZygpKTsKKyAgICBtX3JlcXVpcmVkRmVhdHVyZXMuc3luY2hy
b25pemUoJmNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eS52YWx1ZS0+YXM8
U1ZHU3RyaW5nTGlzdFZhbHVlcz4oKS52YWx1ZUFzU3RyaW5nKCkpOwogfQogCiB2b2lkIFNWR1Rl
c3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoU1ZHRWxlbWVudCYgY29udGV4dEVsZW1l
bnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDggQEAgRU5EX1JFR0lTVEVS
X0FOSU1BVEVEX1BST1BFUlRJRVMKIAogU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogU1ZHR3JhcGhpY3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwg
bV90ZXh0TGVuZ3RoKExlbmd0aE1vZGVPdGhlcikKLSAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0
aChMZW5ndGhNb2RlT3RoZXIpCisgICAgLCBtX3RleHRMZW5ndGgoU1ZHTGVuZ3RoVmFsdWUoTGVu
Z3RoTW9kZU90aGVyKSkKKyAgICAsIG1fc3BlY2lmaWVkVGV4dExlbmd0aChTVkdMZW5ndGhWYWx1
ZShMZW5ndGhNb2RlT3RoZXIpKQogICAgICwgbV9sZW5ndGhBZGp1c3QoU1ZHTGVuZ3RoQWRqdXN0
U3BhY2luZykKIHsKICAgICByZWdpc3RlckFuaW1hdGVkUHJvcGVydGllc0ZvclNWR1RleHRDb250
ZW50RWxlbWVudCgpOwpAQCAtOTgsNyArOTgsNyBAQCBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNW
R1RleHRDb250ZW50RWxlCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFNWR0xlbmd0aFZh
bHVlPiBkZWZhdWx0VGV4dExlbmd0aChMZW5ndGhNb2RlT3RoZXIpOwogICAgIGlmIChtX3NwZWNp
ZmllZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5ndGgpCi0gICAgICAgIG1fdGV4dExlbmd0
aC52YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1
dGVkVGV4dExlbmd0aCgpKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxTVkdMZW5n
dGhWYWx1ZT4oKS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENv
bXB1dGVkVGV4dExlbmd0aCgpKTsKIAogICAgIG1fdGV4dExlbmd0aC5zaG91bGRTeW5jaHJvbml6
ZSA9IHRydWU7CiAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTVkdBbmltYXRlZExl
bmd0aD4obG9va3VwT3JDcmVhdGVUZXh0TGVuZ3RoV3JhcHBlcih0aGlzKSk7CkBAIC0xNjEsNyAr
MTYxLDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudAogaW50IFNW
R1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oU1ZHUG9pbnQmIHBvaW50
KQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7Ci0gICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJB
dFBvc2l0aW9uKHBvaW50LnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgIHJldHVybiBTVkdUZXh0
UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihwb2ludC52YWx1ZVJl
ZmVyZW5jZSgpKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50
OjpzZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzKQpAQCAt
MjMyLDcgKzIzMiw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnUK
ICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUgPiAwKQogICAgICAgICAgICAgc2V0TGVuZ3RoQWRq
dXN0QmFzZVZhbHVlKHByb3BlcnR5VmFsdWUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBTVkdO
YW1lczo6dGV4dExlbmd0aEF0dHIpCi0gICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZSA9IFNWR0xl
bmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwg
Rm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKKyAgICAgICAgbV90ZXh0TGVuZ3RoLnZhbHVlLT5hczxT
VkdMZW5ndGhWYWx1ZT4oKSA9IFNWR0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90
aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKTsKIAogICAgIHJl
cG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKQEAg
LTI0OCw3ICsyNDgsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRl
CiAgICAgfQogCiAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0ZXh0TGVuZ3RoQXR0cikK
LSAgICAgICAgbV9zcGVjaWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLnZhbHVlOworICAg
ICAgICBtX3NwZWNpZmllZFRleHRMZW5ndGggPSBtX3RleHRMZW5ndGgudmFsdWUtPmFzPFNWR0xl
bmd0aFZhbHVlPigpOwogCiAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFNWR01hdHJpeD4gU1ZHVHJhbnNm
b3JtOjptYXRyaXgoKQogewotICAgIHJldHVybiBTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoKnRo
aXMsIHByb3BlcnR5UmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOworICAgIHJldHVybiBTVkdNYXRy
aXhUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIHZhbHVlUmVmZXJlbmNlKCkuc3ZnTWF0cml4KCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5z
Zm9ybVZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0
ZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZhbHVlKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNm
b3JtPiBjcmVhdGUoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtKGFuaW1hdGVkUHJvcGVydHks
IHJvbGUsIHZhbHVlKSk7CiAgICAgfQpAQCAtNTIsMTQgKzUyLDE0IEBAIHB1YmxpYzoKIAogICAg
IHVuc2lnbmVkIHNob3J0IHR5cGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVm
ZXJlbmNlKCkudHlwZSgpOworICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS50eXBlKCk7
CiAgICAgfQogCiAgICAgUmVmPFNWR01hdHJpeD4gbWF0cml4KCk7CiAKICAgICBmbG9hdCBhbmds
ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5hbmdsZSgpOwor
ICAgICAgICByZXR1cm4gdmFsdWVSZWZlcmVuY2UoKS5hbmdsZSgpOwogICAgIH0KIAogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldE1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKQEAgLTY3LDcgKzY3
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAg
cHJvcGVydHlSZWZlcmVuY2UoKS5zZXRNYXRyaXgobWF0cml4LnByb3BlcnR5UmVmZXJlbmNlKCkp
OworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldE1hdHJpeChtYXRyaXgudmFsdWVSZWZlcmVu
Y2UoKSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CisgICAg
ICAgIHZhbHVlUmVmZXJlbmNlKCkuc2V0VHJhbnNsYXRlKHR4LCB0eSk7CiAgICAgICAgIGNvbW1p
dENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CkBAIC04OSw3ICs4OSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVm
ZXJlbmNlKCkuc2V0U2NhbGUoc3gsIHN5KTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRT
Y2FsZShzeCwgc3kpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0Um90YXRlKGFuZ2xlLCBj
eCwgY3kpOworICAgICAgICB2YWx1ZVJlZmVyZW5jZSgpLnNldFJvdGF0ZShhbmdsZSwgY3gsIGN5
KTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEx
MSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFNrZXdYKGFuZ2xlKTsKKyAgICAgICAgdmFs
dWVSZWZlcmVuY2UoKS5zZXRTa2V3WChhbmdsZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwog
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMjIsMTQgKzEyMiwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9N
b2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgp
LnNldFNrZXdZKGFuZ2xlKTsKKyAgICAgICAgdmFsdWVSZWZlcmVuY2UoKS5zZXRTa2V3WShhbmds
ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogCiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmlt
YXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgU1ZHVHJhbnNmb3JtVmFsdWUmIHZh
bHVlKQorICAgIFNWR1RyYW5zZm9ybShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3Bl
cnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUp
CiAgICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybVZhbHVlPigmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIzLDcgQEAKIAog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTMxLDIwICszMywxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmID0gU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RW
YWx1ZXM+OwogICAgIHVzaW5nIExpc3RXcmFwcGVyQ2FjaGUgPSBBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmY6Okxpc3RXcmFwcGVyQ2FjaGU7CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9y
bUxpc3Q+IGNyZWF0ZShBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMs
IExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3Jt
TGlzdD4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0
eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcywg
TGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcywg
d3JhcHBlcnMpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4g
Y3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChTVkdNYXRyaXgmIG1hdHJpeCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+Y3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOworICAgICAgICByZXR1cm4gdmFsdWVzUmVm
ZXJlbmNlKCkuY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChtYXRyaXgpOwogICAgIH0KIAog
ICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxTVkdUcmFuc2Zvcm0+PiBjb25zb2xpZGF0ZSgpCiAgICAg
ewotICAgICAgICBBU1NFUlQobV92YWx1ZXMpOwogICAgICAgICBBU1NFUlQobV93cmFwcGVycyk7
CiAKICAgICAgICAgYXV0byByZXN1bHQgPSBjYW5BbHRlckxpc3QoKTsKQEAgLTUyLDIzICs1Miwy
MyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KTsKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKLSAgICAg
ICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAg
ICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkp
OwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBsaXN0IHdhcyBlbXB0eSwgdGhlbiBhIHZhbHVl
IG9mIG51bGwgaXMgcmV0dXJuZWQuCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKQor
ICAgICAgICBpZiAodmFsdWVzUmVmZXJlbmNlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzKDApOwogICAgICAgICAK
LSAgICAgICAgUmVmUHRyPFNWR1RyYW5zZm9ybT4gd3JhcHBlciA9IG1fdmFsdWVzLT5jb25zb2xp
ZGF0ZSgpOworICAgICAgICBSZWZQdHI8U1ZHVHJhbnNmb3JtPiB3cmFwcGVyID0gdmFsdWVzUmVm
ZXJlbmNlKCkuY29uc29saWRhdGUoKTsKICAgICAgICAgbV93cmFwcGVycy0+YXBwZW5kKHdyYXBw
ZXItPmNyZWF0ZVdlYWtQdHIoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkg
PT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZSh3
cmFwcGVyKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHVHJhbnNmb3JtTGlzdChBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKQorICAgIFNWR1RyYW5zZm9ybUxpc3QoQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3QgUmVmUHRyPFNW
R1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycykKICAgICAgICAgOiBT
VkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGFuaW1hdGVkUHJv
cGVydHksIHJvbGUsIHZhbHVlcywgd3JhcHBlcnMpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVlcy5jcHAJKHJldmlzaW9uIDIz
MDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTQxLDcgKzQyLDcgQEAgUmVmPFNWR1RyYW5zZm9ybT4gU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWUgdHJhbnNmb3JtKG1hdHJpeCk7CiAg
ICAgY2xlYXIoKTsKLSAgICBhcHBlbmQodHJhbnNmb3JtKTsKKyAgICBhcHBlbmQoU1ZHVmFsdWU6
OmNyZWF0ZTxTVkdUcmFuc2Zvcm1WYWx1ZT4odHJhbnNmb3JtKSk7CiAgICAgcmV0dXJuIFNWR1Ry
YW5zZm9ybTo6Y3JlYXRlKHRyYW5zZm9ybSk7CiB9CiAKQEAgLTUyLDcgKzUzLDcgQEAgYm9vbCBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzOjpjb25jYXRlbmF0ZQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICByZXN1
bHQgKj0gYXQoaSkubWF0cml4KCk7CisgICAgICAgIHJlc3VsdCAqPSBhdFJlZmVyZW5jZShpKS5t
YXRyaXgoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjUsNyArNjYsNyBAQCBTdHJpbmcg
U1ZHVHJhbnNmb3JtTGlzdFZhbHVlczo6dmFsdWVBc1N0CiAgICAgICAgIGlmIChpID4gMCkKICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
YXQoaSkudmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXRSZWZlcmVu
Y2UoaSkudmFsdWVBc1N0cmluZygpKTsKICAgICB9CiAKICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3RWYWx1ZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
TGlzdFZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxOCArMjAsMTkgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgotI2luY2x1ZGUgIlNWR1Ry
YW5zZm9ybS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1WYWx1ZS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlTGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBTVkdMaXN0UHJvcGVydHlUZWFyT2Zm
OwogCitjbGFzcyBTVkdNYXRyaXg7CitjbGFzcyBTVkdUcmFuc2Zvcm07CiBjbGFzcyBTVkdUcmFu
c2Zvcm1MaXN0OwogCi1jbGFzcyBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzIGZpbmFsIDogcHVibGlj
IFZlY3RvcjxTVkdUcmFuc2Zvcm1WYWx1ZSwgMT4geworY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdFZh
bHVlcyBmaW5hbCA6IHB1YmxpYyBTVkdWYWx1ZUxpc3Q8U1ZHVHJhbnNmb3JtVmFsdWU+IHsKIHB1
YmxpYzoKICAgICBSZWY8U1ZHVHJhbnNmb3JtPiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4
KFNWR01hdHJpeCYpIGNvbnN0OwogICAgIFJlZjxTVkdUcmFuc2Zvcm0+IGNvbnNvbGlkYXRlKCk7
CkBAIC01MCw3ICs1MSw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R1QKICAgICAgICAgdmFsdWVzLnBhcnNlKHN0cmluZyk7CiAgICAgICAgIHJldHVybiB2YWx1ZXM7
CiAgICAgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+
IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KICAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIGxpc3QpIHsgcmV0dXJuIGxpc3Qu
dmFsdWVBc1N0cmluZygpOyB9CiAKICAgICB1c2luZyBMaXN0SXRlbVR5cGUgPSBTVkdUcmFuc2Zv
cm1WYWx1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1WYWx1ZS5oCShyZXZp
c2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtVmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtOTAsNSArOTAsMTAgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTVkdUcmFuc2ZvcgogewogICAgIHJldHVybiAhKGEgPT0gYik7CiB9CisgICAgCit0ZW1w
bGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdUcmFuc2Zvcm1WYWx1ZT4geworICAg
IHN0YXRpYyBTVkdUcmFuc2Zvcm1WYWx1ZSBpbml0aWFsVmFsdWUoKSB7IHJldHVybiB7IH07IH0K
KyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1RyYW5zZm9ybVZhbHVlJiB0cmFu
c2Zvcm0pIHsgcmV0dXJuIHRyYW5zZm9ybS52YWx1ZUFzU3RyaW5nKCk7IH0KK307CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1h
YmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJs
ZS5jcHAJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1hYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZHVHJh
bnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHQKICAgICAgICAgaWYgKCFwYXJzZVRyYW5zZm9y
bVZhbHVlKHR5cGUsIGN1cnJUcmFuc2Zvcm0sIGVuZCwgdHJhbnNmb3JtKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICBsaXN0LmFwcGVuZCh0cmFuc2Zvcm0pOworICAgICAg
ICBsaXN0LmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPFNWR1RyYW5zZm9ybVZhbHVlPih0cmFuc2Zv
cm0pKTsKICAgICAgICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGN1cnJUcmFuc2Zvcm0sIGVuZCk7
CiAgICAgICAgIGlmIChjdXJyVHJhbnNmb3JtIDwgZW5kICYmICpjdXJyVHJhbnNmb3JtID09ICcs
JykgewogICAgICAgICAgICAgZGVsaW1QYXJzZWQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zh
bHVlLmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw0MSArMjYsMTg2IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIlNWR0FuZ2xlVmFsdWUuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhM
aXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdN
YXJrZXJUeXBlcy5oIgorI2luY2x1ZGUgIlNWR01hdHJpeFZhbHVlLmgiCiAjaW5jbHVkZSAiU1ZH
TnVtYmVyTGlzdFZhbHVlcy5oIgogI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCisjaW5j
bHVkZSAiU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdQb2ludExpc3RWYWx1
ZXMuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRl
ICJTVkdQcm9wZXJ0eUluZm8uaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eVRyYWl0cy5oIgorI2lu
Y2x1ZGUgIlNWR1N0cmluZ0xpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0
VmFsdWVzLmgiCisjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtVmFsdWUuaCIKIAogI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgU1ZHVmFsdWVWYXJp
YW50ID0gVmFyaWFudDwKLSAgICBzdGQ6OnBhaXI8U1ZHQW5nbGVWYWx1ZSwgdW5zaWduZWQ+KiwK
LSAgICBib29sKiwKLSAgICBDb2xvciosCi0gICAgdW5zaWduZWQqLAotICAgIGludCosCi0gICAg
c3RkOjpwYWlyPGludCwgaW50PiosCi0gICAgU1ZHTGVuZ3RoVmFsdWUqLAotICAgIFNWR0xlbmd0
aExpc3RWYWx1ZXMqLAotICAgIGZsb2F0KiwKLSAgICBTVkdOdW1iZXJMaXN0VmFsdWVzKiwKLSAg
ICBzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0PiosCi0gICAgU1ZHUGF0aEJ5dGVTdHJlYW0qLAotICAg
IFNWR1BvaW50TGlzdFZhbHVlcyosCi0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKiwK
LSAgICBGbG9hdFJlY3QqLAotICAgIFN0cmluZyosCi0gICAgU1ZHVHJhbnNmb3JtTGlzdFZhbHVl
cyoKKyAgICBTVkdBbmdsZVZhbHVlLAorICAgIGJvb2wsCisgICAgQ29sb3IsCisgICAgdW5zaWdu
ZWQsCisgICAgaW50LAorICAgIFNWR0xlbmd0aFZhbHVlLAorICAgIFNWR0xlbmd0aExpc3RWYWx1
ZXMsCisgICAgU1ZHTWF0cml4VmFsdWUsCisgICAgZmxvYXQsCisgICAgU1ZHTnVtYmVyTGlzdFZh
bHVlcywKKyAgICBTVkdQYXRoQnl0ZVN0cmVhbSwKKyAgICBSZWZQdHI8U1ZHUGF0aFNlZz4sCisg
ICAgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMsCisgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
LAorICAgIEZsb2F0UG9pbnQsCisgICAgU1ZHUG9pbnRMaXN0VmFsdWVzLAorICAgIEZsb2F0UmVj
dCwKKyAgICBTdHJpbmcsCisgICAgU1ZHU3RyaW5nTGlzdFZhbHVlcywKKyAgICBTVkdUcmFuc2Zv
cm1WYWx1ZSwKKyAgICBTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzCiA+OwogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBQcm9wZXJ0eVR5cGU+CitzdHJ1Y3QgU1ZHVHJhaXRIYXNUb1N0cmluZyB7Citwcml2YXRl
OgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBzdGQ6OnRydWVfdHlwZSB0ZXN0KGRl
Y2x0eXBlKCZTVkdQcm9wZXJ0eVRyYWl0czxUPjo6dG9TdHJpbmcpKTsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUodGVz
dDxQcm9wZXJ0eVR5cGU+KDApKSwgc3RkOjp0cnVlX3R5cGU+Ojp2YWx1ZTsKK307CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KK3N0cnVjdCBTVkdUcmFpdEhhc1BhcnNlIHsKK3By
aXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHN0ZDo6dHJ1ZV90eXBlIHRl
c3QoZGVjbHR5cGUoJlNWR1Byb3BlcnR5VHJhaXRzPFQ+OjpwYXJzZSkpOworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0YXRpYyBzdGQ6OmZhbHNlX3R5cGUgdGVzdCguLi4pOworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfc2FtZTxkZWNsdHlwZSh0
ZXN0PFByb3BlcnR5VHlwZT4oMCkpLCBzdGQ6OnRydWVfdHlwZT46OnZhbHVlOworfTsKKworY2xh
c3MgU1ZHVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdWYWx1ZT4sIHB1YmxpYyBTVkdWYWx1
ZVZhcmlhbnQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4K
KyAgICBzdGF0aWMgUmVmUHRyPFNWR1ZhbHVlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZTxQcm9wZXJ0eVR5cGU+KFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46
OmluaXRpYWxWYWx1ZSgpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlU
eXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4q
ID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgUmVmUHRyPFNWR1ZhbHVlPiBjcmVhdGUoY29uc3QgUHJv
cGVydHlUeXBlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZH
VmFsdWUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCY+KHZhbHVlKSkpOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0
ZDo6aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMg
UmVmUHRyPFNWR1ZhbHVlPiBjcmVhdGUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHVmFsdWUodmFsdWUpKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgUmVmUHRyPFNWR1ZhbHVlPiBjcmVhdGUoY29uc3QgU1ZHVmFsdWUmIHZhbHVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdWYWx1ZSh2YWx1ZSkpOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KKyAgICBib29sIGlz
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFBy
b3BlcnR5VHlwZT4oKnRoaXMpIHx8IChzdGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWUg
JiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
ZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBjb25zdCBQcm9wZXJ0
eVR5cGUmIGFzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPHVuc2lnbmVkPigqdGhpcykpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBQcm9wZXJ0eVR5cGUmPihXVEY6OmdldDx1bnNpZ25lZD4oKnRoaXMpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFz
dGQ6OmlzX2VudW08UHJvcGVydHlUeXBlPjo6dmFsdWU+KiA9IG51bGxwdHI+CisgICAgY29uc3Qg
UHJvcGVydHlUeXBlJiBhcygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVy
dHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFByb3BlcnR5VHlwZT4oKnRoaXMp
OworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19lbnVtPFByb3BlcnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAg
IFByb3BlcnR5VHlwZSYgYXMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8dW5zaWduZWQ+KCp0aGlzKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PFByb3BlcnR5VHlwZSY+KFdURjo6Z2V0PHVuc2lnbmVkPigqdGhpcykpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6
aXNfZW51bTxQcm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBQcm9wZXJ0eVR5
cGUmIGFzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpczxQcm9wZXJ0eVR5cGU+KCkpOworICAg
ICAgICByZXR1cm4gV1RGOjpnZXQ8UHJvcGVydHlUeXBlPigqdGhpcyk7CisgICAgfQorCisgICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0
KFsmXShjb25zdCBhdXRvJiB2YWx1ZSkgeworICAgICAgICAgICAgdXNpbmcgUHJvcGVydHlUeXBl
ID0gc3RkOjpkZWNheV90PGRlY2x0eXBlKHZhbHVlKT47CisgICAgICAgICAgICByZXR1cm4gdG9T
dHJpbmc8UHJvcGVydHlUeXBlPih2YWx1ZSk7CisgICAgICAgIH0sIHN0YXRpY19jYXN0PGNvbnN0
IFNWR1ZhbHVlVmFyaWFudCY+KCp0aGlzKSk7CisgICAgfQorCisgICAgYm9vbCBwYXJzZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgewor
ICAgICAgICByZXR1cm4gV1RGOjp2aXNpdChbJl0oYXV0byYgdmFsdWUpIHsKKyAgICAgICAgICAg
IHVzaW5nIFByb3BlcnR5VHlwZSA9IHN0ZDo6ZGVjYXlfdDxkZWNsdHlwZSh2YWx1ZSk+OworICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlPFByb3BlcnR5VHlwZT4odmFsdWUsIGF0dHJOYW1lLCBzdHJp
bmcpOworICAgICAgICB9LCBzdGF0aWNfY2FzdDxTVkdWYWx1ZVZhcmlhbnQmPigqdGhpcykpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Cisg
ICAgZXhwbGljaXQgU1ZHVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAg
OiBTVkdWYWx1ZVZhcmlhbnQodmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQoaXM8UHJvcGVy
dHlUeXBlPigpKTsKKyAgICB9CisKKyAgICBTVkdWYWx1ZShjb25zdCBTVkdWYWx1ZSYgdmFsdWUp
CisgICAgICAgIDogU1ZHVmFsdWVWYXJpYW50KHN0YXRpY19jYXN0PGNvbnN0IFNWR1ZhbHVlVmFy
aWFudCY+KHZhbHVlKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRleCgpID09IHZhbHVlLmlu
ZGV4KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZSwgc3Rk
OjplbmFibGVfaWZfdDxTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3BlcnR5VHlwZT46OnZhbHVlPiog
PSBudWxscHRyPgorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgUHJvcGVydHlUeXBl
JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0
eVR5cGU+Ojp0b1N0cmluZyh2YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlLCBzdGQ6OmVuYWJsZV9pZl90PCFTVkdUcmFpdEhhc1RvU3RyaW5nPFByb3Bl
cnR5VHlwZT46OnZhbHVlPiogPSBudWxscHRyPgorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmco
Y29uc3QgUHJvcGVydHlUeXBlJikKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGUsIHN0ZDo6ZW5hYmxlX2lmX3Q8U1ZHVHJhaXRIYXNQYXJzZTxQ
cm9wZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgYm9vbCBwYXJzZShQ
cm9wZXJ0eVR5cGUmIHZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpwYXJzZShhdHRyTmFtZSwgc3RyaW5nKSkgeworICAg
ICAgICAgICAgdmFsdWUgPSAqcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFByb3BlcnR5VHlwZSwgc3RkOjplbmFibGVfaWZfdDwhU1ZHVHJhaXRIYXNQYXJzZTxQcm9w
ZXJ0eVR5cGU+Ojp2YWx1ZT4qID0gbnVsbHB0cj4KKyAgICBzdGF0aWMgYm9vbCBwYXJzZShQcm9w
ZXJ0eVR5cGUmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikKKyAgICB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZhbHVlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWYWx1
ZUxpc3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmFsdWVMaXN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdWYWx1ZTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHVmFsdWVMaXN0IDogcHVibGlj
IFZlY3RvcjxSZWZQdHI8U1ZHVmFsdWU+PiB7CitwdWJsaWM6CisgICAgU1ZHVmFsdWVMaXN0KCkg
PSBkZWZhdWx0OworCisgICAgU1ZHVmFsdWVMaXN0KGNvbnN0IFNWR1ZhbHVlTGlzdCYgb3RoZXIp
CisgICAgICAgIDogVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+KG90aGVyLmRlZXBDb3B5KCkpCisg
ICAgeworICAgIH0KKworICAgIFNWR1ZhbHVlTGlzdCYgb3BlcmF0b3I9KGNvbnN0IFNWR1ZhbHVl
TGlzdCYgb3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVmFsdWVM
aXN0Jj4oVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+OjpvcGVyYXRvcj0ob3RoZXIuZGVlcENvcHko
KSkpOworICAgIH0KKworICAgIG9wZXJhdG9yIFZlY3RvcjxQcm9wZXJ0eVR5cGU+KCkgY29uc3QK
KyAgICB7CisgICAgICAgIFZlY3RvcjxQcm9wZXJ0eVR5cGU+IHZhbHVlczsKKyAgICAgICAgZm9y
IChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2
YWx1ZS0+dGVtcGxhdGUgYXM8UHJvcGVydHlUeXBlPigpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
czsKKyAgICB9CisKKyAgICB2b2lkIHJlc2l6ZShzaXplX3QgbmV3U2l6ZSkKKyAgICB7CisgICAg
ICAgIHNpemVfdCBpbmRleCA9IHNpemUoKTsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1
ZT4+OjpyZXNpemUobmV3U2l6ZSk7CisgICAgICAgIGZvciAoOyBpbmRleCA8IG5ld1NpemU7ICsr
aW5kZXgpCisgICAgICAgICAgICBhdChpbmRleCkgPSBjcmVhdGVWYWx1ZSgpOworICAgIH0KKwor
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSBjb25zdCB7
IHJldHVybiBhdChpbmRleCktPnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorICAgIFBy
b3BlcnR5VHlwZSYgYXRSZWZlcmVuY2Uoc2l6ZV90IGluZGV4KSB7IHJldHVybiBhdChpbmRleCkt
PnRlbXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKTsgfQorCisgICAgY29uc3QgUHJvcGVydHlUeXBl
JiBmaXJzdFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIGF0UmVmZXJlbmNlKDApOyB9CisgICAg
UHJvcGVydHlUeXBlJiBmaXJzdFJlZmVyZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKDApOyB9
CisKKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGxhc3RSZWZlcmVuY2UoKSBjb25zdCB7IHJldHVy
biBhdFJlZmVyZW5jZShzaXplKCkgLSAxKTsgfQorICAgIFByb3BlcnR5VHlwZSYgbGFzdFJlZmVy
ZW5jZSgpIHsgcmV0dXJuIGF0UmVmZXJlbmNlKHNpemUoKSAtIDEpOyB9CisgICAgCitwcml2YXRl
OgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQgPSBTVkdWYWx1ZT4KKyAgICBzdGF0aWMgUmVmUHRy
PFQ+IGNyZWF0ZVZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBUOjp0ZW1wbGF0ZSBjcmVh
dGU8UHJvcGVydHlUeXBlPigpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
ID0gU1ZHVmFsdWU+CisgICAgc3RhdGljIFJlZlB0cjxUPiBjb3B5VmFsdWUoY29uc3QgUmVmUHRy
PFQ+JiBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBUOjpjcmVhdGUoKm90aGVyKTsKKyAg
ICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFNWR1ZhbHVlPj4gZGVlcENvcHkoKSBjb25zdAorICAg
IHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxTVkdWYWx1ZT4+IHZhbHVlczsKKyAgICAgICAgZm9y
IChjb25zdCBhdXRvJiB2YWx1ZSA6ICp0aGlzKQorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChj
b3B5VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9Cit9OworCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDIzMDY0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDcgKzQ0LDcgQEAgRU5EX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMKIGlu
bGluZSBTVkdWaWV3RWxlbWVudDo6U1ZHVmlld0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKICAgICAsIG1fem9vbUFuZFBhbihTVkdab29tQW5kUGFuTWFnbmlmeSkKLSAgICAs
IG1fdmlld1RhcmdldChTVkdOYW1lczo6dmlld1RhcmdldEF0dHIpCisgICAgLCBtX3ZpZXdUYXJn
ZXQoU1ZHVmFsdWU6OmNyZWF0ZShTVkdTdHJpbmdMaXN0VmFsdWVzKFNWR05hbWVzOjp2aWV3VGFy
Z2V0QXR0cikpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjp2aWV3VGFnKSk7
CiAgICAgcmVnaXN0ZXJBbmltYXRlZFByb3BlcnRpZXNGb3JTVkdWaWV3RWxlbWVudCgpOwpAQCAt
NjMsNyArNjMsNyBAQCBSZWY8U1ZHU3RyaW5nTGlzdD4gU1ZHVmlld0VsZW1lbnQ6OnZpZXdUCiB2
b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjp2aWV3VGFyZ2V0QXR0cikKLSAgICAgICAgbV92aWV3VGFyZ2V0LnJlc2V0KHZhbHVlKTsK
KyAgICAgICAgbV92aWV3VGFyZ2V0LT5hczxTVkdTdHJpbmdMaXN0VmFsdWVzPigpLnJlc2V0KHZh
bHVlKTsKIAogICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMs
IG5hbWUsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZp
c2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRJRVMKIAogICAgIFNWR1pvb21BbmRQYW5UeXBlIG1fem9vbUFuZFBhbjsK
LSAgICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsKKyAgICBSZWZQdHI8U1ZHVmFs
dWU+IG1fdmlld1RhcmdldDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksOSBA
QCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIFNWR1ZpZXdTcGVjOjp0cmFuCiAKIFNWR1ZpZXdTcGVj
OjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4
dEVsZW1lbnQoJmNvbnRleHRFbGVtZW50KQorICAgICwgbV90cmFuc2Zvcm0oU1ZHVmFsdWU6OmNy
ZWF0ZTxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpKQorICAgICwgbV92aWV3Qm94KFNWR1ZhbHVl
OjpjcmVhdGU8RmxvYXRSZWN0PigpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR1Zh
bHVlOjpjcmVhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpKQogewogfQogCkBAIC0x
MDgsMTcgKzExMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTVkdWaWV3U3BlYzo6c2V0Wm9vbUFu
CiAKIFN0cmluZyBTVkdWaWV3U3BlYzo6dHJhbnNmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz46OnRvU3RyaW5n
KG1fdHJhbnNmb3JtKTsKKyAgICByZXR1cm4gbV90cmFuc2Zvcm0tPnRvU3RyaW5nKCk7CiB9CiAK
IFN0cmluZyBTVkdWaWV3U3BlYzo6dmlld0JveFN0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46OnRvU3RyaW5nKG1fdmlld0JveCk7CisgICAg
cmV0dXJuIG1fdmlld0JveC0+dG9TdHJpbmcoKTsKIH0KIAogU3RyaW5nIFNWR1ZpZXdTcGVjOjpw
cmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6dG9TdHJpbmcobV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvKTsKKyAgICByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT50b1N0cmlu
ZygpOwogfQogCiBTVkdFbGVtZW50KiBTVkdWaWV3U3BlYzo6dmlld1RhcmdldCgpIGNvbnN0CkBA
IC0xNzcsOSArMTgwLDkgQEAgUmVmPFNWR0FuaW1hdGVkUHJvcGVydHk+IFNWR1ZpZXdTcGVjOjps
bwogdm9pZCBTVkdWaWV3U3BlYzo6cmVzZXQoKQogewogICAgIG1fem9vbUFuZFBhbiA9IFNWR1pv
b21BbmRQYW5NYWduaWZ5OwotICAgIG1fdHJhbnNmb3JtLmNsZWFyKCk7Ci0gICAgbV92aWV3Qm94
ID0geyB9OwotICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpbyA9IHsgfTsKKyAgICBtX3RyYW5zZm9y
bS0+YXM8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4oKS5jbGVhcigpOworICAgIG1fdmlld0JveC0+
YXM8RmxvYXRSZWN0PigpID0geyB9OworICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpID0geyB9OwogICAgIG1fdmlld1RhcmdldFN0cmlu
ZyA9IGVtcHR5U3RyaW5nKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjQsNyBAQCBib29sIFNWR1ZpZXdT
cGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0IFN0CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVj
ID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgIFNWR1RyYW5z
Zm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKG1fdHJhbnNmb3JtLCBjdXJyVmlld1Nw
ZWMsIGVuZCwgU1ZHVHJhbnNmb3JtYWJsZTo6RG9Ob3RDbGVhckxpc3QpOworICAgICAgICAgICAg
U1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUobV90cmFuc2Zvcm0tPmFz
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KCksIGN1cnJWaWV3U3BlYywgZW5kLCBTVkdUcmFuc2Zv
cm1hYmxlOjpEb05vdENsZWFyTGlzdCk7CiAgICAgICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49
IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcpJykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3
U3BlYy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1Nw
ZWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTcgKzU1LDE3IEBAIHB1YmxpYzoKIAogICAgIC8v
IEN1c3RvbSBub24tYW5pbWF0ZWQgJ3RyYW5zZm9ybScgcHJvcGVydHkuCiAgICAgUmVmUHRyPFNW
R1RyYW5zZm9ybUxpc3Q+IHRyYW5zZm9ybSgpOwotICAgIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMg
dHJhbnNmb3JtQmFzZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICBT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzIHRyYW5zZm9ybUJhc2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNmb3JtLT5hczxTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzPigpOyB9CiAKICAgICAvLyBD
dXN0b20gYW5pbWF0ZWQgJ3ZpZXdCb3gnIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRl
ZFJlY3Q+IHZpZXdCb3hBbmltYXRlZCgpOwotICAgIEZsb2F0UmVjdCYgdmlld0JveCgpIHsgcmV0
dXJuIG1fdmlld0JveDsgfQotICAgIHZvaWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9h
dFJlY3QmIHZpZXdCb3gpIHsgbV92aWV3Qm94ID0gdmlld0JveDsgfQorICAgIEZsb2F0UmVjdCYg
dmlld0JveCgpIHsgcmV0dXJuIG1fdmlld0JveC0+YXM8RmxvYXRSZWN0PigpOyB9CisgICAgdm9p
ZCBzZXRWaWV3Qm94QmFzZVZhbHVlKGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCkgeyB0aGlzLT52
aWV3Qm94KCkgPSB2aWV3Qm94OyB9CiAKICAgICAvLyBDdXN0b20gYW5pbWF0ZWQgJ3ByZXNlcnZl
QXNwZWN0UmF0aW8nIHByb3BlcnR5LgogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpOwotICAgIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJuIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpbzsgfQotICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1
ZShjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8p
IHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gcHJlc2VydmVBc3BlY3RSYXRpbzsgfQorICAgIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIHsgcmV0dXJu
IG1fcHJlc2VydmVBc3BlY3RSYXRpby0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigp
OyB9CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyB0aGlzLT5wcmVz
ZXJ2ZUFzcGVjdFJhdGlvKCkgPSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCYpOwpAQCAtODQsOSArODQsOSBAQCBw
cml2YXRlOgogCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAgICBTVkdab29t
QW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdab29tQW5kUGFuTWFnbmlmeSB9OwotICAgIFNW
R1RyYW5zZm9ybUxpc3RWYWx1ZXMgbV90cmFuc2Zvcm07Ci0gICAgRmxvYXRSZWN0IG1fdmlld0Jv
eDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlv
OworICAgIFJlZlB0cjxTVkdWYWx1ZT4gbV90cmFuc2Zvcm07CisgICAgUmVmUHRyPFNWR1ZhbHVl
PiBtX3ZpZXdCb3g7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87
CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRl
YXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NSwyMiArNTYsMTUgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmY8dW5zaWduZWQ+OjpzZXRCYXNl
VmFsKHByb3BlcnR5KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuaW1hdGVkRW51bWVy
YXRpb25Qcm9wZXJ0eVRlYXJPZmY8RW51bVR5cGU+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJv
cGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBFbnVtVHlwZSYgcHJvcGVydHkpCisgICAg
c3RhdGljIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBl
Pj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlw
ZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQo
Y29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmPEVudW1UeXBlPihjb250ZXh0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWdu
ZWQmPihwcm9wZXJ0eSkpKTsKLSAgICB9Ci0KLSAgICBFbnVtVHlwZSYgY3VycmVudEFuaW1hdGVk
VmFsdWUoKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQmIGFuaW1hdGVkVmFsdWUgPSBTVkdBbmlt
YXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD46OmN1cnJlbnRBbmltYXRlZFZhbHVl
KCk7Ci0gICAgICAgIEFTU0VSVChhbmltYXRlZFZhbHVlIDw9IFNWR1Byb3BlcnR5VHJhaXRzPEVu
dW1UeXBlPjo6aGlnaGVzdEVudW1WYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8RW51bVR5cGUmPihhbmltYXRlZFZhbHVlKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZjxFbnVtVHlwZT4oY29u
dGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlU
ZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwg
dW5zaWduZWQmIHByb3BlcnR5KQotICAgICAgICA6IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlU
ZWFyT2ZmPHVuc2lnbmVkPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIHByb3BlcnR5KQorICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0
eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBl
LCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKKyAgICAgICAgOiBTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZjx1bnNpZ25lZD4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1ZSkKICAgICB7CiAgICAgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHVzaW5nIExpc3RQcm9w
ZXJ0eVRlYXJPZmYgPSB0eXBlbmFtZSBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+OjpM
aXN0UHJvcGVydHlUZWFyT2ZmOwogICAgIHVzaW5nIENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBl
OwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVy
dHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3Bl
cnR5VHlwZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRl
ZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVl
PiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFBy
b3BlcnR5VHlwZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHlUeXBlLCB2YWx1ZXMpKTsKQEAgLTg1LDQ0ICs4NSw1MCBAQCBwdWJsaWM6CiAgICAgICAgIExp
c3RQcm9wZXJ0eTo6ZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKCZtX3dyYXBwZXJzLCBuZXdM
aXN0U2l6ZSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBjdXJyZW50QW5pbWF0ZWRWYWx1
ZSgpCisgICAgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QW5pbWF0ZWRWYWx1ZSgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIHJldHVybiBtX2Fu
aW1hdGVkUHJvcGVydHktPnZhbHVlcygpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlw
ZSYgY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBj
dXJyZW50QmFzZVZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlczsK
ICAgICB9CisgICAgCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNSZWZlcmVuY2UoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVz
LT5hczxQcm9wZXJ0eVR5cGU+KCk7CisgICAgfQogCi0gICAgdm9pZCBhbmltYXRpb25TdGFydGVk
KFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCwgYm9vbCBzaG91bGRPd25WYWx1ZXMgPSBmYWxzZSkK
KyAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgbmV3QW5p
bVZhbCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFT
U0VSVChuZXdBbmltVmFsKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkg
PT0gbV93cmFwcGVycy5zaXplKCkpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFdyYXBwZXJz
LmlzRW1wdHkoKSk7CiAKICAgICAgICAgLy8gU3dpdGNoIHRvIG5ldyBwYXNzZWQgaW4gdmFsdWUg
dHlwZSAmIG5ldyB3cmFwcGVycyBsaXN0LiBUaGUgbmV3IHdyYXBwZXJzIGxpc3QgbXVzdCBiZSBj
cmVhdGVkIGZvciB0aGUgbmV3IHZhbHVlLgotICAgICAgICBpZiAoIW5ld0FuaW1WYWwtPmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIG1fYW5pbWF0ZWRXcmFwcGVycy5maWxsKDAsIG5ld0FuaW1WYWwt
PnNpemUoKSk7CisgICAgICAgIGlmIChzaXplX3Qgc2l6ZSA9IG5ld0FuaW1WYWwtPmFzPFByb3Bl
cnR5VHlwZT4oKS5zaXplKCkpCisgICAgICAgICAgICBtX2FuaW1hdGVkV3JhcHBlcnMuZmlsbCgw
LCBzaXplKTsKIAogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBhbmltVmFsKCk7Ci0gICAg
ICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobmV3QW5pbVZhbCwg
Jm1fYW5pbWF0ZWRXcmFwcGVycywgc2hvdWxkT3duVmFsdWVzKTsKLSAgICAgICAgQVNTRVJUKG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
d3JhcHBlcnMoKS5zaXplKCkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVl
c0FuZFdyYXBwZXJzKG5ld0FuaW1WYWwsICZtX2FuaW1hdGVkV3JhcHBlcnMpOworICAgICAgICBB
U1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9h
bmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CiAgICAgICAgIEFTU0VSVChtX2Fu
aW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRXcmFwcGVycy5z
aXplKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgp
ID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKLSAgICAgICAgQVNTRVJUKG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuc2l6ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBl
cnMoKS5zaXplKCkpOworICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXNS
ZWZlcmVuY2UoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUo
KSk7CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgp
ID09IG1fYW5pbWF0ZWRXcmFwcGVycy5zaXplKCkpOwogCi0gICAgICAgIG1fYW5pbWF0ZWRQcm9w
ZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMoJm1fdmFsdWVzLCAmbV93cmFwcGVycywgZmFsc2Up
OwotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0g
bV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSk7CisgICAgICAgIG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+c2V0VmFsdWVzQW5kV3JhcHBlcnMobV92YWx1ZXMsICZtX3dyYXBwZXJzKTsK
KyAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzUmVmZXJlbmNlKCkuc2l6
ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkpOwogICAgICAgICBB
U1NFUlQobV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpLnNpemUoKSA9PSBtX3dyYXBwZXJz
LnNpemUoKSk7CiAKICAgICAgICAgbV9hbmltYXRlZFdyYXBwZXJzLmNsZWFyKCk7CkBAIC0xNDIs
MzQgKzE0OCwzNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEFsc28gZXhpc3Rpbmcgd3JhcHBlcnMg
d2hpY2ggcG9pbnQgZGlyZWN0bHkgYXQgZWxlbWVudHMgaW4gdGhlIGV4aXN0aW5nIFNWR0xlbmd0
aExpc3RWYWx1ZXMgaGF2ZSB0byBiZSBkZXRhY2hlZCAoc28gYSBjb3B5CiAgICAgICAgIC8vIG9m
IHRoZW0gaXMgY3JlYXRlZCwgc28gZXhpc3RpbmcgYW5pbVZhbCB2YXJpYWJsZXMgaW4gSlMgYXJl
IGtlcHQtYWxpdmUpLiBJZiB3ZSdkIGRldGFjaCB0aGVtIGxhdGVyIHRoZSB1bmRlcmx5aW5nCiAg
ICAgICAgIC8vIFNWR0xlbmd0aExpc3RWYWx1ZXMgd2FzIGFscmVhZHkgbXV0YXRlZCwgYW5kIG91
ciBsaXN0IGl0ZW0gd3JhcHBlciB0ZWFyIG9mZnMgd291bGQgcG9pbnQgbm93aGVyZS4gQXNzZXJ0
aW9ucyB3b3VsZCBmaXJlLgotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPmRldGFjaExpc3RX
cmFwcGVycyhtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlcygpLnNpemUoKSk7CisgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+
dmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV9hbmltYXRlZFBy
b3BlcnR5LT52YWx1ZXMoKS5zaXplKCkgPT0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygp
LnNpemUoKSk7CisgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHktPnZhbHVlc1JlZmVy
ZW5jZSgpLnNpemUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCkuc2l6ZSgpKTsK
ICAgICAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKS5zaXplKCkgPT0g
bV9hbmltYXRlZFdyYXBwZXJzLnNpemUoKSk7CiAgICAgfQogCiAgICAgdm9pZCBhbmltVmFsV2ls
bENoYW5nZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3Jh
cHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9
PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAgICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRl
ZCgpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbERpZENoYW5nZSgpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV92YWx1ZXMuc2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAg
QVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAg
ICAgICAgIHN5bmNocm9uaXplV3JhcHBlcnNJZk5lZWRlZCgpOwogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQorICAg
IFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVO
YW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSkKICAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAg
ICAgewotICAgICAgICBpZiAoIXZhbHVlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX3dyYXBw
ZXJzLmZpbGwoMCwgdmFsdWVzLnNpemUoKSk7CisgICAgICAgIGlmICghdmFsdWVzUmVmZXJlbmNl
KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV93cmFwcGVycy5maWxsKDAsIHZhbHVlc1JlZmVy
ZW5jZSgpLnNpemUoKSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiBtX3ZhbHVlczsKKyAg
ICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogCiAgICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dy
YXBwZXJzOwogICAgIExpc3RXcmFwcGVyQ2FjaGUgbV9hbmltYXRlZFdyYXBwZXJzOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3Bl
cnR5VGVhck9mZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjMwNjQ3
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMCwgMjAxMi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDcgKzMyLDcgQEAgY2xh
c3MgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhcgogcHVibGljOgogICAgIHVzaW5n
IEJhc2UgPSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3RWYWx1
ZXM+OwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBTVkdQYXRoU2VnTGlzdFZhbHVlcyYgdmFsdWVzKQorICAgIHN0YXRpYyBSZWY8U1ZHQW5p
bWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFBy
b3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYg
dmFsdWVzKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZh
bHVlcykpOwpAQCAtNzUsOSArNzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCghbV9hbmlt
YXRlZFBhdGhCeXRlU3RyZWFtKTsKICAgICAgICAgbV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtID0g
Ynl0ZVN0cmVhbTsKIAotICAgICAgICAvLyBQYXNzIHNob3VsZE93blZhbHVlcz10cnVlLCBhcyB0
aGUgU1ZHUGF0aFNlZ0xpc3RWYWx1ZXMgbGlmZXRpbWUgaXMgc29sZWx5IG1hbmFnZWQgYnkgaXRz
IHRlYXIgb2ZmIGNsYXNzLgotICAgICAgICBhdXRvKiBjb3B5ID0gbmV3IFNWR1BhdGhTZWdMaXN0
VmFsdWVzKCpiYXNlVmFsdWUpOwotICAgICAgICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHks
IHRydWUpOworICAgICAgICBhdXRvIGNvcHkgPSBTVkdWYWx1ZTo6Y3JlYXRlKCpiYXNlVmFsdWUp
OworICAgICAgICBCYXNlOjphbmltYXRpb25TdGFydGVkKGNvcHkpOwogICAgIH0KIAogICAgIHZv
aWQgYW5pbWF0aW9uRW5kZWQoKQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8v
IElmIHRoZSBhbmltVmFsIGlzIG9ic2VydmVkIGZyb20gSlMsIHdlIGhhdmUgdG8gdXBkYXRlIGl0
IG9uIGVhY2ggYW5pbWF0aW9uIHN0ZXAuCiAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXhwZW5zaXZl
IG9wZXJhdGlvbiBhbmQgb25seSBkb25lLCBpZiBzb21lb25lIGFjdHVhbGx5IG9ic2VydmVzIHRo
ZSBhbmltYXRlZFBhdGhTZWdMaXN0KCkgd2hpbGUgYW4gYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCiAg
ICAgICAgIGlmIChwYXRoRWxlbWVudC0+aXNBbmltVmFsT2JzZXJ2ZWQoKSkgewotICAgICAgICAg
ICAgYXV0byYgYW5pbWF0ZWRMaXN0ID0gY3VycmVudEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAg
ICAgIGF1dG8mIGFuaW1hdGVkTGlzdCA9IGN1cnJlbnRBbmltYXRlZFZhbHVlKCktPmFzPFNWR1Bh
dGhTZWdMaXN0VmFsdWVzPigpOwogICAgICAgICAgICAgYW5pbWF0ZWRMaXN0LmNsZWFyKCk7CiAg
ICAgICAgICAgICBidWlsZFNWR1BhdGhTZWdMaXN0VmFsdWVzRnJvbUJ5dGVTdHJlYW0oKm1fYW5p
bWF0ZWRQYXRoQnl0ZVN0cmVhbSwgKnBhdGhFbGVtZW50LCBhbmltYXRlZExpc3QsIFVuYWx0ZXJl
ZFBhcnNpbmcpOwogICAgICAgICB9CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIFNW
R1BhdGhCeXRlU3RyZWFtKiBhbmltYXRlZFBhdGhCeXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4g
bV9hbmltYXRlZFBhdGhCeXRlU3RyZWFtOyB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHQW5pbWF0ZWRQ
YXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5p
bWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1BhdGhTZWdMaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgU1ZH
QW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVl
cykKICAgICAgICAgOiBCYXNlKGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRl
ZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAgICAgICAsIG1fYW5pbWF0ZWRQYXRoQnl0ZVN0cmVh
bShudWxscHRyKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHJldmlzaW9uIDIzMDY0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0Vs
ZW1lbnQ7CiBjbGFzcyBTVkdQcm9wZXJ0eTsKK2NsYXNzIFNWR1ZhbHVlOwogCiBjbGFzcyBTVkdB
bmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4g
ewogcHVibGljOgpAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5p
bWF0ZWRQcm9wZXJ0eSgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBl
bmFtZSBUZWFyT2ZmVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlUeXBlPgotICAgIHN0YXRpYyBSZWY8
VGVhck9mZlR5cGU+IGxvb2t1cE9yQ3JlYXRlV3JhcHBlcihPd25lclR5cGUqIGVsZW1lbnQsIGNv
bnN0IFNWR1Byb3BlcnR5SW5mbyogaW5mbywgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBz
dGF0aWMgUmVmPFRlYXJPZmZUeXBlPiBsb29rdXBPckNyZWF0ZVdyYXBwZXIoT3duZXJUeXBlKiBl
bGVtZW50LCBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIGluZm8sIGNvbnN0IFJlZlB0cjxTVkdWYWx1
ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGluZm8pOwogICAgICAgICBTVkdBbmlt
YXRlZFByb3BlcnR5RGVzY3JpcHRpb24ga2V5KGVsZW1lbnQsIGluZm8tPnByb3BlcnR5SWRlbnRp
Zmllcik7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZXN1bHQuaXNO
ZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZWFyT2ZmVHlwZSY+KCpy
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIAotICAgICAgICBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0
eT4gd3JhcHBlciA9IFRlYXJPZmZUeXBlOjpjcmVhdGUoZWxlbWVudCwgaW5mby0+YXR0cmlidXRl
TmFtZSwgaW5mby0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KTsKKyAgICAgICAgUmVm
PFNWR0FuaW1hdGVkUHJvcGVydHk+IHdyYXBwZXIgPSBUZWFyT2ZmVHlwZTo6Y3JlYXRlKGVsZW1l
bnQsIGluZm8tPmF0dHJpYnV0ZU5hbWUsIGluZm8tPmFuaW1hdGVkUHJvcGVydHlUeXBlLCB2YWx1
ZSk7CiAgICAgICAgIGlmIChpbmZvLT5hbmltYXRlZFByb3BlcnR5U3RhdGUgPT0gUHJvcGVydHlJ
c1JlYWRPbmx5KQogICAgICAgICAgICAgd3JhcHBlci0+c2V0SXNSZWFkT25seSgpOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eU1hY3Jvcy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNiArMjYsNyBAQAogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLmgi
CiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIApAQCAtMzQsMjUgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRl
PHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHkgewogICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSgpCi0gICAg
ICAgIDogdmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVl
KCkpCi0gICAgICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxp
ZChmYWxzZSkKKyAgICAgICAgOiB2YWx1ZShTVkdWYWx1ZTo6Y3JlYXRlPFByb3BlcnR5VHlwZT4o
KSkKICAgICB7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJh
bWV0ZXIxPgotICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShjb25zdCBDb25z
dHJ1Y3RvclBhcmFtZXRlcjEmIHZhbHVlMSkKLSAgICAgICAgOiB2YWx1ZSh2YWx1ZTEpCi0gICAg
ICAgICwgc2hvdWxkU3luY2hyb25pemUoZmFsc2UpCi0gICAgICAgICwgaXNWYWxpZChmYWxzZSkK
LSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uc3RydWN0b3JQYXJhbWV0
ZXIxLCB0eXBlbmFtZSBDb25zdHJ1Y3RvclBhcmFtZXRlcjI+Ci0gICAgU1ZHU3luY2hyb25pemFi
bGVBbmltYXRlZFByb3BlcnR5KGNvbnN0IENvbnN0cnVjdG9yUGFyYW1ldGVyMSYgdmFsdWUxLCBj
b25zdCBDb25zdHJ1Y3RvclBhcmFtZXRlcjImIHZhbHVlMikKLSAgICAgICAgOiB2YWx1ZSh2YWx1
ZTEsIHZhbHVlMikKLSAgICAgICAgLCBzaG91bGRTeW5jaHJvbml6ZShmYWxzZSkKLSAgICAgICAg
LCBpc1ZhbGlkKGZhbHNlKQorICAgIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eShj
b25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IHZhbHVlKFNWR1ZhbHVlOjpjcmVh
dGU8UHJvcGVydHlUeXBlPih2YWx1ZSkpCiAgICAgewogICAgIH0KIApAQCAtNjEsOSArNTAsOSBA
QCBzdHJ1Y3QgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5CiAgICAgICAgIG93bmVy
RWxlbWVudC0+c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyTmFtZSwgdmFsdWUpOwog
ICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSB2YWx1ZTsKLSAgICBib29sIHNob3VsZFN5bmNocm9u
aXplIDogMTsKLSAgICBib29sIGlzVmFsaWQgOiAxOworICAgIFJlZlB0cjxTVkdWYWx1ZT4gdmFs
dWU7CisgICAgYm9vbCBzaG91bGRTeW5jaHJvbml6ZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1Zh
bGlkIHsgZmFsc2UgfTsKIH07CiAKIC8vIFByb3BlcnR5IHJlZ2lzdHJhdGlvbiBoZWxwZXJzCkBA
IC0xMjQsMTkgKzExMywxOSBAQCBwdWJsaWM6IFwKICAgICB7IFwKICAgICAgICAgaWYgKGF1dG8g
d3JhcHBlciA9IFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8VXNlT3duZXJUeXBl
LCBUZWFyT2ZmVHlwZT4odGhpcywgTG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCkpKSB7IFwK
ICAgICAgICAgICAgIGlmICh3cmFwcGVyLT5pc0FuaW1hdGluZygpKSBcCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHdyYXBwZXItPmN1cnJlbnRBbmltYXRlZFZhbHVlKCk7IFwKKyAgICAgICAgICAg
ICAgICByZXR1cm4gd3JhcHBlci0+Y3VycmVudEFuaW1hdGVkVmFsdWUoKS0+YXM8UHJvcGVydHlU
eXBlPigpOyBcCiAgICAgICAgIH0gXAotICAgICAgICByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHku
dmFsdWU7IFwKKyAgICAgICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9w
ZXJ0eVR5cGU+KCk7IFwKICAgICB9IFwKIFwKICAgICBQcm9wZXJ0eVR5cGUmIExvd2VyUHJvcGVy
dHkjI0Jhc2VWYWx1ZSgpIGNvbnN0IE92ZXJyaWRlU3BlY2lmaWVyIFwKICAgICB7IFwKLSAgICAg
ICAgcmV0dXJuIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlOyBcCisgICAgICAgIHJldHVybiBtXyMj
TG93ZXJQcm9wZXJ0eS52YWx1ZS0+YXM8UHJvcGVydHlUeXBlPigpOyBcCiAgICAgfSBcCiBcCi0g
ICAgdm9pZCBzZXQjI1VwcGVyUHJvcGVydHkjI0Jhc2VWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUm
IHR5cGUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVyIFwK
KyAgICB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlw
ZSYgdmFsdWUsIGNvbnN0IGJvb2wgdmFsaWRWYWx1ZSA9IHRydWUpIE92ZXJyaWRlU3BlY2lmaWVy
IFwKICAgICB7IFwKLSAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUgPSB0eXBlOyBcCisg
ICAgICAgIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCkgPSB2YWx1
ZTsgXAogICAgICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5pc1ZhbGlkID0gdmFsaWRWYWx1ZTsgXAog
ICAgIH0gXAogXApAQCAtMTU2LDcgKzE0NSw3IEBAIHByaXZhdGU6IFwKICAgICB7IFwKICAgICAg
ICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkgXAogICAgICAgICAg
ICAgcmV0dXJuOyBcCi0gICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0
czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSkpOyBcCisg
ICAgICAgIEF0b21pY1N0cmluZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+
Ojp0b1N0cmluZyhtXyMjTG93ZXJQcm9wZXJ0eS52YWx1ZS0+YXM8UHJvcGVydHlUeXBlPigpKSk7
IFwKICAgICAgICAgbV8jI0xvd2VyUHJvcGVydHkuc3luY2hyb25pemUodGhpcywgTG93ZXJQcm9w
ZXJ0eSMjUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIHZhbHVlKTsgXAogICAgIH0gXAog
XApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAgcHVibGljOgogICAgIHVzaW5nIFByb3BlcnR5
VHlwZSA9IHR5cGVuYW1lIFByb3BlcnR5VGVhck9mZjo6UHJvcGVydHlUeXBlOwogICAgIHVzaW5n
IENvbnRlbnRUeXBlID0gUHJvcGVydHlUeXBlOwogCi0gICAgc3RhdGljIFJlZjxTVkdBbmltYXRl
ZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+PiBjcmVhdGUoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVk
UHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHByb3BlcnR5
KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFy
T2ZmPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlwZSBhbmltYXRlZFByb3BlcnR5
VHlwZSwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NF
UlQoY29udGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmlt
YXRlZFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVRlYXJPZmY+KGNvbnRleHRFbGVtZW50LCBhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5VHlwZSwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUZWFy
T2ZmPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUs
IHZhbHVlKSk7CiAgICAgfQogCiAgICAgUmVmPFByb3BlcnR5VGVhck9mZj4gYmFzZVZhbCgpCkBA
IC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1fYmFzZVZhbCkKICAgICAgICAg
ICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8UHJvcGVydHlUZWFyT2ZmKj4obV9iYXNlVmFsLmdldCgp
KTsKIAotICAgICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRo
aXMsIEJhc2VWYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IFBy
b3BlcnR5VGVhck9mZjo6Y3JlYXRlKCp0aGlzLCBCYXNlVmFsUm9sZSwgbV92YWx1ZSk7CiAgICAg
ICAgIG1fYmFzZVZhbCA9IHByb3BlcnR5LT5jcmVhdGVXZWFrUHRyKCk7CiAgICAgICAgIHJldHVy
biBwcm9wZXJ0eTsKICAgICB9CkBAIC01MywzNiArNTMsMzYgQEAgcHVibGljOgogICAgICAgICBp
ZiAobV9hbmltVmFsKQogICAgICAgICAgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxQcm9wZXJ0eVRl
YXJPZmYqPihtX2FuaW1WYWwuZ2V0KCkpOwogCi0gICAgICAgIGF1dG8gcHJvcGVydHkgPSBQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSgqdGhpcywgQW5pbVZhbFJvbGUsIG1fcHJvcGVydHkpOworICAg
ICAgICBhdXRvIHByb3BlcnR5ID0gUHJvcGVydHlUZWFyT2ZmOjpjcmVhdGUoKnRoaXMsIEFuaW1W
YWxSb2xlLCBtX3ZhbHVlKTsKICAgICAgICAgbV9hbmltVmFsID0gcHJvcGVydHktPmNyZWF0ZVdl
YWtQdHIoKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5OwogICAgIH0KIAogICAgIGJvb2wgaXNB
bmltYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2FuaW1hdGVkUHJvcGVydHk7IH0KIAot
ICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUoKQorICAgIFJlZlB0cjxTVkdW
YWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KGlzQW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT5wcm9w
ZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1
ZSgpOwogICAgIH0KIAotICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudEJhc2VWYWx1ZSgp
IGNvbnN0CisgICAgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiBjdXJyZW50QmFzZVZhbHVlKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICByZXR1cm4gbV92
YWx1ZTsKICAgICB9CiAKLSAgICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoUHJvcGVydHlUeXBlKiBu
ZXdBbmltVmFsKQorICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBSZWZQdHI8U1ZHVmFs
dWU+JiBuZXdBbmltVmFsKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0FuaW1hdGluZygpKTsK
ICAgICAgICAgQVNTRVJUKG5ld0FuaW1WYWwpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkg
PSBhbmltVmFsKCk7Ci0gICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+c2V0VmFsdWUoKm5ld0Fu
aW1WYWwpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG5ld0FuaW1WYWwp
OwogICAgIH0KIAogICAgIHZvaWQgYW5pbWF0aW9uRW5kZWQoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVl
KG1fcHJvcGVydHkpOworICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHktPnNldFZhbHVlKG1fdmFs
dWUpOwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KIApAQCAt
MTA0LDEzICsxMDQsMTMgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdBbmlt
YXRlZFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUsIFByb3BlcnR5VHlwZSYgcHJvcGVydHkpCisgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eVRlYXJPZmYoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlU
eXBlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBTVkdBbmltYXRl
ZFByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5
VHlwZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQorICAgICAgICAsIG1fdmFsdWUo
dmFsdWUpCiAgICAgewogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9wZXJ0eTsKKyAg
ICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWU7CiAgICAgV2Vha1B0cjxTVkdQcm9wZXJ0eVRlYXJP
ZmY8UHJvcGVydHlUeXBlPj4gbV9iYXNlVmFsOwogICAgIFdlYWtQdHI8U1ZHUHJvcGVydHlUZWFy
T2ZmPFByb3BlcnR5VHlwZT4+IG1fYW5pbVZhbDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTMyLDUzICszMyw1MyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGNvbnN0IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9w
cm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUtPmFzPFByb3BlcnR5VHlwZT4oKTsKICAg
ICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCgpCiAgICAgewot
ICAgICAgICBpZiAobV9hbmltYXRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuICptX2Fu
aW1hdGVkUHJvcGVydHk7Ci0gICAgICAgIHJldHVybiBtX3Byb3BlcnR5OworICAgICAgICBpZiAo
bV9hbmltYXRlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZS0+YXM8
UHJvcGVydHlUeXBlPigpOworICAgICAgICByZXR1cm4gYmFzZVZhbCgpOwogICAgIH0KIAotICAg
IHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUm
IHByb3BlcnR5KQorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25z
dCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgbV9wcm9wZXJ0eSA9IHByb3Bl
cnR5OworICAgICAgICBtX3ZhbHVlLT5hczxQcm9wZXJ0eVR5cGU+KCkgPSB2YWx1ZTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgYm9v
bCBpc0FuaW1hdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYW5pbWF0ZWRQcm9wZXJ0
eTsgfQorICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Fu
aW1hdGVkVmFsdWU7IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0
eVRlYXJPZmY8UHJvcGVydHlUeXBlPj4gY3JlYXRlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBzdGF0
aWMgUmVmPFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4+IGNy
ZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRl
eHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRTdGF0
aWNQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHByb3BlcnR5KSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFByb3BlcnR5VHlw
ZT4oY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHlUeXBlLCB2
YWx1ZSkpOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSYgY3VycmVudEFuaW1hdGVkVmFsdWUo
KQorICAgIFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEFuaW1hdGVkVmFsdWUoKSBjb25zdAogICAg
IHsKICAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICByZXR1cm4gKm1fYW5p
bWF0ZWRQcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbWF0ZWRWYWx1ZTsKICAgICB9CiAK
LSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRCYXNlVmFsdWUoKSBjb25zdAorICAgIGNv
bnN0IFJlZlB0cjxTVkdWYWx1ZT4gY3VycmVudEJhc2VWYWx1ZSgpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gbV9wcm9wZXJ0eTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAgfQog
Ci0gICAgdm9pZCBhbmltYXRpb25TdGFydGVkKFByb3BlcnR5VHlwZSogbmV3QW5pbVZhbCkKKyAg
ICB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgbmV3QW5pbVZh
bCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEFTU0VS
VChuZXdBbmltVmFsKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbmV3QW5pbVZhbDsK
KyAgICAgICAgbV9hbmltYXRlZFZhbHVlID0gbmV3QW5pbVZhbDsKICAgICB9CiAKICAgICB2b2lk
IGFuaW1hdGlvbkVuZGVkKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsK
LSAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0gbnVsbHB0cjsKKyAgICAgICAgbV9hbmltYXRl
ZFZhbHVlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKCkK
QEAgLTk5LDE2ICsxMDAsMTUgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhbmltYXRlZFByb3BlcnR5VHlwZSwgUHJvcGVydHlUeXBlJiBwcm9wZXJ0eSkKKyAgICBTVkdB
bmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlKQogICAg
ICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUs
IGFuaW1hdGVkUHJvcGVydHlUeXBlKQotICAgICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCi0g
ICAgICAgICwgbV9hbmltYXRlZFByb3BlcnR5KG51bGxwdHIpCisgICAgICAgICwgbV92YWx1ZSh2
YWx1ZSkKICAgICB7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFByb3BlcnR5VHlwZSYgbV9wcm9w
ZXJ0eTsKLSAgICBQcm9wZXJ0eVR5cGUqIG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAgICBSZWZQdHI8
U1ZHVmFsdWU+IG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX2FuaW1hdGVkVmFsdWU7
CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjYsNyArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZiBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNmb3JtTGlzdFZhbHVlcz4gewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmPiBjcmVhdGUo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBTVkdUcmFu
c2Zvcm1MaXN0VmFsdWVzJiB2YWx1ZXMpCisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmY+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlcykK
ICAgICB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihjb250
ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIHZhbHVlcykp
OwpAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIHZhbHVl
cykKKyAgICBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYoU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGVkUHJvcGVydHlUeXBlIGFuaW1hdGVkUHJvcGVydHlUeXBlLCBjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXM+KGNvbnRleHRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBh
bmltYXRlZFByb3BlcnR5VHlwZSwgdmFsdWVzKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHkuaAkocmV2aXNpb24g
MjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTQgKzI2LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIExpc3RNb2RpZmljYXRpb24gewotICAgIExpc3RNb2RpZmljYXRpb25Vbmtub3duID0g
MCwKLSAgICBMaXN0TW9kaWZpY2F0aW9uSW5zZXJ0ID0gMSwKLSAgICBMaXN0TW9kaWZpY2F0aW9u
UmVwbGFjZSA9IDIsCi0gICAgTGlzdE1vZGlmaWNhdGlvblJlbW92ZSA9IDMsCi0gICAgTGlzdE1v
ZGlmaWNhdGlvbkFwcGVuZCA9IDQKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlw
ZT4KIGNsYXNzIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjsKIApAQCAtNzUsMTkgKzY4
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgZGV0YWNoTGlzdFdyYXBwZXJzQW5kUmVzaXplKG1fd3Jh
cHBlcnMsIG5ld0xpc3RTaXplKTsKICAgICB9CiAKLSAgICB2b2lkIHNldFZhbHVlc0FuZFdyYXBw
ZXJzKFByb3BlcnR5VHlwZSogdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycywgYm9v
bCBzaG91bGRPd25WYWx1ZXMpCisgICAgdm9pZCBzZXRWYWx1ZXNBbmRXcmFwcGVycyhjb25zdCBS
ZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdyYXBwZXJzKQogICAg
IHsKICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGFuaW1WYWwgc3VwcG9ydCwgdG8g
c3dpdGNoIHRoZSB1bmRlcmx5aW5nIHZhbHVlcyAmIHdyYXBwZXJzCiAgICAgICAgIC8vIHRvIHRo
ZSBjdXJyZW50IGFuaW1hdGVkIHZhbHVlcywgb25jZSBhbmltYXRpb24gZm9yIGEgbGlzdCBzdGFy
dHMuCiAgICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJz
KTsKICAgICAgICAgQVNTRVJUKG1fcm9sZSA9PSBBbmltVmFsUm9sZSk7Ci0gICAgICAgIGlmICht
X293bnNWYWx1ZXMpCi0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZXM7CiAgICAgICAgIG1fdmFs
dWVzID0gdmFsdWVzOwotICAgICAgICBtX293bnNWYWx1ZXMgPSBzaG91bGRPd25WYWx1ZXM7CiAg
ICAgICAgIG1fd3JhcHBlcnMgPSB3cmFwcGVyczsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5z
aXplKCkgPT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVy
ZW5jZSgpLnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgIH0KIAogICAgIC8vIFNW
R0xpc3Q6OmNsZWFyKCkKQEAgLTk4LDcgKzg4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogCi0gICAgICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAg
ICB2YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTEsNyArMTAxLDcgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICBkZXRh
Y2hMaXN0V3JhcHBlcnMoMCk7Ci0gICAgICAgIG1fdmFsdWVzLT5jbGVhcigpOworICAgICAgICB2
YWx1ZXNSZWZlcmVuY2UoKS5jbGVhcigpOwogICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC0xMTksNyArMTA5LDcgQEAgcHVibGljOgogICAgIC8v
IFNWR0xpc3Q6Om51bWJlck9mSXRlbXMoKQogICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXMoKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIHJl
dHVybiB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCk7CiAgICAgfQogCiAgICAgLy8gU1ZHTGlzdDo6
aW5pdGlhbGl6ZSgpCkBAIC0xMzQsOCArMTI0LDggQEAgcHVibGljOgogICAgICAgICBwcm9jZXNz
SW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAgIC8vIFNwZWM6IENs
ZWFycyBhbGwgZXhpc3RpbmcgY3VycmVudCBpdGVtcyBmcm9tIHRoZSBsaXN0IGFuZCByZS1pbml0
aWFsaXplcyB0aGUgbGlzdCB0byBob2xkIHRoZSBzaW5nbGUgaXRlbSBzcGVjaWZpZWQgYnkgdGhl
IHBhcmFtZXRlci4KLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7Ci0gICAgICAgIG1fdmFsdWVz
LT5hcHBlbmQobmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7Cisg
ICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmFwcGVuZChTVkdWYWx1ZTo6Y3JlYXRlPExpc3RJdGVt
VHlwZT4obmV3SXRlbSkpOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1
cm4gTGlzdEl0ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtMTUwLDcgKzE0MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBB
U1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92
YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFs
dWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAg
UmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMTU5LDkgKzE0OSw5IEBA
IHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMgYWxsIGV4aXN0aW5nIGN1cnJlbnQg
aXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGxpc3QgdG8gaG9sZCB0
aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJhbWV0ZXIuCiAgICAgICAgIGRldGFj
aExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1ZXMtPmNsZWFyKCk7CisgICAgICAgIHZh
bHVlc1JlZmVyZW5jZSgpLmNsZWFyKCk7CiAKLSAgICAgICAgbV92YWx1ZXMtPmFwcGVuZChuZXdJ
dGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXBw
ZW5kKG5ld0l0ZW0tPnZhbHVlKCkpOwogICAgICAgICBtX3dyYXBwZXJzLT5hcHBlbmQobmV3SXRl
bS0+Y3JlYXRlV2Vha1B0cigpKTsKIAogICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTE3MSw3
ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gU1ZHTGlzdDo6Z2V0SXRlbSgpCiAgICAgRXhjZXB0
aW9uT3I8Ym9vbD4gY2FuR2V0SXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIGlm
IChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAgICBpZiAoaW5kZXggPj0gdmFsdWVz
UmVmZXJlbmNlKCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEluZGV4
U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xODUsNyArMTc1LDcgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAog
ICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBsaXN0
LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHkuCi0g
ICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBtX3ZhbHVlcy0+YXQoaW5kZXgpIH07CisgICAg
ICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyB2YWx1ZXNSZWZlcmVuY2UoKS5hdFJlZmVyZW5jZShp
bmRleCkgfTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8TGlzdEl0ZW1UZWFyT2ZmPj4g
Z2V0SXRlbVZhbHVlc0FuZFdyYXBwZXJzKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5p
bWF0ZWRMaXN0LCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5OSwxMyArMTg5LDEzIEBAIHB1YmxpYzoK
IAogICAgICAgICAvLyBTcGVjOiBSZXR1cm5zIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSBs
aXN0LiBUaGUgcmV0dXJuZWQgaXRlbSBpcyB0aGUgaXRlbSBpdHNlbGYgYW5kIG5vdCBhIGNvcHku
CiAgICAgICAgIC8vIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGl0ZW0gYXJlIGltbWVkaWF0ZWx5
IHJlZmxlY3RlZCBpbiB0aGUgbGlzdC4KLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkg
PT0gbV93cmFwcGVycy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOwogICAgICAgICBSZWZQdHI8TGlzdEl0ZW1U
ZWFyT2ZmPiB3cmFwcGVyID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFyT2ZmKj4obV93cmFwcGVy
cy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAgICAg
ICAvLyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkgbW9k
aWZ5IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdyYXBw
ZXIgaW4gb3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3aXRo
IG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1lbnQg
d2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQgaXQg
aGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
YXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0SXRl
bVRlYXJPZmY6OmNyZWF0ZShhbmltYXRlZExpc3QsIFVuZGVmaW5lZFJvbGUsIG1fdmFsdWVzLT5h
dChpbmRleCkpOworICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRl
KGFuaW1hdGVkTGlzdCwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzUmVmZXJlbmNlKCkuYXQoaW5kZXgp
KTsKICAgICAgICAgICAgIG1fd3JhcHBlcnMtPmF0KGluZGV4KSA9IHdyYXBwZXItPmNyZWF0ZVdl
YWtQdHIoKTsKICAgICAgICAgfQogCkBAIC0yMjEsOCArMjExLDggQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgICAgICAvLyBTcGVj
OiBJZiB0aGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG51bWJlck9mSXRlbXMs
IHRoZW4gdGhlIG5ldyBpdGVtIGlzIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0g
ICAgICAgIGlmIChpbmRleCA+IG1fdmFsdWVzLT5zaXplKCkpCi0gICAgICAgICAgICBpbmRleCA9
IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAgIGlmIChpbmRleCA+IHZhbHVlc1JlZmVyZW5jZSgp
LnNpemUoKSkKKyAgICAgICAgICAgIGluZGV4ID0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpOwog
CiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0IGlz
IHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQgaW50
byB0aGlzIGxpc3QuCiAgICAgICAgIGlmICghcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShu
ZXdJdGVtLCAmaW5kZXgpKSB7CkBAIC0yMzIsNyArMjIyLDcgQEAgcHVibGljOgogCiAgICAgICAg
IC8vIFNwZWM6IEluc2VydHMgYSBuZXcgaXRlbSBpbnRvIHRoZSBsaXN0IGF0IHRoZSBzcGVjaWZp
ZWQgcG9zaXRpb24uIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBp
dGVtIGlzIHRvIGJlCiAgICAgICAgIC8vIGluc2VydGVkLiBUaGUgZmlyc3QgaXRlbSBpcyBudW1i
ZXIgMC4gSWYgdGhlIGluZGV4IGlzIGVxdWFsIHRvIDAsIHRoZW4gdGhlIG5ldyBpdGVtIGlzIGlu
c2VydGVkIGF0IHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92YWx1ZXMtPmluc2Vy
dChpbmRleCwgbmV3SXRlbSk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLmluc2VydChpbmRl
eCwgU1ZHVmFsdWU6OmNyZWF0ZTxMaXN0SXRlbVR5cGU+KG5ld0l0ZW0pKTsKIAogICAgICAgICBj
b21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0gfTsK
QEAgLTI0OCwxMCArMjM4LDEwIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgdGhlIGluZGV4IGlzIGdy
ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBudW1iZXJPZkl0ZW1zLCB0aGVuIHRoZSBuZXcgaXRlbSBp
cyBhcHBlbmRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LgotICAgICAgICBpZiAoaW5kZXggPiBt
X3ZhbHVlcy0+c2l6ZSgpKQotICAgICAgICAgICAgaW5kZXggPSBtX3ZhbHVlcy0+c2l6ZSgpOwor
ICAgICAgICBpZiAoaW5kZXggPiB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkpCisgICAgICAgICAg
ICBpbmRleCA9IHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKTsKIAotICAgICAgICBBU1NFUlQobV92
YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFs
dWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAg
UmVmPExpc3RJdGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtMjYxLDcgKzI1MSw3IEBA
IHB1YmxpYzoKIAogICAgICAgICAvLyBTcGVjOiBJbnNlcnRzIGEgbmV3IGl0ZW0gaW50byB0aGUg
bGlzdCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gYmVm
b3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBpcyB0byBiZQogICAgICAgICAvLyBpbnNlcnRlZC4gVGhl
IGZpcnN0IGl0ZW0gaXMgbnVtYmVyIDAuIElmIHRoZSBpbmRleCBpcyBlcXVhbCB0byAwLCB0aGVu
IHRoZSBuZXcgaXRlbSBpcyBpbnNlcnRlZCBhdCB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuCi0gICAg
ICAgIG1fdmFsdWVzLT5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkp
OworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5pbnNlcnQoaW5kZXgsIG5ld0l0ZW0tPnZhbHVl
KCkpOwogCiAgICAgICAgIC8vIFN0b3JlIG5ldyB3cmFwcGVyIGF0IHBvc2l0aW9uICdpbmRleCcs
IGNoYW5nZSBpdHMgdW5kZXJseWluZyB2YWx1ZSwgc28gbXV0YXRpb25zIG9mIG5ld0l0ZW0sIGRp
cmVjdGx5IGFmZmVjdCB0aGUgaXRlbSBpbiB0aGUgbGlzdC4KICAgICAgICAgbV93cmFwcGVycy0+
aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkpOwpAQCAtMjc4LDcgKzI2OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
OwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAg
ICBpZiAoaW5kZXggPj0gbV92YWx1ZXMtPnNpemUoKSkKKyAgICAgICAgaWYgKGluZGV4ID49IHZh
bHVlc1JlZmVyZW5jZSgpLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bmRleFNpemVFcnJvciB9OwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjk4LDEzICsyODgs
MTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIExpc3RJdGVtVHlwZSB7IG5ld0l0ZW0g
fTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3ZhbHVlcy0+aXNFbXB0eSgpKSB7CisgICAg
ICAgIGlmICh2YWx1ZXNSZWZlcmVuY2UoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIC8vICdu
ZXdJdGVtJyBhbHJlYWR5IGxpdmVkIGluIG91ciBsaXN0LCB3ZSByZW1vdmVkIGl0LCBhbmQgbm93
IHdlJ3JlIGVtcHR5LCB3aGljaCBtZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8gcmVwbGFjZS4KICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVFcnJvciB9OwogICAgICAgICB9
CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhdCB0aGUgZGVzaXJlZCBwb3NpdGlvbiAn
aW5kZXgnLiAKLSAgICAgICAgbV92YWx1ZXMtPmF0KGluZGV4KSA9IG5ld0l0ZW07CisgICAgICAg
IHZhbHVlc1JlZmVyZW5jZSgpLmF0UmVmZXJlbmNlKGluZGV4KSA9IG5ld0l0ZW07CiAKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBMaXN0SXRlbVR5cGUgeyBuZXdJdGVt
IH07CkBAIC0zMTksNyArMzA5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBl
cnMtPnNpemUoKSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkgPT0g
bV93cmFwcGVycy0+c2l6ZSgpKTsKIAogICAgICAgICBSZWY8TGlzdEl0ZW1UZWFyT2ZmPiBuZXdJ
dGVtKGl0ZW0pOwogCkBAIC0zMjgsNyArMzE4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIXBy
b2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihuZXdJdGVtLCAmaW5kZXgpKQogICAgICAgICAg
ICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAKLSAgICAgICAgaWYgKG1fdmFsdWVzLT5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlc1JlZmVyZW5jZSgpLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMtPmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAvLyAn
bmV3SXRlbScgYWxyZWFkeSBsaXZlZCBpbiBvdXIgbGlzdCwgd2UgcmVtb3ZlZCBpdCwgYW5kIG5v
dyB3ZSdyZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlcGxhY2UuCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW5kZXhTaXplRXJyb3IgfTsKQEAgLTM0MCw3
ICszMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBvbGRJdGVtLT5kZXRhY2hXcmFwcGVyKCk7
CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgdGhlIHdyYXBwZXIgYXQgdGhlIGRl
c2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5hdChpbmRleCkgPSBu
ZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5h
dChpbmRleCkgPSBuZXdJdGVtLT52YWx1ZSgpOwogICAgICAgICBtX3dyYXBwZXJzLT5hdChpbmRl
eCkgPSBuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7
CkBAIC0zNTUsNyArMzQ1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKQorICAgICAg
ICBpZiAoaW5kZXggPj0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpKQogICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEluZGV4U2l6ZUVycm9yIH07CiAKICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC0zNjgsOCArMzU4LDggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgICAgIEFTU0VSVChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCi0gICAgICAgIExpc3RJdGVtVHlwZSBvbGRJdGVtID0gbV92YWx1ZXMtPmF0KGlu
ZGV4KTsKLSAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIExpc3RJdGVt
VHlwZSBvbGRJdGVtID0gdmFsdWVzUmVmZXJlbmNlKCkuYXRSZWZlcmVuY2UoaW5kZXgpOworICAg
ICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5yZW1vdmUoaW5kZXgpOwogCiAgICAgICAgIGNvbW1pdENo
YW5nZSgpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShvbGRJdGVtKTsKQEAgLTM4NCwxNiArMzc0
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBBU1NFUlQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAg
ICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAg
ICAgICBBU1NFUlQodmFsdWVzUmVmZXJlbmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUo
KSk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgogICAgICAgICBS
ZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiBvbGRJdGVtID0gc3RhdGljX2Nhc3Q8TGlzdEl0ZW1UZWFy
T2ZmKj4obV93cmFwcGVycy0+YXQoaW5kZXgpLmdldCgpKTsKICAgICAgICAgaWYgKCFvbGRJdGVt
KQotICAgICAgICAgICAgb2xkSXRlbSA9IExpc3RJdGVtVGVhck9mZjo6Y3JlYXRlKGFuaW1hdGVk
TGlzdCwgVW5kZWZpbmVkUm9sZSwgbV92YWx1ZXMtPmF0KGluZGV4KSk7CisgICAgICAgICAgICBv
bGRJdGVtID0gTGlzdEl0ZW1UZWFyT2ZmOjpjcmVhdGUoYW5pbWF0ZWRMaXN0LCBVbmRlZmluZWRS
b2xlLCB2YWx1ZXNSZWZlcmVuY2UoKS5hdChpbmRleCkpOwogCiAgICAgICAgIG9sZEl0ZW0tPmRl
dGFjaFdyYXBwZXIoKTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGluZGV4KTsKLSAgICAg
ICAgbV92YWx1ZXMtPnJlbW92ZShpbmRleCk7CisgICAgICAgIHZhbHVlc1JlZmVyZW5jZSgpLnJl
bW92ZShpbmRleCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBv
bGRJdGVtLnJlbGVhc2VOb25OdWxsKCk7CkBAIC00MTEsNyArNDAxLDcgQEAgcHVibGljOgogICAg
ICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKG5ld0l0ZW0sIDApOwogCiAgICAgICAg
IC8vIEFwcGVuZCB0aGUgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgbV92
YWx1ZXMtPmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuYXBwZW5k
KFNWR1ZhbHVlOjpjcmVhdGU8TGlzdEl0ZW1UeXBlPihuZXdJdGVtKSk7CiAKICAgICAgICAgY29t
bWl0Q2hhbmdlKExpc3RNb2RpZmljYXRpb25BcHBlbmQpOwogICAgICAgICByZXR1cm4gTGlzdEl0
ZW1UeXBlIHsgbmV3SXRlbSB9OwpAQCAtNDI2LDcgKzQxNiw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgICAgICBBU1NFUlQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLT5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzUmVmZXJl
bmNlKCkuc2l6ZSgpID09IG1fd3JhcHBlcnMtPnNpemUoKSk7CiAKICAgICAgICAgUmVmPExpc3RJ
dGVtVGVhck9mZj4gbmV3SXRlbShpdGVtKTsKIApAQCAtNDM0LDE5ICs0MjQsMjUgQEAgcHVibGlj
OgogICAgICAgICBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVdyYXBwZXIobmV3SXRlbSwgMCk7CiAK
ICAgICAgICAgLy8gQXBwZW5kIHRoZSB2YWx1ZSBhbmQgd3JhcHBlciBhdCB0aGUgZW5kIG9mIHRo
ZSBsaXN0LgotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnByb3BlcnR5UmVmZXJl
bmNlKCkpOworICAgICAgICB2YWx1ZXNSZWZlcmVuY2UoKS5hcHBlbmQobmV3SXRlbS0+dmFsdWUo
KSk7CiAgICAgICAgIG1fd3JhcHBlcnMtPmFwcGVuZChuZXdJdGVtLT5jcmVhdGVXZWFrUHRyKCkp
OwogCiAgICAgICAgIGNvbW1pdENoYW5nZShMaXN0TW9kaWZpY2F0aW9uQXBwZW5kKTsKICAgICAg
ICAgcmV0dXJuIFdURk1vdmUobmV3SXRlbSk7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBlJiB2
YWx1ZXMoKQorICAgIFJlZjxTVkdWYWx1ZT4gdmFsdWVzKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIHJldHVybiAqbV92YWx1ZXM7CiAgICAgfQogCisg
ICAgUHJvcGVydHlUeXBlJiB2YWx1ZXNSZWZlcmVuY2UoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKG1fdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWVzLT5hczxQcm9wZXJ0eVR5
cGU+KCk7CisgICAgfQorCiAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fd3JhcHBlcnMpOwpAQCAtNDU5LDIwICs0NTUsMTMgQEAg
cHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9w
ZXJ0eVJvbGUgcm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUqIHdy
YXBwZXJzKQorICAgIFNWR0xpc3RQcm9wZXJ0eShTVkdQcm9wZXJ0eVJvbGUgcm9sZSwgY29uc3Qg
UmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzLCBMaXN0V3JhcHBlckNhY2hlKiB3cmFwcGVycykKICAg
ICAgICAgOiBtX3JvbGUocm9sZSkKLSAgICAgICAgLCBtX293bnNWYWx1ZXMoZmFsc2UpCi0gICAg
ICAgICwgbV92YWx1ZXMoJnZhbHVlcykKKyAgICAgICAgLCBtX3ZhbHVlcyh2YWx1ZXMpCiAgICAg
ICAgICwgbV93cmFwcGVycyh3cmFwcGVycykKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB+
U1ZHTGlzdFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX293bnNWYWx1ZXMpCi0gICAg
ICAgICAgICBkZWxldGUgbV92YWx1ZXM7Ci0gICAgfQotCiAgICAgdm9pZCBjb21taXRDaGFuZ2Uo
KSBvdmVycmlkZSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENoYW5nZShMaXN0TW9kaWZp
Y2F0aW9uKQogICAgIHsKQEAgLTQ4Myw4ICs0NzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWY8TGlzdEl0ZW1UZWFyT2Zm
PiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpID0gMDsKIAogICAgIFNWR1Byb3Bl
cnR5Um9sZSBtX3JvbGU7Ci0gICAgYm9vbCBtX293bnNWYWx1ZXM7Ci0gICAgUHJvcGVydHlUeXBl
KiBtX3ZhbHVlczsKKyAgICBSZWZQdHI8U1ZHVmFsdWU+IG1fdmFsdWVzOwogICAgIExpc3RXcmFw
cGVyQ2FjaGUqIG1fd3JhcHBlcnM7CiAgICAgV2Vha1B0ckZhY3Rvcnk8U1ZHTGlzdFByb3BlcnR5
PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHJldmlzaW9uIDIzMDY0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0zNiwyMSArMzcsMjAgQEAgcHVibGljOgogICAgIHVzaW5nIExp
c3RXcmFwcGVyQ2FjaGUgPSB0eXBlbmFtZSBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8
UHJvcGVydHlUeXBlPjo6TGlzdFdyYXBwZXJDYWNoZTsKIAogICAgIHVzaW5nIEJhc2U6Om1fcm9s
ZTsKLSAgICB1c2luZyBCYXNlOjptX3ZhbHVlczsKKyAgICB1c2luZyBCYXNlOjp2YWx1ZXNSZWZl
cmVuY2U7CiAgICAgdXNpbmcgQmFzZTo6bV93cmFwcGVyczsKIAotICAgIHN0YXRpYyBSZWY8U2Vs
Zj4gY3JlYXRlKEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZiYgYW5pbWF0ZWRQcm9wZXJ0eSwg
U1ZHUHJvcGVydHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWVzLCBMaXN0V3JhcHBlckNh
Y2hlJiB3cmFwcGVycykKKyAgICBzdGF0aWMgUmVmPFNlbGY+IGNyZWF0ZShBbmltYXRlZExpc3RQ
cm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBj
b25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VsZihhbmltYXRlZFByb3Bl
cnR5LCByb2xlLCB2YWx1ZXMsIHdyYXBwZXJzKSk7CiAgICAgfQogCiAgICAgaW50IGZpbmRJdGVt
KExpc3RJdGVtVGVhck9mZiogaXRlbSkgY29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBwZXJzKTsKIAogICAgICAgICB1bnNpZ25lZCBz
aXplID0gbV93cmFwcGVycy0+c2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVl
cy0+c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHNpemUgPT0gdmFsdWVzUmVmZXJlbmNlKCkuc2l6
ZSgpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAg
ICAgICAgIGlmIChpdGVtID09IG1fd3JhcHBlcnMtPmF0KGkpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBpOwpAQCAtNjEsMTUgKzYxLDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlSXRl
bUZyb21MaXN0KHNpemVfdCBpdGVtSW5kZXgsIGJvb2wgc2hvdWxkU3luY2hyb25pemVXcmFwcGVy
cykKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dy
YXBwZXJzKTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy0+
c2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVlc1JlZmVyZW5jZSgpLnNpemUoKSA9PSBtX3dy
YXBwZXJzLT5zaXplKCkpOwogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TihpdGVtSW5kZXggPCBtX3dyYXBwZXJzLT5zaXplKCkpOwogCiAgICAgICAgIGF1dG8gaXRlbSA9
IG1fd3JhcHBlcnMtPmF0KGl0ZW1JbmRleCk7CiAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIo
KTsKICAgICAgICAgbV93cmFwcGVycy0+cmVtb3ZlKGl0ZW1JbmRleCk7Ci0gICAgICAgIG1fdmFs
dWVzLT5yZW1vdmUoaXRlbUluZGV4KTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkucmVtb3Zl
KGl0ZW1JbmRleCk7CiAKICAgICAgICAgaWYgKHNob3VsZFN5bmNocm9uaXplV3JhcHBlcnMpCiAg
ICAgICAgICAgICBjb21taXRDaGFuZ2UoKTsKQEAgLTExMiw3ICsxMTEsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExp
c3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBQcm9wZXJ0eVR5cGUmIHZhbHVlcywgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCisgICAg
U1ZHTGlzdFByb3BlcnR5VGVhck9mZihBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYmIGFuaW1h
dGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+
JiB2YWx1ZXMsIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQogICAgICAgICA6IFNWR0xpc3RQ
cm9wZXJ0eTxQcm9wZXJ0eVR5cGU+KHJvbGUsIHZhbHVlcywgJndyYXBwZXJzKQogICAgICAgICAs
IG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5KQogICAgIHsKQEAgLTEyOSwxOCAr
MTI4LDE3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3ZhbHVlcyk7CiAgICAgICAgIEFTU0VSVChtX3dyYXBw
ZXJzKTsKIAogICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRl
eCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCiAgICAgICAgIHVuc2lnbmVkIHNpemUg
PSBtX3dyYXBwZXJzLT5zaXplKCk7Ci0gICAgICAgIEFTU0VSVChzaXplID09IG1fdmFsdWVzLT5z
aXplKCkpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXNSZWZlcmVuY2UoKS5zaXplKCkp
OwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAg
ICAgICBhdXRvIGl0ZW0gPSBtX3dyYXBwZXJzLT5hdChpKTsKICAgICAgICAgICAgIGlmICghaXRl
bSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGl0ZW0tPnNldEFuaW1h
dGVkUHJvcGVydHkobV9hbmltYXRlZFByb3BlcnR5LnB0cigpKTsKLSAgICAgICAgICAgIGl0ZW0t
PnNldFZhbHVlKG1fdmFsdWVzLT5hdChpKSk7CisgICAgICAgICAgICBpdGVtLT5zZXRWYWx1ZSh2
YWx1ZXNSZWZlcmVuY2UoKS5hdChpKSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2FuaW1hdGVk
UHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwpAQCAtMTY5LDcgKzE2Nyw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgICAgIC8vIFNWR1JlY3RFbGVtZW50cyBTVkdBbmltYXRlZExlbmd0aCAnd2lkdGgn
IHByb3BlcnR5IGJhc2VWYWwgcG9pbnRzIHRvIHRoZSBzYW1lIHRlYXIgb2ZmIG9iamVjdAogICAg
ICAgICAgICAgLy8gdGhhdCdzIGluc2VydGVkIGludG8gU1ZHVGV4dEVsZW1lbnRzIFNWR0FuaW1h
dGVkTGVuZ3RoTGlzdCAneCcuIHRleHRFbGVtZW50LnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVl
ICs9IDE1MCB3b3VsZAogICAgICAgICAgICAgLy8gbXV0YXRlIHRoZSByZWN0RWxlbWVudCB3aWR0
aCBfYW5kXyB0aGUgdGV4dEVsZW1lbnQgeCBsaXN0LiBUaGF0J3Mgb2J2aW91c2x5IHdyb25nLCB0
YWtlIGNhcmUgb2YgdGhhdC4KLSAgICAgICAgICAgIG5ld0l0ZW0gPSBMaXN0SXRlbVRlYXJPZmY6
OmNyZWF0ZShuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIG5ld0l0
ZW0gPSBMaXN0SXRlbVRlYXJPZmY6OmNyZWF0ZShuZXdJdGVtLT52YWx1ZVJlZmVyZW5jZSgpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNYXRyaXhUZWFyT2ZmLmgJKHJldmlzaW9uIDIz
MDY0NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01hdHJpeFRlYXJPZmYu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yOCwxOSArMjksMTkgQEAgY2xhc3MgU1ZHTWF0cml4VGVhck9mZiBm
aW5hbCA6IHB1YmxpYyBTVgogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4VGVhck9m
Zj4gY3JlYXRlKFNWR1RyYW5zZm9ybSYgcGFyZW50LCBTVkdNYXRyaXhWYWx1ZSYgdmFsdWUpCiAg
ICAgewotICAgICAgICBBU1NFUlRfVU5VU0VEKHZhbHVlLCAmcGFyZW50LnByb3BlcnR5UmVmZXJl
bmNlKCkuc3ZnTWF0cml4KCkgPT0gJnZhbHVlKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1
ZSwgJnBhcmVudC52YWx1ZVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpID09ICZ2YWx1ZSk7CiAgICAg
ICAgIFJlZjxTVkdNYXRyaXhUZWFyT2ZmPiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFNWR01hdHJp
eFRlYXJPZmYocGFyZW50KSk7CiAgICAgICAgIHBhcmVudC5hZGRDaGlsZChyZXN1bHQtPm1fd2Vh
a0ZhY3RvcnkuY3JlYXRlV2Vha1B0cihyZXN1bHQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAKLSAgICBTVkdNYXRyaXhWYWx1ZSYgcHJvcGVydHlSZWZlcmVuY2UoKSBmaW5hbCB7
IHJldHVybiBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2UoKS5zdmdNYXRyaXgoKTsgfQorICAg
IFNWR01hdHJpeFZhbHVlJiB2YWx1ZVJlZmVyZW5jZSgpIGZpbmFsIHsgcmV0dXJuIG1fcGFyZW50
LT52YWx1ZVJlZmVyZW5jZSgpLnN2Z01hdHJpeCgpOyB9CiAKLSAgICB2b2lkIHNldFZhbHVlKFNW
R01hdHJpeFZhbHVlJiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+cHJvcGVydHlSZWZlcmVuY2Uo
KS5zZXRNYXRyaXgodmFsdWUpOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBSZWZQdHI8U1ZH
VmFsdWU+JiB2YWx1ZSkgZmluYWwgeyBtX3BhcmVudC0+dmFsdWVSZWZlcmVuY2UoKS5zZXRNYXRy
aXgodmFsdWUtPmFzPFNWR01hdHJpeFZhbHVlPigpKTsgfQogCiAgICAgdm9pZCBjb21taXRDaGFu
Z2UoKSBmaW5hbAogICAgIHsKLSAgICAgICAgbV9wYXJlbnQtPnByb3BlcnR5UmVmZXJlbmNlKCku
dXBkYXRlU1ZHTWF0cml4KCk7CisgICAgICAgIG1fcGFyZW50LT52YWx1ZVJlZmVyZW5jZSgpLnVw
ZGF0ZVNWR01hdHJpeCgpOwogICAgICAgICBtX3BhcmVudC0+Y29tbWl0Q2hhbmdlKCk7CiAgICAg
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJP
ZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIz
LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJv
cGVydHkuaCIKICNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ZhbHVlLmgi
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAs
MTcgKzYxLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUHJvcGVydHlUeXBl
JiBwcm9wZXJ0eVJlZmVyZW5jZSgpIHsgcmV0dXJuICptX3ZhbHVlOyB9CisgICAgUmVmUHRyPFNW
R1ZhbHVlPiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIFBy
b3BlcnR5VHlwZSYgdmFsdWVSZWZlcmVuY2UoKSB7IHJldHVybiBtX3ZhbHVlLT5hczxQcm9wZXJ0
eVR5cGU+KCk7IH0KICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5KCkg
Y29uc3QgeyByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWUoUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAo
bV92YWx1ZUlzQ29weSkgeworICAgICAgICBpZiAobV92YWx1ZUlzQ29weSkKICAgICAgICAgICAg
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgICAgICBkZWxldGUgbV92YWx1ZTsKLSAgICAgICAg
fQogICAgICAgICBtX3ZhbHVlSXNDb3B5ID0gZmFsc2U7Ci0gICAgICAgIG1fdmFsdWUgPSAmdmFs
dWU7CisgICAgICAgIG1fdmFsdWUgPSB2YWx1ZTsKICAgICB9CiAKICAgICB2b2lkIHNldEFuaW1h
dGVkUHJvcGVydHkoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGl0ZW0udmFsdWUgc3RpbGwgaGFzIHRv
IHJlcG9ydCAnNTAnIGFuZCBpdCBoYXMgdG8gYmUgcG9zc2libGUgdG8gbW9kaWZ5ICdpdGVtJwog
ICAgICAgICAvLyB3L28gY2hhbmdpbmcgdGhlICJuZXcgaXRlbSIgKHdpdGggeD0xMDApIGluIHRo
ZSB0ZXh0IGVsZW1lbnQuCiAgICAgICAgIC8vIFdoZW5ldmVyIHRoZSBYTUwgRE9NIG1vZGlmaWVz
IHRoZSAieCIgYXR0cmlidXRlLCBhbGwgZXhpc3Rpbmcgd3JhcHBlcnMgYXJlIGRldGFjaGVkLCB1
c2luZyB0aGlzIGZ1bmN0aW9uLgotICAgICAgICBtX3ZhbHVlID0gbmV3IFByb3BlcnR5VHlwZSgq
bV92YWx1ZSk7CisgICAgICAgIG1fdmFsdWUgPSBTVkdWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUtPnRl
bXBsYXRlIGFzPFByb3BlcnR5VHlwZT4oKSk7CiAgICAgICAgIG1fdmFsdWVJc0NvcHkgPSB0cnVl
OwogICAgICAgICBtX2FuaW1hdGVkUHJvcGVydHkgPSBudWxscHRyOwogICAgIH0KQEAgLTEzMSwx
MSArMTMxLDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0
eVRlYXJPZmYoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVy
dHlSb2xlIHJvbGUsIFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgU1ZHUHJvcGVydHlUZWFyT2Zm
KFNWR0FuaW1hdGVkUHJvcGVydHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSBy
b2xlLCBjb25zdCBSZWZQdHI8U1ZHVmFsdWU+JiB2YWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVk
UHJvcGVydHkoYW5pbWF0ZWRQcm9wZXJ0eSkKICAgICAgICAgLCBtX3JvbGUocm9sZSkKLSAgICAg
ICAgLCBtX3ZhbHVlKCZ2YWx1ZSkKLSAgICAgICAgLCBtX3ZhbHVlSXNDb3B5KGZhbHNlKQorICAg
ICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KIApAQCAtMTQ3LDE3ICsxNDYsMTYg
QEAgcHJvdGVjdGVkOgogICAgIFNWR1Byb3BlcnR5VGVhck9mZihjb25zdCBQcm9wZXJ0eVR5cGUq
IGluaXRpYWxWYWx1ZSkKICAgICAgICAgOiBtX2FuaW1hdGVkUHJvcGVydHkobnVsbHB0cikKICAg
ICAgICAgLCBtX3JvbGUoVW5kZWZpbmVkUm9sZSkKLSAgICAgICAgLCBtX3ZhbHVlKGluaXRpYWxW
YWx1ZSA/IG5ldyBQcm9wZXJ0eVR5cGUoKmluaXRpYWxWYWx1ZSkgOiBudWxscHRyKQogICAgICAg
ICAsIG1fdmFsdWVJc0NvcHkodHJ1ZSkKICAgICB7CisgICAgICAgIGlmIChpbml0aWFsVmFsdWUp
CisgICAgICAgICAgICBtX3ZhbHVlID0gU1ZHVmFsdWU6OmNyZWF0ZSgqaW5pdGlhbFZhbHVlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVRlYXJPZmYoKQogICAgIHsKLSAgICAg
ICAgaWYgKG1fdmFsdWVJc0NvcHkpIHsKKyAgICAgICAgaWYgKG1fdmFsdWVJc0NvcHkpCiAgICAg
ICAgICAgICBkZXRhY2hDaGlsZHJlbigpOwotICAgICAgICAgICAgZGVsZXRlIG1fdmFsdWU7Ci0g
ICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGRldGFjaENoaWxkcmVuKCkKQEAgLTE3MSwxMCAr
MTY5LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5PiBt
X2FuaW1hdGVkUHJvcGVydHk7CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLSAgICBQcm9w
ZXJ0eVR5cGUqIG1fdmFsdWU7CisgICAgUmVmUHRyPFNWR1ZhbHVlPiBtX3ZhbHVlOwogICAgIFZl
Y3RvcjxXZWFrUHRyPFNWR1Byb3BlcnR5VGVhck9mZkJhc2U+PiBtX2NoaWxkVGVhck9mZnM7CiAg
ICAgV2Vha1B0ckZhY3Rvcnk8U1ZHUHJvcGVydHlUZWFyT2ZmPiBtX3dlYWtQdHJGYWN0b3J5Owot
ICAgIGJvb2wgbV92YWx1ZUlzQ29weTsKKyAgICBib29sIG1fdmFsdWVJc0NvcHkgeyBmYWxzZSB9
OwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eVRyYWl0cy5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gTGlzdE1vZGlmaWNhdGlv
biB7CisgICAgTGlzdE1vZGlmaWNhdGlvblVua25vd24gPSAwLAorICAgIExpc3RNb2RpZmljYXRp
b25JbnNlcnQgPSAxLAorICAgIExpc3RNb2RpZmljYXRpb25SZXBsYWNlID0gMiwKKyAgICBMaXN0
TW9kaWZpY2F0aW9uUmVtb3ZlID0gMywKKyAgICBMaXN0TW9kaWZpY2F0aW9uQXBwZW5kID0gNAor
fTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KIHN0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0cyB7IH07CiAKQEAgLTM5LDcgKzQ3LDYgQEAgdGVtcGxhdGU8Pgogc3RydWN0IFNW
R1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0KLSAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9CiAgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAi
ZmFsc2UiOyB9CiB9OwogCkBAIC02MCw3ICs2Nyw2IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0
czxDb2xvcj4gewogdGVtcGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPHVuc2lnbmVk
PiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIDA7IH0KLSAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFs
VmFsdWUoKTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcodW5zaWduZWQgdHlwZSkgeyBy
ZXR1cm4gU3RyaW5nOjpudW1iZXIodHlwZSk7IH0KIH07CiAKQEAgLTY4LDcgKzc0LDYgQEAgdGVt
cGxhdGU8Pgogc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGludD4gewogICAgIHN0YXRpYyBpbnQg
aW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBpbnQgZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmc3RyaW5nKSB7IHJldHVybiBzdHJpbmcudG9JbnRTdHJpY3QoKTsgfQotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGludD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUo
KTsgfQogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IHR5cGUpIHsgcmV0dXJuIFN0cmlu
Zzo6bnVtYmVyKHR5cGUpOyB9CiB9OwogCkBAIC04Miw4ICs4Nyw2IEBAIHN0cnVjdCBTVkdQcm9w
ZXJ0eVRyYWl0czxzdGQ6OnBhaXI8aW50LCAKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihmaXJzdE51
bWJlcikpLCBzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihzZWNvbmROdW1iZXIpKSk7CiAgICAgfQot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxpbnQsIGludD4+IHBhcnNlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyBy
ZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKHN0ZDo6
cGFpcjxpbnQsIGludD4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CkBAIC0xMTYsOCArMTE5LDYgQEAgc3RydWN0IFNWR1By
b3BlcnR5VHJhaXRzPHN0ZDo6cGFpcjxmbG9hdAogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZpcnN0TnVtYmVyLCBzZWNvbmROdW1iZXIpOwog
ICAgIH0KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4g
cGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9T
dHJpbmcoc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJl
dHVybiBlbXB0eVN0cmluZygpOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU3RhdGljTGlzdFByb3Bl
cnR5VGVhck9mZi5oCShyZXZpc2lvbiAyMzA2NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdTdGF0aWNMaXN0UHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMs
OSArMzQsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTGlzdEl0ZW1UZWFyT2ZmID0gdHlwZW5hbWUg
U1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UZWFyT2ZmOwogCiAgICAg
dXNpbmcgQmFzZTo6bV9yb2xlOwotICAgIHVzaW5nIEJhc2U6Om1fdmFsdWVzOworICAgIHVzaW5n
IEJhc2U6OnZhbHVlc1JlZmVyZW5jZTsKIAotICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKFNW
R0VsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKKyAgICBzdGF0
aWMgUmVmPFNlbGY+IGNyZWF0ZShTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCwgY29uc3QgUmVm
UHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2VsZihjb250ZXh0RWxlbWVudCwgdmFsdWVzKSk7CiAgICAgfQpAQCAtNzYsNyArNzcsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5
VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUHJvcGVydHlUeXBlJiB2YWx1ZXMp
CisgICAgU1ZHU3RhdGljTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWVzKQogICAgICAgICA6IEJhc2UoVW5k
ZWZpbmVkUm9sZSwgdmFsdWVzLCBudWxscHRyKQogICAgICAgICAsIG1fY29udGV4dEVsZW1lbnQo
KmNvbnRleHRFbGVtZW50KQogICAgIHsKQEAgLTg5LDggKzkwLDcgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1f
dmFsdWVzKTsKLSAgICAgICAgbV92YWx1ZXMtPmNvbW1pdENoYW5nZShtX2NvbnRleHRFbGVtZW50
KTsKKyAgICAgICAgdmFsdWVzUmVmZXJlbmNlKCkuY29tbWl0Q2hhbmdlKG1fY29udGV4dEVsZW1l
bnQpOwogICAgIH0KIAogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1WYWx1ZShjb25z
dCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYu
aAkocmV2aXNpb24gMjMwNjQ3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsNyArMzcsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBVc2VkIGZvciBub24tYW5pbWF0ZWQgUE9EIHR5cGVzIHRoYXQgYXJlIG5v
dCBhc3NvY2lhdGVkIHdpdGggYSBTVkdBbmltYXRlZFByb3BlcnR5IG9iamVjdCwgbm9yIHdpdGgg
YSBYTUwgRE9NIGF0dHJpYnV0ZQogICAgIC8vIChmb3IgZXhhbXBsZTogU1ZHU1ZHRWxlbWVudDo6
Y3VycmVudFRyYW5zbGF0ZSkuCi0gICAgc3RhdGljIFJlZjxTZWxmPiBjcmVhdGUoQ29udGV4dEVs
ZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBVcGRhdGVNZXRob2Qg
dXBkYXRlKQorICAgIHN0YXRpYyBSZWY8U2VsZj4gY3JlYXRlKENvbnRleHRFbGVtZW50JiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUmVmUHRyPFNWR1ZhbHVlPiYgdmFsdWUsIFVwZGF0ZU1ldGhvZCB1
cGRhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWxmKGNvbnRleHRF
bGVtZW50LCB2YWx1ZSwgdXBkYXRlKSk7CiAgICAgfQpAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb21taXRDaGFuZ2UoKSBmaW5hbCB7IChtX2NvbnRleHRFbGVtZW50LmdldCgp
LT4qbV91cGRhdGUpKCk7IH0KIAogcHJpdmF0ZToKLSAgICBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJP
ZmYoQ29udGV4dEVsZW1lbnQmIGNvbnRleHRFbGVtZW50LCBQcm9wZXJ0eVR5cGUmIHZhbHVlLCBV
cGRhdGVNZXRob2QgdXBkYXRlKQorICAgIFNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZihDb250ZXh0
RWxlbWVudCYgY29udGV4dEVsZW1lbnQsIGNvbnN0IFJlZlB0cjxTVkdWYWx1ZT4mIHZhbHVlLCBV
cGRhdGVNZXRob2QgdXBkYXRlKQogICAgICAgICA6IFByb3BlcnR5VGVhck9mZihVbmRlZmluZWRS
b2xlLCB2YWx1ZSkKICAgICAgICAgLCBtX3VwZGF0ZSh1cGRhdGUpCiAgICAgICAgICwgbV9jb250
ZXh0RWxlbWVudCgmY29udGV4dEVsZW1lbnQpCg==
</data>
<flag name="commit-queue"
          id="356278"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>337952</attachid>
            <date>2018-04-13 20:03:59 -0700</date>
            <delta_ts>2018-04-13 20:03:59 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews101 for mac-sierra</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>2517896</size>
            <attacher name="EWS Watchlist">ews-watchlist</attacher>
            
              <data encoding="base64">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
mo1MsSXyJrgAAAApAQAAOQAcAGFjY2Vzc2liaWxpdHkvbWFjL0FPTS1ldmVudC1hY2Nlc3NpYmxl
c2V0dmFsdWUtc3RkZXJyLnR4dFVUCQADsGXRWu5g0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd/
xRt1EGmpiE1MDODqgG7GmEf7VCK2ppT49wViGBxd7y7f3fGQJfNQzFkEbC05k1EcMBFD3j5fBRlN
7uiITpFYcS55vEy4OMOe/Nu6x8FbhzfKU3mxLzJ5WhDqzBpDylfWNBKuWNWkwVvoA+A6H9QY6PU8
hS1MTVvXs0WG6k6BLgOAnXPWbZgIIMO2oU1rsKxpBGn0WGJDcO34E/7Ph6GsHyzhB656ZyA3UJnv
uMkHUEsDBAoAAAAAACmYjUwAAAAAAAAAAAAAAAAkABwAYWNjZXNzaWJpbGl0eS9tYWMvYXR0cmli
dXRlZC1zdHJpbmcvVVQJAAPuYNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACymo1MH1s/
xrkAAAApAQAAbgAcAGFjY2Vzc2liaWxpdHkvbWFjL2F0dHJpYnV0ZWQtc3RyaW5nL2F0dHJpYnV0
ZWQtc3RyaW5nLWRvZXMtbm90LWluY2x1ZGVzLW1pc3NwZWxsZWQtZm9yLW5vbi1lZGl0YWJsZS1z
dGRlcnIudHh0VVQJAAOwZdFa7mDRWnV4CwABBPUBAAAEFAAAAJ2PPw+CMBTEdz/FG3UA7R8Vm5AY
wNVB3YwxD/pQYm1JKfHrK8Y4OLreXX53x2csiWYyYgLYSnGmxCLmIoGiv7c7spr8wRMdhVxyqfhi
nojVCbYUHs7f9sF5vFCRqbNryRbZjlDnzlqqQuNsp6DGxpCG4GAIgH/5UH0Dg15ksIax7Y2ZTHOs
rhTrMgbYeO98ymQMOfYdpb3F0tAXpDFgiR1B/eKP+D8f3mXDYAU/8Gpw3uQOGvsZN3oCUEsDBAoA
AAAAACmYjUwAAAAAAAAAAAAAAAAeABwAYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvVVQJ
AAPuYNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACymo1M5m4LO7gAAAApAQAANgAcAGFj
Y2Vzc2liaWxpdHkvbWFjL3NlbGVjdC10ZXh0L3NlbGVjdC10ZXh0LTEtc3RkZXJyLnR4dFVUCQAD
sGXRWu5g0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd/xRt1AGlBxCYkBnB1QDdjzIM+lIgtKSX+
fYEYBkfXu8t3d9xjkeMFDvOB7QRnwg9dP/Qg619tTkqSORuiix9seSh4uImC6ApHsm9tnierDd4p
S8RNt6SyJCeUqVaKSltr1QmosG5IgtUwBsAMPpRzYNSzBPawVH3TrNYplg9yZeECHIzRJmaBCyn2
HcW9wqKhGSTRYoEdQTXwF/yfD1PZOFjAD7wcnYncQa2+4xYfUEsDBAoAAAAAACqYjUwAAAAAAAAA
AAAAAAAfABwAYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdlL1VUCQAD72DRWkdo0Vp1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAspqNTFC6Rui5AAAAKQEAAFAAHABhY2Nlc3NpYmlsaXR5L21h
Yy92YWx1ZS1jaGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby1jb250ZW50ZWRpdGFibGUtc3Rk
ZXJyLnR4dFVUCQADsGXRWu9g0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd/xRt1oNpSEZqQGMDV
Ad2MMQ/6VCK2pJT49xVjHBxd7y7f3YkFj4OFDHgIPFGCqzBiMkqgGO5dSUaT2zuiQyhXIlYiWsYR
P8KW/MO6285bhxcqMnWyHZkiKwl1bo2h2jfW9ArO2LSkwVsYA+BePtTfwKgXGaxhaoa2nc1zrK/E
dMUANs5Zl3LJIMehp3QwWLX0BWn0WGFPcH7xJ+KfD++ycbCCH3g9Om9yD435jJs8AVBLAwQKAAAA
AAAqmI1MAAAAAAAAAAAAAAAAGgAcAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvVVQJAAPvYNFa
R2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACymo1MwFFGrbkAAAApAQAAVgAcAGFjY2Vzc2li
aWxpdHkvdGV4dC1tYXJrZXIvY2hhcmFjdGVyLW9mZnNldC12aXNpYmxlLXBvc2l0aW9uLWNvbnZl
cnNpb24taGFuZy1zdGRlcnIudHh0VVQJAAOwZdFa72DRWnV4CwABBPUBAAAEFAAAAJ2PvQ6CQBCE
e55iSy1Ajh+FS0gMYGuBdsaYhVuUiHfkOOLrC8RQWNrOTL6Z8VwW2W5gMx9YzD3G/a0Txi7kw6sr
SArSZ0108YOd73JvG0a74ApHMm+lnyejNN4pT/lNdSTztCAUmZKSKtMo2XOosWlJgFEwBUCPPlRL
YNLzFPawkkPbrjcZVg9yROkAHLRWOmGBAxkOPSWDxLKlBSTQYIk9QT3yLe+fD3PZNJjDD7yanJnc
QyO/46wPUEsDBAoAAAAAAMaajUwAAAAAAAAAAAAAAAALABwAYW5pbWF0aW9ucy9VVAkAA9Nl0VpH
aNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAACqYjUwAAAAAAAAAAAAAAAAOABwAYW5pbWF0aW9u
cy8zZC9VVAkAA+9g0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALOajUyPP1EDuQAAACkB
AAA2ABwAYW5pbWF0aW9ucy8zZC9jaGFuZ2UtdHJhbnNmb3JtLWluLWVuZC1ldmVudC1zdGRlcnIu
dHh0VVQJAAOxZdFa72DRWnV4CwABBPUBAAAEFAAAAJ2PPw+CMBTEdz/FG3UA6R+1NDExgKsDuhlj
HvSpRGxNKfHrK8Y4OLreXX53xxOmokRGTABLNWdazGM1E1D0t3tJ1pDfeaK9kAshNZ/PVKoOsKHw
cP66Dc7jmYpMH92dbJGVhCZ31lIdGmc7DSdsWjIQHAwB8C8f6m9g0IsMVjC2fdtOpjnWF4pNFQOs
vXd+yWQMOfYdLXuLVUtfkMGAFXYEpxd/xP/58C4bBmv4gdeD8yZ30NjPuNETUEsDBBQAAgAIALKa
jUxGi/eTuQAAACkBAAAwABwAYW5pbWF0aW9ucy9DU1NLZXlmcmFtZXNSdWxlLW5hbWUtbnVsbC1z
dGRlcnIudHh0VVQJAAOwZdFa72DRWnV4CwABBPUBAAAEFAAAAJ2PMQ+CMBSEd3/FG3UQaUHEJiQG
cHVQN2PMo30osbamlPj3tcY4OLreXb674zHLp3E6ZQmwpeBMJFm0iOdQD7f7lowit3dEhyRdJFzw
bJ7n2RE25B/WXXfeOjxTXYqTvZOpyy2hqqwxJH1nTS+gxU6TAm8hBMC9fJDfQNDrElYwNoPWk1mF
8kKRaiKAtXPWFSyNoMKhp2Iw2Gj6ghR6bLAnaF/8Ef/nw7ssDBbwA5fBeZN76Mxn3OgJUEsDBBQA
AgAIAMaajUxPRpW7KgMAACopAAAiABwAYW5pbWF0aW9ucy9uZWVkcy1sYXlvdXQtYWN0dWFsLnBu
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
AgAIALOajUwGtQgCuAAAACkBAABCABwAY29tcG9zaXRpbmcvYW5pbWF0aW9uL2FuaW1hdGVkLWNv
bXBvc2l0ZWQtaW5zaWRlLWhpZGRlbi1zdGRlcnIudHh0VVQJAAOxZdFa72DRWnV4CwABBPUBAAAE
FAAAAJ2PMQ+CMBSEd3/FG3UA29KoNCExgKsDuhljHvShRGxJKfHvC8Y4OLreXb67E4xvAiYDHgGP
leAqWociZpAPj64go8kdHdEpkmvJlFitWCTPsCf/tO5+8NbhlfJUXWxHJk8LQp1ZY6jyjTW9ghqb
ljR4C1MA3OhD9Q1Mep7CFuZmaNvFMsPqRqEuQ4Cdc9YlXIaQ4dBTMhgsW/qCNHossSeoR/5M/PPh
XTYNVvADrybnTe6hMZ9xsxdQSwMECgAAAAAAKpiNTAAAAAAAAAAAAAAAAB0AHABjb21wb3NpdGlu
Zy9iYWNrZ3JvdW5kLWNvbG9yL1VUCQAD8GDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
s5qNTODuwMi4AAAAKQEAAEsAHABjb21wb3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91
bmQtY29sb3ItYWxwaGEtd2l0aC1vcGFjaXR5LXN0ZGVyci50eHRVVAkAA7Fl0VrwYNFadXgLAAEE
9QEAAAQUAAAAnY8xD4IwFIR3f8UbdQBpqShNTAzg6oBuxpgHfSoRW1JK/PsCMQyOrneX7+54wDZe
IDwWAoslZzJc+2EsIOteTU5akT1ZonMo1oJLHkVBtLrAgdzb2OfRGYt3yhJ5NQ3pLMkJVWq0ptJV
RrcSbljVpMAZGAJgex/KKTDoWQI7mOuurhfLFMsH+arwAfbWGrtlwocUu5a2ncaipgmk0GGBLcGt
58/4Px/GsmGwhB94OTgjuYVKf8fNPlBLAwQKAAAAAAAqmI1MAAAAAAAAAAAAAAAAGAAcAGNvbXBv
c2l0aW5nL2JhY2tncm91bmRzL1VUCQAD8GDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
s5qNTIQHVUC4AAAAKQEAAEEAHABjb21wb3NpdGluZy9iYWNrZ3JvdW5kcy9maXhlZC1iYWNrZ3Jv
dW5kLW9uLWRlc2NlbmRhbnQtc3RkZXJyLnR4dFVUCQADsWXRWvBg0Vp1eAsAAQT1AQAABBQAAACd
jzEPgjAUhHd+xRt1ECltQJuQGMDVAd2MMQ/6UCK2prTx7wvGODi63l2+u4sjtlpEYsE4sLWMmeRp
mPAISn9/VKQV2YMlOnKRCiHjJGGMn2BH7mnsbe+MxQuVuTybB+kyrwhVYbSmxnVGDxJa7HpS4AxM
AbCjD803MOllDhuYad/382WBzZVCVYcAW2uNzZgIoUA/UOY11j19QQod1jgQtCM/iP/58C6bBkv4
gTeT8yYP0OnPuOAFUEsDBAoAAAAAACqYjUwAAAAAAAAAAAAAAAATABwAY29tcG9zaXRpbmcvY2Fu
dmFzL1VUCQAD8GDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAs5qNTD4yPse4AAAAKQEA
AEcAHABjb21wb3NpdGluZy9jYW52YXMvYWNjZWxlcmF0ZWQtY2FudmFzLWNvbXBvc2l0aW5nLXNp
emUtbGltaXQtc3RkZXJyLnR4dFVUCQADsmXRWvBg0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd/
xRt1ACkQwCYkBnB1QDdjzKN9KBFbUkr8+wIxDI6ud5fv7nyPJY4XOiwAtuM+40HsRnEMxfDqSlKS
zNkQXYIwDiPuRxELkiscyb61eZ6sNninIuM33ZEqspJQ5lopErbRqudQY9OSBKthCoAZfRBLYNKL
DPawVkPbbrY5ige5snIBDsZok7LQhRyHntJBYdXSApJoscKeoB75K/+fD3PZNJjDD1xMzkzuoVHf
casPUEsDBAoAAAAAACqYjUwAAAAAAAAAAAAAAAAUABwAY29tcG9zaXRpbmcvY29sdW1ucy9VVAkA
A/Bg0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALOajUwPFv4CuQAAACkBAAA8ABwAY29t
cG9zaXRpbmcvY29sdW1ucy9hbmNlc3Rvci1jbGlwcGVkLWluLXBhZ2luYXRlZC1zdGRlcnIudHh0
VVQJAAOyZdFa8GDRWnV4CwABBPUBAAAEFAAAAJ2PvQ6CQBCEe55iSy1ADgg/l5AYwNYC7YwxC7co
Ee/IccTXF4ihsLSdmXwz47kstt3AZj6whHuM+5ETJzEU46svSQrSZ0108YMoiLkXhixMrnAk81b6
eTJK452KjN9UT7LISkKRKympNq2SA4cG244EGAVzAPTkQ70GZr3IYA8bOXbddpdj/SBHVA7AQWul
UxY4kOM4UDpKrDpaQQINVjgQNBPf8v75sJTNgzn8wOvZWcgDtPI7zvoAUEsDBAoAAAAAALOajUwA
AAAAAAAAAAAAAAAcABwAY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL1VUCQADsmXRWkdo0Vp1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAs5qNTLHz+Ze4AAAAKQEAADYAHABjb21wb3NpdGluZy9j
b250ZW50cy1vcGFxdWUvYmFja2dyb3VuZC1jbGlwLXN0ZGVyci50eHRVVAkAA7Jl0VqyZdFadXgL
AAEE9QEAAAQUAAAAnY8xD4IwFIR3fsUbdRDbgiBNTAzg6qBuxpgHfSgRW1NK/PsCMQyOrneX7+4E
4+sFCxc8AJ5IwWUQ+wnjkHfP14G0InuyROcgjFdMiigSnF1gT+5t7OPojMUb5am8mhfpPD0Qqsxo
TaWrjW4lVFg3pMAZGAJgex/KKTDoeQpbmOmuaebLDMs7+arwAXbWGrvhoQ8Zdi1tOo1FQxNIocMC
W4Kq53vinw9j2TBYwg+8HJyR3EKtv+O8D1BLAwQKAAAAAAAqmI1MAAAAAAAAAAAAAAAAGwAcAGNv
bXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL1VUCQAD8GDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAKpiNTD57SmO4AAAAKQEAAC8AHABjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9hbmlt
YXRpbmctc3RkZXJyLnR4dFVUCQAD8GDRWvBg0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd+xRt1
EFssRpqQGMDVQd2MMY/2oURsTSnx7wvEMDi63l2+u4sY3yyYWPAV8EQyLiMWxmINRfd8HchocidH
dF6xKGaSJyJOxAX25N/WPY7eOrxRkcmrfZEpsgOhzq0xpHxtTSuhwrohDd7CEADX+6CmwKAXGWxh
ZrqmmS9zVHcKdRkC7JyzLuUihBy7ltLOYNnQBNLoscSWoOr5QfTPh7FsGCzhB64GZyS3UJvvuOAD
UEsDBAoAAAAAACqYjUwAAAAAAAAAAAAAAAAUABwAY29tcG9zaXRpbmcvZmlsdGVycy9VVAkAA/Bg
0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALOajUwrvSaQuAAAACkBAAA0ABwAY29tcG9z
aXRpbmcvZmlsdGVycy9ibGVuZC1tb2RlLXNhdHVyYXRpb24tc3RkZXJyLnR4dFVUCQADsmXRWvBg
0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd/xRt1AG2Lik1IDODqoG7GmEf7VGJtTSnx7wvEODi6
3l2+u+MzlkazJGIC2EpyJkUasyWDsn08d2Q1+YMnOopkOeeSLxZcJCfYUng5f98H5/FKZS7P7km2
zHeEunDWkgq1s42EC9aGNAQHfQB854P6Bnq9zGENY9saM5kWqG4U6yoG2HjvfMaSGApsG8pai5Wh
L0hjwAobgkvHH/F/Pgxl/WAJP3DVOwO5gdp+xo3eUEsDBAoAAAAAACqYjUwAAAAAAAAAAAAAAAAW
ABwAY29tcG9zaXRpbmcvZnJhbWVzZXRzL1VUCQAD8GDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAs5qNTEZUiIS5AAAAKQEAADsAHABjb21wb3NpdGluZy9mcmFtZXNldHMvY29tcG9zaXRl
ZC1mcmFtZS1hbGlnbm1lbnQtc3RkZXJyLnR4dFVUCQADsmXRWvBg0Vp1eAsAAQT1AQAABBQAAACd
jzEPgjAUhHd/xRt1oNpSEZqQGMDVAd2MMQ/6VCK2pJT49xVjHBxd7y7f3YkFj4OFDHgIPFGCqzBm
Ik6gGO5dSUaT2zuiQyhXS6lEFIkoOcKW/MO6285bhxcqMnWyHZkiKwl1bo2h2jfW9ArO2LSkwVsY
A+BePtTfwKgXGaxhaoa2nc1zrK/EdMUANs5Zl3LJIMehp3QwWLX0BWn0WGFPcH7xJ+KfD++ycbCC
H3g9Om9yD435jJs8AVBLAwQKAAAAAAArmI1MAAAAAAAAAAAAAAAAFAAcAGNvbXBvc2l0aW5nL2lm
cmFtZXMvVVQJAAPxYNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACzmo1M3VEja7gAAAAp
AQAAPwAcAGNvbXBvc2l0aW5nL2lmcmFtZXMvYmVjb21lLWNvbXBvc2l0ZWQtbmVzdGVkLWlmcmFt
ZXMtc3RkZXJyLnR4dFVUCQADsmXRWvFg0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAUhHd+xRt1ACkg
YBMSA7g6oJsx5kEfSsSWlBL/vkAMg6Pr3eW7O89lse0GNvOB7bjHuB87gRtBPry6gqQgfdZEFz+I
thH3wtB34yscybyVfp6M0ninPOU31ZHM04JQZEpKqkyjZM+hxqYlAUbBFAA9+lAtgUnPU9jDSg5t
u95kWD3IEaUDcNBa6YQFDmQ49JQMEsuWFpBAgyX2BPXIt7x/Psxl02AOP/BqcmZyD438jrM+UEsD
BAoAAAAAACuYjUwAAAAAAAAAAAAAAAAbABwAY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vVVQJ
AAPxYNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACzmo1MeVneGrgAAAApAQAARQAcAGNv
bXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2FuaW1hdGlvbi1vdmVybGFwLXdpdGgtY2hpbGRyZW4t
c3RkZXJyLnR4dFVUCQADsmXRWvFg0Vp1eAsAAQT1AQAABBQAAACdjzEPgjAQhXd/xY06gJRW1CYk
BnB1UDdjzEEPJWJLSol/X2qMg6PrfS/fexdHbBVEImAc2FrGTPJVmKwjKIZHtyetyB4t0YmL5WLE
ScKFOMOO3NPY+8EZi1cqMnkxHeki2xOq3GhNlWuM7iXU2LSkwBnwAbAjh+ob8Pcigw1M9dC2s3mO
1Y1CVYYAW2uNTZkIIcehp3TQWLb0FSl0WGJPUI/+SfzPD+8yP1jCj7zy5G3uodGfcZMXUEsDBAoA
AAAAACuYjUwAAAAAAAAAAAAAAAASABwAY29tcG9zaXRpbmcvbWFza3MvVVQJAAPxYNFaR2jRWnV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACAC0mo1Mgcedk7gAAAApAQAALgAcAGNvbXBvc2l0aW5nL21h
c2tzL2JlY29tZS10aWxlZC1tYXNrLXN0ZGVyci50eHRVVAkAA7Nl0VrxYNFadXgLAAEE9QEAAAQU
AAAAnY8xD4IwFIR3f8UbdRBpIVWamBioq4O6GWMe9KFEbE0p8e9LiXFwdL27fHfHY7aax+mcJcAy
yZlMVpEQS1D947kno8kdHdEpSZeCSy5Ekokz7Mi/rLsfvHV4JZXLi32SUfmeUBfWGKp8Y00nocam
JQ3eQgiAG3yovoGgqxw2MDV9284WBVY3inQZAWyds27N0ggK7Dta9wbLlr4gjR5L7AjqgT/h/3wY
y8JgCT/wKjgjuYPGfMZN3lBLAwQKAAAAAAArmI1MAAAAAAAAAAAAAAAAFQAcAGNvbXBvc2l0aW5n
L292ZXJmbG93L1VUCQAD8WDRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAs5qNTHTxeka4
AAAAKQEAADEAHABjb21wb3NpdGluZy9vdmVyZmxvdy9hbmNlc3Rvci1vdmVyZmxvdy1zdGRlcnIu
dHh0VVQJAAOyZdFa8WDRWnV4CwABBPUBAAAEFAAAAJ2PMQ+CMBSEd37FG3UAKVTAJiYGcHVAN2PM
gz6ViC0pJf59gRgGR9e7y3d3gc8S1+cuC4FtRMBEmHgxTyDvX21BSpI5GaJzyOOIiyCKOFtf4ED2
rc3zaLXBO+WpuOqWVJ4WhDLTSlFla606ATesG5JgNYwBMIMP1RwY9TyFHSxU3zTLVYbVgzxZegB7
Y7TZMu5Bhn1H215h2dAMkmixxI7gNvCd4J8PU9k4WMAPvBqdidxBrb7jnA9QSwMECgAAAAAAK5iN
TAAAAAAAAAAAAAAAAB0AHABjb21wb3NpdGluZy9vdmVybGFwLWJsZW5kaW5nL1VUCQAD8mDRWkdo
0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAtJqNTELdUfS8AAAAKQEAAD0AHABjb21wb3NpdGlu
Zy9vdmVybGFwLWJsZW5kaW5nL2NoaWxkcmVuLW9wYWNpdHktaHVnZS1zdGRlcnIudHh0VVQJAAOz
ZdFa8mDRWnV4CwABBPUBAAAEFAAAAH2PMQ+CMBSEd3/FG3UQaakITUgM4OqgbsaYB30oEVtTSvz7
CjEMxrjeXb674z6L5r6YswBYLDmTQeTFywDy7v7YkVZkD5boGIhVGEoehkLwE2zJPY297Z2xeKE8
lWfzIJ2nO0KVGa2pdLXRrYQK64YUOAN9AOzbh3IM9Hqewhqmumua2SLD8kqeKjyAjbXGJkx4kGHX
UtJpLBoaQQodFtgSVG/+hP/8IP5/GMr6wRK+4GXvDOQWav0ZN3kBUEsDBAoAAAAAACuYjUwAAAAA
AAAAAAAAAAAVABwAY29tcG9zaXRpbmcvcGF0dGVybnMvVVQJAAPxYNFaR2jRWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAArmI1MsBHbwrgAAAApAQAAQwAcAGNvbXBvc2l0aW5nL3BhdHRlcm5zL2Rp
cmVjdC1wYXR0ZXJuLWNvbXBvc2l0aW5nLWFkZC10ZXh0LXN0ZGVyci50eHRVVAkAA/Fg0VrxYNFa
dXgLAAEE9QEAAAQUAAAAnY8xD4IwFIR3fsUbdQApIEITEgO4OqCbMeZBH0rElpQS/75ADIOj693l
uzvPZZHtBjbzgcXcZdxjThhsIR9eXUFSkD5roovvemHMWRxE4e4KRzJvpZ8nozTeKU/5TXUk87Qg
FJmSkirTKNlzqLFpSYBRMAVAjz5US2DS8xT2sJJD2643GVYPckTpABy0VjphgQMZDj0lg8SypQUk
0GCJPUE98i3vnw9z2TSYww+8mpyZ3EMjv+OsD1BLAwQKAAAAAAC0mo1MAAAAAAAAAAAAAAAAFAAc
AGNvbXBvc2l0aW5nL3BsdWdpbnMvVVQJAAOzZdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAC0mo1M/JSTpbwAAAApAQAANAAcAGNvbXBvc2l0aW5nL3BsdWdpbnMvMXgxLWNvbXBvc2l0ZWQt
cGx1Z2luLXN0ZGVyci50eHRVVAkAA7Nl0VqzZdFadXgLAAEE9QEAAAQUAAAAfY8xD4IwFIR3f8Ub
dQBti4hNSAzg6qBuxpgHfSgRW1La+PcVYxyMcb27fHfHZywJZlHABLCl5EyKZcj4Agp/67akFdm9
JTqIaBEnksfxnIkjbMjdjb3unLF4piKTJ9ORLrItocqN1lS5xuheQo1NSwqcgSEA9ulD9QkMepHB
Csbat+1kmmN1oVCVIcDaWmNTFoWQo+8p9RrLlj4ghQ5L7AnqJ3/Ef35I/n94lQ2DJXzBq8F5kXto
9Hvc6AFQSwMECgAAAAAAMpiNTAAAAAAAAAAAAAAAAAcAHABjcnlwdG8vVVQJAAP/YNFaR2jRWnV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAymI1MAAAAAAAAAAAAAAAADgAcAGNyeXB0by9zdWJ0bGUv
VVQJAAP/YNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAIAAAC6mo1MJeDTCCwAAAAsAAAAPgAc
AGNyeXB0by9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRl
cnIudHh0VVQJAAPAZdFa/2DRWnV4CwABBPUBAAAEFAAAAENvdWxkIG5vdCBnZW5lcmF0ZSBhIGtl
eSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBBQAAgAIALqajUwwO7ixSwAAAGgAAAA8ABwAY3J5cHRv
L3N1YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQJ
AAPAZdFa/2DRWnV4CwABBPUBAAAEFAAAAG3LsQ2AMAxE0Z4pbh8aVrBkS7GAOHIuRGwPDR31f39L
v4SG3e6O6SwxCFF1elQ5oEKBpKEG0UdrkTRd1o/jjDeySAVnoKWf1n+GB1BLAwQKAAAAAAAumI1M
AAAAAAAAAAAAAAAADwAcAGNyeXB0by93b3JrZXJzL1VUCQAD+GDRWkdo0Vp1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAALpiNTAAAAAAAAAAAAAAAABYAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvVVQJ
AAP4YNFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAIAAAC3mo1MJeDTCCwAAAAsAAAAMQAcAGNy
eXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVyci50eHRVVAkAA7ll0Vr4
YNFadXgLAAEE9QEAAAQUAAAAQ291bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAt
NDMwNApQSwMECgAAAAAAtZqNTAAAAAAAAAAAAAAAAAUAHABjc3MzL1VUCQADtWXRWkdo0Vp1eAsA
AQT1AQAABBQAAABQSwMECgAAAAAAtZqNTAAAAAAAAAAAAAAAAA0AHABjc3MzL2ZpbHRlcnMvVVQJ
AAO1ZdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAC1mo1MAAAAAAAAAAAAAAAAFgAcAGNz
czMvZmlsdGVycy9iYWNrZHJvcC9VVAkAA7Vl0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
ALWajUzS6Sp0qHQAAOaZAAA/ABwAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FkZC1yZW1vdmUtYWRk
LWJhY2tkcm9wLWZpbHRlci1hY3R1YWwucG5nVVQJAAO1ZdFatWXRWnV4CwABBPUBAAAEFAAAAO39
ZVhcWdP3gQZ3C8E9BAjBIcGdBELwENwtuAdpaFyDJiG4Jmhwd5fGJbgEbVxCmsb17L6f955nmPc9
3891rpkPMwO01F57rarfv1at2h9VleXwsCmxHzx4gCf/+uXbBw9Q6B88QNbGRAd+k+Ie6AT8h/XD
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
+dfrlRNkIt0JDVoGu8421WNqzSXn18RcEJfMr7BeJR/HFmRNL/bEuml1HUYWH6Vl+PK2xt6HhhUM
0UP/cqphnprD8dI0omjWnmjzNAeplga132W6gm6R9V0HQwjZrb/ABpvJrMWhjmTtjHQYq3B5789p
tnBadb0Qepn5XxtV/8TtzcebhR6FcnPa2wZRgS13TVFj8BlEv23lhWscxVwXdTSGY+3euZxHmjHB
RlFV1BbaYFGYp2qn7J9KpciM42ODMR5Nfa/0QcBt5U6UT3Y7FXOf+nTqZQKgb1xetOXZtDxUM5kK
75EWPfLhexoJl1veNsX/bBvB1onz3wUfxr6eQJaZjiaS8vs/1S75oizfSZy6YtuLA+n/0CsHwNYP
K6O4//2V/ywyssz+RX70f98pzoiE9GuUn0fyvx9GW+v34JunaCG9+H/DG+/EHzDyKPb/Hzf3sNL6
rWbEbP8f08YTEoi/i1Lh/u93ozriYNLWb2QL/jOc/z8ZDnmxssiDB2RKiF4A/8zUP8P5Zzj/DOef
4fwznH+G889w/hnOP8P5Zzj/DOef4fwznH+G889w/hnOP8P5Zzj/DOef4fwznH+G889w/hnO//fh
tN4hO8NlMs/LT/gfAH9k3yq+KXltEPD/AVBLAwQKAAAAAAAvmI1MAAAAAAAAAAAAAAAADQAcAGRp
c3BsYXlsaXN0cy9VVAkAA/pg0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALiajUwBacvZ
VgAAAJQAAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVy
ci50eHRVVAkAA7xl0Vr6YNFadXgLAAEE9QEAAAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV
0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVBwySwuyEms9MksBmoISk3OL0pJLdLjckc3qxjN
LCLNAQBQSwMECgACAAAAuJqNTLFQEsVMAAAATAAAACkAHABkaXNwbGF5bGlzdHMvbGF5ZXItZGlz
cGF5LWxpc3Qtc3RkZXJyLnR4dFVUCQADvGXRWvpg0Vp1eAsAAQT1AQAABBQAAABHcmFwaGljc0Nv
bnRleHQ6OmdldENUTSgpIGlzIG5vdCB5ZXQgY29tcGF0aWJsZSB3aXRoIERpc3BsYXlMaXN0OjpS
ZWNvcmRlci4KUEsDBBQAAgAIAPybjUynR9vcMQ8AAH6CAAANABwAZXJyb3JfbG9nLnR4dFVUCQAD
HGjRWsJl0Vp1eAsAAQT1AQAABBQAAADtXXtv20iS//8+RSO4mdjAkOo3mwQGi5zjnXg3k3htZ7NA
EAQ01ZKYUCSXpJz4Dvfdt5qUZFphy5JsJ45DzMAPhayu+tWjq/pRfvfXIkbP8gIRhogfYBIQ7BKC
hcCIYqLeo3dlmQSfwyKFH/N4iBgmUr5Hz15g4mM/QIR6Lob/SMA5CzAqdXGhCxTpoopHcRRWGg0z
XaJXr89QnEbJbKhRmKKj5+jzJI4maBpW0QT+vZroxbtpONX/9a6LM0p9wuQazryGM+WxAB2lcRWg
U12WcZaigxCGQXGJ0qxCUZaO4vGs0EP0bhKn5rHTl/Mn6wffW8eXhN48/ndAhmEl2IKzaT79kBd6
lBWfApA3jvRXPMIPgNGz3Eg7oC53qUJ7b9L4yz46fnE8EK50GUYv4/NCAzbwBHW9Nm6OgwpdzqZx
OgZIi2mYoCzXRVgBhKWdR+UveIyyQluZwz4P0EE2nYbpECVxqgP0dDAri0F5HqeDSVXlwMEIDf6Z
JbOpLgfPwyocHL49HbzV53+Pq/m3/5nFyXBwohMdlnqQhJfZrHIqXVaOYT2pyoaSa8RCzgF6nkVA
La1OMrCRJ1biL2tCZ0CnITAwJMsnyInQ2WWuy4MapW0IGAYG03iq3coQqEmBFo5eHT2Pi20J1W8f
zMoqm77M1rGxKUhhFIFrfEiysVt9qZ6AFUyn4FEwymFRZMXdDKINqasxDADx8K9xooF2Nc0X5BqF
gbXUjzxL4rBEg4/lklY2K4DZDSFbPt8mNtXDONyaVP3WNTLZUBep01ADtVRFlmxKzHUHp/Xo5h8P
wE8Gf2bDWQJvdVJtD7vkuzbKCUQnUJ0blVtDsvr+zYN8vN0YH28eotB5VlS3HGhJ5Ilx+TcQWdGT
c2Oe51lVf/QyLiudtsK3gnjU+od3QUDer37Yflp1Pa0sT8Pc8PXT9YeRmZQOrmaLuTNsF1Q+6/NP
ceXM3UZPnzz9KjbTgAqXeVgosYzN4zioHXIZmZng5vMkhvDYYl8QTkUdsqkiJEBlVMR5Vc+xo2wG
sTsr0CwNz4HzKkNlFcJUu2VcHYR5HtWz1JU6x7o6yLJPsQbTHMe/wUw00oUuAmReCwaD67q7orD4
AVyneXtSTZMOQBh2fYw9j60BxMfv0Z4H5NX+cQhKgglwHstQWGh0ESbw3PmsQnmRmfhpJkpIP2Cm
z6Z5oiuY0rrwFJg3OQSlImgCLNANh+b1Qv97BpAgeCeuLtEQ8OtinkAG5xNvmSetcM4ZtqhS0vcL
DT7dVksQIloKGmqI8Xp4EBdRot18kj9dZxM3KtAQz84/6qhyRmDNc+pOPB075cXYqkXpCo9RH1uA
YEpagOB4dyCugQBqdnJQ3e0hSMOLeFxnVwND0AmrqojBvMCo02iSFXOTXoOFj7kS3IKFZKIbC2ns
EXIR9BbCJwwcIOAcMrJPe4OLsBiMsgRmpHLgpYNS0oiSieC54H4S5am4ACueRsA9HqeDs4FzJYNz
XQZnIUORlaWTFfE4Tp1RkU3rwNW4qVvjCMnBfoBeAWgzSJFHJiQClsO4ANvIiktwr63jSwtZq+4Q
5DsmDUV8RVHldU1B4N5AU2uktKjOo77wdjLj76G6B6yvXRxrVbIuHQFJmAmZsunIZzYdiR8v1DSf
pkMHTCjJPkOy3CjU+TzRqVPq1MxWDTN2vKjy+FVoTvUYSsF60NXIRC2RSSjSFItSeWBiLQJgX2WU
QcEMdaoxub1yv6mmW5Po9nnIFIi2IA+jeMgG5Sw36aQTujnQ3nuVgc1F2SyBqV+jhVB6uO/eiHpN
viZqBU25BCvJ5U5G9q0CQRlO9aOMA6uCWTTkCcLYIw8DkJDelG8ol0FqLG22Kjm15Rv0OyOx3ZRe
Q7HlhA7YSC7UT2Elm0yeyoWahBH/J8BjkyDiu5JCOS7txSe3ZesCk3n1SKB6fFNClB2BBHEamwI1
/l+YEKEwnWn034ev/vl/T16cnR1/eHP8x8mz54cfjl6dHh68OTn8cHL4jzeHp2enT/7fhOUoS83q
Q1rLhPbcfQNKCULBfBdWW0ftUkezAqpXszwBVKvT+e/HWRJHl4NZPi7CoXbitH5QO/Ppuq0vDeG4
8TBnApWxLtw8aaK8coOHwtCNhrLzuO2BnHJ2vuDDZk+cusRXVKxZzPCEskRjT21mT/dvKGZp/XVe
by+0oG+83/kcV5NVYyD+HVjDFqNurfE27TQr03g0clqUzRL5/EnHbAs450kWfdLDNXr2OeXeurhB
baXiYudqi7jx+uToj6NX9xskmkj5ooa4hX8OhKtFGAUx78D7NxxpcyVfIzjPDeZOO4JscqwrqyKZ
C1mQwrb5UEnSrUUPs/vI8+NpONZOkoVDiEZODr9MYohME6gAE7D8HzTJ30CqLt1wF1MhuHiQugGK
5qdHpZkOmbr0IusFBUzWBD9uCX5q00muFfz+9eEMUqQPLw4hczoh9xIEv0wT89t83jc7OU6Y5+UA
Y15vd14FPr5D4NuE+o1KW0NkjaK4ED7D6/aaWtltENQq8uGjQ5OQjxYJPwiVzyp0bk45aNRE1jJA
zWb1Ym/UOQ/LODLB1hmFceKk4DJlbPZfdpIvKz4ZJ20vAm042seyCwvPZUoKT3Sd27iOSevYhtlm
a46DQEERTcA6/wy/nDQsvm04hAeqCszuN2OTJYQ1eDaM6y0oc5rE+nwHjwK7khB/XVYhiVrRF62j
3ZYudXp49uHg9eu/Hx3eizvNt/zaWdy1XcR50kh28KWbSN+2Fmi2rK8vM6TZYhOzWXWFROUC0HLO
i+yzUbSj67p1aMJwl1qJqzxIFpVdrUqyVTf06ENww41pW0KQkK7vC7m+wLbskfpY9gXRnRdE0/p4
i7FpcwiqrnasyvNczwO7tW5kcr5itYyYLcxdl4mWPLZOHxQaHC4eObV4IJ8TL5e4blo/6pZIKeop
W0opSfdSKSOE3cXyF8e8zrh24l25BKrHqzORq36Eu5fuqFS30cnFuMU/RLxPep4J7ygD80grdVyV
QVhSeuU/bLsycjHq2eQCF7TYFRX3Ixf490K0HQUSVPiSPjDXH82SxJkVyfYyMfjf1C0+tp1RkcLm
/OIWkq1MqFfyLXZyb78OvjLEtdxluV8MA+cwkeg3Jy+7430DkM+57/cArQHILPz1AFkAEq6HPSrX
VTDUX40cWPitRO8t1FAomoRFGFVQTEFyVy8M3iqN+1KWz2bDuMqK1a0EoKyLKhw7Qx1lQ+0QeR5X
DmSZ5rdlOufJ26Rzu4++eVrXGmOeIBqydZJ4jSizqk65PvM5s+wiE4L9btv2mLoH256nwHdu2maB
C96DEk9fmNV+U02sg4Qryv0ekgUkULMzwYVQ1gOv3buljBJyB9mBrWZfQAQFqTbLrrfHaAvnBT/9
i+Hz986X4EcnL7IKImh9kCcs6iWD+ardr+ZWzujyOfD9O/m1Psg8L+p+57/++/df2EGD2S/sMExg
tL3TuqZ1zcmHA4iRB+DSe/iLUL/BF1Z/2d+HtwbL1+CXHL4djX6hGMCFr6XW8LWaxCV8Ay2UkMzD
T2E6hK9pBl/+Fl6Epw0B+Lwed79+RafNN/MVJIZvx89OTw+fu2ZIM8xXJsMDwiCwSOnZzlRy3n3c
3ZeMrC7jN1s8aBpeLu6WVSFMEK/evETnl8DRLovrVn9bWfsI6/N3SQzvXFtvl1/bUpJFYTLJyqrT
365GmM+w+gtMdc7i1BykvEU4tRTlDZzmcDHv4bwrOAVWEvdw3hWcPhhn7+x3AKcIKHYZ+Drj67ba
vE5Ela/aW20H9UFZg+NYVwh4Ky6Du0MvB/EdMynussZsDjFDejrUI0B4WB92TqHMX4MJJ1Rx1mMy
x0Sa8yiUKV/i7TGB6NeuvvYI2z/WxTRurnIPdRrrYYD0Fx2Z5fe7y2bT7KBJ5l7qdFxNDEhPkdlV
MMPd5yjbquL6r81mUHNSKKlpOll6XGTjwlysXKceH6+79LdePRvtAz0AWQkxV2g4ZgLL7S7I+wGK
wtl4UqHToz/ODk/+/A2Vk1m9U4qG2ed0dSRKAlov5vMrVFebBHAp/W/fJMBwplyQCVNi58zD99U+
YTm+EBuM/z2Qoa0tJbt1LHn8pu0Tljwqite0T7hirm+f0LdP6Nsn9O0T+vYJ994+gTYH7D2/dc/8
q0yKK9q5hyyxZOqRtU+g9bk2j3nC1oGAq+4LPYCGJx5PBwIDhHIJ5VKoNZZhmi7ceR8JgNLQ3b2P
BDAvKKSyEjPLsonAwqJF70e807zmOqPBgrnEpO4WixYEi24sVN8+4Xu2T5irDuLKVd1jvWrOfYot
Fo3VT3TVfA4azGi2FegbfL/vOXHvPScaHVGhuK2lyyOLz7fsOWHw4lCSK98TD9qmf9r2CXMNSQE5
0SO36BvaJzRIcMWY7UgDV913mSDtu82hrh+gfUKDjeBUeuxnsJJN5gHugmyCyJ8Aj02CiIQgQs2C
gbXm8rGyeI8v+/YJffuE6/akXGZuB/jWxQxqW8zg/W3se7yN3ehG+gKqswepm5/0NjZlAQZSxJNr
jlzz+vJM54qJz/obdj9Cy5FGzxwLzu1HgSD7sLigT1XfcuRBtBwxiiQu4cS7Og9rvYne3gH/hjfR
DY/UVeZCl/2Mlbnvdf0ehzEz+dg6BzRYwLwnKblhY6HD8Qju2118o3YXRlHSVZSK1p+96KhGvBWj
JViqH/2ePa2vqmBGqFzjsFjRVdl9RvrWEQ+2dQStr9tIwqi07QtS1XkDSYIbyMd/4XABkM9tFWMP
kAGIckp7C7IBZC6ACMxsWzuUd29UUub5j/GS3xwSSSVnPSRLSITLPSGtC7/MW+nLBE5H8INtWdFI
JLjCwqrk7j91YOT6vq1QGt7N39Bhtu1FJn0b7/RBtEIxMkgXYyWoRQao/WzH2JR60HYFckHlqKxb
JErYdOM/vFYojUAUe1SIB+b6O7dCaWTyjSXxNaWS6t7KIjBZ9ouG360tFyiPUjBI5q25TcSV/5VN
Mqn6JhvftcmGUZ3netS3/n0hQaht4pJ9+4SfsH0C5QHxzPKjYr51Pu3M07jPJe9vVHfCCdDgHs67
g9OjjPRw3gmcymzmEoJ7OG8PpzCZEpGc0XV747aOk5Q9wlYBc0x8ojzeYzLHpL6fjz2G6Q6YUCpo
3z7hHlsKLNXDFN1VPT9K+wRGzJFKzAm/+rN2m12Qv7F9wn8AUEsDBAoAAAAAAEuYjUwAAAAAAAAA
AAAAAAAFABwAZmFzdC9VVAkAAy5h0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAEGYjUwA
AAAAAAAAAAAAAAAMABwAZmFzdC9jYW52YXMvVVQJAAMaYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACADBmo1M/zTJr1gAAACyAAAAJgAcAGZhc3QvY2FudmFzLzJkLmN1cnJlbnRQb2ludC1z
dGRlcnIudHh0VVQJAAPKZdFaCGHRWnV4CwABBPUBAAAEFAAAAHMsKFIwNFYwtLQyMrIyMFJQcCnN
LQhKzUtJLQopSk2NNjYxN7OIVbBxLSrKL7KzUnB2D0gsyXBPLXEuLSpKzSsJyM/MK7FSyMtXSIYI
KBSARPS4HGllMABQSwMEFAACAAgAypqNTEUFzAZ+AAAAAgEAACYAHABmYXN0L2NhbnZhcy9jYW52
YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUCQAD3GXRWhph0Vp1eAsAAQT1AQAABBQAAADFzk0KwjAU
ReG5q7gbUGwr/gQRSitOHKkzcRDJhQaSl/Kairp6uwuH5xudulcUFYqdKUtTLoF2jP2F4qg3Je/V
arPePrA/qiY9GDSnJknmO1+Zz17Y2qEz8PKywTu4qWBV7cfAZgTaISMJwcBIyYjjBE9Cksy/1LSY
1f8e+AFQSwMECgAAAAAAPJiNTAAAAAAAAAAAAAAAAAkAHABmYXN0L2RvbS9VVAkAAxRh0VpHaNFa
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADyYjUwAAAAAAAAAAAAAAAAbABwAZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvVVQJAAMUYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADHmo1M
wXIKJsUAAABSAgAANgAcAGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L25lc3RlZC1leGVjdXRp
b24tc3RkZXJyLnR4dFVUCQAD1mXRWhRh0Vp1eAsAAQT1AQAABBQAAADVkE0LgkAQhu/9ijnWQdN1
UVsIQu3awbpFxOhOJdmurCv9/TSiQwRRt67zDs/7wTw/djzu+AH4M8GY8LnLvBiy7tLkpCSZjSHa
BjwKQ8HCkHO2gxXZqzbntdUGj5QlYq8bUlmSE8pUK0WlrbRqBRywqkmC1TA8gOl1KJ8Pwz1LYAFj
1dX1ZJpieSJXFi7A0hht5n0WSLFrad4pLGp6giRaLLAlOPT8Efulw91sCCzgBV4Oyp3cQqUe4d6b
sOj/h/rU4duhblBLAwQKAAAAAABLmI1MAAAAAAAAAAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQAD
LWHRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA1JqNTCGPvTgyAAAAMwAAACwAHABmYXN0
L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQAD72XRWi1h0Vp1eAsA
AQT1AQAABBQAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ
2XpcAFBLAwQKAAAAAABMmI1MAAAAAAAAAAAAAAAACQAcAGZhc3QveHNsL1VUCQADL2HRWkdo0Vp1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgA1JqNTE77IPiIAAAA5wAAACUAHABmYXN0L3hzbC90cmFu
c2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAPwZdFaLmHRWnV4CwABBPUBAAAEFAAAAKWOsQ7C
MAxE936Ff6B4YMsME2wgOrutKyI5ceU4Uvl7AuUPWE4n38nvJk1rFPKoGdhMLcAShb8SEPGhUhMX
PJETnocbDjxeouOVXlr9zsULLlQctyJoXLTa1Orb0/pZp0O7gsTMcAQWTpwdYlrVvGtJ2C0EqJnG
BnUFUZp/8P/Q/f6c58+G7g1QSwMEFAACAAgA1JqNTP2iLmSPAAAA7gAAACcAHABmYXN0L3hzbC94
c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAA/Bl0VovYdFadXgLAAEE9QEAAAQUAAAA
nY4xDsIwDEX3nsIXKB7YMsMEG4jObuuKSE5cOY5Ubk+gnIDly/9/23qTpjUKedQMbKYWYInCXwmI
+FCpiQueyAnPww0HHi/R8UovrX7n4gUXKo5bETQuWm1q6815P9Lcx7SqeV8tHloGEjPDEVg4cXbY
2641YR8hQM00NgBXEKX5B/InRtZSp+fnRbsT6d5QSwMEFAACAAgA1JqNTLK7xmeHAAAANAEAACQA
HABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAkAA/Bl0VovYdFadXgLAAEE
9QEAAAQUAAAAzY4xDsIwDEX3nsIXAIu1M0ywUdE5pK5qyYmjxEHt7Uk4BcP/w5e+3vMaEosz1giU
s+YRVhb61YiIL5UaqODVmcPb/MSZ3nc2fLhDq01UrODqiuFepMdOXqNRtOlIdN4sCAhHgguQUGg7
tFuqNnD8OOEFWteG0wyBbNOl8VUH/39ae39hl/sCUEsDBBQAAgAIANWajUzC6/XGjAAAAGABAAA0
ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVU
CQAD8WXRWi9h0Vp1eAsAAQT1AQAABBQAAADVjjEOwkAMBPu8wh8IFm1qqKADkdoJvsSS74x8DoLf
Q1LwB4rdZoqZ0fJDlEKsALubd5BEebsOEW+mS+aKBwrCY3/BnoeTBJ7pbUtcuUbFRDXwVXVdtOFU
ajLPbVibnKbMJdrRqc67ObKCSmHYAyuvBJ7kQoNy43znJEW2FkswqQ2kPw7xlTXjn/V+AFBLAwQU
AAIACAATnI1Mn0FFr8gBAAApAwAAEQAcAGZ1bGxfcmVzdWx0cy5qc29uVVQJAANGaNFaR2jRWnV4
CwABBPUBAAAEFAAAAJ2S3WrcMBCFX8XoqgU73r9mg0suDOuGkE0b4m3SUorRSmNbrGwJSV7WhLx7
x9I29K60vpEYz5zzaWbyzaZ6LMqv21357oU4sM6S7IUwa5fTWQvpwPjQnrIDN0pPd8p5YqBTR0im
6+9fSUi/aF0npzQDWhlHMvJpm999JzGBkwbmgGPoIS9LjFDmBorJ5PY+vymic9RAPaFUbtRAsh/k
+pr8jInoaAMVF3VdaTAMepSeXczmr/jFREvqamW6ybijzB/ABfW8AxcqsWCtUH3CqINGmTE5Cg4q
cQbxE9bSvoH/Qt8V33aBPJDQHkkdOvm+9QDcJpKOanBv8n9rhO/BmeCxuMEJlbdfPv9jZ9Yrj2MP
QuvJarVYf4hJP3SVgcaEZiDiPCbKtWAqZqhtYYLGKtHjJM2gPWRNpYVQ2gms6xvUj0l4VOW3Bt0N
wqZPSg4d2HRDHU2L5zJ9hv2dcOnW5+78gsXkiEuF7sgUVDW1dnJeXa4vkUeLE8izLvR0L/+A4Dg9
NJqts+Xi4T5SfZRrI2Q0X8bRYja/QvWW2kobcG5EYcdakjkzYGktTpOW78RVMK4lPYwkW8RkQIAq
zCUMr8JthlD6+v7jL1BLAwQKAAAAAABSmI1MAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAAM7YdFa
R2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABtmI1MAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVz
dHMvVVQJAANuYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABSmI1MAAAAAAAAAAAAAAAA
EwAcAGh0dHAvdGVzdHMvbG9hZGluZy9VVAkAAzth0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBAoA
AgAAANqajUzrCg5cLQAAAC0AAAA3ABwAaHR0cC90ZXN0cy9sb2FkaW5nL3BkZi1jb21taXQtbG9h
ZC1jYWxsYmFja3Mtc3RkZXJyLnR4dFVUCQAD+2XRWjth0Vp1eAsAAQT1AQAABBQAAABmYWlsZWQg
dG8gZmluZCBQREYgaGVhZGVyOiBgJVBERicgbm90IGZvdW5kLgpQSwMECgAAAAAAbZiNTAAAAAAA
AAAAAAAAABAAHABodHRwL3Rlc3RzL21pc2MvVVQJAANuYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAD1mo1MFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBv
cnQtc3RkZXJyLnR4dFVUCQADLmbRWm5h0Vp1eAsAAQT1AQAABBQAAACNjkEOwyAMBO95hT9AIO2h
Fb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/
7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAA
AABnmI1MAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAANhYdFaR2jRWnV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAABimI1MAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUCQADWGHRWkdo0Vp1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAAVJiNTAAAAAAAAAAAAAAAAEIAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ibG9jay1hbGwtbWl4ZWQtY29udGVudC9VVAkAAz9h0VpHaNFadXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIANyajUysvBt8jAAAALEAAABnABwAaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRlbnQvaW5zZWN1cmUt
Y3NzLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQAD/2XRWj9h0Vp1eAsAAQT1AQAABBQAAAAt
jcEOgjAQRO9+xd44QYsXDTclxIuKSb+grJvQWNumuyTy9yKSSeY0817b301/7eDWGXO6dA2cfcQX
PeHtPktjDEJBYBRJjVL1/lDpJXVz1ForJpyyk1mt4/a/VZk4ThmJFcvsqUJmGAjtxATF8MOX1vty
/ZSboACbEtnM4ALISLDBwGwKeETvcK52X1BLAwQKAAAAAABVmI1MAAAAAAAAAAAAAAAARAAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUt
cmVxdWVzdHMvVVQJAANCYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADgmo1MHkSbz30A
AACEAAAAfgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3Jh
ZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1yZWRpcmVjdC1odHRwcy10by1odHRwLXNjcmlw
dC1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQADBGbRWkJh0Vp1eAsAAQT1AQAABBQAAAAdx7sKwjAU
ANDdr7ijgtW8rE3WVnEoIk2cxCGYKwSbRG7r/yue7QjGm4qpikvg2ghpGNtwJaH7pPeAOSA5QrxJ
tZfKiHqntbjD2V6H3uI0xZK3/7QlZ3zMv8PJuQuMxQd4+jhigOWrPdqZ0KcDUaGuJB+ztf0aKt2w
erX4AlBLAwQUAAIACADrmo1MY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAxpm0VpYYdFadXgL
AAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kE
VdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB
+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADsmo1MY6qsbIIAAACoAAAAUgAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVk
LWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAAxtm0VpYYdFadXgLAAEE9QEAAAQUAAAALY1B
CsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePI
ku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKO
za8xRJuC7GpN1PGavlBLAwQKAAIAAADmmo1Mdm+YUkUAAABFAAAATwAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvZnJhbWUtbG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUtYXN5bmMtZGVsZWdhdGVzLXN0
ZGVyci50eHRVVAkAAw9m0VpMYdFadXgLAAEE9QEAAAQUAAAAQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IE5vdCBhbGxvd2VkIHRvIGxvYWQgbG9jYWwgcmVzb3VyY2U6IGFiZS5wbmcKUEsDBAoAAgAA
AOaajUxus/JzRgAAAEYAAAA/ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZS1sb2FkaW5nLXZp
YS1kb2N1bWVudC13cml0ZS1zdGRlcnIudHh0VVQJAAMQZtFaTGHRWnV4CwABBPUBAAAEFAAAAENP
TlNPTEUgTUVTU0FHRTogbGluZSA1NTogTm90IGFsbG93ZWQgdG8gbG9hZCBsb2NhbCByZXNvdXJj
ZTogYWJlLnBuZwpQSwMEFAACAAgA8ZqNTGBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkA
AyVm0VphYdFadXgLAAEE9QEAAAQUAAAA7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl86
9AYdq7++r/dC3kqkSWNOgMyZPSyREFbV4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1
X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BL
AwQUAAIACACumo1MWwRYDqIFAABNEAAACgAcAGh0dHBkLmNvbmZVVAkAA6dl0VocaNFadXgLAAEE
9QEAAAQUAAAArVdtb9s2EP6uX0G4MLAVk5y4cecVQQDXcZYsSZ1ZTgMsSQ1aoiTWEqmRVGJ76377
jpTlF8lRA2wOEInH57k7HY/Ho0vEExEjzhVqtDIpGpZ1nSkyRwGNyYeWStLWHZleUmXdUP8MZADb
CFuRUqnvpNRvWK7HBfnIsXgRJjViqhFgZUwTwjOF3h0cWJeEpL2YPhE0ZNY1nq/HI/JnRqSS6HAb
VVAPO+AsZW6KBXHNdwBQ83ckHctVWKgdwErvHRczI+scaGmfM0Y8RTmTN0T0Ixr72jD8LOuKY/+a
+xl8Gc4Up8wn80mSC2I6JXPitXCKvYi0WyCerEGO5NvkjNG5X0c0gBIJex6RcuLxJMWq1uo2sKwk
UxGb6CX4jt8r1B768lX05cv0iEv1fbpGleiUeXHm15peQUrEmIfgDgtoWMfdoEr0iGAfMqSOu4KU
iFLGdSSYLhESSOo6hp4vx1TSWs/0fInihbSOAdMlAiMhVxTrTVFH3IJpBW+2ly7BIUlwWrt2K0wl
781mrM94AykTY4rraRpQIgnyLKiqXYQVpERMo7RTsFa/MhnGGqWJVl6JPuGEoMP2z84B/B1a1vEp
FVB8uFig1omldQxT82noQpcRItEZj2P+7C6SK8pmEl1nsaKfKXmWaACm+r9eANJsAWnoPY0egiVB
faJHuVIByQrxgbmffMIWGygKBE/0jHXcWvtyYlk9U1N0TTcuO5HKqwy4rIUS/YMaXx6cH+7Po8f7
sXr8+/7Uf7x35eNE//uxcfKy3VN42ZjVEhdSSAYL4+5xy+gHF24l6WPGGfVwbJyAY+IcigSD9yvO
Z1kq0TAIdJUOr8gTidEzFsyyBkJwAbLdw4hoqd7yjpqrhiGdcZFgOAGbEWrGqJmhpkIPjaZ4aKDm
iUTNqR79NSIBEUR8oyDWY3BL2L2QMKVFDQRld0oZ8V+nsXlqGAlnO/iNFWSfoOZtA/LSCHZRxjbO
bTeQeSkyy6UhwyoTJkzW8UVQVJh13nsnENxCflLGmErj5cvW8/0rzMIMDCAfI8efVcQsRg6LK2LC
kENYVaxATCriQCAnEFWTkG9+FQ0L7JCqyUhn5xrdj7CQYO7CHdrdbucXu4scKnn+WuFS8AuanLL4
K3zzV7xPZfug3bZ/u4FpKiu0GXzOTLxIuxwZV+xZ9YsZhI1Vw8Y4iHlFnEIgUv7iF7dzM2k1VCl8
bqr2iO2p0DPwqEzGaomcOKvIPYiRh6uLJGGRqqGRT8iRT1UlgPZAv1dliAw5omp2GdnjO+TAQz2X
I/CRhp2iFCOnGDlTeClD7y4+nQ7vXPuw3TkE86l5KYP6N93379f6vBRGLwZdmzJh3/hcYC6HF117
VKiZcdq1K0ly23dh3QpM5sn2PsTRNuKoghifQbavESroWgayu8+3z+zVdte/IsA3gnI47BZ6J8PW
h20OmmGf+mb/wX6BvQF5DpkJWQj5lOcOLJbOE8gJWH9Y69Xa7JSblbfjRQondZrGUNa1E625DY06
clS4XGMGzOM+ZSGa27qpFXDuIOePPbPhkqbICZe79HPM/BjOHehrbOkJqtMe3iHD41034MajbykJ
7CepH2UF0lRWO9Xx9QtMFcR8G0ubStOa1dVY0wxsauyeUJgrkw04cDZKXwecYvUaoC15JjxiFMt9
meFTsZ0R627AdCIov9aYYOWvhX+VRYaJSRDj0HTh5tiViLPdKRlxoSY8JWyiYAjTNWEr+q+Vc6N8
OGAhHLv6tNsSwmXOR3CaDn6/HbjjyfVgfD48/Ya+jEe9/mAbONLKnbfIRvdnjyXjn6lQGY51r4He
fugeHb3LDe9t4cyEe7Xx5ri1xQd1b6w3qAdLQmyZEo8G1DO3bLmQiiQoFVzlt08HkKveqiGk8P6P
FmqrvdQNm/P2wXlwdP/kB3AJ/i8WtnrFfwFQSwMECgAAAAAAZpiNTAAAAAAAAAAAAAAAAAkAHABp
bXBvcnRlZC9VVAkAA19h0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAGaYjUwAAAAAAAAA
AAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQADX2HRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAAmZiNTAAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VU
CQADwWHRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAeJiNTAAAAAAAAAAAAAAAACoAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAkAA4Nh0VpHaNFadXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAHiYjUyyP53GcQAAAIUAAABLABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1hY3R1YWwu
dHh0VVQJAAODYdFag2HRWnV4CwABBPUBAAAEFAAAAC2JMQ7CMBAEe79iy0QCfkADRCIFojEPMPEC
QbZPOp8Rz8cF1Yxm3DloYa2YVEUx+PkyXW9+3CD3Gp7EHqWl5Nz/YD4djk2r6C4y0TiM2GItkd9O
ZZYPEbosohEPlQx7EXJ/czFUEyU8q8HWzAhp5twPUEsDBBQAAgAIAHiYjUzIEIPQ+gAAAAgCAABJ
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleC1kaWZmLnR4dFVUCQADg2HRWoNh0Vp1eAsAAQT1AQAABBQAAADNUE1PwzAMvfdX
+Lgpy6Jp4ohUSitRIQSihR2ntPEgKG0qx2Hl3xPKfgIHTs+S/T78pJSgXr2LAwZVataqOjTqgN29
5QsU0TqjntGhDqic/vKRJWNgSRii46DsMHliNOq879UZOzk5zSdPw3IWVD0anNGUhbKm6yMFT0eT
9BiP9mclcZ6wTwJbnjkTQvyDSLrnqN0SKM9B7jZ7ELvNFeR5Bpl8umkaqMvidmFuf5mrNUhY2AkJ
B/+JoNPQezJwIj8AvyP47iP9CoE9IWTiTtOIIUBF5AlWbf1QPb606w2k74N+Q7iGMTqXTMVl9xe+
bSoB2A5oIFWXiewbUEsDBBQAAgAIAHiYjUwHDtXKSgAAAEsAAABNABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBlY3Rl
ZC50eHRVVAkAA4Nh0VqDYdFadXgLAAEE9QEAAAQUAAAA4wpwDA5W8HRxci4tKs4v0ktJzUktSdXQ
VNBVyMxLSa0A0kWpufllqQqJQEZyflGKQlpRfq5CSUaqQn5SVmpyiUJxSX5RqgIXFwBQSwMEFAAC
AAgAeJiNTCnWi2gUCAAAuBsAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4LXByZXR0eS1kaWZmLmh0bWxVVAkAA4Nh0VqD
YdFadXgLAAEE9QEAAAQUAAAAzVlrU+S4Ff3Or1BBJexuYbubBgINdGp51U4lm2wFkv04JVtyW4Nt
dSQZmkny33P1cstuuyFVyVSGGmy97+Pce67MVaGqcrF3VVBM4FFRhVFWYCGpuj5sVB6dH0K3VG8l
XezNS1Y/H6H5C5NMUYL+sYfgn6JrFRGacYEV4/Uc1byml2Yo5YJQEaVcKV7N0XS1RgTeKbnc+9ee
3c5tkvGSizk6mMwuzFj8wEp6x/Lcjac4e14K3tQk8lPzc/0THmRPkLxkBB0QQuxYzmsV5bhi5dsc
VbzmcoUzJ2CFxZKByFNaoYntWnFQzughaAkavVAjUDHtSTqbzQb2l7iWkaSC5cGgZF+pOSM8NCpp
ruZoEp/6fsLkqsSwCavBMk7CV0ZUAYsnk984+TAhrF62K61szjX6resdJy6rCxBKtdML/kJFT6PT
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
X2HRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAdJiNTAAAAAAAAAAAAAAAADkAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAkA
A3th0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAO6ajUyPNBpwRAAAAKAJAABiABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFp
bHVyZXNfUlNBLU9BRVAuaHR0cHMud29ya2VyLXN0ZGVyci50eHRVVAkAAyBm0VpfYdFadXgLAAEE
9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7
qnZU7ajaUbWjakfVjqodVUtztQBQSwMEFAACAAgA8JqNTFQCybI2AAAAwAIAAGsAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJl
c19SU0FTU0EtUEtDUzEtdjFfNS5odHRwcy53b3JrZXItc3RkZXJyLnR4dFVUCQADI2bRWmJh0Vp1
eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw
4XIeVTuqdpCpBQBQSwMEFAACAAgA/JqNTI80GnBEAAAAoAkAAGAAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JT
QS1PQUVQLmh0dHBzLXN0ZGVyci50eHRVVAkAAzxm0Vp5YdFadXgLAAEE9QEAAAQUAAAAc84vzUlR
yMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnZU7ajaUbWjakfVjqod
VUtztQBQSwMEFAACAAgA/ZqNTFQCybI2AAAAwAIAAGkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1Q
S0NTMS12MV81Lmh0dHBzLXN0ZGVyci50eHRVVAkAAz5m0Vp7YdFadXgLAAEE9QEAAAQUAAAAc84v
zUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBAoA
AAAAAHSYjUwAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9VVAkAA3th0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHOYjUwAAAAAAAAAAAAA
AAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJAAN6YdFa
R2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABwmI1MAAAAAAAAAAAAAAAAMAAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUCQADdGHRWkdo0Vp1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgA+ZqNTEpAGSkwAQAAGg8AAE8AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9ibG9jay1taW1lLWFzLXNjcmlwdC1zdGRl
cnIudHh0VVQJAAM2ZtFadGHRWnV4CwABBPUBAAAEFAAAAN2WwWrDMBBE7/2KPfXmKL0FQyglmFKo
G6i/QJXX9gbbEtbaif++Tk3TEOzQUyvlPCP0Zlk02mzfku1rBHGUJE/PUQjvmLUWU2ANeEDVMkLB
bEIhSq1kWWjL4Wq1XIoMWRVCGhINWt02Cq2wqiHDwZ64CAqUKTYL0z8qXTPWvK51HWBluL+vqMI1
44GFsh1IC+NB+EAlh9vhJJGFWjPIb0P8EkfAvcHF3eb/yGWbkhaSsmyC/Ux0mX5fSMYOm9kEJ4PL
KSpKaTbBl+gmfUcpDkvSTcH/aC6zZ+U8+1Fzmf3K7l8Y3ExBlcxR7AzmEwnOREfob+LNH8eaUzY7
8qPmMvuVrb8wuLc3njWuvz3l/z/B15b1tWH9b9ebaFav+umPuqmkGuEhhGS0lnrgSH9r+wRQSwME
CgAAAAAAd5iNTAAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL1VUCQADgmHRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA/ZqN
TLsgXjYIAgAAvQwAAEkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRlcnIudHh0VVQJAAM9ZtFaemHRWnV4CwABBPUBAAAE
FAAAAO3W32vbMBAH8Pf9FX5p3y456WRZKoQRsrQbbEsh23PRj1MS5sYh9tj6309uabeUQtOVsY0U
+8k2+sofjjtNZh/ns/fT4sN0Ph+fTU+K2Xa1WK2LZddtTobDugmuXjZtd2IMYrFqi3XTFa6um28c
C39VjEPgtoVJs+62TQ3j/g3crDF4Nbm/+Cl3YVmMz98Vwa37lerGxdssIasB5ktcZw1T/+3QbVbD
LbfN123OGW62nOrVYtkNNlevu+YLr0fRVyRRV4BeB1AGI9hKIojS+6rUIQiLx5fu+4Vb8AiPm+ut
jfrIIxofydN83wXnJ3308fX/XVxyt2xiOzqbfhr8WZa/Z76TJfY1V8o5W1IESVUFylICSzqBjE4n
w4FkGR4xvwu+MRcHZL5T53ubOzRelEjZvMx1rqICw0pDqTlqJOIY6Wl1fjDm7Q66VYr2RvekRLAl
kDac0S2CibECZ0qNinxC5ofR2wfV++xDUv8Z9hR1HYOxKTFg4qzOrMAbgcDaK5KsOJWPqv/aXw5J
/bfnqDPKSp2p0Vuf56iJ4F1SICtnkiAyis3z5uj5bP6Cvose8rQUpAiEsRYUEYKXIQGj5iolDOzp
eehvp+M3g//OxWtOHCSBU5iHHVW5AyBaMKUhQ8kpj/GZxfj5pRbvHepiEp6dg+ijyw2APRiZzYMN
fTnm2SfFP3aQ/gFQSwMEFAACAAgAAZuNTETg6irYAgAAmBIAAFMAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0YXR1cy5hbnkt
c3RkZXJyLnR4dFVUCQADQWbRWn5h0Vp1eAsAAQT1AQAABBQAAADNl91qJDcQhe/zFH3lu/KUpNKf
wYRl8YZAkl3wA5iSVLU2mfUM7jHZvH1qLrLXAUEQTTfqpmn645ROnfr4+Y/Hz789bL8/PD5++OXh
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
VLjpqKt0o+SnGtqqzKwFE4JTKno2LR1NUnuW/ANNb5NLZCNIq8/grK+QdGLIRedqo4upqFPQfHKS
t0q8J2UDpolpclp0T5gzsK0xVHQhKTyAM54lf8CKkq9YpK1TahEEXZLymQgMaxe0Y8p4PEnjWfIP
NNFWF7xYT5H81IyYAJP30Fj50lxEh+4UNJ+c5GPG6o0Uz0JGjL2VzpR9zKCSqVxLMSjV8jHOdJb8
gb5UZK/ZxICyRjH22mRIqCOgVFXZIpHOsR1N0nSW/HeSTxRzIw2yKbJi7Cf/aWWmdWBlU6JK/hQ0
fwHJfwJQSwMECgAAAAAAcpiNTAAAAAAAAAAAAAAAADMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9VVAkAA3hh0VpHaNFadXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAPyajUywbkKingAAACADAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbW9kZS1zdGRlcnIudHh0VVQJAAM7ZtFa
eGHRWnV4CwABBPUBAAAEFAAAAM3OQQrCMBAF0L2nmJXLptqFIVCklCqCWrEHkCGNNBA6IZmi3t4W
9ABupLvP8Pnzyvrc1McKTlXTFPtKwc6w7qC4HEBj3xODI2yhY/ZKCEcaXUeRlZRpKu5TV6C3IphI
Q9Amjqm1wWhO/Gv7zbfIyEPMs3S1nCbYUp8z+YSfnMD10xqPETAYmL6ic/Qw7aL8r289c182c99m
5j75q+8NUEsDBAoAAAAAAHSYjUwAAAAAAAAAAAAAAAAuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL1VUCQADe2HRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA/JqNTOYPFCWcAAAAzwAAAEgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL25vc25pZmYvcGFyc2luZy1ub3NuaWZmLXN0ZGVyci50eHRVVAkAAzxm0Vp7YdFadXgL
AAEE9QEAAAQUAAAATY3LCoMwFET3/YrBvcaluCsipVAr1C66TeO1BiQJ3ps+/r5ZVOh25syZpj8P
/alF1w7D/tDWuNAUmUaIB73JRCHMIqFWavFGL7NnqauqLNVEYmblPDs7TWol9nE1xFuSxxBoNZqp
0GwZmsFmtUFwJ6PTBbJb3ngn5CS/fgLV+C0zvBL8sE9y0G6EFcY/iGRzXqA3YXfsWkhqit0XUEsD
BBQAAgAIAPyajUyi3zYdwwAAAK4EAAA/ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9ub3NuaWZmL3NjcmlwdC1zdGRlcnIudHh0VVQJAAM8ZtFae2HRWnV4CwABBPUBAAAE
FAAAAN2RwWqDQBRF9/2KS6BLHckqCCUUMSVQK9Qssp1OnnGCnRHfs9W/74QkkB9ooe4P593Dy8q3
qnzNUeRV9fySp3inemA6QDxoJDMIoRHpUqVab3TbeJZ0tUoSVZOYRjnPzta16on90BtideK4m9Yy
dfQEzWDT207wQUYHLxb7KPNOyEm0C0iKq2CB7wAf7Rc5aHeAFcY9CMsBFeibsNgWOc5X4ofsdxr+
9/rLB8ZZRDwuN7MIERoltDTy2c4o58Te/VHOD1BLAwQUAAIACAD9mo1MbMdUlM8AAAAUCQAAQwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9zdHlsZXNoZWV0
LXN0ZGVyci50eHRVVAkAAz1m0Vp7YdFadXgLAAEE9QEAAAQUAAAA7c8/b8JADIfhvZ/CS5UJDnVC
kaqqSlNUicBwDKzXw+mlOuwoNn/y7UkRa1nDcLv18/MW65VdL0uoSmvfF2UOH80OiBVa1wmCaB9R
AqKCU8iCapsbE9m7GFg0n89nM1Oj+mCIhZq6Nh0KHzqPYrzItO0z+EbvDsMYMUFhLVRfVQnatyjg
Orx+czHyCXdwCkiQbScFkyLpZDNc5XCbzqAR+GmOSNOnIrn/cb/9CV+Tfjz9OfHH5D+/fKaEsRMU
zzpU/ApTCnmkkKD7mELuhlwAUEsDBAoAAAAAAJmYjUwAAAAAAAAAAAAAAAAlABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL1VUCQADwmHRWkdo0Vp1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAAeJiNTAAAAAAAAAAAAAAAAC4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvVVQJAAOEYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAB4
mI1MAAAAAAAAAAAAAAAANgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L1VUCQADhGHRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAeZiN
TAAAAAAAAAAAAAAAAE0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL1VUCQADhWHRWkdo0Vp1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgABJuNTOfreJJOAAAAfwAAAHsAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNl
L2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLXN0ZGVyci50eHRVVAkAA0hm0VqF
YdFadXgLAAEE9QEAAAQUAAAAc/b3C/b3cVXwdQ0OdnR3tVLwyy9RSMzJyS9PTVEoyVfIyU9MARLJ
iTkKRanF+aVFyalWCkk5iXnZehkluTlczuToL04uyiwoUTV25QIAUEsDBAoAAgAAAASbjUwgwGwc
QAAAAEAAAACBABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXIt
bm9uLWJyb2tlbi13ZWlyZC1zdGRlcnIudHh0VVQJAANIZtFahGHRWnV4CwABBPUBAAAEFAAAAENP
TlNPTEUgTUVTU0FHRTogTm90IGFsbG93ZWQgdG8gbG9hZCBsb2NhbCByZXNvdXJjZTogYmxhbmsu
aHRtbApQSwMECgAAAAAAmZiNTAAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL1VUCQADwmHRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAmZiNTAAAAAAAAAAAAAAAAEAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvVVQJAAPCYdFaR2jRWnV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAACZmI1MAAAAAAAAAAAAAAAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1l
bnQvVVQJAAPCYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAkm41Mdbypok4BAADCAgAA
fAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvc2FuZGJveC1hc2NpaS1jYXNlLWluc2Vuc2l0
aXZlLXN0ZGVyci50eHRVVAkAA4Rm0VrCYdFadXgLAAEE9QEAAAQUAAAAnZGxTsMwEIb3PsUpS6Yk
LWIo2aCKWIAOYa8c+9pYdezId2n7WLwBC7wXjpsOiCIkJkv2/f6//7/V+qVeP1XwXNX1/WNVgtEW
YbEoofLeeTi22iD0wpO2O+AWISVhVeNOKQhmr5uBsYRUGOOOGYkOM+c/3nbapqAJhAVtD8JoBZMM
tkbs8tnqqu/N3f98P9+l1z3TfzwXt8vgWk+TQkokgoN2RrB2toQH4+QeFQjY+hAvuEPSMvdlUYQX
YVpHXC6X83kSBlw3/TBS/63IAV5DtPNYg1EU5cEvJJnwR3OrwAi5p1hF8q1tHcpOfot4oadYEOAJ
5TDmChVBehWqaLkzBWEnLGtJBXYNKoUqk84yWi4CQaYjcoYGu/GKhr53Ppxn4E3k25w98/G/NKST
YiCM/MrJYdSlNEX/kTUufEp5WW2PvtOh2RGewDoGQs5nX1BLAwQKAAAAAACZmI1MAAAAAAAAAAAA
AAAAKQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vVVQJAAPBYdFa
R2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACZmI1MAAAAAAAAAAAAAAAANwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS9VVAkAA8Fh0VpH
aNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJmYjUwAAAAAAAAAAAAAAABXABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVs
bWVyZ2Vybm9kZS1pbnRlcmZhY2UvVVQJAAPBYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAAkm41MsLoDeqMAAADnAAAAfwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2F1ZGlv
Y2hhbm5lbG1lcmdlci1kaXNjb25uZWN0LXN0ZGVyci50eHRVVAkAA4Rm0VrBYdFadXgLAAEE9QEA
AAQUAAAAbY7BCsIwEETv/Yq92V56EEXITUoQQa009QNiu9qVupFkK/r3pkjBg3McZnivKA+m3GnY
a2PWG62gJ0ZYzhXU7wdq751XMHCLl9i3QAHYCVgGd75hI5Di0/aDFeIrzBrHgi/Jg1gvFcaXj32a
JfCTXDrkWZYUf8mLlYITd5bbPuKO3t0pIFQ4wsixgi1HILVGrEx6dYeTTvQjHvXoO4Mw7vLkA1BL
AwQKAAAAAACdmI1MAAAAAAAAAAAAAAAACgAcAGluc3BlY3Rvci9VVAkAA8lh0VpHaNFadXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAAKCYjUwAAAAAAAAAAAAAAAASABwAaW5zcGVjdG9yL2NvbnNvbGUv
VVQJAAPMYdFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAom41MTb9WGC8DAABLHwAAPwAc
AGluc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZ2V0RXZlbnRMaXN0ZW5lcnMtc3Rk
ZXJyLnR4dFVUCQADjGbRWslh0Vp1eAsAAQT1AQAABBQAAADtmV1r4kAYhe/9FWGWgoLamKhVl170
i0Vwu6Xbbm8ESZO3miWZyc6HrRT/+77jV9eqsDZTiKIUOpnJTM858/pMSHMc/igQsmW9kjAgLeek
SGKQA4ZtcquoDGMow9CLlCeBFEnicS8WpPVK4CXhIETIKN55h0vceH0oe0FwC0JFMq8oCN9LIN8l
XVIo4Fz2+Bt8+Y0zleAUiVOwM6R+pAK4YHHs0aATUji7aZPWkxcJGI9zp6cWqqAh7Vt6giVUKKFl
XTAqWATl5WnlPsirIVDZCYUEClzk3ttrfIK9I/dS/zj2TCm2tFb8NVF75J5h838Vp8iqVFrOyvfE
FlGV72kATzgarITW/ITQSqV1gWnJ2+X1JjtFcu8Mu/aHDHfp8fEXSzDFfbi/7Zz2eg/w2KYiQT2M
t6kETr2o1+vSLrXWfCQfWa/rh/RnTZ5CcowvfBrlV3LBrGe5FAqFr+tXHWOJSH9g5aGw5R+GjUuu
714sEbH+FAhr5m+5eZIrKJKAXTNcWgn4Qa9efEgkboY4o8F3JWFWRLONLhIOUnF6PvqFW/nW29eB
4c7ecBiG8LzoF94Qpn7fKgV0yLpOFvVxCY+q3wdeFj4PE5TCBQRLRTIdaOubq24ThxSPsI0NIT0u
tSHSsmdXFyxSMZ1cw9TsvD0fcZ1JxYoEzYGWwmca/23JUYITyaIIyLhInj1xN+Dsmc7tFGfIT2+r
aqe2VbGbhn01DPiqpPdVqRr21TTgy/mAr+ayrzreOmcdrrOJdsSse9dOfdBdqyhaQX4ly2ecVmzw
eHP24HijGMnhZMvQyVZ1s3cEuBUDvqo7i0onNSp/Tr6BKwBxswzLqWaDuKzuAS67E+86lAMys4PM
moGny4phaLgGfNV3FpnV9E+XLIBrtvENlFvL9IPmsniDEK3vAUQD5qsYe8o+B5R9FYG+wvyTCVgP
ZM0OWU/Sk9WxDbOlZsBXY2fJWjdC1odQDjaz9STrbF2Sb5CujX2iqx6aovV81A70o6vHse/A2Iwx
tmmAsYbfZbsG3mXX7J1lbGOc81mcRCBBl2m+sAKKlP/KW179g/BKvUHpX8o7ruHkm+PcX1BLAwQU
AAIACAAqm41MvaBxZ7cAAAAHAwAALAAcAGluc3BlY3Rvci9jb25zb2xlL3dlYmNvcmUtbG9nZ2lu
Zy1zdGRlcnIudHh0VVQJAAOQZtFazGHRWnV4CwABBPUBAAAEFAAAANWRsQ6CMBRFd7+icdLZQWVr
SlETEJIS90qfUC2FtMXEvxdwYRPRxf2dc+/LJfGRxSFFEWUM76iH5vs0CiMQklMFJWjnebXijwXx
1yu8JZslms/ISOigHRjN1Ru4B5P2Hkxi5J07wKegarTgTlY6Pl/JxA42K0A0Cnzo5AJnnW9gseCc
1DkiBWS3HmWuTUcXxfORX4IWreFlTmUJJpAGxCCjNlUG1n4ZwxsLn0/QUb/cYFKLvxjhCVBLAwQK
AAAAAACvmI1MAAAAAAAAAAAAAAAABgAcAG1lZGlhL1VUCQAD6WHRWkdo0Vp1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAOJuNTC7W3QhfAAAAZgAAACIAHABtZWRpYS9ldmVudC1xdWV1ZS1jcmFzaC1z
dGRlcnIudHh0VVQJAAOsZtFa6WHRWnV4CwABBPUBAAAEFAAAAHP29wv293FV8HUNDnZ0d7VSyMnM
S1UwNrFSCK7MK0mscC0qyi+yUgjNS60oSE0uSU1RKMnPTs1TUK9V11NwhYmpa6gDxRWKSxKLShQS
gbKZaeoKyfl5KZklmfl5elwAUEsDBAoAAAAAADmbjUwAAAAAAAAAAAAAAAAJABwAcGxhdGZvcm0v
VVQJAAOuZtFaR2jRWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAA5m41MAAAAAAAAAAAAAAAADQAc
AHBsYXRmb3JtL21hYy9VVAkAA65m0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADqbjUwA
AAAAAAAAAAAAAAATABwAcGxhdGZvcm0vbWFjL21lZGlhL1VUCQADr2bRWkdo0Vp1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgAOZuNTBIQqe8KAQAA9QIAAEcAHABwbGF0Zm9ybS9tYWMvbWVkaWEvYXVk
aW8tc2Vzc2lvbi1jYXRlZ29yeS12aWRlby10cmFjay1jaGFuZ2UtYWN0dWFsLnR4dFVUCQADrmbR
Wq5m0Vp1eAsAAQT1AQAABBQAAADFksFqhDAQhu8+xeBFhUX7Ah7sboTSri6rXQqlh2imbmicFJMs
7Ns3WlgW2ltpCzlkGPLPN/n/YP9YxZIsTsSVSQ1aK2lYLs1ROyW2nPiAhRNSN2iM1LTmFgc9nWM7
OUySYFY4SYE6NVMPObxKElsUkpdSYRwurXAFYZpmn2ecm1mv/VSymUVjQy/DDqxq457Tu+JnXz7t
2LplG7ii499RJJDnEFWaMEpWUN82bH/wz6Ji7KTXb7QjEUFZ3D1ckS5K7cT7N/N885Ii8U6hmOH9
HLzAHDkN+Nsso7NfR5+0ciP+DcD84fHFgbnyEfg3B5ZU/cyAJX07v0fn5aME6vuAVRuoS2hZ0wbB
B1BLAwQUAAIACAA5m41M2t3hCXUBAAANBQAARQAcAHBsYXRmb3JtL21hYy9tZWRpYS9hdWRpby1z
ZXNzaW9uLWNhdGVnb3J5LXZpZGVvLXRyYWNrLWNoYW5nZS1kaWZmLnR4dFVUCQADrmbRWq9m0Vp1
eAsAAQT1AQAABBQAAADVk09LAzEQxe/9FKGX7rLNRj14K7TqClJtpVurIB6myViD2UQ2k2K/vbtZ
QREverFCyB9C5v3e8MI5Z2LlTKjQizMgEMVtKW5xPdX0vpwEbZRYoEHwKAzsXCBO6InX6IMhL14M
0KOrK1GBFBUqDQKC0o579F47yyUQbly941ut0HGqQT5z+QR2gxxfX1ASqpxeqZdl2R/jgKQAJsKM
x4wfDQ+PWRbn8bjHFjezRFvC2oLxuUcibTdxUz65YNQVWNjgpFUrO7HTd62E6oBp2pWIurmvJRux
R23VVQt5rg0m/XjVH7J+notudA6ka2QtidZpv61TrIrZMpFgG7u7tMeLu+vidFmcsU+A8B1IykYj
Npg5i4OUzae97Fcvh2x+UhaLVfNsMKnWumErXbBqwM4nF5efbcZSy7bH/v7gIUcLa4Oqdd4I4YeT
2P99NlIF+oZ7G9O6//RtTJKP4LTHJrv/MjjxK33NDfshTfxz100X1o1AZ+gNUEsDBBQAAgAIADmb
jUx40iwB8gAAAIkCAABJABwAcGxhdGZvcm0vbWFjL21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0ZWdv
cnktdmlkZW8tdHJhY2stY2hhbmdlLWV4cGVjdGVkLnR4dFVUCQADrmbRWq5m0Vp1eAsAAQT1AQAA
BBQAAAC1kk1qwzAQhfc+hfAmNhS5F/CiJMqmxAm1Wgqli4k1dUTlUdFPILevrEAItLumMAsNI773
eDPF03NXaQroCIznHkPQNOZHf7DRqA0QjPgQlbY9eq8tLSHgaN2pCi5iXRcz4agVWu7dwFr2oUlt
UGlYa4NVmUflHSs5b841zcNmsEmVQhPQhzJhxIvoZDUAfRk4pfZ1J5ZSrNiVO/jNRc3ali06S7io
2fbxyk7+Lh0Mn/7t/p0jwd6gmh0mGF4UD0Aj3kRwiuEn/2hNnPCGKnM+1SWwuUsb+9/A8qb/lle+
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
bmltYXRpb25zL25lZWRzLWxheW91dC1zdGRlcnIudHh0VVQJAAMbaNFaG2jRWnV4CwABBPUBAAAE
FAAAAJ2PMQ+CMBSEd3/FG3Wg0haMNiExgKsDuhljHvSpRGxJW+LfV4xxcHS9u3x3J2K+jOIk4hL4
Skmu0pTFgkM53PuKjCa3d0QHuRBpqqRYrGRyhC2Fh3W3XbAOL1Tm6mR7MmVeEerCGkNNaK3xCs7Y
dqQhWBgD4F4+NN/AqJc5rGFqhq6bzQtsrsR0zQA2zlmX8YRBgYOnbDBYd/QFaQxYoyc4v/gT8c+H
d9k4WMEPvBmdN9lDaz7jJk9QSwMECgAAAAAAcpmNTAAAAAAAAAAAAAAAABEAHAByZXRyaWVzL2lt
cG9ydGVkL1VUCQADWGPRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAcpmNTAAAAAAAAAAA
AAAAABUAHAByZXRyaWVzL2ltcG9ydGVkL3czYy9VVAkAA1hj0VpHaNFadXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAHKZjUwAAAAAAAAAAAAAAAAoABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1VUCQADWGPRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAcpmNTAAA
AAAAAAAAAAAAADIAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL1VUCQADWGPRWkdo0Vp1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAcpmNTKbkYMO4AAAA
KQEAAFMAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtc3RkZXJyLnR4dFVUCQADWGPRWlhj0Vp1eAsAAQT1AQAA
BBQAAACdj7EOgkAQRHu/YkstQBZEvUtIDGBrgXbGmIVblIh35jji7wvGWFjazkzezIQBrr1g4WEE
KCSijJY+ooC8vz8K1ortwTIfI1wJIcM4FnFwgh27p7G3vTOWLpyn8mwerPO0YFKZ0Zor1xjdSaip
aVmBMzAGwA4+VN/AqOcpbGCq+7adzTOqruyr0gfYWmtsggsfMuo7TnpNZctfkCJHJXUM9cCfhP98
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
UEsDBAoAAAAAALmYjUwAAAAAAAAAAAAAAAAgABwAc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9VVAkAA/1h0VpHaNFadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAESbjUwwoMyBxAAAAFIC
AABYABwAc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1pZGxlLWxvY2Fsc3Rv
cmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHktc3RkZXJyLnR4dFVUCQADv2bRWv1h0Vp1eAsAAQT1
AQAABBQAAADdkLEOgkAQRHu/YkstRA4Q4RITA9haqJ0xZrlblIh35jji7wvEUBgrY2W7M3kzO57L
oqkbTJkPLOZeyN2Fw8IAsuZ235KSZPaG6OAHC99r5XkUhUfYkH1oc91ZbfBMWcJP+k4qS7aEMtVK
kbClVjWHAsuKJFgNnQFMq4MYDN09S2AFY9VU1WSWoriQI3MHYG2MNksWOJBiU9OyUZhXNIAkWsyx
Jiha/sj75oc+rCvM4Q0uOqUn11CqV7nPIfEfDBX/eKgnUEsDBBQAAgAIAESbjUxJQu3/xgAAAFIC
AAA8ABwAc3RvcmFnZS9kb21zdG9yYWdlL3N0b3JhZ2UtY2xvc2UtZGF0YWJhc2Utb24taWRsZS1z
dGRlcnIudHh0VVQJAAO/ZtFa/GHRWnV4CwABBPUBAAAEFAAAANWQTQuCQBCG7/2KOdYhc3W1WghC
7drBukXE6I4l2a6sK/39NKJDBFG3rvMOz/vhuWw2dvmY+cDmwguFO3WY70HSXuqUlCSzNUQ7n09D
3skhZ8Ee1mSv2pw3Vhs8UhKJg65JJVFKKGOtFOW21KoRUGBZkQSroX8A0+mQPx/6exLBEoaqrarR
JMb8RI7MHICVMdosGHcgxrahRaswq+gJkmgxw4ag6PgD75cOd7M+sIAXeN4rd3IDpXqEe28SBP8/
1KcO3w51A1BLAwQUAAIACAD7m41MRYeFuOb9FgB9F/sAGQAcAHdwdHdrX3Byb2Nlc3NfbG9nLm91
dC50eHRVVAkAAxpo0VrCZdFadXgLAAEE9QEAAAQUAAAA7F1Zc9y2ln7Pr+iHsWPfCSXsi2cyLse+
TlKTxRX7Vh7Gc11UNyTR7iY7JNuSbs2PH4CtpcXeuIAgeknZTqtFAAffWXEA4rz5+w//+PHFlToL
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
l1nwoqLIkvlO/RxXj5+uaR/0ooDlfK9CQlpPru6ec+ANoJh2dup22erzIkvz3LtTHnS0Uvvta/oQ
7wtb6M9829d1j/WPm2X8FC+///vnxSrN4zJBsNveZWqiNnG8bFVQ6MZW1xokdXBuva/bllxYu0MU
s0Hv3Hq3KpKtuu/L/1DCw1thkLzQ8+1wvOAVYh51rWOr95ZUDZLus3ggXnl4TqQs9yfnpYRSGhu5
ydQ+PCJmtyDiHtbbE/TXsfUDqLtjuvUgInimFe8FB7EL26xLn2uX5Wm2z3av0pcfQO7nVXwTmqWu
nJYynsz203ITzcvpdeRlVNoBd/qJnnz0HHnXU+s4uxrku1ScgD4hoxYjxXBI2b4JvwWcPRlwa0D3
XJxlLDwnfTvg9+0yXsVF+ZDuK4U89b87SjKCxoevqur0p+Ftx7i9IzTtcNLTwvDZJ3dlXL5stYeW
EvSw/Kj5m2r2YdDVXf7j2/zbLIue/767vY0lPCfVNl2JqPTXcvXMu72iDWwy2G3fqz/9r99+ErP7
T+2BO1X7Z40n5d7y0euppT8bp3tFQqgDtKoj699R50rL0ag8upRbCeXTZt4c/IMG1/fv8VMh5i15
NebK8qW/jF8nW85NrGfS5Wu+5wQtk3wbFYt7L1I/+2vs3a6iOx5novnz146XXSAptCwi7qX7nBdR
QQkdWr90FrNh++ZhfNpwMa6PDs89fzLl7gN2XWOAGyvfrWS4Va+GXHc3x+5+nW7XO1vPkGMb5u+y
522Rlj/5Li5+U7OZrv+/aLVTMUe0eQbt4283zz+o/xzUBLr96/2odNAaKsJ6fWwI2X6W9fem+7Xm
qGKEGPFBTmpPaxZxx6370/TnQL0uh92Lv3m5JuUt1rlNstg7gHyHsCd+WsTb8ilnAS5aPv+xDrJx
TWHXH1sDiAYNZ2jZgWQccDNowsZaBIjK5vP2bqPNdFN6UYDje/azVJCUfI1v5kmR3zzEz/nneLG8
3//rS68ydr8KYlFPGgcaj99ys1P3fulQR0OaJdA7+gYb+tzc5E79ycs/6I9t170du8VrmWxqKrKw
UMj8LtI9YyyPsb4xUu9wJz6LXcTY2eYuravffEX0OpQkDSPlO2Vg//ty/pycY0dr3QVP0PYon/20
eLMof32zjPf//ByVPRznC1eRlrY5Zl5p/ZFx/aY7P/UN24pnbpq+7+JknPXtPbZIZ5iIyu/2EVXQ
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
vIk7KhOOyoSj/HCUH47yw1F+OHPloewthYHjVndUFRz3vuPed7xnO251V3Z2GD8bDT/8hDvacb86
nveOG9hxAzue94472vG8d9zijlvc8TR33POOe95xzzvuecc976jaOwoBRyHgGEHoKBUcpYLj7dmF
K62wLxQCjnvecYu7K1ucR3PLLd5yR7fc0S13dMsd3XJHt9yvLU/zludsy53Ucie1VMtbHrwt91rL
g7flwdty87XU01tuvpZmsJYnccvt2VLXb3lWtzyaWyruLY/mlvu25b5tuW9b7tuW+7blrmyphbfU
wlvu25Y6dttdaYV94b5tuW9b6tgtN3LLjdxyI7e8o7fUwltu9ZY7u+XObrmzW9rFWmoELfd+SwWg
5d5vqQC0PO9bWr1a7v2Oe7/j8d5RGHQUBh01+Y7SoaMw6Hi8dzzeO4qLjqd5R1Nax+O94/He0VbQ
UQZ1vFF0VAA6KgAdFYCOcqyjHOsotjqKrY5iq6NQ6iiUOqoIHaVURynVUUp1lFIdpVRHKdVRzeje
i62t5ljXLK+a5VWzvGqWV83yqlleNcurZnnVLK+a5VWzvGqWV83yqlleNcurZnnVLK+a5VWzvGqW
V83yqlleNcurZnnVLK+a5bWLLK9PgR4uTw5PV+DTz18vXywOfx68ORh8v3i7OFmeL5+fv3x1fPHd
96/On5/Hfwbvv7ocvHd+Lc/OVvCILxcnN4exrHlhNS+s5oXVvLCaF1bzwmpeWM0Lq3lhNS+s5oXV
vLCaF1bzwmpeWM0Lq3lhNS+s5oXVvLCaF1bzwmpeWM0Lq3lhNS9sF3lh9+giewSlQL8/v0nxuC0X
5dxxncN1+n59xUd7n0Vr7S2K1t6sougGVu12CyCuM4u7rd++/aqYt+7zunV4dzJg+1jI3V5bv3WL
xWOvb/ym1TOvnehr858b2ssaGr8igfEvjK+0DO2iNSwSGBDDWC+axyKBzTK+kvayhvaySGCzDA+j
Ra2hRa2hRa2hRa2hRa2hRa2hRa2hRa2hRa2hRS0SyBijOGlia2hRa2hRi4SWhI4EtsIAMlrUGlrU
IoGtMD7bMSfDMWCb9rJI4EMZYuYY50l7WSSQU0al0aIWCRwghqnRohYJ5MOxcwxko80tEthbBrI5
BrLR1NbQ1NbQ1NbQ1NbQ1NbQstbQstbQkNbQkNY4yg9H+eH8lZ+QD+4oxx3luF9or2paBlzSgBUJ
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
8sG9zohby4hby4hbS3w6yxBcS3w6S3w6yyBdyyBdyyBdyyBdy5hcy5hcy5hcyxBcS4w7yxBcS4w7
y5hcy5hcy5hcS1g8S1g8y6hdy6hdy6hdy6hdS1g8SxQ8m1DwNpqKeTMUhubw2DeHh2ZwfBz/cU1j
Bwt7YAeH9vDALpruwLaHm2dv5Xp7fnB2+uP58uw8vXh18mJw8XI5iD95/u7k9elihasxODo9fPc+
HzPTng9XuXjJdTf8dR+lW786+aOEXGGGbyXncDPlqDcwDbsvV72lafpUR+7U3B2QVK4iOawzHdcg
OWwxR3S7qbU1v7Pmd9b8zprfWfM7a35nze+s+Z01v7Pmd9b8zprfWfM7a35nze+s+Z01v7Pmd9b8
zprfWfM7a35nze+s+Z01v7Pmd+4sv/MeCzHcEAx+v12Iu/cl19TbmnpbU29r6m1Nva2ptzX1tqbe
1tTbmnpbU29r6m1Nva2ptzX1tqbe1tTbmnpbU29r6m1Nva2ptzX1tqbe1tTbmnq7g9Tbe3Qorl+M
l0Uq1/It7tijuEe1ix/ScO1bhfv2Pivct3etcP/R3Grn/fFhb92gO1jYgbO2Gxws2vhq0TdHi0W3
8OZo99Vqb83qftRmvxrwsA7v1wQ8fKzG7cf3YOn7Nmrt3o8Ie8wjulsp9/XJ0fKn5dF0/PzV0cHp
wffxYecXp2fLwcXZ4uR8cbjq/OAvUeL88f1n70/q7Yi823Cyrvy7Nk/fMqnMMqnMMqnMMocsEqi+
0UjnafVnDpn1tGR4GvmZQxYJfCjvXZ6GC8/rlud1iyljliljkUDW6SNlDpllDpllDpllDlkkkA/e
1JhlZpllZpllZpllZpllFgnklJc75qFFAjnlbc/ztudpt2Eum2Uum2Uum2UuWySQMX+lWQ4QL3ee
lzvmw1nmw1lmu1lmu1kmt0UCn8F7mOc9jNlukYC+BJppmO1mmcsWCR0JnoRAApvlLSvwlhV4y2LG
nGXGnGWCnGWCXCSQMRqDAp0NgdYhZsxFApul2GKCnGWCnGWCnA20DjFjzjJBzjJBzjJBLhLIB4US
8+Es8+EigfNCKcUEuUggH5RSgVKKOXWWOXWWOXWWOXWRQE4ppQKlVKCUYl5eJJBTSqlAmxRT+SKB
nFJsMdkvEsgYjVSBRiqmA1qmA9pAOcb8wEggYzRBBcqxQANToH+TGYSRwGmgHGNKoWVKoWVKYSSA
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
AgVboNgKFFuBUipQSgUKpUChFCiUQrOm++1T6Xifynb8ZU7i+xevTl4MVkmJsZnn705eny6OVpSj
08N37315mfZ8OLTvXWXr5T5uNN9vZ6mbt8yTXSOF8L7no3o8q8ezejyrx7N6PKvHs3o8q8ezejyr
x7N6PKvHs3o8q8ezejyrx7N6PKvHs3o8q8ezejyrx7N6PKvHs3o8q8fzHjyen3KTLU8OT1dusOev
ly8Whz8P3hwMvl+8XZwsz5fPz1++Or747vtX58/P4z+D919dDt47wZZnZyuf4MvFyfWushuC3a7j
t9xW0YTmYZRMqQinFeG0IpxWhNOKcFoRTivCaUU4rQinFeG0IpxWhNOKcFoRTivCaUU4rQinFeG0
IpxWhNOKcFoRTivCaUU4rQinFeF01win9+hwvEWFzcfjdLz/qr7VpXtDl27s3xdPcjT3ozbyRgqA
rzUp9zDE91JrvQ73ftZbryt9Z/Xi6yq/t1X+UTQM7+3SLIdHg8Vx8AO3XPpBOFi2g7Y5bkIbddb4
Z/er5Nas7sfJeVU3WYf3TVSqv916vp8D76GN0p7u4OM4Vv3S9gN3HKIwDF036LvDdmC6I7sY+qPj
/rjZkx28Dqv7eE9bh+/Prstwg5tFY/7/7J1bUxtJk4b/ynf1xd70R2d1HS8cG2N7YCAMXnOS0M1E
nwTCQvIibCz/+i3hWXvmkQ8CSyDsipmY8KRFZ1Z11VPZyuZN9588/iMf12r+GJ7T/L9+ydl8tM9p
fi6lWuimPMAU/xTPaT/HdD8EmWces7qsz9q/3YHPxs9QCY1qjO3H1KFtdabFqqyUVmU6z+uyaitd
1PW/B6P++EmnmAzqi+MP9VZ4W6vjfrl1fNbbOp7W023bkcngldo8L7eOrl6p8Lb5Y+dd9Wx7sn0h
Z+0zOeupo7B7sNN0D64H9damzH7+pNPLe93twcvR/rTpHIcXf9xc/33884dmM4x7nc3Xve7Oh+3z
N1VnuvP8pLM37h3I80qZvL4Ik+3B9aDqbOoX3b38pPN++D+Hv1/vPv9t0D3Oo99jXW8dnzdbx6+7
xb6pt44GLwc75zfX6Lwa9I/zJyvZBct8fkuwWTSFSqv9u6v92xD62wTWdYTQ/76N0/yDIpKJ9+v1
vCN1GXypqswZE+eztSarai9ZWdWVL8vWS7CrZuLCG1W1dS3GVZkt+3ncnqKy2W8iZkWtm6rW1tfO
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
OkfSOZLO8YHXEX2O6HN2zi2HT/Q5Zo6O6HMknSPpHEnnSDpH0jnmhY6kcySdY17omAY6stCRhY4s
dGSh4yOx4yu7jnB0TBQdaemYKDri0zFRdMSnJz4980LPvNDzwduTuJ7E9SSuZ+boiWBPBHsi2BPB
ngj2JK4ncT0zR08EeyLYE8GexPWKcRDBngj2RLAngj0B6wlYz0TRE7CePPXEp2ei6MlTzydxz8zR
E7CePPXkqSdPPXnqiU9PfHo+Vns+Vnvi0zO39GbOLYdPfHri05OWnnD0zAs900BPOHqy0JOFniz0
bs4tx0I4esLRE46ecPSEoyccPVnoiT5P9HmizxN9nqTzJJ0Pc275WxNEXyDpAkkXSLpA0gWCLZBj
gdgKxFYgtgKxFYitQCgF5oWBlApkUCCDAhkUmAYGMigwyQtkUGCSFwilwCQvFHNuOVpCKRBKgWlg
IKUC08BAbAViKxBbgdgKTAMDORZIqcA0MDANDMRWILYC88LAvDAwLwwEW2AaGAi2wDQw2Lk4OPwb
9K2L3tkyW4l/UUCwqPreNsFlufI607WeCf+6PLt5BvWzty1CsSaay4uE+pg0lxeppq5W1S0VY1Mx
NhVjUzE2FWNTMTYVY1MxNhVjUzE2FWNTMTYVY1MxNhVjUzE2FWNTMTYVY1MxNhVjUzE2FWNTMTYV
Y1Mx9gGKsV8rgrWjetwMRqcbw/a0rKfZRZWdl2/KUTtpNyZng/7Vn+eDycYk/ie7+Wib3RTB2svL
WfnvrBwtoVSWJD+T5GeS/EySn0nyM0l+JsnPJPmZJD+T5GeS/EySn0nyM0l+JsnPJPmZJD+T5GeS
/EySn0nyM0l+JsnPJPmZJD+T5OcKJD8fsET2zU6p873QF/ktvu/0Ql9h78Hl9vD12vgIBZ01MZ/N
dKNM5n1fZ/0m5vtl6eLhmC+/G+n+8f5ZbzrrQCpHB903L4+3JteH+f5mG///6PB4rzx8lR+O3oxm
n+9280k73Zn2upvS6+7lXXU2POnsD+vR7uDl8Krafv2xw+iLo7131Wh/WqnrwYtnO2+rqZyfdPbG
vYN4jYPrQa97dt3r7OW9zn6/+WN43TvYttsXx/lJp7mfnr2rbPf72Bbx2nfpTfviS/ti1V150+1Z
P2ylHfST7aC53/Jf5E6tydK6U+xrQ626KYIxdT9rc1NnWrcuK73KM1f4vGxVo02/Wu6W+IEl/qHZ
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
BhyTFz5LA18MVYOH9dkVD74Y9MOnW174LC98lhe+GPTU51+A+CxAfDHoqS8s1dAgc3wx6KnBQyr5
YtBTo4nc8sWgpy5KquFFsvli0FPfYKoRSRj6YtBT1zHS0Wfp6ItBT13HyE9fDHrqwkbC+mLQU+Nb
Nb5VVzrVlY7Y9sWgp66FqmshSe+zpPfFoKeGT1nwi0FPjafVeFqNp+LjZ/Hxs/j4WXz8LD5+Meip
66nqeqq6nqrGZBH0swj6WQT9LIJ+MeipYVwm/bL+1lPDeHXVJrV+Meipkb+6jKtvpQKXcdXdYMn3
s+T7WfL9YigaqoamoWsIDalBT81AsvEXg56ao6TnLwY9NUeJ018MemqOauYogfuzwP1Z4P4scH8x
6Kk5SiT/YtBTc5SM/llG/2LQU3OU0P5ZaP8stH8W2j8L7V8MemqOauaoZo6S8z/L+V8MemqOEvw/
C/6fBf/Pgv9nwf+z4P9Z8P8s+H8W/D8L/l8MemqOcjTA8v6up+YohwcsBj01RzVzVDMlNTOQAwgW
g4c14TQTjiMKZkcUzI4omB1RMDcTjt3es93es83ds83ds83ds83dczM32Kk926m9GHTduN4N47Zu
z7ZuL4aqoWnoGjysQdpe7tle7tle7tle7tm269m268XgZxgtu8HRtuvZtuvFoB8Gtm5g6wY2+7AX
g1fMwNYNbN2w1Q05dmrPNmbP9mHP9mHP9mEvBl03fnTDhY3Zs43Zs43Zi0HHDBfdFax92IvBwxod
7LKe7bKe7bKe7bKe7bJeDB7FZ9+268XgUXz2u+tCG7MXg0cxGNh2Pdt2PdtlPdtlPdtlPdtUPdtU
PdtUPdtDvRg8rM++PdSLwaNMbx3FszVchOHCLuvZpurZpurZpurZpurZpurF4GFdS9llvRi86oYc
u6xnu6xnu6xnu6xnm6oXg4d1HWQP9WwP9WwP9WLwsAYle6hnW6YXg1/Dy6B0v+qvtby1lrfW8tZa
3lrLW2t5ay1vreWttby1lrfW8tZa3lrLW2t5ay1vreWttby1lrfW8tZa3lrLW2t5ay1vreWttby1
lrduVd56aJ3XxTC6428ff3S6/OLL/2yebc8eP9uevvjV8ZPvrzUH7+Mn3//j8s+vOwrviqNfc4zZ
dy8ef/18b3NHOci7RxNecWJXn9K7xkqW/c2Xu/Kwu34lN5x0e9OBsj/8hr7cvticfx+b8xGrv3r+
3cnOv3n1DfTTYxx/MOny4QfzHuyv3HLQ6hXDM/czWvZODvqO+3Kvx333fXofp7xbsLzZsW4ymTni
pB+3zM3paYtNffSob06O5vMRtNsS0/Y4y9Gj3SYz//4PX/31+A//9PXyv5//5s/TX04e//XL3/7r
P3/5r//xRfvNZ7/562//9csvf/vZb/pv//TP/bef/eeXvz+a/u03X09nj/7lb/Gbb/69nv7Dv//p
7B/+/c9/KL9vp//wb4//1+N/2v8M8psOtH5/LtvD32hvzTne5eId6ozmXXzf2yW//hLivsfY3+RZ
OpuOT89O2nYTcdo2dSrTZrT5eFNiWx4dPZrq2dHRDZ6lr3//9Oxfzp+lfzt/lr6/4bP03Un5/aP/
fDl0/t///Jsn09ke1ww3u5dvtnbYcWzyftYQd3rwX/TddijLhF/KM/ry3P/w2//5j8s5/n67RPfn
L87P/NunT55vl1XoX46/fny2eWV48f232+u8WF7r+b3N68J1T2CHV9T1cXqgxdAuF/BQF0O7+H4o
EezktG6Pjx5tNyNOyqb2k9jk2aPclOMWPR+N8y6Km9yov/vq7NOLFfs//+GTe19l3MvLzvt16dYb
br3hfhk33JVjmWYnKcxOUlgMFqeszDpaYTFYnbGVMOzKcDzCYnjrM6w02eTneITFYGHJQmzYc+G8
hNnxCLOzDmZnHcyONpgdbbAYuOppIdZZB7OzDmZnHSyGpqFrCA36YZtGWqp1XsLsvITZeQmz8xJm
5yXMzkuYnZcwp7XbtHab1m7TTjknKsxOVFgMHtbabVqqdaLC7ESF2YkKsxMVZicqLAa/F2u3jliY
naiwGPTDpjZnLszOXJiduTA7c2F2xMJi8AJZ3XXEwuxEhcXgUQxKaYeJAxRmxyPMjkeYHY8wp1HK
eQmLwXOxoSQNbE5UmJ2oMDtRYU4DWxq20iiVRinHI8yOR1gMOmbYcjzCYuCKOfxgMXQN/ooRZhhh
hhHGeQmz8xJm5yUshtCgH8YPByjMzkuYnZcwOy9hdjzC7HiExeBRjA7D6OC8hNnxCLPTEGaHH8zO
OpiHXRkOP5gdfjA7/GB2+MHs8IPZ4QeLwSvmoz581B2PMDseYXYawmLwsD77zkuYh8++AxRm5yUs
Bg/ro+68hNl5CbPzEmbnJczOS1gM+mG72TA6OA1hMXgJXdQMFzVjvPWhP3a9HLGGKc5LWAyzhqKh
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
V8rkSplcKZN3Tpl8wALZTQbX5fHxcWznk00rcbqpOW03x72dbk4ftZxPl2VInp3eYHDdnz5+/Id/
n8b//Mfnj/9rsf/Xf/zu6L/+4/ePzv7x67/+17/8pv/mm/aXsy/Gj8a+H9Q8v8O5LHseDnn87eMf
XIrvXjz++vnV49KvP9X9l3prciVPl2f15X82z7Znj59tT1/86vjJ9ze8oLsOr78sh3+5fbE5vz02
55fkV8+/O3nnbx68gvchHLzeTOt3PUDvfmrfcavs3gVx3RH2+z7069v1HhzY4Ym7Ny/WnPKT3Tk/
FY72953cUuu/y1dzqJyCXXw/lAnT43R+1Nvx0WbkdrupPftmnByPzTbiqMXR2dE43vER+OeX44z/
7cU/z+O7s3/8p7+cfLo8Ct9MX20/nb76r/nfxm//n//8628//aezP/zh6Pn2+39a4vonX/9n+f3X
//XFONr+4ZOvf/Onp4/3Pk36Z9PE6dfb4yeb5Vt8/tWbi7Mt/eRsnOTm5PjkaFNPTublp1o227G8
im7LvG0j7+MmvCNXDy8AH+7dd6+L/NcX+1pf5999c/y3Px5/uf310d+9+oA/noeh757/uhxNf3fu
+IvHT5/8+tzZD8vHH85fLP8/zfGro+X/ltfvj89PaDG99Gj5c/Fp+e/5t7/88atfLf957eHy87fP
to++fvzlV+dO7uWeX3z+4BdzhQ42r+7yxB1qXt3F9709t7d6IbzV6/mPn4Qf3mX/4839fY2H4p4f
hb87XW6aF7+e7vSV7+Xl+c2Ts+3ftmefffLR8+++vfKLOPiX5Vu+zL25Go/PTp6e/Gn5hp+/ePps
+8fjs7NyfpPf+dpxOjo5PX1UyuZ0W443dZrqJh+Ntnl03OqjdhzjtMUdZe8rMvfJN+PoD/PvvvrP
+auv/+vTfxp/+Odf73n38qfuvf18MzfeXrijw/6igtDhLYEP+yHaWzo9/1cfnTx7+tfn2+V6v/zh
8ZMvNy++2m6WX/nouydfPz0+L85szp6efvfN9smL55e2j46O5s388ih3Gn3rUf3gzjz7uct2m88u
t3jB+MlXxlHPTueT0/P10/G0qfNcN6MsH7o9bSe9zUdnj2K775fwX3yuuf6b/C5fy/7C2ANU9v6b
RsDdXnN3uRtu9Jr7+nQu0up0OBsBt3xL3OV2OoQNjMP+Zg9poXSjr/hen9t3rod3+qLv+eu97kv5
3vP7NqMcT9tpcxTb5Ssd07Q5jik3p32cnNSz+fR4mu92J/h/fkHZ7s//9f3xv/z1y9/+62+//Oc/
fPL9bz77zV9/+69ffvnbP/22//b/Oe2//dN/fvn7o+nffvP1dPboX/4Wv/nm3+vpP/z7n87+4d//
/Ify+3b6D//2+H89/qd776D5hdyJh/dm9su8Je81Lv7kArdM03GfpuUubLHcheV0uQtPz//no+no
rPajaZw9OpCq2i6u3stW/1WLiV0cPcR60S0XArs8ovewvXvfhZBdTnsfz/k1V7iHfVPu+bm9zVZP
vfvtrdd33e39+uDvf/f0yXYPC+Wd7pcDr17tfyMst5nzdLo5PTsfgnJydLQ5ySUAxPHx6fFo86Na
z/a8Krmyv+0+CzG/qLvsAMsT793t9vAL3Lodjx7F1DZRt+d32PHx5rhtc8nWo0ztZJxFjwNZ4O7i
6p4T5b6lC2/vHu1wS++pGeTgexCusbrb5da5i/3Lu37luIv9xx3uoL12dF+3FeD2i769F41u1vSy
5xOj1ePtPoqXn7GvJ3DnJN0ebfOknUybk9PT5X2wb7ebk7PpbJPbk3jUStvWcocVtLcS9Ne/++rs
0/Ndqn/+8S7VZ//Wf/uvH/fffbbTLtV3J+X3j3ZrAL/me+hhR6p7WPNdeQfv8Er3AIXhX+ZtfTiF
qZ2ei3t+Gq5+377hovG2r+kPtuS7vQTyvb0JDlY4+Yff/s9/XP7i99tlafj8xfmHfPv0yfPt5vGT
vxx//fhs88rw4vtvt/tr8LxTL9YAvX/h2Q1fdW8lPbhek/x1W9VOtyfL17zZ9uVbr+2obcY4Plp+
6ifHrZ8dLcHj7hfHZ0+/+ejJ07PFqS+3Lz7/evtyWf/J959+ffz8+e+Ov9lu5qN3r8rX9ci+1yO/
RJbBXvrw6y2zw61UIdc4+F3JHertdAc3jkL3sJLYMSxdr3p2k92pXcLU/nLc24uSS68fPf36bPvs
Vy/+9uKOGmOv/tbf+VI/H4JCdt9x7vzu/N//619+5qq+ePb49M9fv7yLLlfcf/fN818vv3N09fPy
7PUX/PLPzZ+322+XVedftpv/+7unL44vH5zelhtur3uxu9zte92L3eGGv5cF/HJHf/CLeX4ORT99
2W8zTrPNp8tL8Zjbpp6dnJeM27zccmOeTnMbR8fbO1r4/ctfvzz9fnrxn3/46sfYgn/56+PTf/hi
Ov/M//yP/zr6rz/85vH/evL778/+49/3w83auaN0h7vonu+dvbZs3OJXrxuHpyUOH9I22I37aH8x
T8/BwQXudafwkJ/1PeeLn5tvN/36zSw+Bw2KTXVGTXFGTXFGTXFGTXFGTXFGzWJwFKHY1CEl1Sk2
xSk2xSk2xaE1xaE1i8HDilx3Rk1xAs1i8OSEKg+hysNRDkPCujNqijNqFoMf+tZwTzjM1YEz1YEz
1YEz1YEziyE0JAZw6dX5MtX5MtX5Mouha/Cw01uH9WwBMy8GHZu9HrOezno66+msp7OezjpW9KPo
R9GPoh9FP4qHLV6goh/VC1R1rOpY1bGqH9XrUT1s87DNwzYP2zxs87DNwzavR/N6NB3rOtZ1rOtY
17HuF9V1LDxK+BnhycVbn+HJhSeXHuV1lMovPvys/OhvdDk9fnq4fOtwXsvh8YfXcnjY4WGHpz30
Y+iHIc8ZNIth1lA0VA1NQ9cQGnDMOTbVOTbVKTXVoTTVoTTVoTSLwdM3fk3GL0fOVEfOVEfOVEfO
VEfOLAYPa+yZjD1OmKlOmKlOmFkMHsVgNBmMnEFTnUFTnUGzGHTMUOPImerImToZWZxBsxg8WyOL
Q2mqQ2mqQ2mqQ2mqQ2mqQ2kWg46FjhmunFJTHUqzGPQj9CM9bHpYg9JkUJoMSo6tqY6tqY6tqY6t
qY6tqU6pqU6pqbMhx6E0i6Fp6BpCw1tH4eRmI4xjaxZD0aAfrpDm+a1/oafGD4fSLAY9NX44paY6
pWYx6EfRD9c/TqmpTqmpszFoNuQ4x6Y6x6Y6x6Y6x2Yx6JgxyME2i8Hr4YLISTfVSTeL4a2jePoG
JUffVEffVEffVEffVEffLAYdM+Q4+qY6+qY6+mYx6IcxaDbkOBynOhynOhynOhxnMXiU9GwNSrNB
aTYozQYlJ+4sBq/H0FPD1uzSyRE81RE8i6FoqBqahtCQGjhbp/ZUp/ZUZ/JUZ/JUZ/JUZ/JUZ/Is
Bs/WV7/iSskxPtWpPdWpPbUYx5zasxg8W1dKxUhXjHTFSOfkn+rkn+rkn+rkn+rkn8WgY0Y6RwFV
RwFVRwFVJ/9UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/1UB/0sBh1zPVYM
jsXgWAyOxeBYDI7F4Fh8nyyu2Irhsxg+i+GzGD6L0bIYLYvRshgLi7GwGAuLsbC4Yiuu2KqxsBoL
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
xaBjRjr1t4vBwxr6lNsuawjP1sCm/vZ82aFBP9yVVZC7GDx9I10x0hUjnZLdrmR3MXhYA1sxsKny
7ap8uyrfrsp3MXiBDGyqfLsq38WgYxbGlP12Zb9d2W9X1NsV9S6G1OBh3ZVVB7wY9MNIp1K4qxTu
KoW7SuHFoGOuPqvBsRrp1AH36lJSYfBi8FwMfdWlZDUWVkOfWuJejYXVWFiNhcqPu/Ljrvx4MXhY
Q5/i4q64uCsu7oqLu+LixeDpG+mqy8DqMlA98mLQU4NjNTgqUF4M+mEsVKC8GDyssbAaC6uhTwlz
V8Lcq6GvWn9S07wY/BqMdNVIV41j1QVaNY5V45iq596MUqqeu6rnxVA1dA2h4a3DcnLKoLsy6K4M
uiuD7sqgF4OOGaWaS7hm2FI53VVOd4XSXaF0Vwa9GPwMl3DNOKZyejF42PLWYT1bA5va6q62uqut
7m+01fnJh5//+G90yIDWXNw133ybL7rNCNeMTsqwuzLsxeBnGHuasae5MFOo3RVqLwavpUs3ldtd
5fZi0DEXZmq7u1LurpR7MXhYg1FzpdZcqTXDVTNcKQfvysEXg44Z0NSHd/XhXX34YtAxV2rtrZDn
Sk0FeVdBvhhCQ2rwQw1oSsq7kvKupHwxdA0exWDUXVQpKV8MHtb4pYK8qyDvKsi7gvGuHLyr/l4M
fqhrKOXgXTl4Vw7elYN35eBd9XdX/d1Vf3fV312x92LwsEapbpRS/b0Y9MOwpfq7q/7uqr97N+So
/l4MXkJXN6q/u2Lvrti7K+XuSrm7Uu7eDRfdcNENF0qVu1LlxeAVMzp0o4Pq5q66uatu7qqbF4Of
YTAIVzdhdFDM3BUzL4amoWsIDalBT13uqG5eDHpqhAkjjPrnxaCnvvqFVQQV0suNrKdGKTXUXQ31
YtBTF1WKqheDnhrplF13Zddd2XVXdt2VXXdl113ZdVd23ZVdd2XXXdl1V3bdlV13Zddd2XW/kF3f
X8HrNbqgq+/u6ru7+u6uvrur7+7qu7v67q6+u6ve7mqzu9rsrja7K8XuSrG7Uuyu0LortO4KrbtC
664EuiuB7kqguxLoruK5q3juype78uWuWrmrVu6Kk7vS4670uCs97kqPu9LjrvS4Kz3uSo+7SuOu
0rgrLO4Ki7s64q6OuKsj7uqIuzrirmy4Kxvuyoa7suGubLgrG+7Khrsq4a5KuKsB7mqAu4Lern63
q87tqnO76tyuGLcrxu0KabtC2q5utqub7apiuyLYrsS1K3HtSly7EteuorUrPu3qRLsq0K4KtCvY
7Ao2u4LNrmBzMTQNXUNoSA18DSo4F4N++BAOH0IVnF3BZlewuRj8UJ8o9ZldOWZXjtlVX3bFll1t
ZVfk2JUwdiWMXcViV6C4rJR1zE0SBYrLWlrHvJOVH3bFhYtBx8xRwxyluLCrJexKBxfDW//ix19U
HHGvhzrAUAcY6gBDHeBi8CiTR+FOXgyzBv2Y9GPSj0k/eA9YDG85NjDMejrr6ayns57Oejrr6ayn
s47NOlb0o3jY4lGKRylej+Jhq6dfPdvqYatnWz1s9bDVk2setnm2TT+afjT9aF6PpmPN02861nWs
61jXsa5jXce6jnUvUNexrmOhH6EfoR+hH6Ef4QUKHQsdCx1Lr1jqaepp6ljqWOpH6sfwKMPTHx5l
eJThUd6KlmySxGT4VBYaDjEKhxiFwtFwiFE4xCiUlobS0nBmUag1XQz6YTx1qlE4xCiUp4by1FCe
GqpRQzVqqEYN1aihGjVUo4Zq1FCNGqpRQzVqqEYN1aihGjVUo4Zq1FB8GopPQ61pqDUNtaahtDSU
lobS0lBaGkpLQ2lpKC0NpaWhtDSUlobS0lBaGkpLQyVpqCQNlaShkjRUkobC0VA4GupEQ1loKAsN
ZaGhLDSUhYay0FAWGspCQ1loKAsNZaGhLDSUhYay0FAWGspCQ1loKAsNZaGhLDSUhYay0MXAZ6jx
DDWei6FoaBpCg0cxns4uWJ2/FKpAw/lLi0E/DLDqRMNe9rB1PWxdD1vXw071cP5S2KkedqqHneph
p3rYmB72oYdd5mGXedhlHnaZh13mYZd52GUedpmHE5rCLvOwyzzsMg+7zMOm8rCHPOwhD1vGw5bx
sGU87BAPO8TDDvGwQzxsCA8bwsOG8HD+UtgQHjaEhw3hYUN42BAeNoSH/d/hdKWwITxsCI83DeH5
xYefffbDv3GBaN93vGnzXv7m489/9DcexjBle/diKBqahtCQGjyKYcr27nA0UjgaKWzvDmclhd3c
UYwXxXhha3bYmh02XodN02GPdNjwHDY8hw3PYcNz2PActjOHA4fCgUPhwKGwAzrsgA4HDoUDh8IO
6LADOuyADhuew4bnsL857G8O+5vD/uawvzkuZhTtY4TyIWvvDk6Wu1fd3s+d7a2Od9dY+SUu5Wk7
aZslYR1t6vHJo81JHp1sTs5OtjGdPHq0vI7dBRt+LbCuBda1wLoWWNcC61pgXQusa4F1LbCuBda1
wLoWWNcC61pgXQusa4F1LbCuBda1wLoWWNcC61pgXQusa4F1LbCuBdbbF1gfkAV/FxOX77SKt2eM
/G+enG3/tj377JOPHp+dPD350/Lbz188fbb94/HZWT//jFtUEVcu6colXbmkK5d05ZKuXNKVS7py
SVcu6colXbmkK5d05ZKuXNKVS7pySVcu6colXbmkK5d05ZKuXNKVS7pySVcu6col3QOX9GCqidfT
N15Zmfvg73/39Mn2riZF71KLfOdk2PIzUtRpjl8dLf83Hdyk6MXnD34xV+gBxo2/U9C809W652u0
/2GiPzO29l+3f3uxuTjHl9d7PxHjF/Ud7e9+fn29dvyydo2z1594Tpx//t23V04cvylKe+eelJOz
Vk6P2/Fm+2iaNvXR2TmI4CQ305J25jw+e1SOjg5vEPsNLstdP2k3vpp7jtxXavyXVaO9XnZsWy4L
q2NhdSysfS0GP1SNjIWssJC1RKkjDZOGWUPRUDU0DaEhNeiYzZKWusJSV1jqCktdYakrLHUtBh1T
NGOpKyx1LQb9sMm7KpqpimYsl4XlsrBcthj0Q8FLtYvTYtjyIuLJ2fVt7SusbC0Gj6JYpdoaaqkr
rGyFdauwbhXWrcK6VVi3CstUi8Gj2OdpVSqsSoVVqbAIFRahwhLTYvAoakKsOS0Gz8UIY1VqMbzl
h6evBKQag6xbLQYdM0pVhXvWrRYDV70ZpaxshYWsxdA0dA0c1jJVWKZaDB7FCGOZKixThWWqsEwV
lqnCMtVimDXoh/GjGT8sQoVFqLAIFRahwiJUWIQKi1BhESosQi0GT85ec4tRYTEqLEaFxahoBiWr
U4tBP4xSzQb2ZthqNrA3FXSWvMKS12LQDxvYLXmFJa+w5BWWvMKSV1jyCktei8ErZiy0BhbWwBaD
ntoEb1FsMeipTfCWzcKyWVg2C4tiYQ0sLHmFFa6woBUWtMKCVljQCgtaYUErLGiFBa3FUDQ0DV0D
h+2GPitcYYUrrHCFFa7FwNl2A5slr7DkFZa8FoMXyIWRBa3F4GcY6bqRrhvpuoHNGlhYAwtrYGEN
LKyBhTWwxaBj6uO6gc2iWFgUC4tiYVFsMeiHyy9rYGGFKyxoRTd+WL9aDPphMLB+tRj8UFdK3ZVS
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
jYHVGFiNgdUYWI2B1RhYXSBWg2I1KFaDYjUoVpeQ1ShZXVNWw2Y1bFbDZnWRWY2j1ThaXWRWA2t1
o7m6pqzG0eoSshpYq4G1GlirgbUaWKtvz9W352rorb49V2NxdaFaDc7V4FwNztXgXA3O1eBcDc71
reDsRmozWjejdTNaN1/Jm+G7Gb6bG6nN5XAzjDeXw8243ozrzbjejOvNuN6M68243ozrzbjejOvN
uN6M6831cTPQNwN9M9A3A30z0DcDffPFvxn5myvoZipopoLmCrqZG5q5oZkbmrmhmRuaS+rmkrq5
pG6mk2Y6aS6pm/mlmV+a+aWZX5r5pZlfmvmlmV+a+aWZX5r5pZlfmvmlmV+a+aWZXy5UUIcyP/7G
8sodFfx3rQa8cwXplYLHuzjR64NGdlEb3oNo/ha6ywdX1L/NQNjlot6IgQB6aLpjtsctnu9rUiIO
+wrtmaxz/q8+Onn29K/Pt8unvPzh8ZMvNy++2m6WX/nouydfPz0+Z469vk2fX9o+OjqaNvMeKU2r
cHgVDq/C4VU4vAqHV+HwKhxehcOrcHgVDq/C4VU4vAqHV+HwKhxehcOrcHgVDq/C4VU4vAqHV+Hw
KhxehcOrcHgVDj+AcPgBh/VcWSpbdb+r7nfV/a6631X3u+p+V93vqvtddb+r7nfV/a6631X3u+p+
V93vqvtddb+r7nfV/a6631X3u+p+V93vqvtddb+r7ncPut9DKJHdhc7t587jNp9d9zU+eSdV4z1r
GX8h45NvPgH5kL+UhxpHfi3Z9M5K7Js9UT8pSz/bHp+07aibcnJydP5V5ea49dPN8VnWs7I9Oh15
vF9OwZ26umdB8W6a610cvZHm+k6Ggh+CKv2wr9AD3ETvDKw7Xa0HGi2/v2x3lUT+fAHmytD3+ebr
e/P1vfly/kYBnp9++Mn8o7/x031LbxZ6mm/pzbf05lt68y29+ZbefClvvpQ3X7mbr9zNV+7mK3fz
/bn5utx9O+6+HXffjrtvx9234+7LcD9667CcXPfdt/vu23337b7Zdt9su++t3ffW7mtq9zW1+5ra
fU3tvqa+kU/nZ+f/v/ywfA+f/uif+FrafS3tvkF23w+774fd98Pu+2H3dbD7OtjrW4f1q/N1sPs6
2H0d7L6XdV/Dutt83bDQjQLdDbhuZaP7rHcrGz3e+lDP1oe/+6x3n/Xus97dkes+/N2Hv7sB140G
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
Xp58+/biZjp5/ZtTzfkNzObjyxtg+Z4vlzrjLxdH+5c3F/4HUKbllC9XieNyEf5qbfXZ+NGNdHmj
vpk4soST9skPb+HXr2/Ltfj01TLxIi4uX09efBn9/7m43f7w5jcLhKy5ApBbDK/fN88Xjxcn+Onz
Vyni4soc/eur4Pzxj27cy494M4PhzZ08vQohn517+PKHZz94g3lTYzlfzc6X99BlOM/fvXrqP7u8
jpch4ovtD5eur1LE5ftAef1qfR6Djn70dJy/XM5vPyblB1W686/ls1e3bH913/UfBtUf79vNPxit
sJzi5/0HH/sGwbik4Yvzz8ub5egyn58vuT/9wa+8wSqch8z2w3cDpmJM9bUjr5+7y795s1Xyefm3
Hz2PF/9gflMtf/McXnwx54/5G1ZTqW/KYkuKuQwg7TIhvX7+zk9ifvV411fn98UPHs03L0ZxuQJ+
87B+9mq1Mr3OeB9frlY+/sFrZ8wMlglwKyXfEDheP9fnd+sPrmK+2b15/cRf/s2bMSSXIeCt0Xev
9y4uo8JUfryf8tJy9GNLhSM3NaCSUweHtRje+hUwxlOr7IVOvbzF33irEsAW41SAEZ4bioaqoWl4
60NDQ2oYGH68BX1umDTo6ayns57Oejrr6ayns57Oelr0tOhp0dOip0VPi54WPS16WvS06GnV06qn
VU+rnlY9rXr61i1V9bTqadXTpqdNT5ueNj1tetr0tOlp09Omp01Pu552Pe162vW062nX066nXU+7
nnY9DT0NPQ09DT0NPQ09DT0NPQ09DT1NPU09TT1NPU09TT1NPU09TT1NPR16OvR06OnQ06GnQ0+H
ng49HXo68BSe4+Sy+twwaygaqoamoWsIDalBTyc9nfTUHFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R
1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXNUdUcdQGLvNPNumtSVE561jxtm+3ZcWzqWT/djEfteHO2
RLajk5Pz+UzToQBfdnB1z6yO3zw52/5te/bZJx89Pjt5evKn5befv3j6bPvH47OzfPe2684DbNZN
z3XTc930XDc9103PddNz3fRcNz3XTc9103Pd9Fw3PddNz3XTc930XDc9103PddPzl7Dp+YCNlLdp
gbxyC3DX5scd0cg7bHreCI0MT/2A4NH3B7e/Lqb6oL+LPW99/+QX8mz77dNnL+76a7n1EIv+8pyu
OMDbwP2XmP3FvPnuyfFfjh9/fXzy9fYHoP13f+aNwf879lTvLaC9+4s9MK9vyIzZ5cG958f1amL6
ncTBm9Xkbv/w7ZAFb3PT3ujh3TUz3zTU3QJqdMA36L2VVJ9/9+0+ssmNA/OVK70DC8m38/cnFrhv
vpD9HPJ65f/5uMZ2ir6p29OyqSdluxk552acHo02j6OzqZ8dSKfCLq4exGiaXRx954o2H2Y0za3C
9A3z6v2n45uuj+5xqX4/v3LLwHijxcI7H7Hlxv/gF/OYvRfD0G77jd3YldsvhW/h15W39p69u+Hk
v11u93u+yfc6oOoWQxIP+FI9wArlJ1dTj7bH27O6XJlH2/5oU6f6aHOc49HmNE/OzuJke3I24tai
+XYd0fz1tzOvnO7486Ht4TP29RfAu3xl95B2dvzad9gXeMfGwzW+yPtLd9dYnOzyXd1ocXInE1v3
NJ7yWsu3w75Chzaecqerdc/X6ECz/yFfqkPJ/qejjDg7nyB9sj3a1KM6b076cd+00+NxPI+RrcU9
vutf+zX64d7491KWe9eO39gfeOhOb5f93dqHWIdru2/93n3pco8Hv9VK7Lpb4T9zs99tr8cu9+4h
7sbe30rssK/Qoa3Edrpa6z7MoV+qA23sub+Fx+3XKruUlq+3zhjlaJunZ/OS4o62mxqnsTmZlv85
yunpUTxqx9Px9n0pDo9rFrP3XD3d5dIeYM3idlf4zsvvY7fy+1Vq9KmkApJUQJIKSFIBSSogSQUk
qYAkFZCkApJUQJIKSFIByVuapFRAkgpIUgFJKiBJBSSpgCQVkKQCklRAkgpIUgFJKiBJBSSpgCQV
kKQCklRAkgpIUgFJKiBJBSSpgCQVkKQCklRAkgpIUgFJKiBJBSSpgCQVkKQCklRAkgpIUgFJKiBJ
BSSpgCQVkKQCklRAkgpIUgFJKiBJBSSpgCQVkKQCklRAkgpIUgFJKiBJBSRDAclQQDIUkAwFJEMB
yVBAMhSQDAUkQwHJUEAyFJAMBSRDAclQQDIUkAwFJEMByVBAMhSQDAUkQwHJUEAyFJAMBSRDAclQ
QDIUkAwFJEMByVBAMhSQDAUkQwHJUOQ4zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1zFHD
HDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1
zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxRwxw1zFHDHDXMUcMcNcxR
wxw1zFHDHDXMUcMcNcxRgxxVj8hRi2HSMGsoGqqGpqFrCA2pQU8nPZ30dNLTSU8nPZ30dNLTSU8n
PZ30dNbTWU9nPZ31dNbTWU9nPZ31dNbTWU+LnhY9LXpa9LToadHToqdFT4ueFj2telr1tOpp1dOq
p1VPq55WPa16WvW06WnT06anTU+bnjY9bXra9LTpadPTrqddT7uedj3tetr1tOtp19Oup11PQ09D
T0NPQ09DT0NPQ09DT0NPQ09Flxylnqaepp6mnqaeikw5Sj1NPU09HXo69HTo6dDToadDT4eeDj0d
emqOmsxRkzlqMkdN5qjJHDWZoyZz1GSOmsxRkzlqMkdN5qjJHDWZoyZz1GSOmsxRkzlqMkdN5qjJ
HDWZoyZz1GSOmsxRkzlqMkdN5qjJHDWZoyZz1GSOmsxRkzlqMkdN5qipvAUhireoRBr01Bw1maMm
c9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeao
yRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5
anoL62WOmsxRkzlqMkdN5qjJHDWZoyZz1GSOmsxRkzlqMkdN5qjZHDWbo2Zz1GyOms1RszlqNkfN
5qjZHDWbo2Zz1GyOms1RszlqNkfN5qjZHDWbo2Zz1GyOms1RszlqNkfN5qjZHDWbo2Zz1GyOms1R
szlqNkfN5qjZHDVfQci+RvfILoXFu+jj3W9/ze7175+r7R39+g2JR0SQ+6bVfdPqvml137S6b1rd
NxU5uBhEBLlvWt03re6bVvdNq/um1X3T6r5pdd+0um9a3Tet7ptW902r+6bVfdPqvml137S6b1rd
N63um1b3Tav7ptV90+q+aXXftLpvWt03re6bVvdNq/um1X3T6r5pdd+0um9a3Tet7ptW902r+6bV
fdPqvml137S6b1rdN63um1b3Tav7ptV90+q+aXXftLpvWt03re6bVvdNq/um1X3T6r5pdd+0Wttr
1vaatb1mba9Z22vW9pq1vWZtr1nba9b2mrW9Zm2vWdtr1vaatb1mba9Z22vW9pq1vWZtr1nba9b2
mrW9Zm2vWdtr1vaatb1mba9Z22vW9pq1vWZtr1nba9b2mrW9Zo5q5qhmjmrmqGaOauaoZo5q5qhm
jmrmqGaOauaoZo5q5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauaoZo5q
5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauao
Zo5q5qhmjmrmqGaOauaoZo5q5qhmjmrmqGaOauaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O
6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurm
qG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhu
jurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q
5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqG6O6uaobo7q5qhujurmqDBHhTkq
zFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBHhTkq
zFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBHhTkq
zFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBHhTkq
zFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBHhTkq
zFFhjkpzVJqj0hyV5qg0R6U5Ks1RaY5Kc1Sao9IcleaoNEelOSrNUWmOSnNUmqPSHJXmqDRHpTkq
zVFpjkpzVJqj0hyV5qg0R6U5Ks1RaY5yitRiuM70232TNK6pRT/sauKeRcNXkx/6u2EgN5Np73TN
7/lKX1fRfgPJ880Etzt+R9ehn/2ivrA9PyI/A3V7BeLcnG0v5tzsD5pzHQ+ucxesfQVrX8HaV7D2
Fax9BWtfwdpXsPYVrH0Fa1/B2lew9hWsfQVrX8HaV7D2Fax9BWtfwdpXsPYVrH0Fa1/B2lew9hWs
fQVrX8ED9BX8XH1v++Si7PXR19svj0+/33xzsvnT8bfHT7bPtx89/+rxoxd//NPj5x89X/6zeflP
t5uXRbDts2fnlcCvjp9cAyK84nVXvO6K113xuited8XrrnjdFa+74nVXvO6K113xuited8Xrrnjd
Fa+74nVXvO6K113xuited8XrrnjdFa+74nVXvO4D4HUfsFR2wzGytxpdez8zaPc+2b0/5GT3vtt8
0XsZEHzfN8Mdzqz/eUXmLb7YK++tO/MDVfDPCGb/+vTZn7fPXsaCXb+H/3j5K8+vO+j57Tm409G7
BbY/oW2++ix2UMve5ra6+nx2cGA3qe6SAMxMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPM
vpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPM
vpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPM
vpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpPMvpMU30mK7yTF
d5LiO0nxnaT4TlJ8Jym+kxTfSYrvJMV3kuI7SfGdpPhOUnwnKb6TFN9Jiu8kxXeS4jtJ8Z2k+E5S
fCcpvpMU30mK7yTFd5LiO0nxnaT4TlJ8Jym+kxTfSYr7ZsUcVcxRxRxVzFHFHFXMUcUcVcxRxRxV
zFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxR
xRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUc
VcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXN
UdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVEi
j6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+q
yKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsij
KvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyry
qIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiK
PKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyq
Io+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKP
qsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rI
oyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq
8qiKPKoij6rIoyryqIo8qiKPqsijKvKoijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKo
ijyqIo+qyKMq8qiKPKoij6rIoyryqIo8qiKPqsijKvKo9l3G+16poq2CkqqgpCooqQpKqoKSqqCk
KiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCoo
qQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkK
SqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqq
gpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKS
qqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqg
pCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQq
KKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiip
CkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpK
qoKSqqCkKiipCkqqgpKqoKQqKKkKSqqCkqqgpCooqQpKqoKSqqCkKiipCkqqgpKqoKQqKKkKSqqC
kqqgpCooqQpKqoKSqqCkKiippjlKGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGV
RlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZU
pRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKUR
VWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVp
RFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURV
GlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpR
lUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVG
VKURVWlEVRpRlUZUpRFVaURVGlGVRlSlEVVpRFUaUZVGVKURVWlEVRpRlUZUpRFVaURVGlGVRlSl
EVVpRFUaUZVGVKURVWlEVRpRlUbUpBE1aURNGlGTRtSkETVpRE0aUZNG1KQRNWlETRpRk0bUpBE1
aURNGlGTRtSkETVpRE0aUZNG1KQRNWlETRpRk0bUpBE1aURNGlGTRtSkETVpRE0aUZNG1KQRtaNr
DbLdl+D0h7Wy7148/voedZZ7U1hyOjee2fkD8d5+FLNXa/ZuKJbdQcL6M9M+Lz/rYqrq+XTW06dP
XmyfvPj1h+XTD8sXf/vm6w/no79snz1//PTJh+WzD+eYfnW0/HexvhJ+X5j/+vjJ2dO/Pt9M59K3
8wfqiw/L58uH/O38j23/8Hh8OB6df+j8xbnp7158/+3218fffvv144shruf23aWf9zYg9+Cv2P3I
d9/cuc+/+/YXcq8t0fh0eX6eb18sn/rdi0ebPCRp/13EivfrK/jhR97DvPebxYOfehAO5yv8P5bH
+/xKL1/XeRa7+Eq+2b44Xgw/faF3+NZebP/2YjG8W5n//gTMtx/7+wmhh/VNXif4vaff7Q8/cu9f
8S1iy6HfHXuPy6A13pz71S8oN7w193397iei3PYt6z5WxPcfx+7n2l++c365fbE5P8Tm8ZNHT3/1
/LuT9x1I9dLF8wv70cmz5RtZIvfFD8uF2bz4artZfuWj7558/fT4/FJtXl2855e2j46O+ma6aL89
+lXEUT/KmPK8H+8oplvMwllZNCuLZmXRrCyalUWzsmhWFs3KollZNCuLZmXRrCyalUWzsmhWFs3K
ollZNCuLZmXRrCyalUWzsmhWFs3KollZNCuLZo8smoeehXP16JXYcaLFe9J3cM/9G/uqrt6mjfBd
DRL31/K8YpZWzNKKWVoxSytmacUsrZilFbO0YpZWzNKKWVoxSytmacUsrZilFbO0YpZWzNKKWVox
SytmacUsrZilFbO0YpZWzNIDYJYesEB756iQh0caXQkruXs/9iRB/bkTuNXhrl8+/SnZ8P1d2x27
Bz74+989fbK9uhlhVwevVEa/k5cyvbuh4cdP3cdPvv+Plwe9p4r8VSd+f9/t1ddw16/1+nSB90De
fss4t+OTsx963F0c/H7wfz/TlXPe6POjjpzDuZXuj1p4QKDDPz3f7Ubd9evcNbJcCXlYFnGuLour
y+Lqsri6LK4ui6vL6uqyurqsri6r6+Cqp1VPq55WPa16WvW06WnT06anTU+bnjY9bXra9LTpadPT
rqddT7uedj3tetr1tOtp19Oup11PQ09DT0NPQ09DT0NPQ09DT0NPQ09TT1NPU09TT1NPU09TT1NP
U09TT4eeDj0dejr0dOjp0NOhp0NPh566rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5
rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5rzC5
rzC5rzC5rzC5rzAVPTVHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJH
TeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprM
UZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMm
c9RkjprMUZM5ajJHTeao2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6Nmc9RsjprNUbM5ajZHzeao
2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6OE5TVheU1YXhOW
14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE
5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1
YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5
TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1Y
XhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4T
lteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bX
hOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14Tl
NWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVh
eU1YXhOW14TlNWF5TVheE5bXhOU1YXlNWF4TlteE5TVheU1YXhOW14TlNWF5TVheE5bXhOU1YXlN
WF4TlteE5TVheU1YXhOW14TlNWF5TVheq1eMarvBSKR9TgOa9kE32M+Qs+laFeqfpww08YVNfGET
X9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/Y
xBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQX
NvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbx
hU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVN
fGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxh
E1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf
2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jE
FzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc2
8YVNfGETX9jEFzbxhU18YRNf2MQXNvGFTXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2MQXNvGF
TXxhE1/YxBc28YVNfGETX9jEFzbxhU18YRNf2Lo5Slpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW
1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1tak
tTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1
aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWlt
TVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1a
W5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT
1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bW
pLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1
NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVp
bU1aW5PW1qS1NWltTVpbk9bWpLU1aW1NWluT1taktTVpbU1aW5PW1qS1NWltTVpbk9bWpLU1aW1N
WluT1taktbW8okJ4z8LAn6pF7rM+d8/a4FsMiD9YrvuOSvzckeN/s7LyrsrOgyku34nD94LU31Vc
u+MtsIO2dndG/1o9X6vna/V8rZ6v1fO1er5Wz9fq+Vo9X6vna/V8rZ6v1fO1er5Wz9fq+Vo9X6vn
a/V8rZ6v1fO1er5Wz9fq+Vo9X6vnd189f0BG/5WlshVFu6JoVxTtiqJdUbQrinZF0a4o2hVFu6Jo
VxTtiqJdUbQrinZF0a4o2hVFu6JoVxTtiqJdUbQrinZF0a4o2hVFu6Jo94iifcBS2VVji/c66XIf
c5KvEOb9zMTLS3Xg8xfHL757/qtvv/8fp0+fvNg+efHrD8unH5Yv/vbN1x/OR3/ZPnv++OmTD8tn
Hy5vHr86Wv67WF99SRfmvz5+cvb0r8830/nr3fkt9MWH5fPlQ/52/se2f3g8PhyPzj90/uLc9Hcv
vv92++vjb7/9+vHp8YvzD5/PD7Yffe7Bn/byKJwuZ/N8+2L51O9ePNrkIYx0vcG1+z/Onp6en+Jy
nc6fwItr8c32xfFieHOGP7poV1+ucxXsYjj/wF3P739//+Krp0/+5fTZ429f3GJI7rWH8l7ruLcW
ZF/raHucz5y7qevfr8fwhx95o2HCB3ZyB6uVfw+j816v5QGG3Wvnp+u4/8UXPzre8nGPn9zfk7jv
S3ePj939pIO7XI++k9kyvxsRcmeJ9/prhdve3XvjnjxIqv7i85ue5Pu7IPhvnQD2GI+vlQsObUVz
F9H40PP+oaaz24b0qxum0yJKWkRJiyhpESUtoqRFlLSIkhZR0iJKWkRJiyhpESUtoqRFlLSIkhZR
0iJKWkRJiyhpESUtoqRFlLSIkhZR0iJKWkRJiyhpESUtoqRFlLSIkhZR0iJKWkRJiyhpESUtoqRF
lLSIkhZR0iJKWkRJiyhpESUtoqRFlLSIkhZR0iJKWkRJiyhpESUtoqRFlLSIkhZR0iJKWkRJiyhp
ESUtoqRFlLSIkhZR0iJKWkQZFlGGRZRhEWVYRBkWUYZFlGERZVhEGRZRhkWUYRFlWEQZFlGGRZRh
EWVYRBkWUYZFlGERZVhEGRZRhkWUYRFlWEQZFlGGRZRhEWVYRBkWUYZFlGERZVhEGRZRhoX+YY4a
5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuao
YY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGO
GuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuaoYY4a5qhhjhrmqGGOGuSofkSOWgyThllD
0VA1NA1dQ2hIDXo66emkp5OeTno66emkp5OeTno66emkp7Oezno66+msp7Oezno66+msp7Oeznpa
9LToadHToqdFT4ueFj0telr0tOhp1dOqp1VPq55WPa16WvW06mnV06qnTU+bnjY9bXra9LTpadPT
pqdNT5uedj3tetr1tOtp19Oup11Pu552Pe16Gnoaehp6Gnoaehp6Gnoaehp6Gnqaepp6mnqaepp6
mnqaepp6mnqaejr0dOjp0NOhp0NPh54OPR16OvTUHKXwtCs87QpPu8LTrvC0KzztCk+7wtOu8LQr
PO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0Kzzt
Ck+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpP
u8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC
067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu
8LQrPO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0
KzztCk+7wtOu8LQrPO0KT7vC067wtCs87QpPu8LTrvC0KzztCk+7wtOu8LQrPO0KT7vC067wtM9X
TOa5Wdn++sX73SZxdGWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2
ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWx
XVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1Z
bFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxX
FtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbb
lcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XF
dmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZl
sV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFd
WWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVls
VxbblcV2ZbFdWWxXFtuVxXZlsV1ZbFcW25XFdmWxXVlsVxbblcV2ZbFdWWxXFturOcqJht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2Jht2J
ht2Jht2Jht2Jht2Jht2Jht2Jhr1fUS27M3HiXvVwr728Wif9wd//7umT7d3KSj//4sNPPvnwk/vQ
9j6YfvV+vr87kFP/gsSu94EienXv3ugmvk8+wKfz3h+vd1b6D0vJ/raTV0PB7uJS/G2faKkriRnv
4kvd6Bv/+Zv+F6jfvm/Z/Q6h5bAeqp/0cx+wvZsG9puy12709f1UwD3M7+sGX9wdrTj2jQu70zS2
b2dZgT//7tsrb8yXv3I1jGfcE+HoBgu6Pa3Kyoc5ffjJzZY8O6TRPTOrDv4LubvFwr1FgJuBrq5+
IT44btotXd7DUuXevuMVrrPCdVa4zgrXWeE6K1xnheuscJ0VrrPCdVa4zgrXWeE6K1xnheuscJ0V
rrPCdVa4zgrXWeE6K1xnheuscJ0VrrPCdR4ArvOA00h/otP3TZ/BviuKOzYq7NBifLMi5c82BTxs
dXKFGa0woxVmtMKMVpjRCjNaYUYrzGiFGa0woxVmtMKMVpjRCjNaYUYrzGiFGa0woxVmtMKMVpjR
CjNaYUYrzGiFGa0woz3CjB6wOon89k017/Tr7fGTzfMXx8+/Oi/pvXj65+2TXx9Fr8ejt81Y7p9N
jeO+OT7bxiZOxxJwztrJo6O+X2nmnbq6Z03xS4fPv4GPTp49/evz7fJRL39YvtHNi6+2m+VXPvru
yddPj8+/483Z09PvXpZnL20fHR31zXxRtTz61VGUEWOc75AsaTtL2Y+4eF/e/tyVvt3xplfHizg6
b82ccnlnLEcxXf21XJ+AcSucxc/eu69vq2vduH/3zfHf/nj85fbXR3/36gP+eFF+/3U5mv7u/CK/
ePz0ya/PL/qH5eMP5y+W/5/m+NXy1fxqiUkfn1/8xfTSo+XPxaflv+f3+fLHr361/Oe1h+cF+2fb
R18//vKrcycfWga/N3n3lbr0HVspbiGN3/PBlzvjg1/MfXgfofunrtMPffgfb87+Gpfsni/U350u
T8yLX0/3n5bf20v1UPfWT65jHm2zlpM4Wa7M6aNNzeOyOWnlZDPVkxhxMpU2lQNZcu3i6n1c25/r
Ifv+2+3LBcN9cVl+fNRdMZ67ReddrvWNovPr7+XiSZr2ukq4PnDvyo6+UCcX6uRCnVyokwt1cqFO
LtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyo
kwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX
6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJ
hTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1
cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRC
nVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5
UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFO
LtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyo
kwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJhTq5UCcX6uRCnVyokwt1cqFOLtTJxWyOUhkV
KqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRG
hcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqV
UaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNC
ZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqo
UBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEy
KlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSo
jAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkV
KqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRG
hcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqVUaEyKlRGhcqoUBkVKqNCZVSojAqV
UaEyKlRGRb1iPOE1uzAOu853r0M5dp9b8k56Snn3ZJbdphr0rpagqyXoagm6WoKulqCrJehqCbpa
gq6WoKsl6GoJulqCrpagqyXoagm6WoKulqCrJehqCbpagq6WoKsl6GoJulqCrpagqyXoagm6WoKu
lqCrJehqCbpagq6WoKsl6GoJulqCrpagqyXoagm6WoKulqCrJehqCbpagq6WoKsl6GoJulqCrpag
qyXoagm6WoKulqCrJehqCbpagq6WoKsl6GoJulqCrpagqyXoagm6WoKulqCrJQi1BKGWINQShFqC
UEsQaglCLUGoJQi1BKGWINQShFqCUEsQaglCLUGoJQi1BKGWINQShFqCUEsQaglCLUGoJQi1BKGW
INQShFqCUEsQaglCLUGoJQi1BKHeLcxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBH
hTkqzFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBH
hTkqzFFhjgpzVJijwhwV5qgwR4U5KsxRYY4Kc1SYo8IcFeaoMEeFOSrMUWGOCnNUmKPCHBXmqDBH
hTkqzFFhjkpzVJqj0hyV5qg0R6U5Ks1RaY5Kc1Sao9IcleaoNEelOSrNUWmOSnNUmqPSHJXmqDRH
pTkqzVFpjkpzVJqj0hyV5qg0R6U5Ks1RaY5Kc1Sao5wO150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O150O
150O150O150O150O150OF06HC6fDhdPhwulw4XS4cDpcOB0unA4XTocLp8OF0+HC6XDhdLhwOlw4
HS6cDhdOhwunw4XT4cLpcOF0uHA6XDgdLpwOF06HC6fDhdPhwulw4XS4cDpcOB0unA4XToeLoyuq
jA/BOHgIAMDuNcFrK5R3qrzec731umLue0MqrLLMVZa5yjJXWeYqy1xlmassc5VlrrLMVZa5yjJX
WeYqy1xlmassc5VlrrLMVZa5yjJXWeYqy1xlmassc5VlrrLMVZb5ALLMwxoD/3PixOtMY/9FlTX3
LCe9JQD+KsDvfsjvtzrq9fjNY5yeHfWjtpnL8fGmxsmjzclY7vXjR9HHyVGMui37I/teibgvR+9W
7t4G3nyn1+i+buNVpbyqlFeV8qpSXlXKq0p5VSmvKuVVpbyqlFeV8qpSXlXKq0p5VSmvKuVVpbyq
lFeV8qpSXlXKq0p5VSmvKuVVpbyqlB9ApXwIRfcdi4t3O6N1l1rh4U9yv1Yl95p068O+Qvcxq/iG
Gv0b//U9Ku7fNLo8/+7bfdADbkUr2FG2Xm1lrbayVltZq62s1VbWaitrtZW12spabWWttrJWW1mr
razVVtZqK2u1lbXaylptZa22slZbWautrNVW1mora7WVtdrKWm1lrbayVltZq62s1VbWaitrtZW1
2spabWWttrJWW1mrrazVVtZqK2u1lbXaylptZa22slZbWautrNVW1mora7WVtdrKWm1lrbayVltZ
q62s1VbWaitrtZW12spabWWttrJWW1mrrazVVtZqK2u1lbXaylptZa2uqpur6uaqurmqbq6qm6vq
5qq6uapurqqbq+rmqrq5qm6uqpur6uaqurmqbq6qm6vq5qq6uapurqqbq+rmqrq5qm6uqpur6uaq
urmqbq6qm6vq5qq6uapurqqbq+qm3KKZo5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZo5o5
qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZ
o5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOaOaqZo5o5qpmjmjmqmaOa
OaqZo5o5qpmjmjmqmaOaOaqbo7o5qpujujmqm6O6Oaqbo7o5qpujujmqm6O6Oaqbo7o5qpujujmq
m6O6Oaqbo7o5qpujujmqm6O6Oaqbo7o5qpujujmqm6O6Oaqbo7o5qpujujnKTuSwEznsRA47kcNO
5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSw
EznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM5
7EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexE
DjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47
kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HD
TuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07k
sBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LAT
OexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEzns
RA47kcNO5LATOexEDjuRw07ksBM57EQOO5HDTuSwEznsRA47kcNO5LATOexEDjuRw07ksBM57EQO
O5HDTuSwEznsRA47kcNO5LATOexEjryC831jWfHVKvS9TOa9tlx9pwrxPdeFr6Zw37C0e9810PuF
hd9P6fknOAtvys97ehp2U2OHKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYog
VBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagi
CFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCq
CEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGE
KoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUE
oYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIV
QagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQ
RRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEoYogVBGEKoJQRRCqCEIVQagiCFUEqYog
VRGkKoJURZCqCFIVQaoiSFUEqYogVRGkKoJURZCqCFIVQaoiSFUEqYogVRGkKoJURZCqCFIVQaoi
SFUEqYogVRGkKoJURZCqCFIVQaoiSFUEqYogj4qeFj0telr0tOhp0dOip1VPq55WPa16WvW06mnV
06qnVU+rnjY9bXra9LTpadPTpqdNT5ueNj1tetr1tOtp19Oup11Pu552Pe162vW062noaehp6Gno
aehp6Gnoaehp6Gnoaepp6mnqaepp6mnqaepp6mnqaerp0NOhp0NPh54OPR16OvR06OnQU3OUo6TS
UVLpKKl0lFQ6SiodJZWOkkpHSaWjpNJRUukoqXSUVDpKKh0llY6SSkdJpaOk0lFS6SipdJRUOkoq
HSWVjpJKR0mlo6TSUVLpKKl0lFQ6SiodJZWOkkpHSaWjpNJRUukoqXSUVDpKKh0llY6SSkdJpaOk
0lFS6SipdJRUOkoqHSWVjpJKR0mlo6TSUVLpKKl0lFQ6SiodJZWOkkpHSaWjpNJRUukoqXSUVDpK
Kh0llY6SSkdJpaOk0lFS6SipdJRUOkoqHSWVjpJKR0mlo6TSUVLpKKl0lFQ6SiodJZWOkkpHSaWj
pNJRUukoqXSUVDpKKh0llY6SSkdJpaOk0lFS6SipdJRUOkoqHSWVjpJKR0mlo6TSUVLpKKl0lFQ6
SiodJZWOkkpHSaWjpNJRUukoqXSUVDpKKh0llY6SSkdJpaOk0lFS6SipdJRUOkoqHSWVjpJKR0ml
o6TSUVLpKKl0lFQ6SiodJZWOkkpHSaWjpNJRUukoqXSUVDpKKudb1ZKvxGPff0X5lg7vqAnfE4f9
kAvbD8ph3/M3dj3c93TSy8nZUW6yzNOmPjo724w4Pdq0o6P5rByP5c0y9jtZ+05dvQ9F+27K/128
vZHyn4EE7y8b4bCv0EMz7leF/qrQXxX6q0J/VeivCv1Vob8q9FeF/qrQXxX6q0J/VeivCv1Vob8q
9FeF/qrQXxX6q0J/VeivCv1Vob8q9FeF/qrQ36NC/xAY9/c7QfydzQ071S7vuWJ5tWp/v1fyLpoB
Vo35qjFfNearxnzVmK8a81VjvmrMV435qjFfNearxnzVmK8a81VjvmrMV435qjFfNearxnzVmK8a
81VjvmrMV435qjF/AI35IVRDf1E1y4fS7f6k0Hg+7X15LW2bvj3ZbmocbTfjdBxv4ujRss45fbS8
o5zspQx696Otr6+y3uXk7+PbeidtoZ4/J/umqv/ccT/4+989fbK9K534Ltf7nSroeZ/AhD3pxOcP
fjFX6L504gfU/LLTF3LPX8PVzS/7YlW8t5fqPqL49UeEXJEDH3YcyO4TS35qOMdBOLbzQuDo0XGb
zqbtZnsU/Zzf0zaj1LGp09k2zqaTs9HGfc/tqdekLF1/9XUljmN5A/DVxE2p2U2p2U2p2U2p2U2p
2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p
2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p
2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p2U2p
2U2p2U2p2U2p4qZUcVOquClV3JQqbkoVN6WKm1LFTaniplRxU6q4KVXclCpuShU3pYqbUsVNqeKm
VHFTqrgpVdyUKm5KFTeliptSxU2p4qZUcVOquClV3JQqbkoVN6WKm1LFTaniplSxcFLMUcUcVcxR
xRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUc
VcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXM
UcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXMUcUcVcxRxRxVzFHFHFXNUdUcVc1R1RxVzVHV
HFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxVzVHVHFXNUdUcVc1R1RxV
zVHVHFXNUdUcVc1R1Rwl1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp
1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xh
ijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRr
mGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDF
GqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVM
sYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGIN
U6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZY
wxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp
1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xhijVMsYYp1jDFGqZYwxRrmGINU6xh
ijVMsYYp1jDFGqZYwxRrmGINU6xhijXM/oBDTurtxoXcuMx4Xz0WP1W03dOF2o12kTIrU2ZlyqxM
mZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIr
U2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbM
ypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUp
szJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2Zl
yqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZ
mTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJl
VqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxM
mZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIr
U2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbMypRZmTIrU2ZlyqxMmZUpszJlVqbM
ykxzlNTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBK
DUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqY
UgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUG
ptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUyp
gSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNT
amBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTA
lBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgSk1
MKUGptTAlBqYUgNTamBKDUypgSk1MKUGptTAlBqYUgNTamBKDUypgUNq4JAaOKQGDqmBQ2rgkBo4
pAYOqYFDauCQGjikBg6pgUNq4JAaOKQGDqmBQ2rgkBo4pAYOqYFDauCQGjikBg6pgUNq4JAaOKQG
DqmBQ2rgkBo4pAYOqYFDauA4uqLYeFMR4tVz7qc7V/jfpWDybZH6LmXMG4nUwWxMhyPjf1023fHb
3IGbcE0ywGFf9IdimrxTkL7TJbvnC3U/2v29ABRuTgY45C/ivvotVrH1KrZexdar2HoVW69i61Vs
vYqtV7H1KrZexdar2HoVW69i61VsvYqtV7H1KrZexdar2HoVW69i61VsvYqtV7H1KrZ+ALH1IUz7
WKXCq1R4lQqvUuFVKrxKhVep8CoVXqXCq1R4lQqvUuFVKrxKhVep8CoVXqXCq1R4lQqvUuFVKrxK
hVep8CoVXqXCq1T4AaTCD1gqux52OI7PYqpT24yzo5NNbeV4c3J6VJf/+ehofhQnJ/N23Pds29vO
Lj3ssbj3Mr1+l6/1vtSN1518u6OM+hYHv5L+fRcuXEO/vcu39XCT3ffyoF5T4X7YV+i+nqS9SLdv
Jtve6Qt5oIHu+9XP/6Iu1X2wGR5wdvtZjzrK2aPN6aM829RtlE2eHB1vTudp1JPej+qj41siWr54
tvznOpCWa911N71C75zK0N7t7vVXG7tc5j3faTe9UFeiF5YFvW8axTeN4ptG8U2j+KZRfNOovmlU
3zSqbxrVd6Kqp1VPq55WPa16WvW06WnT06anTU+bnjY9bXra9LTpadPTrqddT7uedj3tetr1tOtp
19Oup11PQ09DT0NPQ09DT0NPQ09DT0NPQ09TT1NPU09TT1NPU09TT1NPU09TT4eeDj0dejr0dOjp
0NOhp0NPh566xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5
xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzS5xzQVPTVH
TeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprM
UZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMm
c9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeaoyRw1maMmc9RkjprMUZM5ajJHTeao
2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6Nmc9RsjprNUbM5
ajZHzeao2Rw1m6Nmc9RsjprNUbM5ajZHzeao2Rw1m6NE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgN
EXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2
Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE
3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0Q
YTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3
RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TY
DRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0R
dkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZD
hN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4Td
EGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBhN0TYDRF2Q4TdEGE3RNgNEXZDhN0QYTdE2A0RdkOE3RBh
N0TYDRF2Q4TdqFeMntiNijAE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw
3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0Q
fDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3
BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTf
DcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3B
d0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD
8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/Dd
EHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8
NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE
3w3Bd0Pw3RB8NwTfDcF3Q/DdEHw3BN8NwXdD8N0QfDcE3w3Bd0Pw3RB8NwTfDcF3Q/Dd6OYo6XJD
utyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rc
kC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAu
N6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjek
yw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN
6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDely
Q7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO6
3JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQ
Ljekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43
pMsN6XJDutyQLjekyw3pckO63JAuN6TLDelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN6TL
DelyQ7rckC43pMsN6XJDutyQLjekyw3pckO63JAuN/KKKtbOM7Rfy+32Kd2+Z1X/1WK9HUaGX0NM
vYtc7y7Ghb+/cvPDvkL/DeXmO30h9/w1HKjc/JAv1cPKzQm2z7/79kokzA0BN/eTQN4D2M31dOSj
HI/TFo8220dj3tTx6HQzsj3a9ONpe5Tt+PS0Hd/FjJC1G2bthlm7YdZumLUbZu2GWbth1m6YtRtm
7YZZu2HWbpi1G2bthlm7YdZumLUbZu2GWbth1m6YtRtm7YZZu2HWbpi1G2bthrn7bpgHnBHyE60n
b6qhP+fX1W0q+5kHccvj3kUR/mZTJO7qgt1p/fS+mkdWsPYK1l7B2itYewVrr2DtFay9grVXsPYK
1l7B2itYewVrr2DtFay9grVXsPYK1l7B2itYewVrr2DtFay9grVXsPYK1n4AsPYDFmGvoUffpbD3
Tj16eQ8HxJcPfjFX6L+hYn+nL+Sev4arFfswSB4vF+nZi83x2Z+OT7dPXry8Vocy5/snkCk/5e4O
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
tYcn4t7Cv1/uMOb9FRx/fHffe8XxGoffVZZx+nS5l5Zw82H59G8fls+XPz46//PvXso19vsGelvv
3oML+GL7txdLeL/OS+fDXMsfOPoeXNaTp19+9/ywL+hLF+/hUv58sni1RPlBtjj++uunf/3jt8+e
vnh6foQ/nn6/LM/++OKrZ0+/+/KrP776hV89/+7kQfZJbu/xzUE+N/h2P5w/+duhP9c/cPT9CZfL
Rz9+8nL06OFf4J90+R4u9btfuOq7X9nvrzB13w2DOxYZ6v5eTu5uL3gz7TLg5i5v4Hc+bXt4n7l9
wH9vXi3v9VQfPhTuPQjebdllM71zbtJ9vpHf9lv4y+Oz7dPla/jb5vivy+9+s30fsujPOP0eLFne
8vw9u9D3cInvu+RzV1Wp938na4dF0H3LK+u9vknsZ0Fz2zM8oGR9P0H29vnz0eOvl+vyMoX+j8dn
hzDAdjc/97qi2NzXmuIH2J7Dvqt/4Oj7s93xt+fvxx7H4uehbWg+P/5m+8enzx5/+fjJHx89W/7H
oexb/rRjB/fauJ+oN78n0Xn+ZUTnH753vz87BO9BfP5BNjnv1zh79N4kvwt337tL/LfzB2aP+xX7
CSPl3r/bH1yn/X7HBxWuyy8jXL8cZbp8ic//8uX7sDX3lrsPXtx6gKmOr4+7a4H5zm/++p48pPUw
HtJrrajPLgdJv1k8H8hbxE87tus9eKt5bwddHb7eDu9eN1H3mkLvdmPyIbZ791sh+CXv3d9BoLjv
9uS7ceyqDvMnywFefezLNcXzB4Hy/bQb/61j8/76rn/6Yt97//UN3Phlw0duekGuFUNem749fvHV
k+Nvtpvn2xfLX25e+nP+F98cP/vzLr1SP5+rziU38551bntcKF7jEl1HWr/D9bpVwHvfFaZ32t34
3xC8uEuO/WGQ2m0Yyd2tml/f5fe5bN7toIfUTHLNy3QP6+FrxMMDWCTfubfXe6TuZc16+vSbb54+
+ejk6+MnO6XqQ13j3ua5e+savEf3+m1X79xzD7J0v44P1xprdV7XPJ9n9Xc/3El/8G39n3ftvq7f
h+WL+1gvXOPML8ob5yW0vXw99ah+8OrM35fUcKOr9148gefuzv34m28vnV7+9wE/lD/h7Xtzlcun
37+5N17/9P3hX/Cfd/w9uvZvfP/+/br2P+f4+xNdjpaf/o8P2yeffvbxv368/LlYHj19enL87Pyv
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
vGDiBQsv2HjBwQtoKUVLKVpK0VKKllK0lKKlFC2laClFSylaytBShpYytJShpQwtZWgpQ0sZWsrQ
UoaWcrSUo6XIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqM
osgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLI
KIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiKjKLIKIqMosgoioyiyCiK
jKLIKIqMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxi
yCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgo
hoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaM
YsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjGLI
KIaMYsgohoxiyCiGjGLIKIaMYsgohoxiyCiGjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiO
jOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojozi
yCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgo
joziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M
4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojoziyCiOjOLIKI6M4sgojowSyCiBjBLI
KIGMEsgogYwSyCiBjBLIKIGMEsgogYwSyCiBjBLIKIGMEsgogYwSyCiBjBLIKIGMEsgogYwSyCiB
jBLIKIGMEsgogYwSyCgxY1TGWSz67+PX4PMh2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkEkk0g
2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkE
kk0g2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJNINkEkk0g2QSSTSDZBJJN
INkEkk0g2QSSTSDZBJJNINkEkk0g2Uwkm/k/9u6luQkrW6DwX+nRnamih9fe+wx6AAQHU9d2A8YY
Jl2yLR62wXRMOpBf35Lv7U5lpcHyQ4akzqBT1Q4VjkHS2rB1PrlsuGy4bLhsuGy4bLhsuGy4bLhs
uGy4bLhsuGy4bLhsuGy4bLhsuGy4bLhsuGy4bLhsuGy4bLhsuGy4bPhPX7hRuFG4UbhRuFG4UbhR
uFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4
UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhRuFG4UbhR
uFG4UbhRuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUb
FW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5U
uFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHh
RoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUbFW5UuFHhRoUb
FW5UuFHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5U
ulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHp
RqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUb
lW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5U
ulHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHl
RpUbVW5UuVHlRpUbVW5UXbDF+iofHbD83bbr40xLfxTfJa+4zsaj2dps0gbDWc4G817MBvPfr8PB
SyhGHIxHh9dC2R79vHnv5zeP3q4fb6zPf8ze7vzHPfrSNdf7z/ZOtmZvD37ZGT3enT0lnu7c3Zwe
j9jZe3/0J4fZLvjeL+ci3tonR6/kUwlXe2vz9j4m52Y+tmiyQlTyBj8ZcLnftLUr+pH9peqP9lK1
ug8CuRH3/ksQy+ou/N+g5vrrS8O3aj2t6mXzswrfBS+Uq2Dgr/wwuiUSr79u/llHvKvNa9d7bq0Q
iO4P1B74fz90uqvSXZXuqnRXpbsq3VXprkp3Vbqr0l2V7qp0V6W7Kt1V6a5Kd1W6q9Jdle6qdFel
uyrdVemuSndVuqvSXZWv4Kp8bgE2e3dwevjm3avvTmavpgefBm/3B0fT99N3s7PZd2ev37z88Pej
N2ffnc3/MTj/obPB+RLs/KPkzwavp+9e/XRyA9uy7rd0v6X7Ld1v6X5L91u639L9lu63dL+l+y3d
b+l+S/dbut/S/Zbut3S/pfst3W/pfkv3W7rf0v2W7rd0v2WFfsvX3ZZd7kriP36a/fhpcW1t9j/L
305c7cXN1Z79xu/y/W37yfzQujL965HP75G/+zA/78p+1ZY+wS2yAVekhhb30ldngFzzUEvcCb5l
duWqOMNVri1Xm3ea2B9M9kfTwfxpFoOarY0GL6c5rUNeDg8nfPba8tvF9dvpvW/32vLhs7XFteWR
ri2Pt4/uL3lteev14b3FteVHv722/P1GbB49is2dpa4tHz1/tnX64tmjxZnmZ9v6eX/MLy922+La
9/Bwb3H2s+Hm93fONo4fvn5x7+6TF3vro/mPG26cDPX9PvzniwfHi//m9uP1k8WvybvNYXu6u3ey
PTu5//POD++3Zk9H8fyX4ZuXu8M/CLe0tG122ev+1+BYLqmu3ejJrmoM9efyn/m5fOMjTn+I9YfY
1XJxqdf+/mrWH2q39Wr27c/ot8RmxfxPzMPD/clgOm41WOAHg/2K0YDWcjo9mO6P1rieRrQ1f/Ls
vG3Djfsv/nn4jOMvPCC2Zsfrk52Tx0eHw3b/yd77rd31XRYPiM3j0T+eT0794Js/INePX+w9/GXj
6P3+s08P12cP7r5fPCkX4s/T8frwf+/d+bh17+7dgwcbrzaP7nzcvndn/uA//Xnz+9PR5r27D3Z2
F0/kj/Mn3cfX8yf1h51n7Xj67MX7/3+gP50+eLp48n367ZNv49P20eZk/r//PPn29oZns08P579H
d0+eTx6fvFhvw9ne3ZONo9M3+/PvfW+89fr5/In+wi80l/jeV/a6e0Mz96X/PH3xs/QCiPP87yK+
1JO1v/SnxJ/9KXHL+uaqkO2lnhQ3A+B+/rm07N9wXXwRo7ycLS9ny8vZ8nK2vJwtL2fLy9nycra8
nC0vZ8vL2fJytrycLS9ny8vZ8nK2vJwtL2fLy9nycra8nC0vZ8vL2fJytrycLS9ny8vZ8nK2vJwt
L2fLy9nycra8nC0vZ8vL2fJytrycLS9ny8vZ8nK2vJwtL2fLy9nycra8nC0vZ8vL2fJytrycLS9n
y8vZ8nK2vJwtL2fLy9nycra8nC0vZ8vL2fJytrycLS9ny8vZ8nK2vJwtL2fLy9nycrZ5Odu8nG1e
zjYvZ5uXs83L2eblbPNytnk527ycbV7ONi9nm5ezzcvZ5uVs83K2eTnbvJxtXs42L2ebl7PNy9nm
5WzzcrZ5Odu8nG1ezjYvZ5uXs83L2eblbPMbiJob1dyo5kY1N6q5Uc2Nam5Uc6OaG9XcqOZGNTeq
uVHNjWpuVHOjmhvV3KjmRjU3qrlRzY1qblRzo5ob1dyo5kY1N6q5Uc2Nam5Uc6OaG9XcqOZGNTeq
uVHNjWpuVHOjmhvV3KjmRjU3qrlRzY1qblRzo5ob1dyo5kY1N6q5Uc2Nam5Uc6OaG9XcqOZGNTeq
uVHNjWpuVHOjmhvV3KjmRjU1iqEaNf/CyF8Y+wsTf2HNX8BfCH8h/YXyF3zSkU868klHPunIJx35
pCOfdOSTjnzSkU868knHPunYJx37pGOfdOyTjn3SsU869knHPunYJ534pBOfdOKTTnzSiU868Ukn
PunEJ534pBOfdM0nXfNJ13zSNZ90zSdd80nXfNI1n3TNJ13zSfFJ8UnxSfFJ8UnxSfFJ8UnxSfFJ
wycNnzR80vBJwycNnzR80vBJwycNnzR90vRJ0ydNnzR90vRJ0ydNnzR90vRJyyctn7R80vJJyyct
n7R80vJJyyctn7T5pM0nbT5p80mbT9p80uaTNp+0+aRulPlnzD9j/hnzz5h/xvwz5p8x/4z5Z8w/
Y/4Z88+Yf8b8M+afMf+M+WfMP2P+GfPPmH/G/DPmnzH/jPlnzD9j/hnzz5h/xvwz5p8x/4z5Z8w/
Y/4Z88+Yf8b8M+afMf+M+WfMP2P+GfPPmH/G/DPmnzH/jPlnzD9j/hnzz5h/xvwz5p8x/4z5Z8w/
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
z7bh2TY824Zn2/BsG55tw7NteLYNz7bh2TY824Zn2/BsG55tw7NteLYNz7bh2TY824Zn2/BsG55t
w7NteLYNz7bh2TY826Zn2/Rsm55t07NterZNz7bp2TY926Zn2/Rsm55t07NterZNz7bp2TY926Zn
2/Rsm55t07NterZNz7bp2TY926Zn2/Rsm55t07NterZNz7bp2Tb99y/pRqUblW5UulHpRqUblW5U
ulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHp
RqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUblW5UulHpRqUb
lW5UulHpRqUblW5UulHpRqUblW5UulHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5U
uVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVHlRpUbVW5UuVE2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJiU2KbFJiU1KbFJikxKblNikxCYl
NimxSYlNSmxSYpMSm5TYpMQmJTYpsUmJTUpsUmKTEpuU2KTEJmXYpAyblGGTMmxShk3KsEkZNinD
JmXYpAyblGGTMmxShk3KsEkZNinDJmXYpAyblGGTMmxShk3KsEkZNinDJmXYpAyblGGTMmxShk3K
sEkZNiljePMf9nF7F9XXhmt/6VvpvpX+dSt941f1b/z29YX77699B/ta+/KV3Tz/EmnwB/sNvPK3
csVXyWsKGcu8WH6rls+l3rDxt+0nvwe0fj3H+ZPo3Yf5r9HNf7cXcgdhKjpMRYep6DAVHaaiw1R0
mIoOU9FhKjpMRYep6DAVHaaiw1R0mIqOf7F3b8tRXdcagF8lL6CKtOac/5AucmFzCi5LBAECdOPS
oQGBAAeccHj6LZmdpPxt27SQhFzZ68JlUzbq0e3V/TdjzPEtqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFR2p6EhFRyo6UtGRio5UdKSiIxUdqehIRUcqOlLRkYqOVHSkoiMVHano
SEVHKjpS0ZGKjlR0pKIjFZ3JjJKNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYusnGRjYtsXGTjIhsX2bjIxkU2LrJx
kY2LbFxk4yIbF9m4yMZFNi6ycZGNi2xcZOMiGxfZuMjGRTYu/TPHRC5o7vtFdMEZxr9nmgdewN0F
lpmdXviRhdO6l55lfq0t/Ksew1/8lfUlB48O2pOD/fX9sZKD3lf64eG0sn9w8sv9vtf3p0U/bAfn
ux/S+81r7462p41/7N777pCDQ0f70/Y4PZxzf2f728WNjQe7H3fubN988OH0QM3Wg/d/3350/Lft
WwcbHtrZu7XzbPfWzoefH2Pt7dH2o2fv9h6d1PDhpJbjrWeH19493bx/9+ndR99+uH399rvN+0+f
bl6/kc3r32Tr/jdPt1fXHpwegHr44bvNx4+2Vr9/sPbP3VvHL/cefjogtHPr2drpoaXNo18cWvqw
+fz1x62Prz/++9DSztrG9399e7R78vi7D7dWdx9uPzn86/G73dMDQi/HPw9vbjx//HDr9f8eZPqy
5/5q7fByP01mEmImIWYSYiYhZhJiJiFmEmImIWYSYiYhZhJiJiFmEmImIWYSYiYhZhJiJiFmEmIm
IWYSYiYhZhJiJiFmEmImIa6AhLjaWxv8PCm7/WmP/fq3fz463P+0PH06xF388HTx03T6My5+EXe5
sffrN4eLN79fQF9b/dM8If5vnRD/oZiJz75Nlr23xwXIEz8t3uydPPbPT3iJ0s/4dlviiZznhbzg
579EtZ89FDADADMAMAMAMwAwAwAzADADADMAMAMAMwAwAwAzADADADMAMAMAMwAwAwAzADADADMA
MAMAMwAwAwAzADADADMAcIkAwB/gUMA8T583rpfbuP6Vme6yCsCbxals8Jkp9nlGzfNVPJ8KWU7y
uJireNkjIGe/u8TXvsHD1dwEY5k34NKn2d7+48cz3sfiAryU35FSPnuA6LKEnau+udS5b2jzWYTm
fC/tr52R+k8d718enz7om0//4hdnpS74yvoqSfdF77nL+8g965vojEfZlivi1z4zLudSO+d1fpHP
/qt8wn+6xKbDw4291vZWai9PVvrqflY2slisbKwdjlr0g7W1jb1z3QjuKr5Xre0fnX6vesD3qsfZ
vL/c96oH083Vn28id+2XN5E7+V71Yev66/fLfa/aevZ4ena8+zVen9/9E8RvHTZd8oP0aq/4M9/x
6vz3nPq3Q3XyZ36bEbahu23obhu624butqG7behuG7rbhu62obtt6G4butuG7rahu23obhu624bu
tqG7behuG7rbhu62obtt6G4butuG7rahu23obhu624butqG7behuG7rbhu62obtt6G4butuG7rah
u23obhu624butqG7behuG7rbhu62obtt6G4butuG7rahu23obhu624butqG7behuG7rbhu62obtt
6G4butuG7rahu23obhu624butqG7behuG3rYhh62oYdt6GEbetiGHrahh23oYRt62IYetqGHbehh
G3rYhh62oYdt6GEbetiGHrahh23oYRt62IYetqGHbehhG3rYhh62oYdt6GEbetiGHrahh23o4ah0
mFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNq
mFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNq
mFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKNiRsWMihkVMypm
VMyomFExo2JGxYyKGRUzKmZUzKiYUTGjYkbFjIoZFTMqZlTMqJhRMaNiRsWMihkVMypmVMyomFEx
o/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fONnm/0fKPnGz3f6PlGzzd6vtHzjZ5v9Hyj5xs93+j5Rs83er7R842e
b/R8o+cbPd/o+UbPN3q+0fPN+mfuOfWHP3jypQbUPJX+b5lKX/jxlC88G3FBt2c7N4l0mUdQvmap
V3Lo8XNP8F+/+nHxauXV69O/Ld5c/BHmiz5u8B/hSq49cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1R649cu2Ra49ce+TaI9ceufbItUeuPXLtkWuP
XHvk2iPXHrn2yLVHrj1y7ZFrj1x75Noj1x659si1l1x7ybWXXHvJtZdce8m1l1x7ybWXXHvJtZdc
e8m1l1x7ybWXXHvJtZdce8m1l1x7ybWXXHvJtZdce8m1l1x7ybWXXHvJtZdce8m1l1x7rTYrbVba
rLRZabPSZqXNSpuVNivtVtqttFtpt9Jupd1Ku5V2K+1W2q10WOmw0mGlw0qHlQ4rHVY6rHRY6bDS
WGmsNFYaK42VxkpjpbHSWGmstKy0rLSstKy0rLSstKy0rLSstKx03UrXrXTdStetdN1K16103UrX
rXTdStetdMNKN6x0w0o3rHTDSjesdMNKN6x0w0rNKKXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l
4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBS
Ci6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgou
peBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXg
UgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIK
LqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l4FIKLqXgUgoupeBSCi6l
4FIKLqXgUgoupeBSCi6l4JrOdNzgckWOc3svX2/QetHFnRONWObsxG8/+N/u3Pu9RfGfJ8Wvfjp5
4Au4m9BvjmvPfJejcxx9OdNvPX1qS79CX9XJuNzr5fKQkXkHf97Bn3fw5x38eQd/3sGfd/DnHfx5
B3/ewZ938Ocd/HkHf97Bn3fw5x38eQd/3sGfd/DnHfx5B3/ewZ938Ocd/HkHf97Bv4Id/Ku97dNn
p2XzCum8QjqvkM4rpPMK6bxCOq+Qziuk8wrpvEI6r5DOK6TzCum8QjqvkM4rpPMK6bxCOq+Qziuk
8wrpvEI6r5DOK6TzCum8QnqJK6RXOy37EnB6sdoO2t5iWtnb359W+vre3sr6YfWVtdXFyZ+d19ti
cVC/CU5/PLx18+3uvd8Flcede++OdqZnJ79nZ9p9dPvo0b1f4tGPX268WJwCzS/WsnN/+872rber
9x/++Hxzde3B3UfHm3vHOzn59bebws3Ts+PHD7ePD15tHt05/mn/9oudfnDr+MPuo82j7699d//x
o7tvb1+/sXr7xs13B0fffNi8fqPfvv7N+zvPv3l35/mDd7dvHG7tXPvu8Pubb4/u37r58fDa2tb+
tP3j7svjT0j08fbrw3uncPXtX8LVz29n8+PByV//gqvXDp/ce1+3X54+/s7zk+f54lHbHgefXqN/
7LftJ4+nm8/3bn3CrL/suX+38ejuX/5yKbudfWPjT/Ol899+6fxRPPKvfcPrL0Wr5zfD/8vP0UuW
6H9z8/+ydv4vjf//smdy9rX9+e01Z82nT+Tbrw4X7xeH17/989Hh/qer8NQfWfzwdPFTO/0ZVxgC
/weXWOaCvdw3/GdfriWwkV/RTM6GvqwcPXmz93Jx8feiuAD/Y5n/RZfnf1zUq3qFVM/5b7vy6b//
4Xjx6ulPzy7+Ivm5yl9XZ16tvD15BVdevzl6evTqwj88lpaAvuQlWvZ9e8aIrY3F3qLV3sp+X1+s
9P0aK/sH2Tv5p/VpvfZb25jWz3XrqSuL2MOH/TRi14jY6c7zG0tG7Nazw2unEXuXW1idROzzu6e3
sVomYp8/frj1evfh3SNuK3X69WT18NFp7W9X79x/cfJ4h69PXrfjw5c7H05vi/XL5/rdP3f/+uL0
520tjh+s3n+x/WbrxtrfH3/c2tq5cXPcv/XjzuLF2t/v3v/m6MnO6jLfdJd8g1yuTbXcKe+anPxM
Tn4mJz+Tk5/Jyc/k5Gdy8jM5+Zmc/ExOfiYnP5OTn8nJz+TkZ3LyMzn5mZz8TE5+Jic/k5OfycnP
5ORncvIzOfmZnPxMTn4mJz+Tk5/Jyc/k5Gdy8jM5+Zmc/ExOfiYnP5OTn8nJz+TkZ3LyMzn5mZz8
TE5+Jic/k5OfycnP5ORncvIzOfmZnPxMTn4mJz+Tk5/Jyc/k5Gdy8jM5+Zmc/ExOfiYnP5OTn8nJ
z+TkZ3LyMzn5mZz8TE5+Jic/k5Of5uSnOflpTn6ak5/m5Kc5+WlOfpqTn+bkpzn5aU5+mpOf5uSn
OflpTn6ak5/m5Kc5+WlOfpqTn+bkpzn5aU5+mpOf5uSnOflpTn6ak5/m5Kc5+WlOfpqnE5oZ1cyo
ZkY1M6qZUc2MamZUM6OaGdXMqGZGNTOqmVHNjGpmVDOjmhnVzKhmRjUzqplRzYxqZlQzo5oZ1cyo
ZkY1M6qZUc2MamZUM6OaGdXMqGZGNTOqmVHNjGpmVDOjmhnVzKhmRjUzqplRzYxqZlQzo5oZ1cyo
ZkY1M6qZUc2MamZUM6OaGdXMqGZGNTOqmVHNjGpmVDOjmhnVzKhmRjUzqptR3YzqZlQ3o7oZ1c2o
bkZ1M6qbUd2M6mZUN6O6GdXNqG5GdTOqm1HdjOpmVDejuhnVzahuRnUzqptR3YzqZlQ3o7oZ1c2o
bkZ1M0pbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2
tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRl
S1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtb
trRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0
ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVL
W7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2tGVLW7a0ZUtbtrRlS1u2
tGVLW7a0Zf+Hvbtpruo6swD8VzLq6okSnfuhtfagB4YYG1fAMQaMPemShMDGfDWYBvzr+8pO2cnT
CeJLjhPvgavimwItSUd7ye+573OiLRtt2WjLRls22rLRlo22bLRloy0bbdloy0ZbNtqy0ZaNtmy0
ZaMtG23ZaMtGWzbastGWjbZstGWjLRtt2WjLRls22rLRlo22bLRloy0bbdloy0ZbNtqy0ZaNtmy0
ZaMtG23ZaMtGWzbastGWjbZstGWjLRtt2WjLRls22rLRlo22bLRloy0bbdloy0ZbNtqyOTjjQUFv
+1baee/13/He63t/88jbvgXizGfNRCM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeRoJEcjORrJ0UiORnI0kqORHI3k
aCRHIzkaydFIjkZyNJKjkRyN5GgkRyM5GsnRSI5GcjSSo5EcjeTUjlIhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFEhjgpxVIijQhwV4qgQR4U4
KsRRIY4KcVSIo0IcFeKoEEeFOCrEUSGOCnFUiKNCHBXiqBBHhTgqxFUhrgpxVYirQlwV4qoQV4W4
KsRVIa4KcVWIq0JcFeKqEFeFuCrEVSGuCnFViKtCXBXiqhBXhbgqxFUhrgpxVYirQlwV4qoQV4W4
+2fcV33bG19vztO8y7LvmxIbZ27ov6W/cz6QDqjA02ePz/wo81b4vBV+1hry216J569SvCMF9G4/
3e+wSv3LHZZ/xxr5+Vj4Jb4u7/jJnc9B+S9BfPz1338ezNu5uVNvI2a88hOc79maRfUrfM/W2x5Y
5wzYvfcfv3d8T9uuNPZO0++d/qT9/umzo/M5lV7TSHk9+untvjPvI8IvhGGe3rK5M9q9w9Gxt1lv
D/Z6ymsdb9erzfb25s6do8N30fpuPL9y8fk3n3+x3f/q1ifPvvzi+d0bq5svf/jx//Dmy+MH41XH
wOkx+f31W4+vnny4fHjj1td/vnnpw/3dMfDw6ofb/7m5OwY4bnZH0KVvdx/n+8v3Hh998fKTSycf
X3h8egyfKnk3Vpf2/3TxgxdXL164cPzx5btX7n3w4tOLH+yOu0fPr/zx0XLl4oWPr9/8bHd0v9gd
sy++Pl5/9t31L8a3h1989fgvR9uNw49vnB63L//2uL388tN7V9a7f346bm/d2n968vKT3ffswv0v
19fuf3Vp7J/cunD/8r1H3xw9GPu3Vle//nJ3tH/1/4771//c3+R39bdj6abxM42fafxM42caP9P4
mcbPNH6m8TONn2n8TONnGj/T+JnGzzR+pvEzjZ9p/EzjZxo/0/iZxs80fqbxM42ff4Lx8yt4kuuv
+7lLr7j/fp53sLdv+QC5eUv6X/mW9G/zMVyv/R69M2+uT+hpQk8TeprQ04SeJvQ0oacJPU3oaUJP
E3qa0NOEnib0NKGnCT1N6GlCTxN6mtDThJ4m9DShpwk9TehpQk/nCD39Cm6uz9vHc6P53Taaf7iM
zue9FfPinO9tePv3Nvx63zz0Zhf3/zw7efLy9JM++Y/Xv87PFy/493q3yPl+J87vPTvn+f6ytzp/
l83R8f7Rdi/rO+u9zejRXrcHY+/2+vDO7jfk/YPV4eZdJKhf0fm7vvnsh/P38789f6/ee/TiNc/f
61/e+uz0/N1Hl9qdv5f3T4Wp1zl/v1xdunf40c1vTzP9tYh1vL729e2Pb/6Q/er1D57vPt4nRw+v
3T9+sP366OKF67vP61TSunvt1icvj9avErW2Hx5+f/XqybfL5vqNa9dOPhw3bly/duXwwfH+9QeP
b165+Mm49dl/neMvFnce3b998uT337347r2ewJv9ze/4+3+V79acP1G/0Z+o8/lt6FXm5Ob07/iX
9knP/Ox+959XHz08+UUfLfoT57T7T35nEWtnEWtnEWtnEWtnEWtnEWtnEWtnERtnERunJhuTbky6
MenGpBuTbky6MenGpFuTbk26NenWpFuTbk26NenWpFuTbk16YNIDkx6Y9MCkByY9MOmBSQ9MemDS
A5PGpDFpTBqTxqQxaUwak8akMWlNWpPWpDVpTVqT1qQ1aU1akw6TDpMOkw6TDpMOkw6TDpMOkzqF
XpxCL06hF6fQi1PoxSn04hR6cQq9OIVenEIvTqEXp9CLU+jFKfTiFHpxCr04hV6cQi9OoRen0ItT
6MUp9OIUenEKvTiFXpxCL06hF6fQi1PoxSn04hR6cQq9rE1qRy121GJHLXbUYkctdtRiRy121GJH
LXbUYkctdtRiRy121GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRiRy12
1GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRi
Ry121GJHLXbUYkctdtRiRy121GJHLXbUYkctdtRiRy121MqOWtlRKztqZUet7KiVHbWyo1Z21MqO
WtlRKztqZUet7KiVHbWyo1Z21MqOWtlRKztqZUet7KiVHbWyo1Z21MqOWtlRKztqZUet7KiVHbWy
o1Z2lCxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3sriVxa0sbmVxK4tbWdzK4lYWt7K4lcWtLG5lcSuLW1ncyuJWFrey
uJXFrSxuZXEri1tZ3MriVha3srjdvP9Hi/4bPuDtTDimasJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCVdNuGrCVROu
mnDVhKsmXDXhqglXTbhqwlUTrppw1YSrJlw14aoJV024asJVE66acNWEqyZcNeGqCffAjhLgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzApwV4KwAZwU4K8BZAc4KcFaAswKcFeCsAGcFOCvAWQHOCnBWgLMCnBXgrABn
BTgrwFkBzgpwVoCzPeM23twynVum739v+7VuB7/Dqvfcj55X7q9hP/rnq+30xa8Pnzw8efr09/ee
vt/zdjnYnBwf3jnaOx6b473Nccfe4XHG3tHJUU62mxzvb97VKdp9dz57cOnb3Xd09+durr+89e0r
vuLLjRu3bv/55kdP969/e+3qlQ+Xg89vfX318Pq19e4rfvXKS12fr+9/+cXuO/vwyjef3v9ud7Xd
3Bx/dH93JV951VX24tN7Hzz/9N6Nn66yP116+s31jy59f/vicvVode3xVw/u/2gI3b/26Pbnz+9e
uX757me3Lry8/MfLz69cv7u74i8fXPn+ePfPB3ev7S83Lt9fbt/5/EUuPzj9+Dfv7T7Pb2+tr22P
f/w6PTtaX7vzj67W1//czzonz3zk0FwAnwvgcwF8LoDPBfC5AD4XwOcC+FwAnwvgcwF8LoDPBfC5
AD4XwOcC+FwAnwvgcwF8LoDPBfC5AD4XwOcC+FwAnwvg57gA/s995NCZd8vmnvXcs5571nPPeu5Z
zz3ruWc996znnvXcs5571nPPeu5Zzz3ruWc996znnvXcs5571nPPeu5Zzz3ruWc996znnvXcsz7H
Pet/7t2yt30W6d/dYnxy8vjRk+9eucv4rs9q/vn5q0+fPX7Dj/b6n93rPI/56bOj9/4025/uXf6j
JdF/dLGc+Vja930RbPdXv5t7qb+FvdT3vgX96ov8pzPkfC71v/Mg558PknP+kG9wqrzGU6TnT99v
eyv8XZv0zR2CX/rx7Lu/6/i1H8w+fxJmD71ZD72fy/n0Mn7+zcPbj57v/dgMf/jLvz1+8ujxyZPv
vjl5esYl/Ev+nvgGFXR2+Zz1hTh8vPtvk90f2jt+crL7mX54d+/w9MMd/u83d3/81x/+7On/OH60
+/l/8d3TvaOXu///wckfju8/enry30cnuz998uzh6TNWXvccePfD5jW6920vnbMBjzqmrGPKOqas
Y8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPK
OqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqm
rGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPKOqasY8o6pqxjyjqmrGPK4ZhyOKYcjimH
Y8rhmHI4phyOKYdjyuGYcjimHI4ph2PK4ZhyOKYcjimHY8rhmHI4phyOKYdjyuGYcjimHI4ph2PK
4ZhyOKYcjimHY8rhmHI4phyOKYe30oYdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw07athRw44adtSwo4YdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw07athRw44adtSwo4YdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw06aldR+76w+MLKF9a+sPGFrS8c+EJ8ob5g0sWki0kXky4mXUy6mHQx6WLSxaSL
SVcmXZl0ZdKVSVcmXZl0ZdKVSVcmXZl0bdK1SdcmXZt0bdK1SdcmXZt0bdK1STcm3Zh0Y9KNSTcm
3Zh0Y9KNSTcm3Zh0a9KtSbcm3Zp0a9KtSbcm3Zp0a9KtSQ9MemDSA5MemPTApAcmPTDpgUkPTHpg
0pg0Jo1JY9KYNCaNSWPSmDQmrUlr0pq0Jq1Ja9KatCatSWvSYdJh0mHSYdJh0mHSYdJh0mFSO0oI
cQghDiHEIYQ4hBCHEOIQQhxCiEMIcQghDiHEIYQ4hBCHEOIQQhxCiEMIcQghDiHEIYQ4hBCHEOIQ
QhxCiEMIcQghDiHEIYQ4hBCHEOIQQhxCiEMIcQghDiHEIYQ4hBCHEOIQQhxCiEMIcQghDiHE8X/s
3V1zluW5x+Gv0q3O2klXrvf7v9ENpSo6ko6UN7MHJBQQZSptFT/9SuxM1/QYlRAI2PbeccY4kIsM
ye88ve7neIQQI4QYIcQIIUYIMUKIEUKMEGKEECOEGCHECCFGCDFCiBFCjBBihBAjhBghxAghRggx
QogRQowQYoQQI4QYIcQIIUYIMUKIEUKMEGKEECOEGCHECCFGCDFCiBFCjBBihBAjhBghxAghRggx
QogRQowQYoQQI4QYIcQIIUYIMUKIEUKMEGKEECOEGCHECCFGCDFCiBFCjBBihBAjhBghxAghRggx
QogRQowQYoQQI4QYIcQIIUYIMUKIEUKMEGKEECOEGCHECCFGCDFCiBFCjBBi6ive+uVnrtkuegl6
0cdaLvt04es9CfCXv51++/L8tvj0txd/KOBiN3x/Pv3rwfmt68H5IwQ/3qhexYMVrxROomMZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmV0LKNjGR3L6FhGxzI6ltGxjI5ldCyjYxkdy+hYRscyOpbRsYyOZXQso2MZHcvo
WEbHMjqW0bGMjmW6jVKKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRikySpFRioxSZJQioxQZpcgoRUYpMkqRUYqMUmSU
IqMUGaXIKEVGKTJKkVGKjFJklCKjFBmlyChFRiky8xXXiW/y0sd3/+rDi95e/hIXMF7HDHmtF3Vf
4mv5bn7JG3oPb+slq6//SvFL3Q9fHZfxC1fL7+xr98q/2m90w3+Vl+SvdyN/GVKgz9N6st1/dDDu
P6wH/axrB9ujMg96PWyn7VFdj+bDnyUFvj5/afz9a79eUuDkbj8nBQqkQP3j048uSAocPT65dk4K
fPGvpMAfPp03nn4xb9y6ECnw9Mu7R8+P735xfqazsx1996COH47v5JxkODy5d372F+Xs93zx6Vef
PT6+9uH1s6/fs5P68fj02SF/3s/+fnz9q/Pf8+jOxx+3W+Xmt0cfjY9u3frw6PSrZ/3W3a8OTw7H
X27duvHk0Z3D378TD+sSP4KvuhGXpgbe/IX4v/ofi5f8SfaGQbziL+wb/XW+LAu2/+z8T/7Z+auh
W97J1PHKNyDbtY9d+9i1j1372LWPXfvYtY9d+9i1j1372LWPXfvYtY9d+9i1j1372LWPXfvYtY9d
+9i1j1372LWPXfvYtY9d+7hC7ePf7g3I3tIjCRdFS67utvytPghwxX+cVz8u9fava/eHCPaHCC7w
ANav6UfI23/q+D/l7Ruv+IfdO/7CX+LNKK/kzR3HxZ/d3bWoXYvatahdi9q1qF2L2rWoXYvatahd
i9q1qF2L2rWoXYvatahdi9q1qF2L2rWoXYvatahdi9q1qF2L2rWoXYt6D1rUv93jKJf4JTuTsD/h
8A6YhDe8cn9L984/dUt+NZ/yYurC2c8ZfwA6+k5H3+noOx19p6PvdPSdjr7T0Xc6+k5H3+noOx19
p6PvdPSdjr7T0Xc6+k5H3+noOx19p6PvdPSdjr7T0Xc6+k5H3+noOx19p6PvdPSdjr7T0Xc6+k5H
3+noOx19p6PvdPSdjr7T0Xc6+k5H3+noOx19p6PvdPSdjr7T0Xc6+k5H3+noOx19p6PvdPSdjr7T
0Xc6+k5H3+noOx19p6PvdPSdjr7T0Xc6+k5H3+nouxx9l6PvcvRdjr7L0Xc5+i5H3+Xouxx9l6Pv
cvRdjr7L0Xc5+i5H3+Xouxx9l6PvcvRdjr7L0Xc5+i5H3+Xouxx9l6PvcvRdjr7L0Xc5+i5H3+X/
nlk2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2
atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmo
ZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjVo2atmoZaOWjdps1GajNhu12ajNRm02arNR
m43abNRmozYbtdmozUZtNmqzUZuN2mzUZqM2G7XZqM1GbTZqs1Gbjdps1GajNhu12ajNRm02arNR
m41Sr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6nVRr4t6XdTrol4X9bqo10W9Lup1Ua+Lel3U66JeF/W6qNdFvS7qdVGvi3pd1OuiXhf1uqjXRb0u
6HXjEL3u/APFD1Q/0PxA9wPDD0w/sPzA5gc8afGkxZMWT1o8afGkxZMWT1o8afGkxZNWT1o9afWk
1ZNWT1o9afWk1ZNWT1o9afOkb/9NkS5zl/ywnz5aa8yD+2fL0EG/v20HD86+pw7afHh6UnqrD7bt
Z++Sz+9CXxz/6RV3yS+/e3K73nl58vWzp8d/+vDOg68/rl/effbiy7ufnf3az064X33yoN4cnz59
/uRWuXl8ervcPm4nR6fPno2zf79zcnvcvnXv5OjmR7fz6ZN/vY++/8mdx8ef3Hn54+ctL57cvPf4
u/v3zs718pfuhD+aN/7wwTz6553w4Yu7Lz+78eW9o8PPb5e/H3/y7Ov7d+98df657nzyuHx+7YPv
bzz58MOH1z/9842nH3z/x2sfvLzx9PkPRz88/+HGtQ+v37rzxZN7d0o+v/7iyfHZ5z++e3R4fPfm
o5Prz747Pr8r/3r8/eTj/Nzd8sX/7N+Ukyt5efY4bL/Z/xr9N/01euuPG/zE27Jd9N1JXpze//bh
4x8/xXt6L4b9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9
qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYD9qYC3/1TA+33x+z9vy974Eu83/3P0/JvTV98W7pfN
//XPLFzIJj///vAbt/mN2/zGbX7jNr9xm9+4zW/c5jdu9xu3+yOme9LuSbsn7Z60e9LuSbsn7Z50
eNLhSYcnHZ50eNLhSYcnHZ50eNLhSacnnZ50etLpSacnnZ50etLpSacnnZ50edLlSZcnXZ50edLl
SZcnXZ50edLlSTdPunnSzZNunnTzpJsn3Tzp5kk3T7p50njSeNJ40njSeNJ40njSeNJ4Uke24shW
HNmKI1txZCuObMWRrTiyFUe24shWHNmKI1txZCuObMWRrTiyFUe24shWHNmKI1txZCuObMWRrTiy
FUe24shWHNmKI1txZCuObMWRrTiy8RaP5x/wpDaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq
2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khi
o4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qNKjaq2Khio4qN
Kjaq2Khio6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq
2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhq
o6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qN
qjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq2qhqo6qNqjaq
2qhqo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahm
o5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qN
ajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq
2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahmo5qNajaq2ahm
o7qN6jaq26huo7qN6jaq26huo7qN6jaq26huo7qN6jaq26huo7qN6jaq26huo7qN6jaq26huo7qN
6jaq26huo7qN6jaq26j+Wi/afq1X3r7Jyxp/7r743o3Pr5/9h5unf/nb2S/43xen5++F/Pybgxf3
vz49eP7tkz8/+eZ3L/724OKI835Ru78q+A0R8v2Od7/j3e949zve/Y53v+Pd73j3O979jne/493v
ePc73v2Od7/j3e949zve/Y53v+Pd73j3O979jne/493vePc73v2Od7/jfQ93vO/3Jbj/uGx9/uzk
9Nvf/fX7v77VW+Ozv6q/4fe/6vvj17s7Pvtk3748v1c8/e3Fr5Gv5E7+9e+9L3X2qyGYf/Ldnn/3
9MVlftk/3yT6fb9l+mWeQjibIR7Vhz0HNSePDnrGg4MHs5/943DN8uD+drY9bG/4dum/jqcQyoMn
508h3OYphC/P3/L8Qk8h3K4fH54/hXB07V+eQvjuxtPnL4/+8Pz7iz2FcPT4y/r4H2/F/j6+Zpd/
mfnh7/+/AcbJtaS7lnTXku5a0l1LumtJdy3priXdtaS7lnTXku5a0l1LumtJdy3priXdtaS7lnTX
ku5a0l1LumtJdy3priXdtaS7lnTXku5a0l1LumtJdy3priXdtaS7lnTXku5a0l1LumtJdy3priXd
taS7lnTXku5a0l1LumtJdy3priXdtaS7lnTXku5a0l1LumtJdy3priXdtaS7lnTXku5a0l1LumtJ
dy3priXdtaS7lnTXkuFaMlxLhmvJcC0ZriXDtWS4lgzXkuFaMlxLhmvJcC0ZriXDtWS4lgzXkuFa
MlxLhmvJcC0ZriXDtWS4lgzXkuFaMlxLhmvJcC0ZriXDtWS4lgz/19mwUcNGDRs1bNSwUcNGDRs1
bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSw
UcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNGDRs1bNSwUcNG
DRs1bNSwUcNGDRs1bNSwUcNGDRs1bNS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1
bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0
UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNG
TRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1bdS0UdNGTRs1
bdS0UdNGTRs1bdS0UdNGTRs1bdSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSy
UctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctG
LRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1
bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSyUctGLRu1bNSy
UctGLRu1bNSyUctGLRu1bNRmozYbtdmozUZtNmqzUZuN2mzU9n/s3VtT09m2hvGv0jd27ZuUecb8
J5nzwgtPKNYGlwiI3FAhCQiEwwIU8NPvBLvs8llLzqBrr3nRVNtdwOAQXl5nxm86o7IzKjujsjMq
O6OyMyo7o7IzKjujsjMqO6OyMyo7o7IzKjujsjMqO6OyMyo7o7IzKjujsjMqO6Py/a2Zfz/Svvic
92dH0rcmwa+2JPyzs+tfM9ZNz6l/nGo6zcnW3nD/pLW/vj0aHD/uH2wdTZ8e0hocjiYT7W22+tMn
WPS/bG1+++P5607/ZbA/mf70+Ki1fjb5/7ujx4Px/tFobX00ee3R573xfn/Y4pJ7k296tXc9Pv9v
Oz6/8+ej3Ma2+BUPoqv9mLnnWa74NJ/LPYXsgpNdcLILTnbByS442QUnu+BkF5zsgpNdcLILTnbB
yS442QUnu+BkF5zsgpNdcLILTnbByS442QUnu+BkF5zsgpNdcLILTnbByS442QUnu+BkF5zsgpNd
cLILTnbByS442QUnu+BkF5zsgpNdcLILTnbByS442QUnu+BkF5zsgpNdcLILTnbByS442QUnu+Bk
F5zsgpNdcLILTnbByS442QUnu+BkF5zsgpNdcLILTnbBKS44xQWnuOAUF5ziglNccIoLTnHBKS44
xQWnuOAUF5ziglNccIoLTnHBKS44xQWnuOAUF5ziglNccIoLTnHBKS44xQWnuOAUF5ziglNccIoL
TvFfwhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdU
cUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFG
FWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVnVHFGFWdUcUYVZ1RxRhVn
lK/iw1fx4av48FV8+Co+fBUfvooPX8WHr+LDV/Hhq/jwVXz4Kj58FR++ig9fxYev4sNX8eGr+PBV
fPgqPnwVH76KD1/Fh6/iw1fx4av48FV8+Co+fBUfvooPX8VHO3nS5EmTJ02eNHnS5EmTJ02eNHnS
xpM2nrTxpI0nbTxp40kbT9p40saTNp6040k7nrTjSTuetONJO56040k7nrTjSTuetOtJu56060m7
nrTrSbuetOtJu56060m7nrTnSXuetOdJe56050l7nrTnSXuetOdJe540e9LsSbMnzZ40e9LsSbMn
zZ40e9LsSYsnLZ60eNLiSYsnLZ60eNLiSYsndUbZpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126bBL
h1067NJhlw67dNilwy4ddumwS4ddOuzSYZcOu3TYpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126bBL
h1067NJhlw67dNilwy4ddumwS4ddOuzSYZcOu3TYpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126bBL
h1067NJhlw67dNilwy4ddumwS4ddOuzSYZcOu3TYpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126bBL
h1067NJhlw67dNilwy4ddumwS4ddOuzSYZcOu3TYpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126bBL
h1067NJhlw67dNilwy4ddumwS4ddOuzSYZcOu3TYpcMuHXbpsEuHXTrs0mGXDrt02KXDLh126YhL
nsxQz6TrmfRtVrpvc7hcN8HrJnjdBK+b4HUTvG6C103wugleN8HrJnjdBK+b4HUTvG6C103wugle
N8HrJnjdBK+b4HUTvG6C103wugleN8HrJvgv2AT/tRj9LbbNr7TB+defDg73j/ePzw5GrcGn/tbe
JdvM97lSesFAf/zP/P7e6PKtzNm94eh0NHzx7PHWcP3bm53upI/WNkfH3elbutOPrK5212P0X7Ta
ff5t9+/uiTgcDUZbX0atz8cbXPId//2Beemj5goPv9v8YLjSx3GFGa5x2X1dzq7L2XU5uy5n1+Xs
upxdl7PrcnZdzq7L2XU5uy5n1+Xsupxdl7PrcnZdzq7L2XU5uy5n1+Xsupxdl7PrcnZdzq7L2Xe+
nP07XHZ/vZPr3iiPetFrWsPo9VvNcLTRyt313OoOBpMvYL+bu+2fn1x/Hb6aOVp9f/Ep7Pzzk62F
mGmvrgw/jd4/W+p/YLyeltvTU+IfXi/efFl9vTN9u/P93aOTRRb2hm1e9r/Ozy+/XO4uvjqYn1ti
aWmxvaWT2/3VDzM7qytvvs5uH6x/OHszM3r97GB6qn3hifPi/snci32+nzi/P12f3Tn9NEjvjhc/
lJ3+h9WD1Q/vpu9rqf966Wj2xcuz2ZczJ4Otp2dzL142sy9mz95uz6XJPyezL4fzy8/fDFdW2kej
szfjyfsff0wL49WZ0h6tPBtPT5XXd0t7JX5ycn2Nj31juf3kXp5j0mk3f9Rvof+Wb6H7eQLDz+6b
uMmrfb9D406fo3DTOyguFQ4mEeBscisJt5JwKwm3knArCbeScCsJt5JwKwm3knArCbeScCsJt5Jw
Kwm3knArCbeScCsJt5JwKwm3knArCbeScCsJt5JwKwm3knArCbeScCsJt5JwKwm3knArCbeScCsJ
t5JwKwm3knArCbeScCsJt5JwKwm3knArCbeScCsJt5JwKwm3knArCbeScCsJt5JwKwm3knArCbeS
cCsJt5JwKwm3knArCbeScCtJbiXJrSS5lSS3kuRWktxKkltJcitJbiXJrSS5lSS3kuRWktxKkltJ
citJbiXJrSS5lSS3kuRWktxKkltJcitJbiXJrSS5lSS3kuRWktxKkltJ8t+cJWdUckYlZ1RyRiVn
VHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1Ry
RiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYl
Z1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckYlZ1RyRiVnVHJGJWdUckY1zqjGGdU4oxpnVOOM
apxRjTOqcUY1zqjGGdU4oxpnVOOMapxRjTOqcUY1zqjGGdU4oxpnVOOMapxRjTOqcUY1zqjGGdU4
oxpnVOOMapxRjTOqcUZZisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpDktxWIrDUhyW4rAUh6U4LMVhKQ5LcViKw1Ic
luKwFIelOCzFYSkOS3FYisNSHJbisBSHpTgsxWEpju5VePjrn8/d9LysHiLX5yHc5mT2Wk9d+L4n
fvFB8k2vI7/AsbjhkfgVzrYv/ph+1Ufztyxw9PngPs7nb/xhX2oe3Jt2UH/U1efL3PD5Mj8+Vj9t
Tb9jz84fs9N3c7y1v9fa2jseHW70B9Nvq/F+f7g23B983h3tHa/tH4z21k4Ot45Hlxg/N4z+W/5U
ffAH5EM/lehqMgkWe7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsxWIvFnux2IvFXiz2YrEXi71Y7MViLxZ7sdiLxV4s
9mKxF4u9WOzFYi8We7HYi8VeLPZisReLvVjsJTujLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIVHLDxi4RELj1h4xMIjFh6x8IiFRyw8YuERC49Y
eMTCIxYesfCIhUcsPGLhEQuPWHjEwiMWHrHwiIXHsPAYFh7DwmNYeAwLj2HhMSw8hoXHsPAYFh7D
wmNYeAwLj2HhMSw8hoXHsPAYFh7DwmNYeAwLj2HhMSw8hoXHsPAYFh7DwmNYeAwLj2HhMSw8RvuS
5wX9m0sD/j7a/23O9u79aUj//Dw6PJue3Y7+vPox/bXvSLndCe91bky47tMnrnRlwy+93qZ/sHU0
dXFag8PR5BO3t9mavNnWXv/L1ua3P56/7vRfBvuTz+jp8VFr/Wzy/3dHjwfj/aPR2tH5MGuTr+To
8JIT81sefd/1J/Oeno9yo+/5O38ixJWvE7r7b4C7uIKkAiAVAKkASAVAKgBSAZAKgFQApAIgFQCp
AEgFQCoAUgGQCoBUAKQCIBUAqQBIBUAqAFIBkAqAVACkAiAVALlHAOQ/7wqSWO9PBsy0upPsajV5
kFrrJeVWb6PX3eiX4TrN+k/34XenO+f957/5Pnxa/ny+D//+x334+e390yvuwy9+XHk33Ydv/7gP
//Ts7fZs++32yyvtw3+Mme3+q+Wd6UzT2QavyudBLG8M0sKn4evl89nnF5+2J+/v9eTzNx7GTGd2
ZmHyAS1/Ga5M5/vx9T7ulp3R+9nu7A7/7H999o/lV8O0uLRwONdmaWHlYK6/0z5dXF5Y+Mf7N2Xl
3ZMntzhlrevUdZ26rlPXdeq6Tl3Xqes6dV2nruvUdZ26rlPXdeq6Tl3Xqes6dV2nruvUdZ26rlPX
deq6Tl3Xqes6dV2nruvUdZ36Htepf+0p6y02bTvt5o96SFsPaX9+SHs/0Plve/FI/cauzz64FRx/
/spa+P/7bX3b9j8+Pb6Xn+Y3fYz8dNy/HtOTR8c0nJ5Mfsf4c3pFyJPpNv2jmJm8ra29SfwNJp+e
o9Hxo/RiaXGmRffP84X7veMnj152H01+X5rJ05cvO9OX7afTl88nUdx+9KxMXz7P05fn//3erz+5
HbjxcDcUXONH4fVljbv9cucH/2pf8wKfe/ya11+faso88K9PD30RyveH4uWZ9ltaQpfP/9Ahd3+f
piuxOZv9w/X+5qg12B+PJ3+e/jCcujn/guU8Hm4dDfqHw7WtjcP+7mjtrx+ja1xiJT3kJV8PTwRd
DQf6XRL29wSp7udWvgf+Wt/sqrf2cIMyaPWG68NJ7A9p9XvDXitvxEa3PSy5321uddVb5+0krpbj
0+R1lmN1Zfai+Op+WBm/7e/OTSN/Zn6pLH1YXJ7rj3dY3Dt4M3fm69E+jT9+WBgP9ua23o6PJ5G9
3AxejSe/DsxdFNWnb7efnrzdXvoe1f87c7S1+Grm6/A58+uxcLC6O/52Fdt4YX/4/mRzbnF2893K
s7PZF7Mnc4ubk18bZrtzXweTf55uLkwidnbMcOP9aW92d/r+l7cnH+fOSlroDL59jj6vp4WNn0X+
1T/2Kz89/WF+1l6BJbttJbgIcOxNh7jTnwSdUv6oj5//74+f+/mbw0vdvWgnnxUknxUknxUknxUk
nxUknxUknxUknxU0PitofKrReNLGkzaetPGkjSdtPGnjSRtP2vGkHU/a8aQdT9rxpB1P2vGkHU/a
8aQdT9r1pF1P2vWkXU/a9aRdT9r1pF1P2vWkXU/a86Q9T9rzpD1P2vOkPU/a86Q9T9rzpD1Pmj1p
9qTZk2ZPmj1p9qTZk2ZPmj1p9qTFkxZPWjxp8aTFkxZPWjxp8aTFk/qUGJ8S41NifEqMT4nxKTE+
JcanxPiUGJ8S41NifEqMT4nxKTE+JcanxPiUGJ8S41NifEqMT4nxKTE+JcanxPiUGJ8S41NifEqM
T4nxKTE+JcanxCRP6ozCGYUzCmcUziicUTijcEbhjMIZhTMKZxTOKJxROKNwRuGMwhmFMwpnFM4o
nFE4o3BG4YzCGYUzCmcUziicUTijcEbhjMIZhTMKZxTOKJxROKNwRuGMwhmFMwpnFM4onFE4o3BG
4YzCGYUzCmcUziicUTijcEbhjMIZhTMKZxTOKJxROKNwRuGMwhmFMwpnVDijwhkVzqhwRoUzKpxR
4YwKZ1Q4o8IZFc6ocEaFMyqcUeGMCmdUOKPCGRXOqHBGhTMqnFHhjApnVDijwhkVzqhwRoUzKpxR
4YwKZ5T98rBfHvbLw3552C8P++Vhvzzsl4f98rBfHvbLw3552C8P++Vhvzzsl4f98rBfHvbLw355
2C8P++Vhvzzsl4f98vg/9u73ua6rvALwv8InvrlYa0ln780MM50CbelMQtOG0OaLR7YV18E/MnYC
hL++EgQYHkgsO5Id2v3R1yPf914d3SWvc97n6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559MujXx798uiXR788+uXRL49+
efTLo18e/fLol0e/PPrl0S+Pfnn0y6NfHv3y6JdHvzz65dEvj3559Mtz+oob7H2bKydeeZr2GqeK
r+eqRXU9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fWorkd1ParrUV2P6npU16O6HtX1qK5HdT2q61Fdj+p6VNejuh7V
9aiuR3U9qutRXY/qelTXo7oe1fUcZpQ+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrU0aeOPnX0qaNPHX3q6FNHnzr6
1NGnjj519KmjTx196uhTR586+tTRp44+dfSpo08dferoU0efOvrUmTd/Fm1vHP7/3di9CUBiHzp7
WfW7yNy98mZpezV2r8bu1di9GrtXY/dq7F6N3auxezV2r8bu1di9GrtXY/dq7F6N3auxezV2r8bu
1di9GrtXY/dq7F6N3auxezV2r8be4mrsu71Z2s3cDOGmofqbgaL/zsT2t/Ci3/As7N9C/L9C8h8+
fnE56537zx998fLOyy+fPfhmHfv1rhy4fKYXX16dYb74/vUvIrjRb/m3/pLXt8e/1Z22/rwR//KL
z67/87v33/f++95/3/vve/9977/v/fe9/7733/f++95/3/vve/9977/v/fe9/7733/f++95/3/vv
e/9977/v/fe9/7733/f++zvYf3+3p8rfzunDr7tp+jedb70Gc/3Gp+pfaWxf72lv95zv7awr/+UJ
+69Os//+xP3V0/z+BP3jZ59fvPjk/MHV63ny/PzhvYfPH3zx9OLZ5/eef3bx7N5vXjz+/OLOH07M
39p1BTf0Hfpbp45v5ym/zU/FzX5Prnepxhs/yzWPs9eUFO4fOTvuj/M7Jx1375z2OO6cf/Jg3Tm/
/PRe5/P04mSefK2k8PRKBTj/8XdTUnj4y9MrSeEESSE///Sn15QU3v+fhz++khQ++EtJ4Sc/O977
9IPjvQ+vJSl8+t+/fP/5x7/84Gqmy9ne/839nP3u44/WlUJx9+F/Xc3+8uTnH/7q8vkePr983548
fPrRlz97cpfX+m+//vhff3X1771/8eTJ2YdPP/v0vZ+uX/zHhx/9+0f/fPn+/MtnH7//i7PjPz98
7/EnH9390Vu+oOSm1YU3vYf9Ppj/Lx7MbyOP//oCuvPPLn/Bu/yiOw9eXFx+SD979Pvr556d//rx
oz/88a8upbtz/8vLv3968YPLKZ/cP3/wq1vDSF73167X+O3v9q7vfPvXSN7Uy/6a3xdu65i57n1m
9ofj/nC8xaR/tXg0rXan1e602p1Wu9Nqd1rtTqvdabU7rXan1e602p1Wu9Nqd1rtTqvdabU7rXan
1e602p1Wu9Nqd1rtTqvdabU7rXan1e602p1Wu9Nqd1rtTqvdabU7rXan1e602p1Wu9Nqd1rtTqvd
abU7rXan1e602p1Wu9Nqd1rtTqvdabU7rXan1e602p1Wu9Nqd1rtTqvdabU7rXan1e602p1Wu9Nq
d1rtTqvdabU7rXan1e602p1Wu8tqd1ntLqvdZbW7rHaX1e6y2l1Wu8tqd1ntLqvdZbW7rHaX1e6y
2l1Wu8tqd1ntLqvdZbW7rHaX1e6y2l1Wu8tqd1ntLqvdZbW7rHaX1e6y2l2eflxm1DKjlhm1zKhl
Ri0zaplRy4xaZtQyo5YZtcyoZUYtM2qZUcuMWmbUMqOWGbXMqGVGLTNqmVHLjFpm1DKjlhm1zKhl
Ri0zaplRy4xaZtQyo5YZtcyoZUYtM2qZUcuMWmbUMqOWGbXMqGVGLTNqmVHLjFpm1DKjlhm1zKhl
Ri0zaplRy4xaZtQyo5YZtcyoZUYtM2qZUcuMWmbUMqOWGbXIqN4loy4fOPGB+EB94NQHznzg8IHh
A9MHnPTESU+c9MRJT5z0xElPnPTESU+c9MRJT5w0ThonjZPGSeOkcdI4aZw0ThonrZPWSeukddI6
aZ20TlonrZPWSU+d9NRJT5301ElPnfTUSU+d9NRJT5301EnPnPTMSc+c9MxJz5z0zEnPnPTMSc+c
9MxJDyc9nPRw0sNJDyc9nPRw0sNJDyc9nHQ46XDS4aTDSYeTDicdTjqcdDjpcNLppNNJp5NOJ51O
Op10Oul00umk00mXky4nXU66nHQ56XLS5aTLSZeTmlHKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bJVjqxxb5dgqx1Y5tsqxVY6tcmyVY6scW+XYKsdWObbKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bJVjqxxb5dgqx1Y5tsqxVY6tcmyVY6scW+XYKsdWObbKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bJVjqxxb5dgqx1Y5tsqxVY6tcmyVY6scW+XYKsdWObbKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bJVjqxxb5dgqx1Y5tsqxVY6tcmyVY6scW+XYKsdWObbKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bJVjqxxb5dgqx1Y5tsqxVY6tcmyVY6scW+XYKsdWObbKsVWOrXJslWOrHFvl2CrHVjm2yrFVjq1y
bHNLtzF6pV9SidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0laitRW4naStRWorYStZWorURtJWorUVuJ2krUVqK2ErWV
qK1EbSVqK1FbidpK1FaithK1laitRG0lantqRulAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwNZHcjqQFYHsjqQ1YGs
DmR1IKsDWR3I6kBWB7I6kNWBrA5kdSCrA1kdyOpAVgeyOpDVgawOZHUgqwPZ45ZOfL0tomKvd+8N
xltc737Tw5914T8fi3/cGb46Ev/4k/CjT54/v3/+4nLs8/sPHn7/ygH6Ue+e3Mo65t+nV3LnGreQ
uXzHvndj7/1bWwPfm7F7M3Zvxu7N2L0Zuzdj92bs3ozdm7F7M3Zvxu7N2L0Zuzdj92bs3ozdm7F7
M3Zvxu7N2L0Zuzdj92bs3ozdm7F7M/YdbMa+2xucvPJs2V6n3eu0e512r9Puddq9TrvXafc67V6n
3eu0e512r9Puddq9TrvXafc67V6n3eu0e512r9Puddq9TrvXafc67V6n3eu0t7hO+27Plr3BEtxX
4/7uj/tvuZXdw8t/93s3MdxbuTXtq+7P+uj8xf3zRxd3Hjx/8uTyz1ebjFc3aP2ru7L+4OHjlw/O
Xzy89/iTF+dPL+59tQN57+SVq81v8FY9PX/85PPnP3z5/OnF82cX/3jx2/Onnz25+IfnLx699nf2
Wruub/9guMYr/M7cwvemDpHrLdfewvN/B25//eT5y4t7Xzy7Wgy+zo/Lz549vPjtxcOf/NMPHj+8
/4env3otF/ceXXx+9fW3ePS/3l2o3+Z7do2bQP9prle9gde9ofS3+4jvLX3k9Cbyp28lf15vxs8v
nvzwJFft4Jjr7nfybfyaEd/dfea/8Q7zb/v29H9PY/75M+LlF5/dxrN8mw/Wr3sP3zREb/KD+Kap
kW9+0X86Ar7zL/16Esblf678X59932Hfd9j3HfZ9h33fYd932Pcd9n2Hfd9h33fY9x32fYd932Hf
d9j3HfZ9h33fYd932Pcd9n2Hfd9h33fY9x32fYd932Hfd9j3HfZ9h33fYd932Pcd9n2Hfd9h33fY
9x32fYd932Hfd9j3HfZ9h33fYd932Pcd9n2Hfd9h33fY9x32fYd932Hfd9j3HfZ9h33fYd932Pcd
9n2Hfd9h33fY9x32fYd932Hfd9j3HfZ9h33fYd932PcN+75h3zfs+4Z937DvG/Z9w75v2PcN+75h
3zfs+4Z937DvG/Z9w75v2PcN+75h3zfs+4Z937DvG/Z9w75v2PcN+75h3zfs+4Z937DvG/Z9w75v
eE5qmFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFG
DTNqmFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFG
DTNqmFHDjBpm1DCjhhk1zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOmGTXNqGlG
TTNqmlHTjJpm1DSjphk1zahpRk0zappR04yaZtQ0o6YZNc2oaUZNM2qaUdOMmmbUNKOmGTXNqGlG
TTNqmlHTjJpm1DSjFAWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBasoWEXB
KgpWUbCKglUUrKJgFQWrKFhFwSoKVlGwioJVFKyiYBUFqyhYRcEqClZRsIqCVRSsomAVBfu/7N1b
d9PW1oDhv9KbcqcPy36nbI9v5IKEBJxBwiYE53DD8EFJTJxDSSCHX79taGn7UohzsDHd64KOpBh7
WtLS1NTSfJZFwZpFwZpFwZpFwZpFwZpFwZpFQSwKYlEQi4JYFMSiIBYFsSiIRUEsCmJREIuCWBTE
oiAWBbEoiEVBLApiURCLglgUxKIgFgWxKIhFQSwKYlEQi4JYFMSiIBYFsShI5YalMiYTKrBDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hdgixQ4gdQuwQYocQO4TYIcQOIXYIsUOIHULsEGKHEDuE2CHEDiF2CLFDiB1C
7BBihxA7hNghxA4hVecoS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/WHpD0t/WPrD0h+W/rD0h6U/LP1h6Q9Lf1j6
w9Iflv6w9IelPyz9YekPS39Y+sPSH5b+sPSHpT8s/cENs1j37Cm7qX/45j6wr9bq/th5f3VD7/ec
9xjea6PcJ9B/6tScSpBfPvHbe+82XeipFzD1AqZewNQLmHoBUy9g6gVMvYCpFzD1AqZewNQLmHoB
Uy9g6gVMvYCpFzD1AqZewNQLmHoBUy9g6gVMvYCpFzD1Av6AXsCfZVXs1HOYeg5Tz2HqOUw9h6nn
MPUcpp7D1HOYeg5Tz2HqOUw9h6nnMPUcpp7D1HOYeg5Tz2HqOUw9h6nnMPUcpp7D1HOYeg4fvudw
/lbF/vuikoPjvcHx4Lz8sq7kdHrybhfDpOutzv/SkbNf3/B2W3qyudbbtn4+YAzfX3P1y3v98e5n
49VXz69Ox6us5lNaCDb/5T5BzWqb/SvHxl9n/j+cD4ZnDx3TPQfftxuBH/wgP+3slwud4Xn5/rhz
Xj764/B6dDS4XKhM5cj/68bfL8+z8dceH5kn/3f2ofvdHXHnE8kdt+ddx+h3t+ksT7g6xB9489x1
4H31cX/+ePOJ5cbu9tEFk6/kXMPjGh7X8LiGxzU8ruFxDY9reFzD4xoe1/C4hsc1PK7hcQ2Pa3hc
w+MaHtfwuIbHNTyu4XENj2t4XMPjGh7X8LiGxzU8ruFxDY9reFzD4xoe1/C4hsc1PK7hcQ2Pa3hc
w+MaHtfwuIbHNTyu4XENj2t4XMPjGh7X8LiGxzU8ruFxDY9reFzD4xoe1/C4hsc1PK7hcQ2Pa3hc
w+MaHtfw4Ro+XMOHa/hwDR+u4cM1fLiGD9fw4Ro+XMOHa/hwDR+u4cM1fLiGD9fw4Ro+XMOHa/hw
DR+u4cM1fLiGD9fw4Ro+XMOHa/hwDR+u4cM1fLiGD99nDueocI4K56hwjgrnqHCOCueocI4K56hw
jgrnqHCOCueocI4K56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueocI4K
56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueo
cI4K56hwjgrnqHCOCueocI4K56hwjgrnqHCOCueocI4qnKMK56jCOapwjiqcowrnqMI5qnCOKpyj
CueowjmqcI4qnKMK56jCOapwjiqcowrnqMI5qnCOKpyjCueowjmqcI4qnKMK56jCOapwjiqcowrn
qMI5qnCOshKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShhWwrAShpUwrIRhJQwrYVgJw0oYVsKwEoaVMKyEYSUMK2FY
CcNKGFbCsBKGlTCshGElDCthWAnDShiNh1np1rYYtsWwLYZtMWyLYVsM22LYFsO2GLbFsC2GbTFs
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
MoHqKwm1vt5SsSuHeV8NqPhPtMKTh4+u3Tv6/sk7lRu8eql3p/DOBZtaVynBxDmPkcsIQ12pV3tL
klye/s3O2MT64eG+GRfGLz8HG/GlL9DsxVfssIshHbwtybD/zp51JZW2kudu1+2mbhjHft6N48kV
cMMyX3s3Dfc3my9X0og/o1dqU+PUU+OdszTODg0e3mosfbhkLL1/NZV9896NBz+d04LJy8PKD2/1
tqmDhvKfk8Bt8flX6cxhnP3Sj4vvnOvdMJxkeI994y1e/hdoUMW1432j3lKQ4i+aflaUv7/TZPHz
0g07P8zTsv9Yw8n1vePY1llf+gd4a4XV3wUD/At5dDHpQy86DPw2A1Cv+7GuJPT0RiPvTwtk3d1O
nB9//+XPPa0Wf7XSiu9uztKGxr+5Eu78blj6fp7nzs+jr5Tw7K5dfIE8nQ3nVjDxTKrpna6Zze57
9SH37pEgzm98tbFlAb39yOrcflj1fhr3/50cW35sTt1lf4CGQJ00Xt822OkNsCY84/if9jtJsy6s
J07TjneTE9m85dcf800Jv4oOeB6C2BL9uGnnlvnkopmp89feFlDrfMu2X1E8pTF3zmPI/42w7Fby
+Rx12mmsl4tIVXZ27XjjClZv3JQLLUh21d77xfc8DI7XM9eberChTj9309CNOzd1y1Bph/GMUYkG
ZFzEJ3urQco3mfSXIJRb3oR3iIL2uirpxtPf7t67e+PxsxfwmtEl127de3h8dPvCkaRXa9lpsaWj
B7ce3t7f65/39j1969m1+zev/Xjj0Y29lXb0z+M7d79/cv3Hu8f/PN7/c+35pUfXnt/h6PHjh4+P
r92/e3zrHDvijBp3tkjipUOIb44dniMIeAVISWfk61y6k3NK7XW6SbL//67fOYn3nQMV41JG2ysL
iMdv76B/kd3w4Tauvnjy8PE52CqXljX79Qb0n821M9Ih54bPvp4Ieyvf6pLf5/XNisdXpeVno2he
zZJ8rSViRjBdfvvO0lI4w/b9hdn34OG+L/fDZH+3B0/v3TvpkF25/EW/3r395M61O0d3f7jz5CoX
ejxF375KVcMr0NGXwSG4UpZGS/90dVZ5nGJ6XU6hsQuYiBevhs6nl69gJq3X7Ou3JJvWq73dawKE
h0/9vBXPzRMD7p402f51JpbPxldw3eiGLbXt2I3z5E+gtPPgrl0V/PSKds/lmqV/yhnfbhafPj5+
+PgSVjHVDz+t+fOH3Bv/d/fBo6dPru3+9Y9+/kc/dL3/xxD+0UfZHXb1blfv9vXuUO+O9e5U7871
7lLvunq3btVYt2qsWzXWrRrrVo11q8a6VWPdqrFu1Vi3aqxbNdWtmupWTXWrprpVU92qqW7VVLdq
qls11a2a6lbNdavmulVz3aq5btXMVpX1yxNH6wcs9QOW+gGLPkCP1K+61K+61C+z1M9y9c1d3VxX
39nVd3Z1J7q6E139XFc/19fv6Otm+LoTfd0qX7fK163ydat83Spft8pXrdrLiHq3q3f7eneod8d6
d6p353p3qXddvVu3qqtb1dWt6upWdXWrurpVXd2Mrm5GVzejq5vR183o62b0dTP6uhl93Yy+7py+
blVft6qvW1XL076Wp30tT/tanva1PO1redrX8rSv5Wlfy9O+lqd9LU/7Wp72tTzta3na1/K0r+Vp
X8vTvpanfS1A+1qA9rUA7WsB2tcCtK8FaF8L0L4WoH0tQPtagPa1AO1rAdrXArSvBWhfC9C+FqD9
XLdqrls1162a61bNdatqqdvXUrevpW6/1K1a6lbVErivJXC/1K1a6lbV8rmv5XPv6lbV4rp3datq
6d3X0ruvpXdfS+++lt59Lb37Wnr3tfTua+nd19K7r6V3X0vvvpbefS29+1p697X07mvpPdTSe6il
91BL76GW3kMtvYdaeg+19B5q6T3U0nuopfdQS++hlt5DLb2HWnoPtfTeWyL1bt2qWpgPtTAfamE+
1MJ8qIX5UAvzoRbmQy3Mh1qYD7UwH2phPtTCfKiF+VAL86EW5kMtzIdamA+1MB9qYT7UwnyohflQ
C/OhFuZDLcyHWpgPtTAfamE+1MJ8qIX5UAvzoTaOh1q2D7VsH2rZPtSyfahl+1DL9qGW7UMt24da
tg+1bB9q2T7Usn2oZftQy/ahlu1DLduHWrYPtWwfatk+1LJ9qGX7UMv2oZbtQy3bh1q2D7VsH2rZ
PtSyfahl+1DL9qGW7UMt24datg+1bB9q2T7Usn2oZftQy/ahlu1DLduHWrYPtWwfatk+1LJ9qGX7
UMv2oZbtQy3bh1q2D7VsH2rZPtSyfaxl+1jL9rGW7WMt28dato+1bB9r2T7Wsn2sZftYy/axlu1j
LdvHWraPtWwfa9k+1rJ9rGX7WMv2sZbtYy3bx1q2j7VsH2vZPtayfaxl+1jL9rGW7WMt28dato+1
bB9r2T7Wsn2sZftYy/axlu1jLdvHWraPtWwfa9k+1rJ9rGX7WMv2sZbtYy3bx1q2j7VsH2vZPtay
faxl+1jL9rGW7WMt28dato+1bB9r2T7Wsn2sZftYy/axlu1jLdvHWraPtWwfa9k+1rJ9rGX7WMv2
sZbtYy3bx1q2j7VsH2vZPtayfaxl+1jL9rGW7WMt28dato+1bB9r2T7Wsn2sZftYy/axlu1jLdvH
WraPtWwfa9k+1rJ9rGX7WMv2sZbtYy3bx1q2j7VsH2vZPtayfaxl+1jL9rGW7WMt26datk+1bJ9q
2T7Vsn2qZftUy/aplu1TLdunWrZPtWyfatk+1bJ9qmX7VMv2qZbtUy3bp1q2T7Vsn2rZPtWyfapl
+1TL9qmW7VMt26datk+1bJ9q2T7Vsn2qZftUy/aplu1TLdunWrZPtWyfatk+1bJ9qmX79Fy2vyYi
3/2LN6nfpdYIU60RplojTLVGmGqNMNUaYao1wlRrhKnWCFOtEaZaI0y1RphqjTDVGmGqNcJUa4Sp
1ghTrRGmWiNMtUaYao0w1RphqjXCVGuEqdYIU60RplojTLVGmGqNMNUaYao1wlRrhKnWCFOtEaZa
I0y1RphqjTDVGmGqNcJUa4Sp1ghTrRGmWiNMtUaYao0w1RphqjXCVGuEqdYIU60RplojTLVGmGqN
MNUaYao1wlRrhKnWCFOtEaZaI0y1RphqjTDXGmGuNcJca4S51ghzrRHmWiPMtUaYa40w1xphrjXC
XGuEudYIc60R5lojzLVGmGuNMNcaYa41wlxrhLnWCHOtEeZaI8y1RphrjTDXGmGuNcJca4S51ghz
rRHmWiPMtUaYa40w1xphrjXCXGuEudYIc60R5tran2vZPteyfa5l+1zL9rmW7XMt2+dats+1bJ9r
2T7Xsn2uZftcy/a5lu1zLdvnWrbPtWyfa9k+17J9rmX7XMv2uZbtcy3b51q2z7Vsn2vZPteyfa5l
+1zL9rmW7XMt2+dats+1bJ9r2T7Xsn2uZftcy/a5lu1zLdvnWrbPtWyfa9k+17J9rmX7XMv2uZbt
cy3b51q2z7Vsn2vZPteyfa5l+1zL9rmW7XMt2+dats+1bJ9r2T7Xsn2uZftcy/a5lu1zLduXWrYv
tWxfatm+1LJ9qWX7Usv2pZbtSy3bl1q2L7VsX2rZvtSyfall+1LL9qWW7Ust25dati+1bF9q2b7U
sn2pZftSy/allu1LLduXWrYvtWxfatm+1LJ9qWX7Usv2pZbtSy3bl1q2L7VsX2rZvtSyfall+1LL
9qWW7Ust25dati+1bF9q2b7Usn2pZftSy/allu1LLduXWrYvtWxfatm+1LJ9qWX7Usv2pZbtSy3b
l1q2L7VsX2rZvtSyfall+1LL9qWW7Ust25dati+1bF9q2b7Usn2pZftSy/allu1LLduXWrYvtWxf
atm+1LJ9qWX7Usv2pZbtSy3bl1q2L7VsX2rZvtSyfall+1LL9qWW7Ust25dati+1bF9q2b7Usn2p
ZftSy/allu1LLduXWrYvtWxfatm+1LLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd
1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd1bLd
1bLdGdn+l/PXGdluxrPMwRf+sG5hLeddLeddLeddLeddLeddLeddLeddLefdQc7rkboltWx3tWx3
tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx3tWx39dhw5hPX
st3Vst3Vst3Vst3Vst3Vst3Vst3Vst3Vst3Vst3Vst3Vst3Vst0Zu70WjK6W7a6W7c6Zi+tW1bLd
1bLd1bLd1bLdqWyvDtaNqUW6My2vRbqrRbqvRbqvRbqvRbqhj/papPtapPtapPtapPtapPtapPta
pPtapPtapPtapvlavPhavPhavPhavPhavPhavPhavPh6rvl6Cvh6CvjFXFzfuZ4Cvp4Cvp4Cvp4C
vp4Cvp4Cvp4Cvp4Cvp4C3nzf2rzxz6fAlaiPcYHJDC58nfIVXVFy1kVfrs5qz7/82Z/XYG1RpxZ1
alGnFnVqUacWdWpRpxZ1alGnFnVqUacWdWpRpxZ1alGnFnVqUacWdWpRpxZ1alGnFnVqUac3jDq9
ZdmML734d53r6oIrQ5/Zw1+/RvvrNKFl+mqZvlqmr5bpq2X6apm+WqavlumrZfpqmb5apq+W6atl
+mqZvlqmr5bpq2X6apm+WqavlumrZfpqmb5apq8zyfR1mWGd867DduULo/+hfNBWHH323i1zP3cb
lDmeXAO0zNfOfjXPi9cuHbqOfXCaCoZnV/injYO/HgdvfYGvVx92py0X9ALJ9eTWnbvPJdfNuz9M
z//ZhNa1G8e37t49xyH9Oi15xaJIF1DF8MrWZHsHp/XF1gI9nyKbl1x6+qUz7DzZEGfenjeuifd8
hfELJ8ZbXzPwVIuCfe3i+drF87WL52sXz9cunq9dPF+7eL528Xzt4vnaxfO1i+drF8/XLp6vXbxu
V/t4+/3O7PdmfzD7o9mfzP5s9hez78y+aV9n2teZ9nWmfZ1pX2fa15n2daZ9nWlfZ9rXmfb1pn29
aV9v2teb9vWmfb1pT2/a05v2GBbTztCYdobHtDNEpp1hMu0MlWlnuEw7Q2baGTbTztCZdobP1Jnx
0pnx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx0Znx
0fWmfWa8dGa8dGa8WNabpb1Z3pslvlnmm6W+We6bJb9Z9pulv1n+myXAWQacpcBZDpwlwVkWnKXB
WR6cJcJZJpylwlkunCXDWTacpcNZPpwlxFlGnKXEWU6cJcVZVpylxVleXDeb9s2mfbNp32zaN5v2
GUqd5dRZUl23mPYtpn2GY2dJdt1i2reY9hkWnqXhdc60z/DyOmfaZ4h6lqlnqXqWq2fJepatZ+l6
lq9nCXuWsWcpe5azZ0l7lrVnaXuWt2eIe51h7nWGutcZ7l5nyHudYe91hr7XGf5eZwh8nWHwdYbC
1xkOX2dIfJ1h8XWGxtcZHt9+37TP6A/D7OsMta8z3L7OkPs6w+7rDL2vM/y+zhD8OsPw6wzFrzMc
v86Q/DrD8usMza8zPL/OEP06w/TrDNWvM1y/zpD9OsP26wzdrzN8v84Q/jrD+OsM5a8znL/OkP46
w/rrDO1vv2/aZ/SHIQJ2hgnYGSpgZ7iAnSEDdoYN2Bk6YGf4gJ0hBHaGEdgZSmBnOIGdIQV2hhXY
GVpgZ3iBnSEGdoYZ2BlqYGe4gZ0hB3aGHdgZemBn+IGdIQh2hiHYGYpgZziCnSEJdoYl6Iw8dUae
nuK8WS1q1mEZeeuMvHVG3jojb90JeWv+J6fN7Tq7AJW32+vBKWLjxsnzZpWpWd7a2/WtdgmrXcNq
l6nadap2oepgXnewS2SHv3x9s4zUSAtnpIEz0sAZaeCMNHBGGjgjDZyRBs7MfmdmvzOz3ZnZ7sxs
d2a2OzPbnZntzsx2Z2a7M7PdmdnuzGx3ZrY7M9udme3OzHZnZrszs92Z2e7MbHdmtjsz252Z7c7M
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
GG/SwXiTDsabdDDepIPxJh2MN+lgvEkH4006GG/SwXiTDsabdDDepIPxJh2MN+lgvEkH4006GG/S
wXiTDsabdDDepCfwJj2BN+kJvElP4E16Am/SE3iTnsCb9ATepIPxJh2MN+lgvEkH4006GG/SwXiT
DsabfAfe5DvwJh2MN+lgvEkH4006GG8W6HqzQNebBbreLND1ZoGuNwt0vVmg680CXW8W6HqzQNeb
BbreLND1ZoGuNwt0vVmg680CXW8W6HqzQNebBbreLND1ZoGuNwt0vVmg680CXW8W6HqzQNebBbre
LND1ZoGuNwt0vVmg680CXY8Fuue6YrKFVlpopYVWWmilhVZaaKWFVlpopYVWWmilhVZaaKWFVlpo
pYVWWmilhVZaaKWFVlpopYVWWmilhVZaaOXdCq1cZi7Ql0ZiWqq4liqupYprqeJaqriWKq6limup
4lqquJYqrqWKa6niWqq4liqupYprqeJaqriWKq6limup4lqquJYqrqWKa6ni3uZUcVesKNudu8dP
Hj5+9jyT2taiJ3cfPrh298GTo8ff37i1pZa79/DG7euP9s283l1YibZXbtRpC7a9domy+0/vPbn7
6N45VKn7i3Yd8vq9Vsm853d+78Hto9+Obqfwz7u3byJH3ta3R9e3F4tPHx8/fHz97oNfbty7+7wA
25m+2tn0RkuV2C/TXldtROZx3AvR/mSqxGl37SW9+QLB8uTWnbvPBcvNuz9Mz/+pZMrzA3d+Or51
/JIR9pIKi686r04xi1/yxFPNmFes7vin6wa9qSLqTRVRb6qIelNF1Jsqot5UEfWmiqg3VUS9qSLq
TRVRb6qIelNF1Jsqot5UEfWDYR6Z6Lw30XlvovPeROe9ic57E533JjrvTXTem+i8N9F5b6Lz3kTn
vYnOexOd9yY670103pvovDfReW+i895E572JznsTnfcmOu9NdN6b6Lw30XlvovPeROe9ic57E533
JjrvTXTem+i8N9F5b6Lz3kTnvYnOexOd9yY670103pvovDfReW+i895E572JznsTnfcmOu9NdN6b
6Lw30XlvovPeROe9ic57E533JjrvTXTem+i8N9F5b6Lz3kTnvYnOexOd9yY670103pvovDfReW+i
895E572JznsTnfcmOr/fN+0zTCwTrfcmWu9NtN6baL030XpvovXeROu9idZ7E633JlrvTbTem2i9
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
iz3g7AHbUmsAzNYAmK0BMFsDYLYGgImwbwdsSzvbUmsZmCj7/oA1FWZrKszWVJitqTBbU2G2psJs
TYXZmgqzNRVmayrM1lSYrakwW1NhtqbCbE2F2eqX2eqX2eqX2eqX2WrC2WrC2WrC2WrCE9H5E8ds
26xWmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1W
mq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1W
mq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1Wmq1WWqxWWqxWWqxW
WqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWWqxWAvmgrVx7
pZVre/Uw9u55JH/fw3O1cm1xL1u5dnjl7eCdG48f7N/uf388fuXlYe1DvGQJ4Z8tSr4CjT/dcsA3
XuR4jtHhFw7jx0ePHj5+8peD+dJW3J7R+uMLpgO0Kf9Ksvetn/J/Pa1O93qvnGjgKixO/useuKR3
f02FfdEC0hCHjp8+uiJi+LU/6iuyoM7jI5756750Fp/5S5/Kftjfcv/Y0xmgLxpjF/E2F22kvPa4
fWOL7QwNQ/2wl9PYM/1mLxe3r/Iyj6+e9Bay5adidX24fakv9tNlb3q9wUh9qci5mkOgGb3G6J3H
LS1Bt5uneVx28wmj1+3Ga2+tlj+bBDtnPQRfy/1+fPlKoWX2aZl9WmafltmnZfZpmX1aZp+W2adl
9mmZfVpmn5bZp2X2aZl9WmafltmnZfZpmX1aZp+W2adl9mmZfVpmn5bZ52+S2ecyS9PY2MyfhHcv
MT52psSz821hiwq/UlT4radCtvxTLf9Uyz/V8k+1/FMt/1TLP9XyT7X8Uy3/VMs/1fJPtfxTLf9U
yz/V8k+1/FMt/1TLP9XyT7X8Uy3/VMs/1fJPtfxTb2v+qcsM0b7R6ts3WV14ZUPCLdj6omCrm8bN
0e2XvdLfLf5ksHXYXWvJf67AR3hbI94v+NavksbmWnf2Kav+ZAi+RrMuLW3Py+gD3dAZu3t/YLYH
FnvA2QPeHDB29/5AZw/09sBgD4z2gG3pZFs62ZZOtqWTbelsWzrbls62pbNt6WxbOtuWzrals23p
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
mVJJjZ3a2KmNndrYqY2d2tipjZ3a2KmNndrYqY2d2tipjZ3a2KmNnfrK7NSrlOS9cWAbB7ZxYBsH
tnFgGwe2cWAbB7ZxYBsHtnFgGwe2cWAbB7ZxYBsHtnFgGwe2cWAbB7ZxYBsHtnFgGwe2cWAbB/Yi
ObCXGSv79JMvzjfX7bgb/+eMHnL2mWuvMXetb9m3Xynxcz92G3OkG6e9v7T4/mTi57k/2+zbL/gA
p0mzfqJfJdP6Czv2ZJr3f51RNvetg6a9DbtXVMu4N/f2O/N59lDLT/56w/Str8j9rs2Kyy6y8N6D
20f7t0/hn3dv38TH3pTJ0fXtdh8cPYtPHx8/fN5V5zN/T//8//l/Hz98cPTKhTQ+3XepzNGLqqNR
P/ISptzbWVlhmfpxq6g4TPup4ocTE2Xpu2t/7woqV1uIvfzbHNq/Hbxz4/HepD/+y69ipMPx00eP
Hj5+8vKfvPBJj49e+uOLWXx3NqLy0Bl/NsJOL1ZPp3b/ulcvtRXn//w3NzxEClOs/r2M8nelr5o0
/5tp2is7Ei+1dpox6QRq+mH/GifsubfO2T/VW52zC/ImltKLx5593+fvevzP3e5lGOa7aUq9Sz7e
qQbsm2AqLxk7p5gLb2g9vh2d96o26ZV+q9e03kSNPXh4QkdeFcvyRW07rRx/XQH4JoL81X92ZWXn
m/fh6xqaZyp5TikQ/3I4nU0Q6O8BEr5Ybm0I4ez653SjnRs3Qv8Jq9j7vyqAe0bC+pIGwhm3/lWF
5cW+zmvOzTN9qcuqj/0aLWzy4fTy4e21yFpI690bjX9vlO2VJd5rOarXTgVztFF7YtQucz93wzAu
w+TH3k+HUbuRtq9dCZfiTUDdBw/PE8itxvO+N8dpt+87P09+8Lt9F85Vd/oLDb+8dJq8CqLz7nyC
ZsW9XRLonbHi3tGo2dWa3ZcaKXv75l7XL50bd9PkptnXJKxtsVDj8F7+J3jr5d+L8o2v3T9Ct60S
ifM/kts29kdi/3yj/0b204CNT7nfceP5hdH9owRuRG6s3Ji54bixcCNzw3Nj4kZio56fWod/hMyN
yI3EjcKGTzwSsCFXyE9x2fBv/PkP/ryHP+/jzwf48yH+fIQ/H+PPJ/iDXhg+w5/P8ecL/Pkv/nyJ
P1/hz9f4g94cvsWf76SlU+AGX2via03S7OuyP++wcQN/buLPLfy5jT9H+PM9/vyAP3fw5y7+/Ig/
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
127hAyRa69JO4T2pxMDa6DxrPXp6j0jFEGStNCVDAEcmqxRID7hPN4MhTxjXkzTjPs/qS4h/o/Rt
Sgjh5KiUIzUgMHoTiq4eI3a5HjB95p4gOKRAJsMvoRxWoUUClYleRNIjEzdUHetDZ95HHzHyiJ7S
n9MHSl3LQnOmpJi3Mg3Nm6QoapydxtlpnJ3G2WmcncbZaZydxtlpnJ3G2WmcncbZaZydxtlpnJ3G
2XkLOTtXZv0ZIKLjf+6f8OTo9h8hILng2qMbj48ePLn24Om9e8+fcxHJqF+3bf/z/z5++ODojTMC
NapTozo1qlOjOjWqU6M6NapTozo1qlOjOjWqU6M6NapTozo1qlOjOr2I6nSJuM57D24f/XZ0O4V/
3r19E5Sf4ycPHx9df/T0ybTd43wgm5c+9hRozMtYPlnzuWv4gryfrG4zkcb94Ex0pyTBZHed+0DY
u2/x5y4PS+z9hqRSn/RGguLDHep+4OHMC+kxSkLN7kj2M92xQ5vElSTK332HP3d4XuJ3t7jf8xn0
/KQgSneTJ+jpSUmH7nvu09GU5OE7pFbdPaE1KMU/fuU+87VLjHwned+A2O5+5llGJSQWuLvPfeET
IEC/e8rD4nA+xh/JNC2HNx+NEYzDkZEbEy8mlyCQZhBYTCvQMQwMaB58Rlq5UnGhP7iKgfETecSo
OLmyDpSncMI2LtzgNRIhnZgqeyLlYBKhtm0s3FjpS/Y8wodKkaSFXmJi/Zqk2W0zjyiVwYvdLZa4
p2so3qfH45A/dCXuvEYNqzyk2akGG42dQoSw6HyTUfcjR3bHzxvYk/ohPDtHX1Pc2Mgs/PjS63t0
C2AwOyQxReGhRJcrEThL8LQSYb2VeWsT3bQ0aLL2EyYYTgVGC4rYMjBTUH0lIJV/KmJoIY+7lF5A
pZ8QNHiJ0ODwO9UaFZ2Qwph5P5QDnyhT62QqidyxJwkDZXpnWQd54HBl3E9Si0pq/4lFmxyrEBFs
XtcTcRV8VZRpWpmosxyQAHHVb7JTtQthbsMXDmQqJhYGSszJmFiTKSjXUjAB4YFIIAlRxSR126QO
nIROQQoIjkZHoc8sd06HzNeFulgMC5Jdyg7FInZMMX0YmoyNHjYYJA0K63BKS70CDeGgjtXKdJ8J
FuvKDMsJhl+CYbmWA5Jf6NEUPULHqtD90ehQUU+NjJmivU3opOg8LfQP1GOAjyO+aZHRLAOViSfF
m5CvEchRWXQjcoN4b2HyU3m0Vv/gK2S+VJ4PFBexwsuBV5fVagrcoMrMopt/4v4kCcNX0Ru/S1h8
YURT8ufrZ+0IHwaCGYFyOjCL6KofteOGxhaZdTuqGy6YmNR2oKPOmOAqYhIFrRLKOq1MO7tKPSYN
Fu0IFIgTPXzPfVJFEoEAcaEXfmeJ8xBrSQQWE2gHmcnTQzphOdMMygweZ4LHB0VU2ESomaDhfkgR
meio5JKGO2yeICE/cB9iYGFcVLAFIZRo2UQJ0XCIAlnUkSt8MGBFASogBKJuYncz6WwIOjLpSxSa
8UKq68An6lDDohOeFPLLdj9zLOkQIjStY0dqyY3EoKdDuU7FtySO12m1ol/5MsJZRt7soN2sNTE8
jzhueHY9hndAOb6A0lW4cQyo6onbrg6QdEBhLMfyLg6IXUDJGPebjOqknEUWuNDKGJEjP5HgmEj3
SCQ4BiVBkpWVyASRYetYxnTVMqaHYhqrTq4kbBHJZI/iiGv6Dw/LeaARoKomBCkSghQr6i0mxCpW
VF5LCFEkUlYTuKopyLXQaSJlEdVIIMwmUOJWKY2GWnWJ7JsVtZ1WlHRKIMKuqLWXyKJbUSBqFZG9
04lN7qWS/VmQjCNn+JH7ZCGI3gR8sLLcagIkkAAnpOEBb0xwUiREEPIC5D5Qh5VJiddyWPigiw0S
wVKZncvHnK2Y5EKQWTBbF9x/AYK5oOsX9MaCLlo+4w1IihD0fcG8X7iaQaE/gRkX9PzyHg8TxVTw
XyLqATBq+ISHIYaDxI4P5B6JNQTYNeEDHmaeebEaw6fcBz4cQFWBgNoOo33hQ+4TsGMNJyLICEQm
hNgSw5CpHLNhkItSA0qYY5y3+w3h0OiaEMRdtysyNyKvkCNAgpzc8RkvI0Yps63oD0W6/s4ndtwQ
sYp3xDAK6IjMisWZFYszi3gG9HlmquwQPuD+yg3PDXxFTMgM1ZaloUpvFxWSDjncV4JGK+0/aQOV
4Sb684UvNGoQRIMgGgTRIIgGQTQIokEQDYJoEESDIBoE0SCIBkE0CKJBEH9HCOISqR6HlDbbwTs3
Hu9vfvy/Px6fmiFy/PTRo4ePn7z8Jy980uOjl/74NVCYi/mJYj1//WZ/9nFfynZ5fZ7LtuJIkzwo
Y0qd4Ex3rtDzgIEZuBg5kw6XSV3L5Cxn5ejpghjy8gKXMGfy3LIy4ZStRgZl7J7QnOO6Q3FdOvg9
HeyADqZDB3uiAxrTcQ1jZkILQSC6x9wXm/oZ94kuZcI+kStkI9fMrtxYmMJCM1NEurJRkZdM+2qk
bc4VsoEpJITuvxDykOUBHk6bp/N7MKJWGiAiybEgCQpg/+RFX0ItMq5a1CRBovcCkxhE4opFrT7o
zgQlGJDdIMBGRoqRILqJq9VXrt5ZdVH4jsa0aL+BtWSFWx+4OJuS9VPeceDL0HaVvh0Fw1rnQw1j
1fdC1F8+p2IQT5BrtKSQpy5UUM9SfCCS7wK6dCW/PnLJdMJ6kzUJzRooH+iM2/PVFKIFpHkvhHMM
DmhaYPgt6NXlK/YK6bnKdBbu8/IF98VQke8AXm0QK5CEWlkjp/k8NCeUshXdiSPS81+ga6DqYMXk
RdQY9B3MogwjKZMBm8lnzUqIZiKCUA6r0wsBoEKQWGDBHReP7w6JXSIB0EhIVOrXcy3vNgy4iEaQ
UDR5gw4LQSK6prIWghbDNqoST4kTJx0p9nqcMf3X9/HnA/z5iD9CY1ZMuPVDeCJcZRO47iZwQUOg
zAoiPFZ3YoO/kpEexLF5xsOJjec9xFiVFVJc37+SZhqTVvtmgWkSWCNXnK0KcTIrQEyHJDS6AF/Q
Ci5PWwlCRV39rekxdOUaEw+shAFXXZDNVWcrIZKVfuxKhHAlNTZyPVvkkvPItWkrVdNKb39dT0xU
oqVZe4PQoAqMzBuydvohy44kAkniSomjtWLR4orV9gnRgYTYwprUnUOtT+StWpM6V8DKkvhjNJAR
iViRoSpRr6zIP7UiydSaBHV5KBfx28PYRrBi+y1mhYxQLK1M1FArk1QkYIXb9QLWCAT9jNeLV3mf
lw08oQMZzgaW0SWEN9YkviUWwSRBiMSJBB6EZZ4JQZlEE3tllowE3CuKWqAdvTLpSgINPxEiSUTt
EhfwJVrjiQBgolmesBAgEfJLDLWsRVFOVlgfDsn9sj5AHvmEV9Cr1HQSkkUCPP6VmZXWcsjnIqjm
cEh7VJi0hYuMHlMEsZEixoG8r8w2kwhhJuJhK7NgJCxtSFyVmLhOMTEEtF1KL70w3iCrV7gCMtHv
ScShViaN2jakt1Xl6QPYFlkDg/UHRYb3wiG4MM6xYDosz0SzFeJq8oSFK6qZLiIwkUJaELdYMCkW
vPSCVSXLXUkkISDiAm91ecxbEG2Ubl8wIpcf+VCF98SRx4xfvuXP6M/LF10w15ZbPCyAwjH3BXAA
cLMgJc6C6bP8xIu4LLHQAJBQwwKVviAUtDzCHzjMkj5i4RRaMMWW+7yFAA4Y/IsYHlId+xdeBDMg
3JPBN3OhEW1LzrPAQREOa/EFEQ13eAKNDoBvAmFC0bGAXQOzgRQmxUvA+7aRr48i5CDZFak3E1DA
bV9++kismKgX0qQTizPg+0Krhumwyk3g3cBpJwIgAIIK+F4BQywAmQs3+NsdfyQ98CP3tRn6GMI6
msaEuY8UKSbMMTEiCVQ0he95uGcHMbi38ohkUwhHvCdbJnM54LOH+7wVUSNZkxc0WRONZyCqgcnq
AkOwYTpkdUhcYUY3Agok/MB7SqtuspWw1VaOMpFKAZnCIpGkSHNV+sp9yROM4cmCOAZxEw3MzaDV
U7Rskx4h/iNGvFZO50LOwIR+qRxcAUk+RxRz+/mOz+LPV21Gz18FbvCGzFbD9JFMaJaIWG43JIIV
2ebEph4uZnuyntLX4dOT+jGBn4rt0a4L6gLw4sAWymrWckDUEjG5wDyHkVmLAl8wtPrjr5Jqedf1
Q7+bdlO/LH0/nky1vEzXXhdHOjcE6WxWah3gv6vXyjY8Tz8838pM4K+JYL9uLbsLRLBfWyacTdqr
0yW8ej3c+yJb2ADyBpA3gLwB5A0gbwB5A8gbQN4A8gaQN4C8AeQNIG8AeQPIG0D+xgD5JTI3/2KF
6faK+vYjX2hl80d2AwtnrPquHEFZh4CODvZQ0DvzhjoWDjfkeI58+uE784sFHfNKIOYH1w7WD5XU
aRPHlmURBmZuG5jbmWbKdkSWCH0j+7pWSDjUQdNpcwlSYJ5tAWoGLtWlQbEd6XiEp4Je7LhBynEg
kziQexzYXqnVMDBh68C8clzXFeDXZi4u3S4NbLg+W5/EDpGSFSKzAVyEcMhCG9jIIKzpr9nJ4hB/
xRsJJIBkt1AFgWbadp4vEMiSDuyayGskZXe4yVeUxl3nhdp1vEdkO6VcHQyKDP2doeszjI8M0yfQ
8wpc35FhKeSFAlZ43DAnMmyWTEMrw7zIsHgyDKcMCyTDQc4wYzKMpiy2lpZgwaqADAukUDuGdBjk
suKHNksGUpMBZ+wPC3RFMywvgkoAwJFlDVzHkmFCBq5QCfTnMo3MvNzhFfLmv/FBylGXJ36NP1i4
BssyA57JYqLSUw4Eg/LyIfeFzQ5YEXBOhkmZscwi0wDOYkly5U7Q6nIwCre2SSchGSQMt6IFb7BC
I2j9O+Hic0FrlsWQzNweKKpyIB4r6wBlTsoKCdUL5ZAEXiAWXfgny7SwviAHBXHxrTDFMkDBrLk9
FRiW1KMUeVmWHci8oirOAtbpamUZMljNkPku6GIBrQ6oob7yyg19aXnbr3lCbovVEbLkARBqzrht
ZpcKkp0xWDNX/0t3CFTcsSxiEh8gZ9w7M9d9IaYpyy4z3jS/x8PSYRgwxL8PdQ753aQZ6L7MYoWC
xuUv+bORGwrBod8zejJjcGcWvinExqQOUsflepmp86VKW2YBRn5gfP7MPP1F26vQLQFpqc3XMeM8
kb4NkWP6Bai/yOofe9coKD7ouTFyY+U1PBL0Vwvvo1C+/pxVGoMeydxgJUcuWGVa+50WidQU/kRd
dsykv+MSVZax2U5xTWLkxUEjCgM3mL8g6TWsJHeIKDDhP/RB0ddh4ufC1NSRuq8wfXVhSunC3ihM
D1CY6zpS0cXhAL8mZmGIunad9QCiNoONjxoFcfy5bug1ekNd1MtKAwr1Sj4PFhSILDEQT1QWiCzI
FVhpL7AMQWB+h8AKBbqAOOoCYuZu0ApfUR+auME7yydgQY54qGvAWogTMz5MrHw5skzmyMXpE49M
zPI+nfg5800UbTMTTxQdEvrzzA0NIOnF+iy0GWj+1hpWWpAUAwufDWi/AOgvgPYLgP4C9RbpsW4/
6rmx48bEjYEbM3+18khHQF4iWpLRAp/F/1sSX8jY8FwJjqLNKyOKK+qrJFpuifZgYN20MAgQQpyP
9kRgto7gDt5PoO+lZpuUD1uYnEAMZjE/w7cUUCL2v+aHWZm0n4GpzJWzkSB5JKYdFcpW3DsQbPXc
WLgB0C1JzEnQ5R95lt3AtPpMes9ZGnYERGUl846oYCDEqCk3ooKdsEq0MBjzItAzHbRIBR1kOhhp
0Cz9tJml6AUN4TRoQQGtJECdjTIZYcd2iBdPZyJpDTVU2wgoYBakRsZCW1NKZyzsnYWeMIqSBald
xm+8nffcWLgxcoPDSNy2hZ7YQniFxloY9HZELwWxWuirSQ21hSFGlAAJg94a6IBUeRve52GCbYVo
EZfe09pntouk8c/AygqBEXsmp9mOEM3Jep+VG8SqtEyADM5AfCMQb2HUejsycIPoVNBnaXs8N3RC
0hPOxFIOb0Fv+TBp6VpnQiiRUIwMdXfALjIBCoV91NlWkIcV0LWwKse9O4AhmW68eu9Z76MAAT1z
VjCh7Tf8I/sLT6nVAI8GeDTAowEeDfBogEcDPBrg0QCPBng0wKMBHg3waIBHAzwa4HHegMfl00A+
lSVnn+6fLcvOzm1N0l8+8hIWkr19i/GWuZ+7YRiXYfJj76cTi/F2g7v2GuSfC4Lc3rQC3+45Viei
AeTBTR0T22FJS7KvwhH3OekyJ52Q9MIP3CcsJGutwh3+gvBKJvIi5DNQA7cT/GkmopQVoCKaVQhi
6fTPxLeSYGt3eUJado8/1bsKOvc994lLZcGlbvOOtFMy4aXMHkp8Ca2IGcmFk7Vei0jwbYMYC1EM
IniqbMj/z4tmOPyJ+8zJK/Xgl0NWQ/HfFwWfFHShibUohqGYh2iPkA7NWrV9vGbV1hDeCWxo4LOC
QkD8lbZQIUGp9LkoXkV8cyEauCiUQ32cTjSegI0gJ8shfyPRhNu8dOGGoDHAcgSMTAesRRop/Svj
Vga4orug3QbiyFnBRxnOMsgETVSMU8aagI4KlgLBzGACZwV/ZeBj+gUi1EHpoqRwZozU/fgVtz7T
MJbxlPmgDMM5A0/MP/Cs4AWPaE8LrIB5n/ESGR2SMSvyff6WKIEuiJNhndlXGa+VYbvne3yIPBQf
KKML8h3elliL+OYdB2pG3+W7PCwgyxFvq6BJYafQ8Vd/PxIcUPwhKpJA2CESdhC0Nz/kiZ4Ygc4u
dQh5l0gQJBIE0cWZQYEJQh7wrrdruKFporVZ4qQQWYjq2+/oeO8Ohd4T3f6k0ICCDpFH6P9nRSiI
PmTFPthCxRGywgfMbK/wQWbRi0zUIBPyyHoNIY/M1acCTIz8NiMbNvKVT1a/UNSAyII8fWQ/z2jx
jPbOWgADrzZr+QuiF0VhA9xolsoRn+HPJ/jzMc6x8AXg4zLLcr6P6FPTJdcaGoI8kOK8HXHcWOmA
F5ZW0COZG1p1QZb8fQev9gGdW3rnXI7LNUla8H13WHEU6WjqygAZbfO/5XGadj6Lj3uP96APL57L
8DHvQA8k0qUptN0jZXZU7aR6kCsvIxOdyyollsBOu0P278w83kLIJ+a3ovR0GjTNPdcx7N7jPj1f
5pHXpNdkozNEF3bv48/HPAzLQCuDJPZioosstsQOyZ53H/KwFw662BbDp+w6iO6Ba41ElA//5T4d
XFFDw+c8MfCE+KhfcF/9Xv089FsD3WaJHQ6fcJ8LcgI9bImrUjUnqsdEwyBRNYfhM16qX3vm96dv
y1TYmvNas1oTPQh8o6AJtQlFhMMaGczrQDwuTLoMSAbyNsTorhb6gIV+a1GncpSZocspMEu3n+t9
iDppIFn9+siAdKTbG/U+jJ8V9X/1zoxDF6780HUVGn2UX2FhUR6htkc1YsXuRqxwZNBjYLxgYP0O
WAwhsPJGUQNdbF0sKgus31BosBYa27KoDUuftv1VRvChE8TEf8gZTdNPXpircbcjNMcizbGDHKCd
GBnmO5wKPEK7NdL0i7TmIi2+w531oTTsovTJU9hEj8SYWhg7k59i1VfGiqDAhVlZ+oi//o1nWfpd
WsClQ1l6TL5gEGsS4UZ8uMD1QjnjcP6ZNosc/pX7nht4qXzMfTQ54yEZbcu/8SwDIkltFdoziUaB
xi8SLZFEc0hs7/wL93sqZQY2MsMYmaZFYYwhq7XAqjeZRgL8qEigMhJrjAQ3C9MHFGbt3zQ4lXVg
RQy5eH6POlr2P+A+WjcDGp/fZ3IK0bGfc1/VceJG5Abu6HEHD8TdA3/3srL+U+om6Nb0gFJQUTeV
BIxqJRo+kEyrU4ARoc7hK5laiWsZCwWfLqTT1VWs+SEX5xEiZITxOWIej3QXI12tRFdL5ByXqAUu
ANvGj3gLz8TmlpGdf+d78GMXRp8KgzyRppSWvGHv/hd/voDJwvobThd0ixW3pofsSMLCoioWLZCg
KyD3o/j1F1nlHdWLUoYkPA4wPjNYkXfa1dr5qhLQwcDC84gA/4hA7/gf9jllHAki5M1wjerWx5Eb
ib1Mo7ioCcyAl4Q15w/Rp19yRGvwR8I2H7KPZc36z/jzWHpckHHGQteEHCeoFBRQVyhI+SGUHgmo
QhWkvAmRn4BaJgE1iAKqpwTU7Qko+BVQNS0M3/JjiiUkjmJgnbUwfMcTNGBEyw7fcD/wClo2onJY
dy3AXg8zcXOxAWcuAy1cyVqIJQsuJVZiIPlsOtRtSzRmBNuaOXx05SqXCxO8Doe1yInmjpSgmmkH
6VJayehCbyLQvA/zv3kFf5N04OI1Zm0rF75KYB9BnW3g0qhRTl2iDZK5oYtFU89TROV1LWUmGK/r
PxOh90QTX2JzGCkZtnJGKCiLQe1YiE4GlyMa5gidIcaUMXYyzOkMOzzDqt6ulcmnLwfFNUoVkd+E
/iXia/xY9oVlMX7E82qdiOz8hBfiTcYPuC/GGeucJHLbxJSQpdq6LDpoXZNfub9wY+AGRML4vrQh
EctKZDAlmjiHU7R1Mk2upKYSEbmsModvl2hXyddMhyhqVmdM1QQxjERimNAKwwF5TPTcRF2lA2qn
d5aJl2jh0gveNvS99IZ6ihdnaqtMgy+xcpuKUPmcXFGeuZY9B40OE1PS7tYvwQXDgcTRzPX0oRxU
ZCJZKRHVEzRSl8tzkXMOhxJo8pn4sbNmBygn3oL9kxS6Y5tlzTaXYQdySjNXoYdy+FWiOZpICRLD
OnMUZ2LHmTSlzGKjHbHNzM7MrAPWEbbNB7JR1BvqIxw3tFtmHvHcYAXZoM1gDVrBgfMJTK/wGqKI
keChso8iMUwlAiVCaJkwW6aVm9W4Zfm+gyWs5hnpTGobZ5rNmShdIrqW1WwmFJeIK2aa31lvyIsz
L86E0DIZSlkbT8BM0ChiNGUQtOoTOazWvQJqhTVsD7YDgblCYE6ZR4l4nLBdmHikDDTGC235Qnu/
qC2PawYa8InAXdImkKKUaLcrWygoOsccc4kp0hKzZWlB3MSsc2J1jqwgR+ZNZIq67ZqJR2Zu8IaF
SerkLWdB7wDTzYLdfYaLhA/zldhTE+vhCokNFNsCJmoB77aALVocq8vKaHQshyvPdSvRLTZILGRG
wQuj4FGRRY9GeqTtmn/An/tE91iAFxbzqrx0Ot5J7X/YdHkk0TVPnEyk+ykWLm7bII1jLi9NsCNa
ZCfWGiIHMB2z2IHphCBX3cXZr/w7GTHzL3yC8m4UloMcHm7yZQhxKWYpRsxMe0cigjBLMwzRDLM0
j+Byjp9TAzPAc9CUKl5VMFEsagyDUYdDeEPDCeIUD/JHE6iNQoESG3Wn9YQPBTYTrUGlh0jHwdnN
sLszOj2LTe5Yos6xqJ0q6XAI7ElIlCSQTMJJJmMkMAnH9lILNyhjNOddoSgUYtlAUpgU7WQ+kzUh
p1R6wrdN3CCxKBNuZfE/Gj0o9RlQojSgpG1Avc+AurcB5W4DvPutn2jYCqcEvlGYP+N5cQwwMmd8
/PlLnlVzXBwFmICAFAJkRGIOsTDDQYLMCBAk25Nph2Y1l2kcK4nl0Ez6lBL15WjI43/55SI3Ejfk
CnCeRzLxs5qDhNAyDanMIX0wpAjOJUZh9UimqaeTVe3LTDMl04PNtBQzTc/DNbQLM62lQMMl6CCc
ucHZl2k/BfKMGbSknO8Y+ukIM3REh7pDxK5QrxcduhRphZXlhe0KolkBvSsOevh97jMcFBSDwlNm
wZAEePqCaoKif1V9IToAMmBWzEMc2h+vTAm8xvdofI/G92h8j8b3aHyPxvdofI/G92h8j8b3aHyP
xvdofI/G92h8jyvD97jElVp/VQht3u5x4WlzGoWlUVgahaVRWBqFpVFYGoWlUVgahaVRWBqFpVFY
GoWlUVgahaVRWC6CwnI5gMwLKtn/CShz2ownr16G3Dz/+Omjl1YSv+gy5BfMInpRZ/zZ+HjphzvP
Gubn+fBze+xLiVrDXcrhyA2Vu+qSqaika8fYgpxaNRU302euCXZNYo1OkY6769xnhDAxipj0CGEk
USgzyxVTx33NfcGOxNwB1WR3U95DGCQ7MdGO+HpiEoKKsgN1ZHdb3lnIReNX7AMCAoU6odDrz4o5
6DXEEzL9buazFXdyE9gwLJHYriAcXpDWriA53GbPQ4ZD4Rb/kH0s1Xl/ZR8yiV6mdZppAYuDPdzj
vsRhf+I+g7iJYV3F7Ii/sXRpYEg0ED8kMr9tECaUnHLzt9wXU/QeLySMqLHBog8kUl8Y1NXkcxKq
nBXgvM4TYvl+R0tDgLU73IfCRiXhjEK822FajBLMREnfbR/WIWoBb/vQ2ChTm3cySX7iWcH6wIFC
aeqMMsnbWah9VC3e9mcOLgG91ObB0Bxh3Y4YuOM3vEjA9VuyL+N5vM7zEr75mvsS3PlOBuFhNNJm
kYzGcMUyPLZMDy2TYZLJMMnQ39lxoEucwOl4Ryc6tbZoWxWaVIVwXKFxVIhoFX0qQbPCqGwhZFcY
mirE7grhwaynaFtptDUTIgtEtET4MMFgJv0kM91iYNK/HJQXd6DnBQrCqM+i1SaRPGY1DKxXmcMB
qBGaTkckoGNwsyN+0BGDzSdAITUDVdaqDwnzqsu064jOFMIrh3AiLLcODnxHz3pH0lJH+EWzOSuw
I5ykTu9JGtkBOdIfa/BGL0aTOpF2n9O0FO8a5CjwUSLJNQUskUjHMDLOUkCFiXSJC6gvkeSayDS8
kQmHNxmqViwzBh8wGqYFToqkiOUqlqxQwL7CHn4Pp6kgff5m4zIijHm5Hck0iHVDrrmJP7dgFQv3
6zpRj5kbAzdGbkyMhEpqXXDLPFAbj170j5hYN9MlFc7XA+oNuqAz/bFC7LnohNCvK138JW8WeRet
J4+N9Ax/EG+AIk0kPAeo3W1fEsASxUiKYkg46z73mWM1Eb0RBHhg2FzxAnGchfsjXCCh4AhKEkGr
ikhRG+EvK7OoyC8R9orIKiuoUWTgSYJkM1oeWWM7UBrNoP/Ot9ipEpcB0wIF7zOK1mcWld8uw8RG
dfq8Az0DRekzCsNvF6kLnfl7Ee/QOSPMlxEE2PGIGobxlcDaHyx/QeTGITDlEFNywFccwzCFzmyh
TC/k1RxEsEh9BKcc0sc7QFDMqR+YPj+kE2NN1Me/OeSYxT8zcKE0AzU0I5H1SEtKuTSRcFXWIyrv
idknolSJwHykxE1EsiKlciJULxBxh5nQAenp/iMTRGDn7j3uEwMWTBvx2oKIbwFto4C2URDkjYR+
NhGk0okJyQ/SSUUZ04bL3IRBXGBrFZjDcRKxcpvSSPaPIEvg86PvV1ZDDjPsXs/PpvmDNT8uc99G
mvB74bSImOTNJGQjRrRfBVcX+HimOZt5K8ZJVtaoXlmvZ2Wh5ZU1mCMjXZGxuMiI5SaKuAFjJzLg
FhnT207t5EjiNUmP9HRaZm6gGYk5xlmeYH9k5caSuRF4Sn+VeKTnRsf7CBkBMxw2Y+JSk6RLWmBT
BrFYYXgmLnBJXGgSYFcnrjdJXD0SxAKGu5N0oQpM18QFMkEMXXhBiXHTpIj1AMN4QGuHX3h2FMKB
hHqHX7kvohqcwQErHIafeZYSXbC24Sn+QHUMgEqHZ7xo4c9EQxzzBD5XRAR7xitGwSzRbzM6LAKc
nIGkzlgEMaNrvMTYGYz2n1DC4p2gXYOn4JU1MuB0bfuQqB5v7NFGhCoCqCcBNLAAUljwH/MB+ERe
/uBLgEAWFBLUJNpqm6oDHrSAk9ZOYp57NXbVN3fAeuX7i0B1wIFlrIgH6z47U2TnOeRQ51tGruXj
fz7YX3B0+4+5lOWCa49uPD568OQccxu/cbNOgQyean1cg10a7NJglwa7NNilwS4NdmmwS4NdGuzS
YJcGuzTYpcEuDXb5m8Aul19B7IULxBzr7Yqv4D6hSFLRz0URsgTicIJ6Qxn6hRZ/ItuyqCogfT6q
ulAFQr89keimBPasF5Nir05FYsXVzDQbmqDisEGCdab9mEhITiT7Cot6lYVcD7EHY3qF8bzCZl7/
S2G5cmPhRuQG6ckYMyvr3UWyVFcWqYzkOq4sZBm5fiVymcgmWVl/Ut6Xq2cil7Zs1/TcmLgxUCI6
bqis9ZSaCzf0GsWXmEwhFF7DPBGBgln515kJFwLFZCHntajgZcHJwhQLhbhK0V+JFP2Z+wRcxK8V
HAFwQeLK+MS17EnXug+Heo2FG5lYTKZpLEJ+OFR5zFxfKvJ+d8iPkJnrIKuUFXQGOiJ+xVGJ94uA
z+J/+Qy8AryFFJGaIQLHiWA4zz+JCTyJ3fw599GJERki4nf4g+EKfnxm+o7MOsaZyTgyK49mVlrO
LEoa4OlkVivNLEMaPGnjksBBffERCXpGrIAfgdiM93kRpuaI1EUjEJsRq+tH5AQakbVnBGTkUD4d
RaxLB+Hv0JUOkIsDezliDZ0UyHaghjv0rmjbLGb2N/wSRA0KsYZEPyyR+a0Vq8VC7IARdgAOu49o
ZCVu0GzMXMshNibRuqJupORgWb4XeQP7bWWqtJU131fWsw/waQKclcRcDmnU+SGLEaipC0Hdwpko
wM1wqHpaaHLIvIvA9uINji1xx+i1zg95Qtyv518vgeYePAadR7/7LzhqiGrL4qsRCQ/GpxwXxOYi
PadIz0ngn1GyWwAJdDcENBP0zWFVrZRgdwTpHCE+R+QSZdSDlEF3RNml6DkXl2YuLs1cXJp1KSwT
geRwQmHpBhdIRGquzCVlulJeVxdEVVhcWxaJMek6FHE+OmAMHRCHDnB19zm12sQNWcJ0ncpN0KXP
ODiZRCEzMdJB/elKISZGylxNJCuxCB7HSZyY9wiPOG7IEpZIuERX9MjSHOSsmAmkB2bmEWjWfyVt
iDoT1JDnWmcp/Dv/zFdWLch8P5GmvqShQUKUogN2J0gJ8mrA1U+jmO1Y0wrQII1cm63VhYseoXEs
9YSdto+rtWXBNHHdRIh0uwbz1VFjFGqewijAQU1h4jo9obeXaQnYJoqOgTsTBSqBmoxioMu8hQ8R
4djMeN8Z4aEI8CjexUF0QoS5PqPXZnRXBAQ/w8+YIW+i/EBuBiEV4dpEuRKdPss5+d1t/PkBf0Qb
0ICmis1cqJ+Zpiwz+Vqmexj8DZ6AsPJYgu+hRTyDT3B3SyQo4r8T/1ukhP+e++JW3OYPVQ2Kk8Io
l3gNXuNahFX8Le47Xso2i9DzGiJjmIu55DJzvmVm4wseloD/gY9LvCuVeuARAb6Zqi7467yC95RV
XLTYMs27vDvR+dokXizo+8h15dzXdeJc/h3pHDHbiEp/tnbUteTsnvFgpgQ95fkrBm5k2QzTueVR
A4b8QkwOsd9YeM1K9y2pzcL2ENWjnFGga6TAIU6WuZZyOyWPeMYrtDV8mUXvUrihT5JuAz45Mj3T
qu848q78aWBHL2y22IxZfEyM4vyl6Db5Ho73dBg0+VPmsYI8ynDnshhVwDAzVjA6mHEOg9gBWcof
877yeNhTDhraAUJ1ktKIYS8n9hxe1wGcdbD13E25oXjm+Wvuy2+B0TpYsg52okOeShku7gF/Igof
pqX7nU2F3ZNhkLhfeLVgoWJVIEqaP2P34jM6eBVIhJmdZONkCK0cQl9qRoqjrECoYM1MGsUIX6SN
odBpIexX6FFrHEvMBhmXhMEzYfAcDl64xr3F790dLlaMV/1wCRohC0zWkBgujDt68iVffGaaBjw0
4KEBDw14aMBDAx4a8NCAhwY8NOChAQ8NeGjAQwMeGvDwtwEeLpEW8bppVl4zG8wFp1p5vbwnb7xm
5nzyopxvs162gCeHA6n9gD3pBGEOS/hFcce8l4UTU9OSHeY00Kkdr0isRZN1suvkJUew6PyDzb9T
OcD0nEWnIXn2Rdui7aebcWgdjHU49kVS4q0f8Cydh8SscAqfaWK9TLf28Brk5Wc6IZl5NNW9UWQt
kxOaycvXnye9Dx0epZRmfZZukM2f6C9lfRbfQnwXLp/YjrAZunIgk8d6eHeVX3qEftfhBenSZ7ZQ
+bCZz0ocPNob+ixl0Wp7sj6CPS+pJJlDdD+IZtn4ln6LrCfAoqbullw2ac/IqgYQVrsv+TP4Wt11
7nP1QSHEKYnwuhvch63bgXnbfcMHCZxxky3mogXJBdr9iD8/4M9P/Jn4o4AuujtwLH/kWS6byFyM
kblKI7L+keQj7G7jz/c8LO97F3+QxKwTnvAx/tyi9yoLJH7Gnxs8jFtglVdB1r5IKmkBGbMgbWNB
3r5IQn4B67IgmXIBC7+A9hlJE43EJiPxy4L1ggXp/yJpp3HQfJVcD0FqauSSgDhoysKH3IefjVVp
BazQSBi0IOFgAf2/MB9lQWb/fbvk1xOJ05qnXdKlIn1h0cpJI1+dOUg3v5u1ADJ52IWsa3nzUfyA
MukVhBKKPpmnZApPfGAhJFaYcjXzNzIqFD0rrCGRWU0qK7CmTeJ6lUj6uHxqTeSa9cmSZfUG/gji
BlAFRNg4Ac4AB7yAJBsn5DidpBDFBwKEyGSW1KeTJG3FkJqADGJtXsFyiIJVE4UrBAuIuYULBEpm
rj7xTBcMwAWLWRaM6AWffkHVsgW3WDD3FoyOBWNnucPb9dyQ1TR4Ayx7KFitUJy8JLn8jmU3EgtZ
ZU0Fy/SxQiyfFeFBTwPwK0CHC1DAKF0BaDBqHwDtKR7z0j/Fnye4CILFH4ufLusUgDdEQI5RMCDg
FFvC2R03Oq4BKjziiRIByXGCnvxG90Dm2C+8TCMgzI4KvyI5QXUK8RlZiUlSdxR8RHAVRfXJoI+k
cc8kWM/0TWZyq2de4++IK5wU+FB0Qd1yEp0Tl7awJqbW2uRyVwbEAmMQmQl0M5P0hnxATOn90G/W
moJgnGesE9rPRnF7sHwoY3FR3Im7In/gMmL9UcZqpE1xEgottB4KLYyiepcavVC5FlX/XEqoR+Q+
WLQUtVhFh5nTYR5193mW8cHC1NhSFQVE/gJGfmQcqcjAxUqPMjHxs4QIJknajKmLqE9ByGYbURD/
TEwb129YhAahvhXY5wr7YP2a8b8sSGjk0pDIhSCHcEHhxbrByOUBSM2MCGocMbBlXEcisVXm+N9O
KUCLiwNVBXMpb6cY24sz54zG/xga1NIeUUFaXUfCOGJkMZnIOKIUVNsdchVL0G7M3Ncr8JuxcLby
ikXnL1f9sW4PnwwYe78vddOwNihBUm6H8UxZFDafQKIpA4LGVFg7hIXdCOIM7AGsONruslAcMLyC
dm0bKg4oW1au+xawOZ6QJpm/ouyQzpo5o2fmd50Pgb9E/DQRIxTp4bE2xP/Ew7iZv0u5wVUZiRmd
k+JthLoCV1KvKklYgEwsb5TTiDuRBsggj1on2/SmoV1onhe6LzI9O7WYnvei3x2idBLelsq1jGwm
1MBJUHjb59C+0e4fuaGnWAJlpaCWlV0zx0QkOIj6jQGpCYJntFPWdPp77E2VzNpFIlGxohf1SLa3
gLzpoP67J5RO4jMw9qHrmiWvfveU+2LDi938jIe55LdoxAaCInBMs1QhF9LMMrhTZAwkMvQxEwdl
ibLgJQT4iIcFE3/MfcG7f+Y+8UxdrCPp2HVBnha51VW7LE4bpIItF+IGLU2LOHBEdZaIWi1Ryr8g
qh53H559ZpW/ItAgTh93MtA/4rCm/1joPxa654U0l0K/+LAhMT2oqO4Xflvxn34Tv2NhqK9wAeIi
IerfecLzROAG7iHxvYlF2ljUE7YdCApxktoEsPQQ0tvszJEb0LyL2GgsgCpu4KFCKU+ITy8VWBG3
2dZbywCVuMwTjhgBhlmjYycf/XNcLWOFjmFhPF2y/KMgwGbXcl2ijHLYxdsYp6CVcF48hCVY5oci
EIZr8FzZnBhCSUT6yYw4xLSTBgqI7UfC/hoHiYwyaHyFkXBlURzC5rIUNnzDbhm4AbWAUswhE2gX
lSWFmoWaAlwpStUEEFO2AUfcRIBmgaMKbYHuxEAWUIHFVPrDkUVPKVCReSpwQ4/IYH4mH1C8pO53
Gahrx42BG+KVvo8/cHOiDM5HHJMs3it1BEBkK+C3RSk6yLpqET7aNjhowwf9AAwFSWjKMaDlDvni
2U3oPUpkehodm96xYEwnKigO6rHLkTKof8KL4fqU5TGbrAMZTQS5KBeGz3UBvKBzIBTFgYkwVtUM
+EzixMKzjRNAKvcZ7zZTS6jegD3iPmZPTdyYOX9ozIhm8b9LBHNhODTRpcn0dqTyhceyWv8bfyFq
9Zk4h0EnGoN3mQE+AeRINQhSHp3cu0xuXybpJkjR8d3BDwr0gwJ1EdeUciUq6qdHKYcB+lWUMh8k
Z2VQuSKqZETUAok7uVY+l0wwsJwK+qO8xwGF+2ihrALzqcCYGgR5kuXpIv0jv6/jhueGwFGFA4u5
Q1h2h5VPRuoPKbpJykMk3ahAFRRgJUVQFXpD8NgnSR4iWUMAti3HnI5o3fojxTL8MqkSqnALYt+b
UtDUHupg0JxeKZ2zClQdHbQyMr3gTC9YFhKjUv3W1dpv0p3/5qtLzUNqzFVnKvG+VUhegDNEPUJ1
Rq2EDv5DAW+iLE8JV+z4Oo4bnnYsXnAU5+QTTiZ6BoGoQlDNpVZr4gb9AGpTxld3WgCPcLdTAoUu
09aV3xr2PkSmWU+YK9o1CsMyS9kdlm9LSpRMn0LSU2jONfq6IYNkkn/kYU7mSGEbtbXwU/I93AqK
HynQoiY5I5ctajY0Milz+YD7mb/BQAIbLhfgFwXARYEFVySPD35bEDUuUJsFgeYCu7N8woGlWpCq
TkYUq3wgrQZqgGxnOb5Yk1X3dZYKCiFyG1Nkgvkk0w3iO9K2iDQpyoSUGcsvnIdSTwQ1jOUmoOyU
SapP/co5CmUliCoINtsQ7jhyheMkHfAlD9NLTBxE4oKSX5iLyMKvRLoTN/+Qb95zgwk4yC6jVbM7
OMyBPpwyXFhZk6kd/IHzKoPXayqEg8OcaYMlmgBJBzipLOobZ7rE6uAk2nKJ9kLUsV5kQ/qBLLpM
sDWTYBcyvEyUnA4oKJ3dwQYRxpFUpqZzl91hDso8Re3pkB/xsGB/8FszbHnJBQj+Vo5iKcpBcCBA
DcsgbmWwzqJkHAR/NEdRp/h5+U5MR5mRhcqxcL4VnZFQpkXm3005y0HC6NbBBpU7wgIujKcFWlmB
VlagKpS6bx0x944+S3eI2gl+LqkIO6aR6VjjbSDoTPgoApuKI/WqXhjobgU9RYUaqDwC9Uqg0g3k
FUuzCV0U2lxlonqcKLxon25HRCygO6YbPB94Xu7xHfcDr5AfXue+XChxjN8knCEWO2iE8f+z92bN
VVxL/+ZXefvC/+iL5pxdc9XFiTfW6Nlg47mjg2AQIAwSloQNfPreReaTVSrbIAlNcCpstFfNuaZc
OfxyZTNBnFUB0BdjHs+t7ZbzC8e615hu4vNa9wrr2E9MRf2OT3X2BK3VveQCOcBVtO7QCjqRFLvX
PCjN05NOXP1UvamFDQU2I1Ofr+T3yqLrBfERjXxHr/7GcU2hudxonRUBsSIgVgTEioBYERArAmJF
QKwIiBUBsSIgVgTEioBYERArAmJFQKwIiBkC4opzPa9wiRUuscIlVrjECpdY4RIrXGKFS6xwiRUu
scIlVrjECpdY4RIrXOK/Fi5xnVKvXBJ04wSpa988+Pneg52XOw+i//fug3v7957s3D86PNo/2Lnz
/MVRN77pYuh952dPSv9bMCuje6rCTyUsREf2gBg624EyWcFWEEyxyZZLVA5dN4Pu7CPmQc1+K7ul
JdlCLWgK3KycG3e/7sRKalo8a434khvxlTY7zGO8jY1NLiw8ujA3JGdscIM3uKF7XS6D+Eo9W3aO
VIh4UH/OSmvLqelwyO1mWTUPl85GzYWVZAu29CdXWT8jqp0u0bJFXJJd5JJuyxZ0tZM1LMuKlrXp
pFmz+IQ1q2Vh+TmVOYfqFsew74BZIiCsqA2tRpHQHJCN+Hgbcfw2j2l1NihE3ccSgMF/7AeYlC4R
vSrpIvPJjqKhFVupuqwHNHd2SvVJ3GGbXWoAk9UPD/hw6i9UF1Pl23bAlH3wxkdZ1oLR3PGyjmfY
5ytawTQH084w7akJWtAQPr3itKjjGZIDa7W2dYFnmfSjKqV/y0BOkMdobWytGSjIpfYrhnGDncPU
SyxApmdGlKGEtGXGB7OB2yxOCHuqiybbuGt6fBr3yIHRZEUM5B2bZ+kOaur9lj0REy6kJBsZJtme
MIknO7PBcZKNDVMWuVF2O0w4rRKeqaB5kIN99DXHKnrJ9SybmmXxkGR9t2yWloWALDMwywzMMi3z
byLSKd5Id8NWCJPa0l7Qw8hwAbNawK4R0LACGpZuPVoBkwrIfQFxLzChdVYWbNgt2R2DJEsN1fdc
RToLjHndw1pmyXiMVBjhBArcq7/k2DiDvQwBMSLhkUycalbKAsczmhBXbfSfcRqRMiAuRkyl2h6N
OLEb9beJltWIg7sRe0QjxsVGVoxG9b8nSIIK65F53+xxWl+vdo8jJpkJhE4Lnt2DHSKhZ6NyMDho
xzjsMm7SjAc1qGDawHY6hK7OMmMi+3eIzB26Y6cf2D4eEC+9FeCrylg6lPDmOXfYBWMcjoLJpurX
+FU5iC6fPVmBG1A3WmfZFjr3P7GCcp0tasGhNaCmZNPnzI7BGe4S2q855h3RlmOTZ/EWyrDMsl9o
HiwTMQSqkVVsr3lQXI4I0mK+CmrMGgwwhJqJYjMao8y2a9Yk9kBN+EtswU+YBsxQl82ea0yWzSSz
cVvMtKQ9BPnZ8+Z+MvglRIOEsKAiV7K9JflWT1aABJPtkdh6qpPggdi5g2amx7UaJEFnwimdzKGE
yTJsnnM8UGgp2MsbCopCfsqxSkQq+e1xWtdK3plf63GH2g3vZv3JMtsdzZBf8YaGG5Ul86B2ZEYw
LDPHQn7+k+OSQkUBxTuydEcYcIRJqzNG0+0WlvEcFksGhUwS4EzehVwY4tZS/tqm5zBmUrOH6lcu
kA8XXViNfThWwZ4i7dY3OVY45S2O4d4JpqwI7RrRO8H6E+4d9rumClNK9Al+ClSWbazBsuYp/zqt
NAFoLQe7oWOBBk6gVZJS1JjaotFndVY3G/p5g/OuMQ8czLtBVG3Mr/ySCx0X7FZFur7mWA0Yf3Jc
UGgp9BSUgFcc6/oEm25YOyynezNJ04HFCMDXXY6RwHUhbREjsIAgdoOZyK0hMx9wzOIVWNdUc8CT
mDHXjyTZJV1/7nPMCuptBUXAVokXn9q4NHGzyjYtEgEW0IzPYLwZlc6kfo9IHFgoA+qGSkQNLdPN
7rGlk2VwoocVMtgSjIytrSO7z2bZ7jbLhry5f8Rap2ubiCKyq+34Nl00Nfm1oGdlg94sG+Vm2eE3
yxa7WTbCzbL7b+5ZyVXek117s+zam2Uf3tAK2qRVH/FdXTAnkxA4WZ28yPsZoT4jwmck99ybqWnC
34LQZfKySmX2wh4L6eybdeTB/GcK2pVqDmq5Z3biVx21xI5Cz4oug1LsfqGdngHPgZsI82bA8zMO
QbE4tOpm/1ZvDLh5dX0dJngq2w2zC3Zgp2yTJDJQtIznsvwUBm53GPeHLSo6tBZdsL7NaZm49Xdw
DriNTm1A12Nd1OixwwC1jtWmQtOOIAgN2aHuhTQpVorSCGztnc2/iMcmMrUCXRJwuQfAwZoBI01g
CMXUyf7VHv4zvl7EXk0L35qjzdZuhUC84DoaLCFTBxCMFKPcavM7X9CYkK/kR6wGpVghSrxaiQAK
zM9Y3sEPZbAaGaxGwGM09oExOViwakNqw+osgYMIMz0+K13oZPP7jGszkCxgNtpUdJncbNk8QYwu
8xokhBemtE4SBczv8DEb5QiP2VrXxkHHPUSWENMz5azQGaeWo3Y2zZR/vGJEDryMmaK9lhl4mXFN
3FQuLBrJUm3A8SzkjKwbeQJRY1TE05XNp9/OhrCngOEwoLIFFJQOhqm8qGfr/amJZIkqyVOTEa4y
y1qwdxiHVsXkIWwNh2E0LULH/zdUFSEpo3dGmHuHNuBskCBcmjxnmLuM1JVtpCPyaI4stfmZGc/M
qfgaM46OgNMx4HQcyUKQUJuoWBJDA5TC1t2A+hhYrhyrlEpD7Cmf2V8/tN/TgGiS6J5oo60Gh8hg
HNQhIkv68JhWVuVE1EUJ08rNJB5F07gRGwIAD720OaKprTqEgSip/awgOPSafD8yAJ2kWnISNOck
aM8Rneck+s4R1Ockes9JSJuTkDknsXFOIuechB44QS47AfY6wec6wfc6AWk6AWU6kG4OgJvDOOWw
SjmMSw7blsPa5TByOYLynCRrcpI9x0lKHSe5cZzk0nESdeckJtEBw3Ng7RxQPQcwz4FMcwDSHAYy
h3XNYV1zrK2OZdfB3R380MEhndj0nKwNTmawK5X4z7X3Ik8r8lPsgU5WJgdwIuA4d4Q9OgIZHV5a
V9g9NCkv5wlxGm8rrk+UQHBKgAylssixUFGoKTQUWgodBe2zT+UHgmQ8O/Rbh9LqCqmfLJHb5wME
RQiKEBQhKEJQhKAIQRGCIgSJQjkWBgqOgqcQKEQKNFCEngQ9CXroXV2iHEkJHXmcHHmcnGU3Iup1
O/ztZnXltzyFOdYRWeuIjXWEtDqCTB1hqY5AVUdYqiN+1hE46witdcQLOcKEHPFFjggiB8begcl3
oPYdcH0HPN+Bw3YgXx04VweK1Qno0glSz1U6te7Kj+BkJITXFdakWpNPGfs2DSvOaKXRGDLTRI33
spBmrE1ZwqkyaWGy4JyypHvMTkx67r4ag1SBcKI5RGHzUe8Vfu729F7FD7o/9AMqnziWdEGZZEcS
Kz0d+ZaqlY412LGGuQMNOVGp0aEdkmVk9GjUeilzSW0NpOTaflC1AUKhspdF34v66LUhFH70pX5T
H0JEy14WN/+E0F2FMGKEcliwPLYLD3EkDcwEsm/PqDApiPWxykaj50xPB2YqzcPapeTozKTmzEhL
mciysfbybQHyZKSY7D+HNrkxisbtXnKb1u8rbiMa3j6uIgnhQxkUbia4PwPHHUFdFWfolYbaqIjh
pDviL5zWcSudJdE1OR7S79rLP2trqYTqXlB9yFV9DShgVpOFIJlyfEQjK+nPOab1dVCGaVwla2ty
cKkRRrIKjWODWgdujQz+yBlrh8iXtBlJOpoDMroTo5j/ltZVSqA121eYFTol1QjhmEBRBnf8WW9r
GGuOwa4KUxSBLjLFVUp3VFBbK766NhloVmzGis1YsRkrNmPFZqzYjBWbsWIzVmzGis1YsRkrNmPF
ZqzYjBWbsWIzzhWbcX13HlmxHyv2Y8V+rNiPFfuxYj9W7MeK/VixHyv2Y8V+rNiPFfuxYj9W7MeK
/ThP7McV7nRysHO4/+Lg/s7hv8eTj+8ebF9++K8nh2d57GDn+f7B0VsfPmtG3WnnkcMXzy/iK++D
mPmnNvynbn3nNionM169vQ8u+ON/1yEX88k3nxsH87/vHez/ebhzsK3v450bf+7uPdj/84a87t93
n+8ejjPgxv2DnbtH2ylzY9t7N/bu/rH7SA7fPDsW7u/vHe28PDq8ce/V9vqznX/vP9/Zu/Fw+9SL
bYPe2Nvfu7G7vePRzsH2d2/n4PHO7qPHRxe4CdC1qNp5bNwTTSbBBB+RQeJzluOCO5IWIiuDOk2c
SSm2hFfc2lNQGeELvgLP9ywZahWILK9s5z8W7Mv2Xhh+hGw1gidj0fBufxcWX+sdKuNFFjT/kkRN
KiH8xnHFeqQ3fsUFhA1Nz5BEQIxHfBqZLNG8aqFx37FAatOJMJI+pzV0ZZX1R3ZazQIMy+4ZS7y0
pezdmjGuZtntNZP6KQckiYiVJiBbyc7IOVlF6VG1S2C5zcn6eBIDkCeekSGKZ9Q6NEseFYySDbRp
BrBfucDDKhaY1OL5rtaG3fRHiYwzycYFZxBAvuaY1+uoZj/27Xt1wHsbZi8QRIVEJ/A1/xBJk6Gs
sqf7lQs0Xqa5ncmrEOj4mPaV7OOeox0zBKc2tCciclygIRz2H0Z0QhxGdmbyqqCTbGijLgScRY5J
lWQDzPQDPTVQ0Pre1jeg9nyhL9LpJNtq53iT1zoaWhuBmeotmQICdWNzlwnnmOiZSjsaRrWChI5k
GgBzceqHyESHRFNM/rx8IO7Ka1deu/Laldf+9/HaK9SVj0vqIqUf/nv7haOdB3+VwvWGG0f7z29s
NsWlaRBnoeuk4v9Z1f75enbrYOfh7lYdvLXtuq+3j999tHNGe8M1sAGcu9ngnfr7tVAXT4Wu+fsO
/wjqd1q7z/Wv2jt3+e2vZnPh/jSbC19/k+ZVc42zLBGXMSXOna43ND3Yf/bvg7t7j7ZEfTf+3Dg8
Oti+dffh7s7BBa7K7/zsNR3P19befl1M9P1Vmuj7yzfR91duop+a8ZnIDzfG9U6n0f8+V/lCZYv/
XI919sbmX2XV911fb//rN03VDf2Noimrtivb7VEz3Pjg/AkfaT984PLa2dfQvRdPn15LvdQIO7Ff
6vBw/Hfjxe44SHdf79zYFO1FZu74x+9d3Kp+Vt/5JQq277nwvVNkuhgh9P0++z62jXNwD1wb7foj
XRzeT18erkZfHlZ9+ar0ZVu6rpvCfDLCLm9tOnMT/PPae3EG7Msfge9Ty78uaC8ODsYahHFc7B0d
XqrZ4+++fVLetK5Xy/WqLYd+qNtq05Zt1Q7dbLkatkerTnktuuEDVynPKBKczmr4AUgR5yOfvZ/5
bXhPc+MVffa9rJzDanI8I1sqqqru6qHsus2mLtuJLdWbcrOuDtejGz7w1eG6Z8ddx+NyPDbtZtiU
ZdNV21FYlNV8PNbVyhauRzd8lH6I5bfffPfw35tNeemeh3eQsrKXs47rvqzqYrMd3XVT9n07zMZ1
0ZYre7ke3fBRsZe1vzf/Kqq+b4qh3xSbom/7rpyvJ+1qC7ou/fDfaQz6L/QPvUPAuEyP0PuQ8n7g
jesIKFnlu/czZ7RtNRTdsNlyuKGsu7lg0bfrOnM9umGV7z6y/h6qeig3fbEVLopqqOfy/GYo1ml3
Pbphle5W9M8xOeOaAX8uyHp3o7hG9rsbhLFeqoi8+kE+OAN83fRlsanLbquvt5s5K9+eXlfU69EN
qyD7sRnIir5su7YuN0Vb903bzDWXol7n3TXph1WUvYy9LEeErKzpH76kfDK078kk4mPtchkffP84
oVN/+/TS7V9O37loefPcyDupnPo2JGCxuZoIGvnuKmmfdampy76v+3Joyu1K0w11PV9qqv7G2qCn
bNCqr+u+3rZf3xT9MBRzTOH298a1WUjWrjtt130EWyGtnX5aBvgxKLmjQPR4d1wzd7d1OH+RZN2h
/mojM/+pky96u8ALCWgRie6tRF++/vSeBP99xOV47cbuw4PtnL9ANeG84ptOUM3Lwca8TZW5ZsPm
cur1zzG9yxF20RrzxZlMVunlH0TWqhyd3X1bVW1R9nOJ9cIQ3WczAC3H4iqwXkiXf+Dy6hUtklfO
OVd4xz8M2b8Ray9QBjnt1y541btMlvtuU2vxdhOvEfvz1199tiXwu53fX2wvzDriwc7Tu6/+9fzV
/z47/M/27s0/VWTxgsOdLSc6fLV3/8a97Y2/Hd64Ox5cqJbw7nY4ZSamdcexj23rkHV3jg9tQ2CZ
uFe1V8Zpvn5uOntxMtPEPzLcvf0b25Z4vr93uHNj54+tPHPj6f7dBxfn6jsDIev2eWeZJ2do6Iuc
OOdNznGz6HaFebqdFrtbfr/z7N7Ogwc7Dy7aL/+2z55gxN66efttgtR9US62otRJq3Dr1dHj/b3b
9w92nx+dqConpuBSu/StzK68IghC+XGxoQ80ke/7Lc7l1ezedZrvnptQUJ5srp1xpBr72+rQj3b3
7j69cfpH93b+vHGRW23bh3ae7jwbrTQTgz45kRN7/9C3A7/msso7F9QLMwP8w4C8GEL/+tW/mUGX
9em/mxiX9e1jE+uCP/qelskzffwsms728rXRupSWi0YXfBjYi0vRd7TFL0Y+uQBa/vvUl5O0ykU7
NN9h3fxz98HR4wsCf71V3qwujnNdh9Y8AR88mR5ZnYarnmJ87h88EGP7la8eRslHmMj2/em9FH/B
tVUP1kTAF8eiLkLZ/wDT656wQT7UxMinrd4FmNGqKzKjVe9h0rrgtDLnZrarTun12JK8Hbd7Ow+u
lZvk+Ccf7u+f9NbuAsko/tVc4NuPDl7sXK3eZnLXNcNHX4cqnOGRelP/zz/MtWtsw/xnd+RFkPzX
NtrO9cv61HY+X9anusv60MhFLtAeOXXT3aeHOxc8Xd584zIq883dby6QsX++t53zu0evTlP1LUWX
UfEb76Zt4eF48fQiF/r/V6SZT8rNzTeF/+/Ei+eIYT3av/0m1esHqD3+dQTQM9dmqTgHa+3f9Nkf
d5++2Ln58DQtc+Nim+avHxwH/WV96y8z4NIWjvkMuoxBdypj/RlFm8u0759M9PyHhtdpcIE8/61K
Y31FmKh63ZblrMabcVOCqujLTTdUm7YphmIz34mirteMEdekGz5sk+8lxhlcnl/+w0ci1leACKyv
yGxbv2d4wjVxdL6vl3ONEftIF4iPBg7+j4L2y2dPx7FyIBeOTYCPMTrmTJrBRRnJ34+Ys3Xp5RD5
MePH/rlBinLVk07Hf7u+7tqiq7b/NkPRzjPtNJvixoXu73r/8f7+2Isvdw/HGp2/p3RV5S5vpHz4
YI7zH8zvjUQ82n22s//i6AoE8tmX/6tR6hcC7Tq7wDLrlvP2YVzNPoZXVtO3atXNCfdpudxd+v6O
xXxU2/WduoIns6Q3qyX9Pdb9pt+0m01ZDe0wDN0w3923qarVkH4teuHDtqMvFoGH+09Hje7o5dGl
CD3T5y5skTqrt+BU7PTi9KiPd/eXawFLbq7Id9Bc6WZOp/j62afBNZFTTl+LqcGf778Bn1xMwvF/
VAJfHD7/1929V6f6ott79dn29gvKv/PPLXIunXwGofNd7baKnGcUdqqu6OtiK+90m6ovi7ms025u
fKBO8lW2PVt3f6RRYqe0icz5ytkMirzhY9mv7+11vJC2vQCr3un69a0CVXtFQMX2hOaVj9QlebwH
h013vc3WJ8Wa/bdtX9dekRLWXgFYrT3LRitnVJKe3z0YnfSbTXFtE3n+PaWr9H5WSFfX9X1fVcVW
htsM1bF8cE2/Qq+vSTf8t+228QHsInm1fsUF/7vw3f8uk953agx/7h/8pjP6pF3605tHDs9HY5l9
/+L2Qb5qAOjfVPbizKYyOiR3y43iMp0il7Kp9F/FusvaI+69uuBj4WDnMbxPpF6/7452C6JOPijd
3ivhcOfK4D4UhlFe5L49q5g6iall3VZtvem3v20zbJp5Nr62GFZt4Xp0w38ZvPftbOFcFrG3r5PX
PjfWfyHy47pk4bpK2MblWysvd9vuv4grHyau41pCLN7OVC/Oq3m9vIxnHlmrlDJmbu7qoai2Qkrd
1N0cKtA2m1VWvBa98MGKih+5g3rGeN7tpT5fe0z5wfj+ytX3915BokW9abotY2iHsum7cs4aun5l
0NeiFz6WTZe2ugJbLOzvvXj+6GBMIrOzo/u+XQIS6i1fv5T0HNce6nodvIPlBSI1L53SNQ/z220H
b5mRl2YxOSsNb9U3L05+etsXLzgl7z99+gMfyqtQ8ndCyWazlUCGpq6KsmiaaqtEzsSSbtPc+Kj2
umIGvV8k0UV+83z93mf1w6wT490TYzWoXD+DyknR/u9nIL+evoHjtF0v2XjlLksYcNk1/ZarFFXR
FMVmbqztqtVkfj164cO2yLw3H7mxFT2O3pkq7SwZMs7yzAeUCOXi8yNcxTfPb4GaD6yLcWGzCp5B
sz9SQ8HjnbsPttPu7sOj7d/Dy01T/1YazuYFuT6Ayw8H+rUYqquYc+oFdii6vt20zdCWXdH3w3yB
bdpVzLkWvfDfFnL2wZvdT28OeuuCckkwvrPTsOL5rhDPN73uwc7Tu6/+9fzV/z47/M/mwmxDp6Dh
aobeuqD8q9wuJX1V90VdtX1xDGrW9cW6rF+LXvioNh/96xx++nRL8s6z50evRO29QvXs70i5VuHC
1yti/v3Fl79r8CuSYk5NygWgI6sPBsdZrTjO9/JJDlvtravarSJXVFUzY/j95m3a9Dv8bbt7h8+3
tbghY/pwFK8e7j7dykh3Rgr/8/ONNI7vC9SJztuBeLIKXQH7WUf0qUb0uhnOuhnO2xaSD2cznOq9
YRnny6Q/do67ph/9iJOardPoUqfRyV775+Pd7TPP797f2XboBank5+R+3vL+p1s6LxO9fZomO4F6
dI6++HljXJu18Pz8w9V1d2BXF+zAnvfvf2ng03m4aGbL5odnKvsHRnOVJrP3Iun8+vJCPW6r0P/+
0spZxsnaqGujfhiNetFGwX9Wup7uPDy6NNHosuv0/mkv1uF85uH8XiLkGU0211r8vOpQ/cuefSeT
4a6bpezcKvZ+hvFrVacL8ADXH4yvuj6Vr/rv9hq4s3NwsH9wkviZj1Lt/tC3KKnPCap0b2f7hBje
T5jA/h2D6TQGwqt1052gCS/SzLpo+QveN+P6T+Lzs1puJdCdvcPdo90/LiSLw4eX+OEk2zZfmElt
Mc7Pe769oXln7/7+g+0A+ffTnUd377+68ezejSd3n9/dUr7z78PHuw+P7jzZPfz34fbPjTe37tx4
84Znh0P1riCyC7aBXkbr/Je7cE2cvLH5V993Q78phqHZlP24Sf3kvB26+sZl+VX+yqE+iiXvPPbh
mokSl7391kk/fT6bAZ5yi/OzNs97s8aze3xXTvPPnOa/QuE+Cfu79kHcfyX2Qv1yf10aVizZfx97
uDA98GTLwfbfptz0d3bHFei8XjpbYw6uVQz0OUXJ3hiHy9OtvHUtVM5rvgHie4sl5yn9LIf7B0H0
YjpdMc1nk8IvlriTmeH2H704fDOtT2j/PG9GcWnSRHnF9s5jDf1erottbV88vUiEwLu+ek2NtR/F
/h/Hx8nVwABPQcN1SKz3IWfIO1/j0WyOXnDKuTN/8RztVSf99mqbOa58DWW72XRl0ddbqa8t20n5
ajbVukXIVbf/CkY5+jCAKB+ZLLRO0+PTtKy7ou7qrumroqqrrp/P06b/cLMvnPcU+EBCvdeMCxcx
Cz7U1eqYRHl0cHfv8K7suvzg3o3b26/cfEPm+S9EpzAWXPDeWadogdM4QU9ZtwvZMlkmfHFBvXee
S/nJQElnrvy1YKsfAMjs/R8+nTHjQ8vP9PY5fLmImtMZC97O2C418dN7NOL5mInOoy3ObDF6j4+v
MtnSe94UVdU1xdB23Wao5iJZX68GnCtu//8KA44s/tcGvjQn51yEnrkUdc5Np4P8ujTdnJxzbLrz
8lDfv3t4zJF7dZsJ/x0l636pp7co9MOwqfpN0xVF0TblbGfJpijKdfm66g74UNevM+rliuW89/Tu
3m/SZbt7z18c3Sj+80nfPfqkDNufx/LzSZe00GcKdiZK4UB+DuVnX36ey8/v8vNCfo54snpT6D9J
biwM5SfDm8L21b55c6b9ZAhvzuRPUi2XbnIsDw+feHm4efPhofukeUPY0H/iNnLHN29+nFI8Xije
FDafuPJNYfgkyK3+hbzqE9/zlUbf6oNekluze8zLSqW9bzkjlPlPcs+ZWkmIXm6+qdXU12/vsIK9
pXtTqL+Xl/0hRz+++ak+SW+q0IdPgtSl/W78SY1RZRWw9w20F+RpC24fS9rYSb7pleBttYeNfjB7
rQK1+573OgqephroCWmzYuxivSdqxYeW9xZ6yWtvfdJEJStaITBOhKz+ifzsvjkdP/GFXh8yL7O3
lhQqqeNtjmt9ed7wchtypTaQjr1tIVJI2tlpQ2WpvqcHPS3upTU3T6UrfpGjZ1wNFOwN0sT+T62W
DNNtiyQGrrZsr+NzOxpllPRpR34eaINPL49y45GOeKlkX/zEdV7NsN7VN8jg2FYwZm2fQCf6zEii
fYLNgU5btacndHzWQV7/RH5+08GUBjl+yt0lHxvo+8StOs2VRww1I8a/pJn4pvZk9Um70Vt72iPU
POy0ftqTm6+EkmfSkA8Zpx11peeDfKWk16RZRpJhYjo3868MT2mdjtkQAu+M8s09XtUxcSJnKgqN
vixZTWSYWU8HejIy9gP9JH07sjXGT7ACc0zmYZ8eMc1rXscMkvpl95yGK2gjBkbwPKODaV9+Djht
tdHR8DvTysaYTgHj3TrYBh3H7cispS66/mxfIwRuvmFGNnpHbOWOn7TdHStGKuXzd6WfDuToECo7
CjRtpK9jw6vooEjdo9UdAqcz0lObr6kCzRDtLVKXzAeTPFrvy6t+4HSrrxaGMLYOvZS0c/7g2C7I
N4rfWS9KnQDdm29sR3+AcenQqj7pjA5WmWzc0mjP8sE/dRBYQ8gakh1LqRJQMsVt1RkYpzoDtwV7
h84YJluvjGJbaDesXpA06GA7kp/XPJHk+CXHvCojdQRb0pk6mbFuq1KmcaQFxtld8l27uZUvvdKm
0ElbMIdK6ux5y/YZ4SuerjVRIctYa7+HkerLtb/6dEv7b6JsUNag3+3ucUHqNzAOdQmPcNnMuhZ+
lhuNnUcVi2rpGeW4FcO+mFZGFaVa6d0hQmxkMsrHdd0cPpMf6YpClsLhU/n5nGeV7C/l5ws6SWaz
FwlokMmkst0AZcNX2gfak8O38iONNtxk8Eo3DN/RDkqeCAcdvEY5wSCdNIjEMwg7GZQObbpfdExl
RodKWeFX/UTjEXGNxZWsyS2Tq6EJkvaUiqwDj7ew/WoH5isTY/iVG20SR+XkQ8Mleqc3oU6XJKn3
cEdvtGVTZLuRMpVp9Ct3qULNwuIQPGqmp/RxxThWpjfI4BzuI8fC5zut6UOtedaBs8OY1S57sz5t
55Myq+GxtovSPIj8MoiEOPyGFNwxNx1tULDQafPIIjw81fcxcGWMNq/kSBjyIEvg8DtNrbQLyxtk
IRlE5BoOWLhlpgx/IGv3rKM6VP+EMsaFqgKDyDdZSXjFOApMsahkaLcOMILhDStMk8huF5SZbKnQ
UZIR0QsY0MAcrmy5VH1tmDpLP9m7rzkuGBmIYNLg2w5W1S7v69hSJjBQ30ofHjZ7XKgQcp22iCwy
Y6dtKHTcXFPQ2fQLx0yqHp1GRZ08UqXCoIfJUPkeUUyFm4EGGniqMq4x0qE91jF6A8PeyFL2/ZiZ
nVkb7A6YqzNZDz5sbECfKm5yrLOAxbT9gdfzVlkd+6BsYHtJxZqaDw4TkbqkNTCpzCgdOONmb4av
6NQu6LeBPhElr3f3WcsYoDZ2nb+Ejfv+YuDY/OeTcktaVZT9J9WbegnX3A5A6e6++EaPtdsKJkrx
lR7rAl7AqwvmQoU0WzFKKzS5Snn+WKgo1BQaCi2FjkJPYaDgKHgKgUKkkChAj4ceDz0eejz0eOjx
0OOhx/OewHsC7wm8J/CewHsC7wm8J1CvQL0C9QrUK1CvQL0C9QrUK0BPhJ4IPRF6IvRE6InQo+pB
LW+pVdjpayGhFgJEb+1r+Xgtn64/lZ/P5Odz+flCfr6UHxkn9dfyI8OpFrNPfUt+vpUfEULq2/Ij
62Ut81jMPX39k/z8LD8ia9S/Kt2NpxAoRApK7x09VuG5FqtcLTpBLStULYa7WoxztZjqahHva1mC
apFw69f6uo4vd3y548s6K2pmRc3SUCu/HwsVhZpCQ6Gl0FHoKQwUHAXI6CGjh4zeyKCXB+gZlJ4/
dPpqoxXGC0TyKEQgKUQvLh4z/RsKQmnxQH7uc7qAK8BZet4v83tiG2ZHLSm8aQ7hUFseKRyq72Rk
dDIyOhkZnYyMTkZGJyOj+1VfpCMDQ1zfTSJgrUqTikNeflQt15tUgVJF71P5+Ux+PqcyAwVHoacA
6wxWoC0CbREpBJojUvC8R4wWW+JlmRpZLu9RvaowsxbjpTNGrsp7X9zlS1wIkK58rVAbz/g6mLss
f+Pr+FLP4yq1FyiiBbJsQU8W2M4KBnbBwC5QrQv0SWx2Y4FG8bSppwUjPTpAfKRrlX118oxOTW0p
nZYY8dWEL1ysEy7WSY92wsU64WKdcLFOuFgnXKwTLtYJF+uEi3XCxbrbzC7mm2OWOiaeY7o6OIJj
3jpYg2MCO1iDsxfCNRxz28E1PN/ydsY+Ch/xfMvbGfsoTMdbAVK9kQob8laAVG+EwaG8FSDVM1Yc
3e8YNI4R5hgQjkHjeGpgPA2M1IGRMTBoBoZRNpmGYWSDpudMz5nMJzJkZMjQgVXoM/pB4T+FMJ5C
GE8hjEdtTYWsK4WsK4WsK4WsK4VyXVleClleClleitdUm1mo46MQba54Cp/cUJDGLGmfklYtaeeS
Vi1p55JWLWnnkgFQ8uWS7i7p05LxXDKMS6grGbQlI7Nk0JaMw5KBVDLqSoZNydgoGb0l47BkrJaM
upKhVTLmS8ZqyQgvGZklw6+E05VIcCUSXIkEVyLBlUhwJRJciQRXIsGVMNMSZloiwZVw/RKuX8L1
S5g9tvRtIUJPhJ4IPRF6IvRE6InQE6EnQk+Engg9EXoi9EToidAToSdBT4KeBD0JehL0JOhJ0JOg
J0FPgp4EPQl6EvQk6EnQk6AnQw9yhbDpQth0IaJB8YNKtjpjKxWmVZRWQVrFaBWiVYSWpaCSpaCS
paCSb1TyjUqWgkqWgkqWgkqWgkqWgkqWgkqWgkqWAjUAVUqbsI1KxJZKuEcl3KP6VclvkP0bZP8G
2V8F2uqOHqtAW8niXt2THxHCKhHJ1FJWiRxXiRxXiRxXiQexeiI/wl8q4S+VeIKqPfkRf3YlknMl
HK4SDlcJh6uEw1XC4SrhcJVwuEo4XCUcrnqt5HfUtKOmHTXt0HJMrexRbnqUmx7lpke56VFuepSt
HmWrR9nqUbZ6lK0eMnrI6CGjNzJQtgZTc6FngJ4BegboGaBHTQEF65b2cSFjRQyQIyd3FBB0euQb
rVpH1bpJ1uuR0rRqnXR5t6undZR0Mi46GSyd9HYnfd/JYOl0bZHB0knfdzLaOhkQ3b11i59zAIH/
HabsajZ9ODUl5xdOe7jz9OFFbFV8vkG/MypPEw+1wotWeNEKL1rhRSu8aIUXrfCiFV60wotWeNEK
L1rhRSu8aIUXrfCiFV50KfCiK94eeUUgrQikFYG0IpBWBNKKQFoRSCsCaUUgrQikFYG0IpBWBNKK
QFoRSCsC6YwIpKuxaty6efuvm0VNaJzdvcPnO/ePbgis5vBfz1/978Pdp0c7B3febPX4n6Pi//mk
3ByVb/5WJ8W73Hp19Hh/7/b9g93nRyfCvZwrlZeLKVq3yv/QdpSq26GtNl2//e2ablPNU1oU1X/7
Vvkz4Ni13yr/1LSus+DEs+Cj2ypf6Lt9tH+wc2Pn5f2d53L24IH20SXvW/8uci5kq/lxwlwb6OpE
zLVgEifbVXN8997RjaNXz69yb88FFR9ZWp8Pb3f6s+/y/i42cIn7nJ8PKee25/t7kfMuMPvocDY3
tvm88fQPoJWDwWMaUC+APxXE2qnFc7ynBTqkQAdAuz1ecYezW+yLWWC9I95DIXRfcB1AXIZINUS6
b/gYDnXF27QvFDsAiDUBObQb31CRDHKJq3e81AKd6IG6FHwH0LhhMxRe0QCpHUB5b3h8wADqgdEN
WEIdhQA8xAFXAK41IysDJAT5K7i2EYYVoI8zydDjYD0TFPsNN9PBigUH+D4WqIwHy6Bm1AEkSPsb
QA57i7SE2qEz5mM/IVDE8Dp+WdGbQEEHcLcWq2DfGSyuAECdGgjBSW7r6GkrD1ZHMV4b8PqGkgWm
PNIHdDNyCSQ2nxwmLGg0+FYJ/NsAfjS1Aq5K8IeKSWmf8bIaomQ8hO+5QGurbViAfb0BMZ3aOceW
AyKtg9SDNR7ow2BRDPZWhp8NSAXxtDooxvfShIEYhQgsJgNxs7EQrHkYm4qH3GBxE9BfbxCpAZzq
YMjnCZ5shEawUXopfcuFEmBwDWJcAVuC9eoU9ANyyhNEoYDODFhdx06iZTNhFriXRrqMUuFyCsgr
ntMeHqCwhYlYBQZlOwoLNf+RZ6LnKaImMtLV3m6jzbyhiVmXxL42gPRX82GEyaZdXsWkUfu8FxOt
AyOo1j7/SOlU6/0AkE14zMjxgj5RE8ahq4CagIMBuL7RL6oB3wPja3eZOtCULMaH8WMzL7EUAPUz
QPBrHVgKfWtgr4PBBacomOmMwpWBL4vlfygnIGmiBQf7MtN4opdQK61qApw8TLizBEzQ8W3Dg2U7
Q3XVExHgBO3EuTJkAMvVb23Ho1qGowW53OV18Exjchn+DbR7YguKT7XWs6U0s3YoSM0Zppn1xeE6
iPhk3C3ukC+r084w4I5wJKcARRkLjhFva0Zm5kzIa6Uz8Ua5Q1b6Qcen4CjGyaQxSyx87iv5EWR0
pQ/J4uq+oKIyDgXLPPIS5csCGRRwxoCHYFCUBsFyg1MINPg/xXE6QVM6QTu7m0SySPtrgxUMHPcD
T2uDfQdDBh2tcGYnIGonkGonK4YTkLH7VrtHkb0yywcJ2hh7TcadeyjfvkX1lWDFWTruJnxHmYG7
xwWLa6OgSx9y4CDwxcHdAUipfai9LsxGPdl+F4aoH34A8F9qrrhniTIaJAxqMAyyhtZIkNSgYUES
G9UnvVcWAQ2pkeiLQWMtJAJiKL+F4eqQF5iyxLeMnaLLsHSKRIz08NQB/PH2xkzj6TJHDMJgGH1D
qhvuvNARIlEXGhLhkLZnsGuGCnhSQ6W7Ge4XLLtKscAuBuTvwYR1aejBZGWT/0xqRLwd6p85pja9
VT1RgLoBoox/KM+xlRQWNjD1hmkQ2lgBE+tME3kA01U2/FTbMRPLqCytvM+DhHk4i5EzscSoRZix
cDGjdqCOA1jnSGUHe9xqxCW4wiROWkCcdZej+sx2+JYz4fEVx52SrgJOnFY3HT/lHrf2FOg+R3c5
Vu9EoKaKX+2P3EHfO1i7whoikqZ1jKItohKdravK73gHrCNCkgehDxNVrWMsoMw1NKGnVRSzobKL
sJPxNCPD9IfBvkPVbdizQqBIOFUkMn2fGSjjqlED4rb30NPeqGNYaIyg4kinWLMXXAc0r2tZgnCD
djpACZEPti9RYQyETpRBMEqokYmHgUaFfyFQOJZPQ08wFhJjtx8mUcpg/ho5qn79COLeTQFg3tQC
zzQ0IpTiXzj2LKCqnz3m2CJLOyJFbdWniwOTh/DnH86+Qeb4OvpVVazNPseqKT5jNWLqBCwF2r2A
wgawPHnGDkSXGVqmZISXRGLSBl7n7Bk4X6BfIy0Z0W4sasjaRe0W5QNaH/0lQXikqqpORLi5+8TW
eFvBoj3FMI8MpcREjUafalOyJG9kCRZE2ng/WwUoiGqKzaTDy4m2ZF+hzjbUEu2SmMoJ04q1VDIG
YIG79riF1KuUQgCIjqj8CAWejkimBMMOvBGFlk2c9I88rN35Bzfay1jlB5v8tH6y0F3aOtPEmfh1
lSicBYXRMc00z1QSFgzgeKzhnXe0TXQlal9zHfMIUppJ6xaPieVttkSZzJ9pawsKtgVSV+SMZccR
JlfSHJkl1MNidM0Q1M62kRRepQG+noj1msA6HaotnV/rjYKn8iIPC+Bk1L4i2zLIi5RdmU6vE6qA
Y7byvECXBo/Wa5FQFmAUMPjpautF80iCZEp7rNZE9Sv/3aDvE2M+eFFJvCgoXpQKiZTsndH/GZVW
Ae8Wugc2LzW4pud6HNmbQfVPLzqBv8mQ1vaQpdqLGuJFL9ro0deIOz3KsQwGDSSVth6bQIaG1w0i
pEK1SN2esCoV1L2IkI2I317WBt0Ro2XZJtRh8KLQNEo8yo+/wzH7ASgb92DYEq/y06YYurp7JUyG
iL/L/gu13q9Kkxc1x4sQ6UWF8g+1X3SmihllULOJqjAZNuGfwuY0kk8/KUqKF7bpZY3womp4WYfE
etcnPamBkDLz/SFjEZvVYDZI3dhAOIFsydIn0SQiY1lHhg7YwFIi26T0qhepyb1gSZadIgaLWlb7
mmfWqnrjreMIdPRIu4WxQszVCZFWBSiFLSM2jn2osu6nMCxcB7UFMRILqGuagULZTKRnwLEyJtux
5nesrgOfU5/Ap1CO2bEzcUTN8+iJPautI1aTvSUQcBUtlx/TaYTTMpd4B0x/qEx6gI36aXAqy27o
jt6kuRZ1mZlg4e/mU1BRe8NsIrCS5hxsLKACetrVo+l5C/0UJ0xCrNt8x3WcQY59QrwNBQoDdrfB
LmX4o+2N4WHNDAdzWaiSuJkscYHxN7CuODtDQw/sXqDSGFEww+Z37qiRuu0t7KFkC8n0bTP02GJi
n2QQ6OLWsmp7Imc8APBMQ8Odpo2cVDrbfInHRnWnQ7YxUAu14410nsXJa6POtuPJ2AVUzh1ssh1w
q62YG85kHrb6SW0q2x5Ej5/QGyoi47cbqKSjLxwyiIq2idHDMoECjJdonB/2MGPSNmYi0gq7h8ZK
uGmWObPHIr4rH3TG2aziGXO0jWS7xCRw9Ke6yDyTyyMsepxmle1OxGjCiD3ew8S25coj3NpoN4Mv
zYylxsPj8iHHDE4b9Cp8R8zPHm7rMUF66HP0gaeWtqoGyAxGOEPLJnfAwas8uZmkSWuSQC2NTQZi
+Y3i0PGUtSjWmoGv214EZg3xRiqDNFgtIDUYqRb3T6N4CpH3RFonQkaEwggZps15usiz6VmixSJ9
Fe0MofjGFOLA4zRLpBaRqROpTqQ11NqKK4tFomBFiZ/RNjJK4ufsGWQ1wuowianWDogLKiHXKg6Z
g+QLFh7duwkmodMqyZBsXqPa0wkJM2amFRPa4GD32CWaXPUtQj1GA5Iu52zPhbXBnIXsKWV8LNG4
KnhktLT2Zy7Q2IlxmtgtzNiirtLtK+6gp3gZxlFvYiAOmnpiaok54sNVQ3ZOj0ibsCvP9w+Pbhzt
b/9/fv5wuTNisS4NmPfPzXAuQL0J93dGxNrFQM8ubq/SBVpvzb99CphyU3d13xRdXTftsBmGOUq5
bW58ULvnnmYcrJD1U4+FDxCxfpI9Z1aj/mrUX436q1F/NeqvRv3VqL8a9Vej/mrUX436q1F/Neqv
Rv3VqL8a9S/XqH9N9+ZdQzrXkM41pHMN6VxDOteQzjWkcw3pXEM615DONaRzDelcQzrXkM41pHMN
6bzikM4PbO/fEdvyn6Bwpe9fPd+5fhv//oXES0FlrS26tujaov9tLbriMBc4zHLTV1VXbuqqqtuy
nOMwh/rGOxryb9a8o/uPd9+sefd2HzVv/hxb7u7v3RjPvQOIf/nj/uRg/7e4LUaDlprVRFqL4IQS
InsUM3USNTA+RTEQ4SViB1Ox26AD5tyNT9D+DQ+maMcf9NFseDV9QtGR6ByWnyuJOyOKshnFbRb3
0TXAt3jQEB1qSAa2otJYRLOIYG82oA0CiknECq+yVoW4KqnwhvgHXzHbVss7sWyoTB1FwI3q4BO9
Oh7p9wyg00FcZ9koLZOyai5ivYivSD+qHuvv0RVqBFQ892oEieI6EiBXHx4iPUa+SEt3DAMVcSMy
aIGRmREzWE5PjKjbhm4xE2Z7XPOWij2pI5u7R0tz1iP2enCcGYdJj5s72JfVFf6YY4z6njtUl46o
2RFl3fTVeMAF6jzgqwjkI1b1Pc4KaoE0QR8wTuQOUJoYEIN9F5ulDb6BOqus3tLRG3w/Af0vki0r
fc+xvVdRRt/yQdQHUBW3uNFIRClR+0KtlgL8blqpVhCajlZ2tKlOEUlWMhhgMWLDxYAwkGE0u2nq
OWrf0O6OcaTGgYhCHtGyK7ugk81eBtthoOP2ixgGIs65iAYdUXGj8SgSWWWqjn9kwOE/xGkCMK2x
3MRp2Ck4IqKFRrToaOihl1yAYk9lPA3iqYNH41QDevwBjmYZfjFuWPsGqmtYe53mze9g9PhOoI54
6Q45xhVhrRBohYBvV/N6pR8woKln4DEMlV5V9XZjoJxPtRITHTSfzZVg4GdgAB0zQzX1BvdpxP+U
sOBpC0hSpBFUR58GvFrBvoyV3PKERwwvRoJNV039lRQHqy4x9a/8qDcpBqbBiEH64e1XO3o80qqR
vorkgrbRZnRkGkfxNsU0jiN9kRlt0Qr2HnvccTP5onUQlT/gNGQl62CnPfYNXdJ6+jBOZgybzxFX
qDZqtCbBZmMuPLNDTQ2A49lbJIE9BUw1AtkKeFwCPZsY69q0G5z9kr89W2BIPoIJt7jfN3wZ65Y1
vVMs+32+Qr8lyLZU5JGVT1eKRDupqzqR/zD+xAW4iDqfNnZBJl8CmmHQKevTxDRJdO70OWsRjHbq
hHX2DIxCzeM1bdbQ3QG+nmHeESiRt8aSapbwlABztJVf080O0+zOcNsMazAnsrZa+QjxkpY2YFyE
/ow0oCsuGQ9H2ItO0HsgNgCLWSSEmoCtAW1yZVolW7vBhHVygf0dWZ3dLO8xfKvKIdrEkqdrTC2v
b5A3ahclYYPpM1pQndgqWYgHIX0uP1/gbAeP29vAUznjIZ5bE/2Q6XCbwC5g71uqskkZuqJ/BfNC
QhgQY1S8Tl8ybQrEba2VPNp/Q0sT8qVrefoa9qNtJjcmoiwiUCFnUAWEImU+NN+3QBGUU4i6kMSr
mITpyKrUE6/TG7Ze0bMqRaWfWKxAaA0wOrWjwr0GS22bYH2ZNkjiTZTse0P6Ga1FK/4Ld4NV14Gb
EFoSXURauGwhYbLW9FFMw5Loerzf4K2MRBuS6pfXWIn6oT7R2sQNrJLSzukhGGmGufZcEq6nk2mD
FNEiUXcw7xZQBLCYcQWRe3pRD9MOzSwDL4knLeHu1Fer/1GwGL0haZK+RJuXmA5jvckCk1BDdMFP
onc1OuCOmI30QwMaxMPelGflO7hjFJQn/u+kI000To04kfilIYk6KD62QeAmgyLF02PWBthQBkUT
gONkMAqeedCDrW7hwobsDAZNV56BzKVDbEOq1qDsQ3TZCNRb5X8RXXpzKia0Puu/DR4O8Rf3COS9
eKb7aF3HJA0GbXzCEAXzqAteenWBezOcyhr4zuBXD4PEhzeOLV01vwHkCu5W17L4JU/YhRqYljSA
5HQcNIk1QYjjjbie1BMav8KdnlmpTUpiOg8WzONg3ap/CoAsEplmYUdcf0kPsgYEsFfJeCDin8LJ
olRaUk2OrwICrcto/Zxj4lkUfNJ/xQVwviod67KFFWTQka2jChH8DrWWTlCpT4V41RmCLKdBwCc6
8IN8N4jhKIgRQqCio10BNLWu14LE6gM+biBEQy06TriJ4Dxgc5JCEA27l7YO3zJUlMDvdbVV9baf
gKgWpqC4o4AorhJ4OXnita3DjwAXlHMITeU+VWG2eeJpEhrihFzXFpPFL/ysXWDxgAk3tWdwOYx6
ql0HWY8aaddS2Hv4VR57xPssliNxJlDQ19zR6utSHzAgBVGxgqw9QZb2IEt3uK/V0Hsb1A5v1jKd
Cj9CvWqMwpHCA0aT4mWUev15CIs2q6RSz6o0wBpVolaFVy1CSnmBEhFk1QqytClT7DCGBlB6GQkk
yAKieX0zLVXZYJIpFqS/gyw+4XfeJjUNB0hvGvcgOmqwcChMmh6bKZoO5grJkjwEMVJKxPCwkX5o
4HA6uWulTGMoZdFtZYS0v9JqetNrvoPwrtbE8CdTrtGhoFiMIMbOWgkS60n4A+yJ9gETJmCvDPZi
FjVSF49nEBSmpzYULCpFtTDMvJH3arpji98MWCM34LsG3oL1rjf0YDAAKUw9wIYCFsqAnBCmeTFw
jyoAASmmm948AFXRxSHeYmjx3sGaBCXHWwNAjaGtYDiYUgPSW/kcWcAQ7VY5mmSwh6muR3OxIDXV
wJnk6CBhRq+9zuY4FhzDpDAvMEKSinwI2DvDFH6vAz9gqAxoG2b2D5PlVcWt7nMWdH3LS27UxeEX
TCOGybe2NAKokbLCFlNCANtfTePVAimtIg4moBaQnlXToeAGxq8uLWbs3eiynoHBjHYU6uzoJSL9
XtEYagm6jWTN8LNmB0rzmgsMAU/FPBDsZA/T+p7mULxSpp89BHmUwAzQPtM8NmQ9mNnIehXs2+Dg
s8X2A522+LPAEPC82c5YawbYYmBCB+wR1iRTwapH/xs9gXoFqwWL7UB1DJzEFibfcqsK9d/rcYR7
JT4Y7B00JLIRIyZgYWzxI1gAXtDx0OvCqPDcgHGtm/o2AhyM1Nm4IjIFhrCg1qpeluvxDgBQuLe+
4EZ7FE0b/8I0X21KRapqgYDBqKOR1XLTTOIV6pCu8aDlA6o4yPceptEPE39OFhTOl6zhE/vEODtj
99BENtMT9UzMv0SQqw1um/LJzCe8MDM6kxGGEGFjKFOvzNcRLKd1NfN1WzislTMhfImmzNCcMd02
OEynCF28jhkDqs2EjCZhcak2TkQT2DaX+StqM0bpGXwc2hZ42DQwQwQMrHRq/8zMIZomEF5gUZqN
GevUCPgpn3nzjm3fehi52lLS1M/6OokXHRkjwWEO4zwGWNE1JJB0EE1uiOrARidzcGTPazpssliY
ReMSXjDKrCqIi8VJhX8xtI9X1a6q8VP3mXDaRiI/R5nfaoeurBm+lyp+hz9TDUo7QA5hT2YUVqZW
M54jK2DDQCrNk2iuTpMHbTcK/bwQW97GOag0i6UoiqIQZd2LIjHEu4SJYfNuDFqp3fQLoASED6zT
otBF1ZFvU2fzT2DNVh2jxsytMpbDj63u7Q36a1RfqUj9cZcJqrWRvW6SO899I9+aeri8mHzL1xFD
Va/72Z0jjuoD3M/uknMxvx+U7ARZs8+2f+oJ2MEJvr3iOM/Eg9r320VgheOtcLwVjrfC8VY43grH
W+F4KxxvheOtcLwVjrfC8VY43grHW+F4KxzvYuB413RXxRWAtwLwVgDeCsBbAXgrAG8F4K0AvBWA
twLwVgDeCsBbAXgrAG8F4K0AvPcC4K17In4cqJrLy2b9XhmhTw4Yu7O792Dn5Vtfdhmj6NQIt4O3
knzm9NbnDX07bwDhBzL+3oMpXDKq8mzZr98Pi3neg+JDRieejkldQX+sOO7jOO66bzZDW5fD0HRV
U8/zkpdleeOcgcwHV9PpZ14/roymd7Ks676yrTETp55rH2DMxKqRXIhG8jafdsY6U/0iSfuw53gs
pL350bKqw2qaBOfVZ8GhqFMLrNy2EHFL9+Z07LmUKQzo0prDd48LNQUMuwpnHQTLLKnVe0tUlyd0
k4MANYBmaDcNPqsxJ3ujQ0zZksd9PK4oYHJWyE7GspjJyoV9dWwaear8WV72KTdqTulvOG6gC5Pk
QJsqqiQD6Ouf4+IAH6Lm0IxRqAYnn2fOXUwXvdW3wteoGULu6gWziSd7i30AohI1VqNlRyepU6T6
mmPB36mH0BDTlpGjxUSWp6RoDhKz5SGi/9R8msnLZRnaCygppt7IDJjM42p3qt6MlLThHRkSMq9X
EKolc25+odFJp6LA/f47Hi3lnUAD1F1T4EysSV9jCT86yGkna1e0qjO21FRVfCuvx5CUscpmA90A
x8C1mTbfyM/noHMAAFuyc7GkJsn4nTQ/danTJW0+g6pOjn+TH7GDbqL8fC0/n8pPlp+vgHDpsUBw
/ZdydFN+bkH3Ro5/kJ/v5edH+REzbnVPjm7Le76So5+oL1EnWQkV10j9qxz9rE3XRAqeglblrvz8
ShY9GS81s1UZSqcsaXwwaKG1RICVnLkjP5KLzH+tSUjpkQfy81h+BG3sBbrrtVW0pvfl55H8iJW1
eSZH+vNEfnbl5yk+QB2Ie6T7MsuzMrRbGOiV4n35+V1+njOq9OoB8UyST1VylvfDjFHpuoDbu2ca
R5IUaUZIL71i+eF7i9jR4fZCfo7kbh2T4k0tf9H27rTr/pCf1/IjfsnqDu4nBf3eY55VPK0Lhg5W
ZYaJtJZjQTtWAthaBooCaP33HGtG29tUwW6sAffw6p4Udp5Zpxyv+I5jcTn6H+XnJ6geeAOODoa3
Nt1YMESBzrAfuDBg/C4401Agx22AM4XMJTD9gU4SFjVesnvUb2fHCvDUYaTAg0QyrD7vcQFKiJz6
mmNmlQzVrK6b+jtGGJQP1N8AuJGeHWiRgWSbPbOdvGWvOWah0JoIrHe8wKTGN25pLO279k6rPQNH
oc9eeQ6LWK2fG89Qf1dSgHoH0ixCgqM+jso7iCC+cfJj2hBL9i3Gjko+xQvWVvs2I9bZJ3ldhPRg
39a013+wQNjDhBxZdtAe4O+UAxP/n7qIenGntL/j5QIe4/mcBzpvK5q1nSUrg83ptEqgWBOSapq/
sCXwiw70tKYnktNZPJ+48P20TCiWe2KKKk6N95D/1dNh3p6yb9HCnoy4Nnk8ydbVZVzcQbzg4UDN
A9UL5nUkdC9QPauVNn75Jceacft7uIK9zJ5gxASA9NbCAR4QgG2GkuobmcyDgGOaxLtf0b60XaA5
8PjLgtQh4QTLY0ZMzwAA2siOcNdI80Tlrvc4pu8jo4H4p6ccC3re3+GYpojMIkvETZZxy8oMdp2E
5D0J5nuLfehUWE2baVZr+IVXsWE8Q2VtSKB3iA6l8QGljpTxuiA4JTo3e+qrmQCTCsTZ3+cCbvMG
37H1eaLxNEesf8gFoKAejKatHonYs0Hp2KFpQGdkGjzpRHokP7vy81h+nnAT4TjRYuoaYIgqhu1y
K0M0McUSo84Ynyk82h0DvW2htwNNT9yN9nf2v9EaJSsYwy3zjDEAxCGkb0I3xzPUP4MVZG2AlszA
0Ogk/4y38vrMYAp0q00fEwuyfVCFAFl6ClSERo+J5NPaFNJ4hYzJQiZwIaOrEMGokK5sDuToc/n5
TGiV5bwQzlJ8IT8ikBeyohciyRbfMH2Hy80a1MP+LDYxAVv0pCQUrPcYZ0AKdmXy/gnRDcRYZJDS
IsD0BA1ZltabHDOXPYERPXQQyjLhRxVDlgBz1gS4plmAhSULLTmD7cWCgXorOAot7wGeb0kvE2EX
qkd3FtwBSLUktsSRutHZB6B4IOjBAkB6I70ENUK0TOYDXnEhD5APOp4B8Jn5koWR6arY3uGChuqA
z0zgahIiYfk5BNitA3dAiaOBVEbb/MwxgrZ1oGMeKuan3+dl9o4apcOaHa3eEyMFJNwRkWNEV7yF
QNSBXnTA8AZDnlmNKEw30/7OGpW2tO5z1hGgRYM1CMPL01YGv9Zadb+BGKeWHttaoJYeS0wDNZ7q
2WBX00cFZiuBz62UYY+dDhHByEK4DPZ1dJiO2WOjk3kMljJNs8czsbR/+5vSxq84Teup3Om+Z98G
olONn6gBr7/FMUhQtkX4hQt8M9IYEUqNSxG+h5iWpsEUaEurjbWBTSAVHSxXMTuX9NFyCvNUMbGk
wOCx0ag92T0lpszuoLNQrFk7kwV6YnVLWAAJExkvUYeIbBiQFXputijHSD0TlWEnFbCKafp6ogkS
pCY0KWWizU+81+4gubcHa23VyzRtQvBTsPdAyJWbuLRInpk83uMLaYvEPRohmAgstUzZ5dfcCmCa
OF8wmom4MG+7DfzGBYD8FmJsg4MYU22r7CZaLPLHPpBAzZsFUSdR+Zi30GgZLcla3MyPSoRu+ZOw
XKaJnesSkMW8mD9l0VBbvFqE1cbMQ1iY9SZ9hXB3XW7yV6C41Vgq9sr8BdUi5jOz14OuFlmt02KQ
yt+wFqqFn/VcIY5ZTbxq6xEVKv+A7ZH9GgZUuUg0gbLVjjGTZSxmkR8y4ENTIaNh0DG8N1bAVN1E
9AWd2T9ywcJTcXHg2ZDFM6t5X2xi+T6ht+beIR+5LjMNESQNM7HnmcH2ZjIctn5K1va8g7qmpwWW
mSXwK8t+AVnGWPsnjJzIjaRRwQL4zCKOZeFJWOzVsSQoyqy+B1masxowxbqQJaQpixVTtnMYe0a9
MkqKGke0BfXlYuuo7pK4WpcVpUBGe35JE+ETUjGqMrfGK0CwxBUQM8iobc3D81o7rqPXO3qdAQRU
F8t9b0G4LVJBZg+gjJnfRlOPP6THzdGzR4YWGgG8DrtoinCRTPCM7cGgIeIeAmqik9PkfepNeiJo
aGCRV1Zb2dBhIhm0tzzgAq6QAU9YD5A8k0zd7ChWeUXiEn3V27QY7IM0ak/kgW0/lElgbtJJhN31
VG6gNXUPs2CBAUjOHsJ76zWFOxM0lm33Al4/2Ottolu0AoaZzLAYLE4UST9QuQEn2EDT0w6AlzNK
iQWAofmORks6Ndk9aEHmgBqonjM+a2fsHoXXqyb/iF7SvaaQB6yBHE5WByLbGl6NQMMTPqY2mWc8
QXc6i0anhxzmm55QeG+XkBeCcm02CmrsdTIuWaam0e3oBsd0cnj4elpfbZv1Y4wkxG5l27CHGhtJ
Kq42T3kHX1bb5yALh2Le+2/1m41t02XdYftE6PqumyL9yvvs0zYriX3QoIvuJncwDDw967GS1gQa
RhpX19FKR2NWidzJkjkc8QYa0vyhfHXiVIGmtYHtbT8JZroyKbAHu5w2l7qDLvhHoHtUwyh/4pgB
7On9YJQQqmLO5GCvY7OpRk13CITKthsCDNmRLE9VvwDTyOcj+nHnQfT/3n1w7+jg7t7h3ftHu/t7
iue5fbR/sHPj4e7e7uHjnQfnvwHv6fcEHWFi5YeZwfo9wUNn7K8T7s56HaFJ1XDeO8pOo+daYBlP
tHHICrJaQVYryGoFWa0gqxVktYKsVpDVCrJaQVYryGoFWa0gqxVktYKsVpDVmUBW13Sj1BWRtSKy
VkTWishaEVkrImtFZK2IrBWRtSKyVkTWishaEVkrImtFZK2IrGuHyFo3X/1I8ERrk557k65brh3f
cq0omrqqhqavhroo600333OtqW+se95dcQesm979t7Ct+ty3QX7/PbUnaO/hi+en3Ab5RCzhg4BF
XxqS+rTbr54eef1BYq7rC9sl9gIa8B/nzSXR8C5fZlKQaGHASnUUgeFTQEtBogyFxWhi10GV9FQI
QKd7jr1KYALF96r4qZ5aaZIOgbFF0qviRXii4CnVUMtZ1hVxfxeCVSt+VLc11AnUr/iZZOXqQBRX
f/ETHjRSeKA1m0dCdeBEwuBU/KoUdCSWIv8V/r7mK57ASKnpQSWnXRJYTiomDIWiSgqQHMVd0dX2
IQ+8taIBCoFWFPdxYGll74mRQysnSIdCUKLFjvwIWLQQgyjJkMnVZ5Y1hbIWgqsoBMtQKPnqs38m
HSA4y+IPrDbaHc/lR53+R3SnAgT0oUNw0Po5Qf0ViuW6i0VAECbFS/n5U35eYYAiV6wlB1Ngn6bk
KgEjFZZwCcBdQR8WQGrJIJ3wViVzFJWHHFcUNrwlUkhcKij0FFoKHQX7pKcQKPDC3l7otDDw0Z46
DJguAoQNkD5QmQGoQSLLr6WyDlA4QKEiJAtrSDXpjQUoZHIDSCzU3jYWIH6AeGtuB/HOYgu00/a5
YGZANUXd5oKaWp5zrPEcmpROAzDuc5UqOCqltjTJK55IQz0WqJujJk5tKZJS2f8uPwfyQ7rkRNs4
mkSqktzUsXCZiYdoRsL0NcfaDi/I6a0mU51bf3Ab/ejpWY+ha7Dcxmqt/Jk7GrAA9nEQ+wGGFWkm
T208reHNRYB/Qb3I5eRtt0HpLZUUHk4bVUxtAIzFlGqb1LdqL+vJAZjIszcWCjgHLlPPGApWoHVs
AliVAxUMllIYcEMiU3uvOGEaOxgR1CHA6XtyFE6f1LCZA47p+0DbBKOFlgi0RIRLRKoSea+tCNrq
DVZA8RiNs93uaLAsU9nIoI9UJTI5I/RF6IvUMjKQo9EHxZYzzD5hfCRxD+35DFQEYAgFVZQAypKl
5wSqay2TMFZ66E3U0nK8Gb+P9DZRQeIRq15wXX3XQlCro07zb5M3tbMPKQb3FQNYj1+T+09ziT6A
DHCFjk4kImL2ToMP0uoJUES2emk+c+QWdefVBjm8CRBELvS/cyONlnGWBvK1W7dnhlOmrfC3P+MY
yjI4cGOdmRGS7QwVy+AibKRZfTSqoJSHS2z07bQkahxWT6uUMu5KcwDooyqbCCS1lFlUSqXLT2kE
vi+tlQSDlcrP6ApCEByos4TTXOdc+YX0kaSOE/hu7/Fuqbeok1WovCU/4poQ6SuVIu2Vgk9Up7EG
7gjWIglweqg/p4akh2vw19kc1pW2FNm7lLAVAUWMbvpWE2erWCxCdCoJHFF8T4nTtCFhrLcYE8SX
8nti0rS5RX4Wf0SSCMOhltVS42V0BpdTQmtNbTngR67wZQnSogeGOD6j7ifCKlW+bu5x3RL+aajb
A72gInFpSe4Y5VxgaSgZYiVp0gMjLSov0urco5Vk9JT34UMsmeTvk/FeKimCTS6PYMAyLUoJqiof
AiIQ7ikO/nGU65AV4VkUmbHF1EksE7FU398OSIgSbUnbT5mYyKCa5HwCt++B/uyJZdVOFVFdEhWn
8ne0CKX8QHiB3nSE1xrGrSJr+QKsi46cP/Af4t2y9TGCsefWP+kZkiaqrFu+0r5TXlmKbF++Fhpg
Hjp9AwhaXX+737mubauieD98zTHyrgq1UJCmQQIIvUR8LwEndMghJcJ6qXJ8JiBtAOKTSNyYyOA9
FjwFFA4NK8HdvOVWBt0K9nWrjEZC/8G6Th2GDUSoSvIpx5A5INQwdKdk2OrfHqbpYszRW8ynfQl6
HZNsIFZBNRpCAcd7aAkN3hvjjs+emGN8j31C5nr1BcegzxWMoqF6zcRmBgvgtapY21iTEHWb6TBV
JpqvWdNr2DHh4xGSnLUMKoz17WANa5ooMTVKeGSdLKdOdVawT0CoqhYlyorF0pbTCHX0goGnAvCN
CGFGoac3PU95VIGBqC+nwEGYvWNYej7p6W/PVHKRgWh1yAwp8CwNrupMVlkbW6YROKAJMXOJyEOb
Jt4Cy3Ssv+YC3/Y0kqchLcl0ACQe6IdA2wSrlTRk/wMXeG+gOwLdwRIwTZzAJxU1MOuFQPsFms34
XATWPn2L6gaaP9AkEUIjI9AGVSQKX1lzg2WonAZwhGaFB1v4k0Vml2gJYLDHAvREo9lqal+nfSI0
RxuT3DPpDZiadJEOn3FHQcwrg6EH1W5DMQFvRH8GElVoll4RiAS6NwYx2IPUMNEKFoQx2P4TNDQy
5cRLklWDqlr7JtoFqdYEAXCwm2mEJj6RGQqZuCoV4YqfuGCKPp+0hSdbdDAR6xpxK+mBUznFDNn4
RDwnFLecmGB2yGy0jSroYQ/Wr5KBCNnVJNsTtvSIB4XWij0lElxGwaQNwcoqjFYeoVxf9BhSbNUZ
qKt0QaWRqILvbO/CXkE997AdHaYVQJ8I89fBXmnWawnarxDRdUZGxpxs8tALCngMZdN1RmosaLJU
fQEblMFQaYSmGLdkF4tUfYucpZSJ/lD9wLOqE+wCSGJ/EmVr1Xc0iT4v8VHVLcaJ0iLbNVRfyvC2
3N5gE3XZqWScVaJIVKKFVjJ9wnMgjjJKq58ZZtomO5Csn9Q2RPjQCHqDcPfWGbK26DYMlUjO8Ql2
Jgtfrnlf4EM6rkQglz1lBnSH8cZEW5HtXBlqBXrZg/Kvpy0+iDmf9llR2yqxROOXtcqPWMSUEtEB
K7GqV09QLHRsiXBf7bJilbB5265koGX0fU9h4NpSvwGhtOgVHQUitIuxI6n5VKwaqTqAKTKtaIUj
+RHxuRJDeiU7wAgse2hVLBWLf3VIO2y0oPJ6hehdscdBhWBdvdbjFsukrVO6blZI3NVL7QEy3quC
YtNIoyzVEvADH2JcqIJSIf9Wxk/gYdUrjksKjgJ9oLJZ+IILDJneakalbVwQj2dD3eYANnewiBl4
ZGJzi4Q4ODAP0FJscwLzYZhBAFE0IVQmVoQegHia5j6m92rS/wd60FmhoADFjtZzEAqXQMysEDwr
xNUK4bRCXK2QUqsJj6yByUFGpmiUo+gMeFit2PVT5iZ1VP9AmJ2hah70Z2+00T2eGql80B1wTDgG
89fWE8RbU7ewp45tR0sR3i/RGwWKckuTensrbQLTxvxdIYtUGM0HLCLWxIHXBb4bkHewr3/JBajH
OYsSShRAIp5/LBAJZDJPoFGNTRpnMl8ZJjAJZ+jFThafcj86ZKTJp3cSVqGRgWYKr2C08TdYvtHK
HZE2iLSBfUCDXIiQHMULPhmJFWhoZFtDWO4RaSt8vpups6IVEJ9tUERzFBqF9HVk+bAxlYx4uxnV
0EavirkbO6Z6GrvW/8QxNUg0UoIoC09zCIkaPdBP5jSbrwkfsrLjBimOFWXacwCRnAXLQnRrFXxH
+UEb/x4PM7410DeKCyvuYQYjxgKiX7Ly8aDi0sV6N9R/gsKnUzINkWneDL9KtKIGobVsjaFjpbf1
FNG7wvhnbQYHGB0T8sk6IbUyyHvMAZ6whdBeNZ5oRdFdGFZotVKtVqrVSrVaqVYr1WqlWq1Uq5Vq
tVKtVqrVSrVaqVYr1WqlWq1Uq5XqA7JSXd89E9c4ozXOaI0zWuOM1jijNc5ojTNa44zWOKM1zmiN
M1rjjNY4ozXOaI0zWuOM3h5ntO5h+AFhbtp1v72Tb/dWFtUwtJuiL9qy69v5dm99t+63d9UdsO63
t3KttUUvZh14m7egwTbYoBE3WAIbPNaG+WvYO7xGnGhQqLtfOa4pVBTsAy0FDOw9Z+wDzt47UIAa
tSA1mOUa5L0GubnBAGGIIQBlCbzUWOATmnbZiX4nOd2Suf8adkP3U8t4o9c+2FCglmo5a7CcNVi8
GuxbzSsuQGTgAwFqA9Saka3nAwH6NLNgVlPDIbuMQ1LQ1DqC9XA/c1qqPaBWRLtf8apHHLNRtiH6
GqMBXGdPQ0QINmW2p5ui1Q6FINp7aCO1+oQfcAByR7QPkPfGOtIIj/RosE8yeiK402RfovmmT5jj
EEJVy+utx2YIMrKbZjovck8i3fAAAs/R82pl677nmH5O2AmnMxjKvLmhICtRq0TOy8iATCg6lqqk
p56JZtKML2TBHMiLOl6y92DjmD5KwyVL+K3G0y+4QJKvhlsznZZpgMzrMvXMdGOG0Ew3ZqixNk60
caYyagHrSSk1TOwlWxoWo0fYgiQvSGQ+SGJcTJpIGBSUWIvEm5xa+XALlE6t4J1YndvPaC31f4i3
rhVzVvsFRkf1IAuAo/0SIwtjU00irWTBceJUaUUpbm/i/JJmaiXHzUa/pMSK3an9DoVQqRb7Vyuj
rhVTUSsmMyfGhVYMR60whxYnsBonNXF4+6u2m6qnLWahwCA1RGkL5i6oueGFnm7JcKRqp2SCyyi4
fbjF85aqUnOFiaFO0J5JoAfjyCcLpqrmrULZvsSmAfRvsGQbCpgV/2r7gO8rIvoh6aY2fEGGY6st
LR7YdpfZiTdFuXv7iMcArepsaLEwKU53EJ9DK76i8CdXQasrMLEXw1OrPwKaKTQ5iiCmemkL9wtf
dlRJJkkrbuBWx5N2+B7MTq0m4DUVd1fr0DlkwGsHix2v0zH0BxZyy7OnldXK/cl1HTCypLQvIFCm
qmYZJg3qUFngwDeY24x969JxjzdYXhcdTgJAbDUj+W+QRUSCmo1biR3Z4B5Qc2Z/RwdfxwA3KLGu
Nq3KKuOne87YJXuqpmAWXViO2rxmGKuaVMHqGzZbe6umrfFbPC6mo55kNePMy8wTBeWIi2N4hQHT
JpyRyRS11EbJ6I0USgqBAqvjRIvKCaStjvYBxVv/qccDL1ObU0vASfM9xyAXIs0zQJKaAIFqptY4
IF7sliREnuiZdkK/qpDYIs22RAk1yK4t6P/wkmOIcPSIpuPRfL0V4ymzaLXKzsahToPh8kbwbfF9
JazlkaiS1qYqyYvztxzbB6DWUWvrCLV3iy9kPLa3WkUAVziaVXPQtMpVkapbRPDWZtTkrI7kaIw0
s0dI0TWsn77tqZHmlWxApbRI1ubbJrHmWKBOnlqC5t7h2D5Ah3reCzroK510CTeKJVnVwJMoi1KD
4T1a1mVeHrBARzzYNroD7WLRTQPO9kTbBSpP1u+vOQag1BO2Yd9OoLwbI0Kzsz8EK0XjaAKc/lMg
MprP7QGcxOhQb8w0DRQPIEmEB5BwQ7PPEwA3GxaiAVBAtMyc5sxlHEzthtzYE1BCgtDfmQ3G06zb
jDbtHfhG4I5IfSJtr3ECQFES+IYRGcAQj3COSG9otks/aw6GmQ3piEoTma2BgaayhPudY0QU41GR
9ya8uj1uZfVA+2+4A1u/zqHhNRcsSbhlw0blsfZO1Mgqmxieye6hagnqErMsMQETziLjqRavZI2m
Lu6AxtROLE5zvvafURWZcJKFens9w1Qy1GW6SwGf3UsYE5/LUJvrs+92NvQ7+ALB5WYy46lS54GF
Z+DPGSxsNtSpMlbDgpLeTMdPLW1d24M6do7ofKlULQOo1gAtcf/18v1alkB11aqPmYSjqf4Uj6IQ
qVJZ/QUNzjDT/GwFgDhVl2sZbbWECdWieNTC8+uv5d0iD9Yi0dXfQjrismp5jagAtYjnEmOXagGP
isydagFB1JJ7S6GctWgUtagONYsA0WCp/oW2tQuBArGsujbV4sit7+h1VZdq4I+KU6uVGnFNqypW
C+Sy1hCee3BUGdKWzS0SQqaqmiYktVzc4jxNmu2+Vm+wtonALCWMIdXiGa7FO1vvA5rxuvLrcl4/
R/SVGVL/DtNRGPIB66o2zyHhRGjhMHR10P8JckCjK2ThqcU7HIVz1YRgqKe2RmA13HXAvjfA6nW1
rTXRoR69RLzV2ggPq1/pazu6UuXpGmct2Z0TSdJHZdUuFRRKCpZtzRLLdVzSaU2m9oH3qk2xxgCC
rXLEg9s9AwUw/5b8VVfwGnXNfYYpyB6mTpp2Unp82NxHqNDVG/bZmTnCWp0BbuB7lTMHVnADUnak
zwUMNjT3uYN8kBGSB5p94Ev2OjXG1UjcpKoegV5YeQeDyWmjPueZmkJFgQYc7NuI4hZTHpjYg8FN
QDIOdPlAW2p4fjjUYwfhjqo4rJGOb3usdInK2SVmGcoPUebJAtBrYufLSSTL9ji1ctTcwlm0/QIJ
aGFGCPDxgBtB7ljreYhSw/MwAXEcPWfJGK1hp0v2HhrNc4+3fmHwe2s/gJPWHaxhyNz1NLQ933Ks
fINFBFmrM61s3gZW2AGZB9TBDiMfigNZuA0aH+mXwFxXUH/F6ANyhPhRo4UNKCaBOdd8xjNGLVLn
YGTTRJFaB9rKNgqwnjJ2g0j+KccO2zjN6ikEyAwYL4xjWGWRKFE5a8KH6qmfLK6/tzOExGpO2A5M
k4Y/sInGaKNFHh/4ZKJyqvX200Cw7ok2yo1Q2ibSoir8ikwxvoW2itawlnfaLjHSImYMldolY/e4
7hpcWfWSh5DNGE/WCtRxQKofLM4CElhVJ+5prCsxjdTUbXAk4pyG7gXHCrD5iWNGgyWJNu6UmAzJ
SBjUKq6WT7UV9xifa2Ti2lZRNgRIsyFpmykQVm/8K0ON1TrTa5rbefiBY2tEeF6kOTQ3fY8MC9p/
aCYiMn4HRYUyUBIhlWOHmtak5nzAht4GrToFMMPYGpKNbdg4pI8Uq9bvoS1A24CRBfelOiNEJGvE
imLgRGWLjUjFjToThFnItgRJ5dzmSxZiposOJY0OakSixkit/hOV3lVvU6zxTezOpIbOHTY8HIv4
X0RkFqvY0IsE2dzG8K8uD+nMRgZjgzdPxenmF1pIHS2/Iurp9a/5Nm4XfHkmReNr0RWt0e4S1KUG
IJlVu7nDsebXlZ0IcPyIxN7cpwrgffGbinCuk7x5BBdXi78IAc2uIt9MgDK/micDNm4lsXQ3v7Gi
a7s+xdiBBKgPDlhsGhGMG9HJmmfYQLRtZNjV6hkWU0kj61IjIm+jzlIxXTRKuTCQ5g8MpDr8kJo1
XiuIAdXheO4IrGhwy/V4zTp8lT0z0LzYHU4uchQ/Yo5yh6E4M95x8yX31h5McfS/zznGO9czPnpc
cOb77SGhtw/Y6zT65E8ABDVsDOoGHII2Muk9ZHqUmvESphHdXKRnGgz2Or6s4t2GigzQZk5PuILN
MGUvo2Dh/vvSLX4UWJjifcNnV0DMCohZATErIGYFxKyAmBUQswJiVkDMCohZATErIGYFxKyAmBUQ
swJirgQQc023G1sBNyvgZgXcrICbFXCzAm5WwM0KuFkBNyvgZgXcrICbFXCzAm5WwM0KuDkV4Gbd
euwjgdmsTXruTbruJnZ8N7GuKYq+bjZdVRZN13SzzcSqoll3c7vi9l83c1uZ1tqka5N+MEvr2zIT
96J+6Abuvagf6lPqRe/oRdju/8BZ1OEGFzm315R34iLoyV+s/vNedk92X6go3KCVRFKRmdVa1fQe
M3+PntKjlfQYV3o2V3ZmBT5i83y0dM/r1P7fo//0OAKG6Utq5u9RR3oUlB6VpcfX3WPU74GW9GhA
PSpLj9bRT5srW75Dx82qkPQoJD1KSz/ttW1vHqBHfSkRU0KP5tFjchfw2iCJckabGhpbAEU5YAQ1
6gYIHwBRWFOTTRD8gcGVeyzvPU6zHnWon5QftfJs/sRkYC4nGtYSr1gvKEpQbTxWg3JKGxfIQ+2s
TtiWHZgp3DyvUe87FH5F8XxKZm2MYDU9ou9w4At1+2v3gutGqVXCkNuWC4LkAQnbvSYS0xza3awF
pBLdNDYcDpBkZ6xgrUKfObrBoPbJ7qFjPDlZzCnn2bR+sPQjahEBF6r05p+wqBgKlwHgQTHYyLVp
pxt4p085Nqy/J4806ZoH2sHbZueAkRSWMHyBpk6aSm+pghURfIeq07o2F7WiFbiZCUxMKwGR/o1j
xpK1vjcSGeCBseKtiemGwHwOzDydQwNDrSdzGcCp8Qwtpx6Q/nOGgLC0dIvreHWS0QJ1AY4UsJMm
qLPJH6h1oIECbo3MZu6ZIZtJWR2wMmYINyiEsYOAnydbA8jX3QFePL4daYfIraSS/YNjHR0vOdYJ
Ro9E2i3aO6m8uoPcNCptpkXqHMnDEOw9dF8kaW5i5dBkn/4hG+VzIUF9AgMzkOzbyDI+nehgVk7M
++QSHAu2GlKZRL+RhYUaJLLNebuDvlb87ICp05vdn3SSarqM8OnIipoBw26m1dG6U4Hi3V0YhuVc
AX4agQgbOyb14mveQSswkJ7AyXWO7HOdVtIxKKbScWLTspnmyzRfBglHO6r4MasLDZyAlHsb9DWX
QMxasrxI1uQMm7fuzVawT8gQZelLurYOoAOU3amvQddQXTh1IZUUqmkQ5jl8zryylKTazAIn8OKg
ECaZhi+Vv6oXLGO811TktFIPZxzZtxpSb+L6Utq+wo+mRH6t7aHG5eGuPq9W/gEkt/JNSRSUFNoy
iG9kENSPupMGpf17GtgmgIzqQbwZgzgqBrHQDpL8ZfhVG7qhxdV/QUKJJASOx1qBO3oMwZqdEFdy
YqwPgosYHjA7jCFKdw87WNdV3hSEziAcYhCruWQUGchUmobHeJAiEpmO+T9BTzBjExgxZWGafc3b
1MZHOAhQaBCfxSAr2CDIInltGpQ2mViKw5CAsDSIj0HCFPoszHYQPUBSvfVeu+0Fa5ln4mhTkfNa
15OBWqt8opDHAbDOgDiPL2YsJAp0YG/rjZ0pKNR0mp2pKDQUWgo9hY7CQMHe7MDHQU9vBWQjG1k9
pJr3YICMgQpOZ0oK4BGmeskKHYxLIOIPeBAGJPvBWAaSu+EuBsI2GfBI8pbrdEBKH6bqDXYzb3EQ
4SDdQbqjcR30Oehz0Oegz9Hcjq+ruDrYcFBJdsjfc0y2maxAj9va5jVrkzfqjF5S7xl1jEYQ7cP0
lEdk6e0SQ0hlcenmzAgmUXaAdk2ki2SYAy3p0aSsvp428XbG3mKvt8cjlCkO+yuSFSnS4Bv5HD3o
6TgZ+jlw7GmYYBEKdoZmCDRVoCMDHalRoulzlk8aylog0MOB+gXgMjZ5jRqj17JdeaUXoiLjJEJL
hJZIR8buPfb+Rz5NeMpTZ3hlAPYECk7hbBnoi14ibicpy+rsUelBZVfKxzpZgDsDV0tTdbKKd+I7
7KQJOunpLMy1E0xtJ0aUTpAFnSyNnayenaylmvat+w4pXNpPQ7U05LSTRbOTRVP0udRJ/rSN5AaT
EO4epXRb08YKkYL0pwSNjcdaTVzOid5TgdCL+BC+AwzPWFTdtbvHepgQsPRTstp2BM/pFO7Esd8p
BELwoJ3490WlSB0ReiqPdYIs0GxcnSyH3TMwXzIDOlksO1k6JQt06iRMxGtry2LZieIiUNRRDtS4
He0EgdHqoFCgj8CokkLeaaskYVIjlkqr/Ie2JUNIVslOF89vuUqTMwBBukYgpYELurx2LJQdrvrN
Y44tzzxdrVauDgAsK8Jga4SF7ZPWNXUWLqc4ddHNa0ZJD0u05Kyq2kV951Bqwr3PdQzrorYhzrAj
mtOwX9HoxFLSWxVQrSODKtvNhLKARf2OCxr8+zvH5BINVNFqP9CYg9mggLVNgSFAXXU97CzS7Yhj
yB64wywcFtto/TfQbgqiqg64QMVosAnAYRGMwfK42+ug1xkmq+RSg4lQ7lHNqkOoIMtqL2v1sNnl
OsNyAEebGIYq2yo6qmPLiIpQ2Q1oQsmvN9rlrE1ECxHu1VtWOGL/xz7OfIWCo5qOjnKGu9Qkr0ai
3WEf7DQ9spogyRqcAEH2SG6D5BsfeZnUTybqyOQanlAz05eMCrKXRruD5nUk2uvtkoZcyFwqPodk
s3eahTCjC1JxT7W8NYVl7UOjjfR4z7hWE15nvBaLmiwaY3/ppPia60Q1qDGlQ9TpsI4Bpdo+rKKb
GTSisMP+F27EPqUJoMNtLlBRb+qyVkKZ7c/YNDTY8ZD7GYAeXV0tjp0KR+MZ7SL6IdB0wewXdkbj
4X6g0mrbIoH7gCGS4Hl0Bst5Tjrk0ZJil+jvQNMFjNJkWPyRCzSEylnxFUxUuTj8NgCa7O2dDOLA
NDZjh+qVG5JYA87uNUd3R2hgRufvsNV1yHcdZr1uGldqW8igTzswod3EuyPpiQNLWKQRbV4jMgEe
Zjr3+QFuJzMs0YsR/F6C0DjQ4eomsPA8ewYvBKz0CXfQVdFuBdlrRiAbTzpsJOC9xziQ/QQU9zRZ
tIJVlfY1/0CwgsXiqvpJIHygvRMDKdkZmhkT8x7HIL/FCjHarnAuBOiVkToWaP9EDdRkWDFBEx1s
gmNipCYaKMAPkrWU3QPMOvAeNbsN0/JmZkWTU6YtUOwTmqb4NcdGr2qGjxgUOn52WBWkzk78BcVX
UGHtyAAQS9AoFFgMJ42TGdtmMFdAdfElF2gBW9wyDs+oCN5vOMacH+mEyFsjA8KQ7hYUYVMwm7il
cUAa27UDoyLZqsbUuB0epPOjufxgyhYaoKbwZNWyNRw+Yo5OfGcQGOkQ84NlZiW2bbWc2sc6xD61
oeOw0TBbE/kUJh4Ja+7RVCBGLfnWRJ4taxARdXOc6oiprbbmL/Ga6I4OEv3Xqw9LxNYgQ6b/ArIJ
zdJltyeldmQ7CpX+etKme8x/GlJe6mQYP6xBAmLZ7NWp/g23qSFeKVCH0I88q14JWWMFzDpUeq8o
FL1IwL1oi/1PPFmxqGoV9POiTfa3uQ3TPc19R49bvDkNPhRSa882psChoXqmhLGnHtaGU0RUwR4g
OTZ+GbW9emAe85C5wjokHfW2PEI/1s+KmNCLAKvbrfSiB/bq9hOkfL+/7o73QQJh6vr9or1XMMwK
hlnBMCsYZgXDrGCYFQyzgmFWMMwKhlnBMCsYZgXDrGCYFQyzgmGuGgxzTffJW8E2K9hmBdusYJsV
bLOCbVawzQq2WcE2K9hmBdusYJsVbLOCbVawzQq2eQfYZt0Z7yOB2LwxEn2+92Dn5c6D6P+9++De
0cHdvcO794929/du7G/76NnzpztHb950MXuYnfDj//N/f7O/t7MOj8sdHmuTnqlJy2pt0rVJ1yZd
m3Rt0rVJP6gmnfaVfbD/bEvow6c7Io6N9xy+kdEvcC/bf/zmCcS/N2+ZWnY8+fjuwVb1OPzXk8Nz
pfmfv3Sw83z/4Oit3zte2f2D3Ue7e3ef3rhIUu1rO093nm2HwqE27Dl/y7rynzrhrZvw/mPXv7vT
7fm9nT8vqiHPvT1sqFxAq/x1Uv3NOLuU7x7vkUv55F8G+YUOu3X37XH37bYdyqKv23pT11XflfPd
t+vNuvv5Fbf/B7j7+RlX8/dfmid71OGL5+985HJWkstcjE9ojzsZUz7byneuJPxdf17kh98Juxum
dMiKPlLrOskRxwLgxWjIR4MdAmcE0K6uqLGgCd8ecwxIPhseEXhjIviwN4yl4uF/5A5ISPawJg4D
UT9sgHyBhEzAMxOQyAQkMlG1BAzHwKUJQLC3m6lasns029otHI4gWAywmaxAlKJBVJMVPLkWoTiD
CVXg7gy5nKlDpla5wFsFCtaStXliBQUvM2LP7Ck6LFOZbF+3b9kLhVTFEysoUPEHEsqQABUnZ5hv
EiopyER8wjlItrlW/FoSv5olYjApClmiA5MkOE3uU9BlQo7TD4qLzQlcyX0OqTJA3E0chPpK8YI7
cYw58aY5pUHQlk68ck5cbE5GnBOfnPtZK6k+MAek0uIUxLOVxP83Ajcsgbw9IR7wIFhTcWMnkvAl
zbUlgIExBkDrIV41h0eVLhCvmhOvmhNkqFMSZN66XVysSsAT0AT6iqfMExkA7hmYOxmyTmAITkCW
msHc7TOOwFdrvGhLPi0ieYYMxq0Fa2bYdUEE9V6gmhJhnDQEVMLUcviSUSSD0UnExcac8KDSCjiB
kxALCUxK7pU2L4MGKI8DkOmAVzsAfA4AJixwLFQUagoNhZYCYDQFUFYBuAbf1mS+xVOO7QIpB2sj
AerUJV7+SKJ4i1uzh3Vog+90REVYfJ5jEgLxGM9QR1oWaCOQmkT+yrHgKPBR9XyDOhvP0LAaDlEe
cixOe3WCA1jL0Jt56+gfx9EvmLjtDZ57Uk/hDS3lltiq3AxN/0nF05rUVcJqBqAqw+aOurKDpRzN
yxBL0u59Rt7DaB+p6qosPzEEkiOMbwDt4QF5CCTPsJQKbRsRBuSCjEA2iDWcEFRDfSwuy1hWL1jC
LNypJw1ib4l+yRw6FgSiIjyrLwRarWHqBc1TEFymibkL0hdK6uztsXCovhS4Q3lLfr6Vn+/kR0JI
yu/lR0B2Mkb7UigtBehXaC0+1Zf3ECuTbCxohT6DTlmkLAthKeB0wXL0pWSxLoUTlhImVgrwvBTM
UPlYfqT+pdS/FPxn+VR+JNyrFMx4KeysfC4/kum8lJAtGcZ9KRCxUjIiSrb1XpIG9gqElWi0vpBX
FzLqCvlCIW1ZSCPKXg7bGmoblMpoelI99wb9LJXRjIWWAg2kyRFLRVWPBUfBUwgUIoVEIWtBR5KB
Ig10RHjcWICeAXoG6LEOG6BngB6Nyy6kgQvpwuK59rR0sGB3BSYoqGrBEQvwWLC+IriIYCSrh8gX
IkyIJCJroogjIkEI85D5KVxHpqjwLBHoBBMmsolwARH9BGYm+EOR1QT1IwgbQRAKfFBAPSLzCfBP
0HgCvBNAngDqBCUkUDqB7glLEvCZIOBEZBSBWuRrYRGy4AknEaCZYJ5EKhfolawNwkCE1cjSIzK4
iOQiZMNb6HESKvcWMlncEl7yA7M0X4wGuCojqzKyKiOrMrIqI6sysiojqzKyKiOrMrIqI6sy8g5l
5Gow/nON5Zb6WW9tv62+1gvDrLz1k1fgP/3QPNBD2W423eiELjd9W7YzD/SmKm68u8/fBWPTn7tP
n+7/ufPg4uIRTk/HSbFpf4M3ubDh/PffuigkzFv2Z91ye2HITuIIt8fCOp0IDNtjYXJOONB4XFAY
b9yfJLOqULlMD4f5YTOUxw/b+WG7qY4dFv2xw/LYq9r6+M3NZn7YFRxuVy9ZHhz6/ViIFDL1bTij
T+kd+qjcVn0qP5/Jz+fy84X8fCk/0oDV1/LzjfzclB9pPNkUw8kuDk4CUl31vfz8ID8/ys9P8iOd
UP0iP78qpQ31a6hWQ7UaJfuOHuuiXt2Vn3vyc19+HsjPjvw8lJ9H8vNYfnbl54n8/CY/T+Xnmfzs
yc++/DyXn9/l50B+Dq17ik3ZzLur2NSbxXGxOC4Xx9XiuF4cL9/fLo67xXG/OB6OHzcL+poFfc2C
vmZBX7Ogr1nQ1yzoaxb0NQv6mgV97YK+dkFfu6CvXdDXLuhrF/S1C/raBX3tgr52QV+3oK9b0Nct
6OsW9HUL+roFfd2Cvm5BX7egr1vQ1y/o6xf09Qv6+gV9/YK+fkFfv6CvX9DXL+jrF/QNC/qGBX3D
gr5hQd+woG9Y0Dcs6BsW9A0L+obj9BWbzeK4WByXi+NqcQw9rhDeV7DyqMpRoHUUKB4FugeLlnDg
InE1UNAXq+6x5YdJ1Zsv4P56/KVR1NfHR2xf24hwWKLHgqNglwKFSCFRyFoQHcWV9l1dbuVLzfG5
vD0uFsfl4rhaHNeL42Zx3C6Ou8VxvzgerG/U6j0Wagr0Rqajck9hoGCPT4aivq2O16OtjtejtTnq
Soe0wVcjb0x8LBkdkQIDIPFUgsRkl7g5IQkkxk/knmhf5+bIR6PVsKRQ8R5aSszNb+o0lMWxtt8e
d4vjfnE8HD8uN4vjYnFcLo6rxXG9OG4Wxwv6ygV95YK+ckFftaCvWtBXLeirFvRVC/qqBX3Vgr5q
QV+1oK9a0Fcv6KsX9NUL+uoFffWCvnpBX72gr17Qd1yuGKqiXBxXi+N6cdwsjtvFcbc47hfHi+8v
xlO1GE/Vor+qRX9Vi/6qFv1VLfqrWvRXteivhb4wVIv+quqJC/8pPy/l57Vy0g5G3MGIO2XEL+Tn
SH4O5UdEUzEvZjxuGY9bxg2Z8RJm3KgZN2TGzZdxeGYciBmHXcbTmXE7ZjyJGZdnxnmZ8ZRlvK4Z
R2TGyZhxt2b8oxnfYsZpm3GLZpyVGT9rxj+acVbmwRZFdb5sC2YFVBNgiUWwZHEtsfCVGPkKUU/E
MuzEMuzEMuzEMuzEMuzEMuzEMuzEMuzE3uvE+uvEFuzEMuzETuzEauzEhuzE7OvE0Duu8fBoD/v2
MGIP9zetz8PrvYkI8HoPH/esK2KhHGvaU0AMcAw6Z4+zMHhbDDGsymhROWqpqBTDpl6e6Bcnis3y
RLE8US5PLF96nG+MJ7rFiXJJWLV8abWQ4YZ6SUf9lzuWn62XlWuWlWuWd7TLurTLl3bLO7rlO/rl
V/ol6f2S9GH5yLB8ZCEjl5uFkFtOWsN2GNQ6HvTYRms5e6BciPHbE/XyxCQ4i7ZdCEsTl4cTX4cr
hPkVMlkKnSzCM8Un5QqdTzolZKoWD5GhGc8OiTfAEwLzQm0opdrXHXtMOjYGGgtMmWDvmVenWujN
2xP18kSzPNEuT3TLE/3yxLA4sVCfR+PT8kS5PLGktF1S2i4pbZeUtktK2yWl7ZLSbklpt6S0W1La
LSntlpR2S0q7JaXdktJuSWm3pLRfUtovKe2XlPZLSvslpf2S0n5Jab+ktF9S2i8pHZaUDktKhyWl
y4lZLSdmNSwpHZaUDktKlwykWmjZW+l1szxRLE+UyxPV8kS9PNEsT7TLE93yRL88saS0WFJaLCkt
lpQWS0qLJaXFktJiSWmxpLRYUlosKS2XlJZLSsslpeWS0nJJabmktFxSWi4pLZeUlktKqyWl1ZLS
aklptaS0WlJaLSmtl4/Uy0fqvzyyrFy9JL1Zkt4sSW+WpL9ZCs4ew2WvWVK/XEDq5QJSLxeQermA
1MsFpF4uIPVyAamXC0i9XEDq5QJSLxeQermA1MsFpF4uIPVyAamXC0i9XEDq5QJSLxeQermA1MsF
pF4uIPVyAamXC0i9XEDq5QJSLxeQermA1MsFpF4uIPVyAamXC0i9XEDq5QJSLxeQermA1MsFpF4u
IPVyAamXC0i9XEDq5QJSLxeQermA1MsFpFkuIM1yAWmWC0izXECa5QLSLBeQZrmANMsFpFkuIM1y
AWmWC0izXECa5QLSLBeQZrmANMsFpFkuIM1yAWmWC0izXECa5QLSLBeQZrmANMsFpFkuIM1yAWmW
C0izXECa5QLSLBeQZrmANMsFpFkuIM1yAWmWC0hTL19aL19qRjUnO5W6StSRStSRSiw5lVhyKlFO
qtdqq+9wc3a4OTvcnB2OXTVUVBNiSS0WFbilCj8Cu9s7tqx37OnpyPLoSBLmSC7kSKc5Fvi6s69n
fMf4Fzz0eOjx0OOhx5vHGXo89Hjo8dDj3aw9O1s7tySY/RungniQBffnBCjoBCjoBCjoBCHoBBPo
BDY42qnNpK6q2c3pm9VSbtjqMscH6FbtOD7atqL68sSCf28F8eNDeCveFosTi8m2FW+Xdyw0xnrp
aq2XvrV66RzbSqKLO4rFRNlKovXyxIL0avmOpbpTL9WMesnQ6+VU2koE5eLEYmHZrm+LBuoXy/l2
oWkWJxayWLNs5GbprW2WtW0WdvzticVw2PKe4+2x5RuLdyz10qZZLPhNs1gCm3YhADVtt7xjsYw2
3WLZaLpFizXdohuafrFKNP3CStUM1eKRYSEytktAQ7tEMLRLF3BbLNq0XTiHinapyrbtYjlv28U4
7ZaO8K5Y1KVrFhOoaxa937WL9b1rFxy+6xYKQLds5L5aVL9fLnB9uxAa+nZBWN8uZNm+W4z1oVzI
9kO7mOpDZ9PUkYfX1XosiE+BxrtaGGgtvLIWXln/ILdkfYGsMkHyDwZJWzieLinIOqBIncYphFa/
q7id+pOc9ELaUCgUW6tWtvpn3igwVkl1OB4LoFXyCG5XtgSE1RczSP7GBBBX/8KTsuwIZihIBkJu
N7EgDNZIUZ9r9MKnHIf5k5N/pmZ9VTBSIw80mSqWFCrqWitkWE339TyqYELABAEwuzpBgRUir6x5
ZaOYY1msY/2l4oulXSNI5BjmhtdyM+EXXG2dPfBSabn6U6FG0GCSN2i8zVHQ8fQtx7SgyhQN7mgS
6zoS6zrxS0DLfMgqkot8F+NLWgo9hY7B4Hmtka4IbamT/5QGjzRCNf+wyRm5VUyzq7W2yDpkCAyS
dXO8UFDoKDAdvE6X7+XnNqcbCi0FBZsLPqMRYEcjMI9GZlkj6Lvmlrzrifw8lB+xaDfS8s1dOSl+
Jkno4xqB5DWfybUd+XmkLZh1VlHLBv9+o560QLq9MEw9kSsu2c2A5hUk0aiLL5BHcLwEAN3bR+0e
+1bF47AQBTA0YCwa9SuGYRpemU8k5pz4oAIpAgOJBQMpD8ebI2f4RLKbawod98jNEuzmVFQnm1uQ
4LfxWChRwZ1EdY5t7QPBe46MdI50d4EovCAhdEHC7Rzp78YCb1XkhuSpC4T/BdKYOJKuuI5vJCOI
uAbtXon1C0QGOpLsjQXpZYkmHN8h41/C/pyqJJKkb7y71FAJZaOSNm+8oLUSxi2514IEBgZCGMfb
pFclJDFIJKIjB3Ugh0sgkYgj5XUgl4frZ5eM3yQehzHI9A5kGwpkkAlkcQnkdXFkrnZkwA6EWQXS
SDkyYDtycwdSJAWyvwQ/sSWB9QQS3YwFOHi0N8MjJa4ikAXHkdPbkWHckXY7kBHGkXY7kLAlkCMm
kD7GkeI7kD8ikPovkCLHkUg8kFDGkQM9kC5Gmedk/3deRAn/hUaUyCo/FpTbCyuT9Mrb2avjNjKl
o47bsSCN4L/k2G4VDuFldZfsf87/rFejvchRkL7033NccmuECiVe+KUXAch/zW2ZB2sKer/on5LN
dzwtPN3/yvFAQdpPki2O35PhKllZnRdm7z/j7qxLlfT+thCKa7N92wqtX6H1K7R+hdav0PoVWr9C
61do/QqtX6H1K7R+hdav0PoVWr9C61do/QqtX6H1K7R+hdav0PoVWr9C61do/fWA1p9i77Cj+493
3+wddm/3UfPmz7Ftw+7v3RjPnSIR2IrbX3H7K25/xe2vuP0Vt7/i9lfc/orbX3H7K25/xe2vuP0V
t7/i9lfc/orbX3H7K25/xe2vuP2PELd/BYbnRZbx45nDLy5Pwdu+eNKMBG9Pz36Wh887ocH7tNDZ
ks+fPv/DydwS/9Rcl0THlBXisrOEHG5ftrP38s1EusBkF1dZrRPMt1s3b/81ucg0Jnb3Dp9vSdVe
PfzX81f/+3D36dHOwZ0/7j59sfOfo+L/+aTcHJUnbcBbr44e7+/dvn+w+/zoRA15TvRd0mheW3Nt
zbU119ZcW3NtzbU119ZcW3NtzQvXnt5LW57U9cMXz9/5yBm0oY9ZJ3+breNk2vffNf/Ffe20uv6Z
v3h5nf5eM+Cs37uCPLBnG6BXboG4mHH5gVTruuXuPYe6vQvJnIl4DoI/EA9DUc587ffVcaq+muFH
jmsKjTrzzEeOZ+tz8Sz9rk4McwSpod0/02zVQoLfqL9jLEgC6v6+/Eg4YQ0yQb3kzR3uVr+iesWf
KhktLkndzqYVZ2/7BafVdfizmv3FgxHrfXXkC5lJthTwg7qtaCLDv6ZeHYa5Uoeh3lIZmnWkGdeS
+teiejK35ItbbayHtYMCA76dv62Y3vaA6Cn8/gFkgPq9atz9jXRfI07H4RlVBxiRcTVlHF0Zt5bG
svs9zYCuLr4ab7z6/hrxTjYPpLMPeLqd0254mzD8dOw8ECLXqINc3L2t+Gha8Qk5Cdftfpk/apB2
1/3KN/Hj6R4EPd5gv0+bN/NXGNbcRfNEW4sGmkodzkfy84JuHOZvMo/ceAVHmLqZI57fqOSMBXXP
PZcR9xwiIjMCn1Saj7kp8Cb2D+iVeTtPMTOx3zl2/hgAajxho7fIDO/52J2iXrwMxswmCdxgOMYw
yARqHs8vGwcZB3hx7Ip5L2uFaezQ5qBtpnGd6Uh8vhmPaj7WMu3kEv2dpkvzGyzyIPGyIChUV8uQ
ayQCshGMcCNo4kYikRuJo2wEW9zIcGyUzwiauJGIy0bxIQI4bgR+3AgYuZHQ5eZgTpeBCl3zu/It
xTo0z2f3Tdh510qrteKPbX9Qdz7gKfhxK73SipO1FQ9wK5izVjhpK57XVvEG0hytzO/2R947b+cJ
Xb7lOF2ioPPwEceKhcDR27E0dNKA3bGa2aYA2ycVc+YAYncCferucl2YU6eADWnlTvqq+4OP6eef
zb9igKPg9D5lKsJLO+nhThiFk37rpIc7GRmddF/3O7QUfE+BGQdcEMbZKXLlvpyWYdKB/lCMXKfY
jl19F4gUBfoF90q5SoK9KE5HgYEeP70HLeLxm3t16Y8FoVCgfeMxSIM054etBTmMV4RVJQEQDIIK
SF8z+eyjLWf0E8K4Fek4gHpQRJ5y10Ff+h1XAWLopisDsAdDVggmwCk6UnBx42mjVjAUCogTtOR4
WtiswMGopYGF3fAF71FyBbQ26FUF1ozvUbq+kVYAOaB8JH05f72FSY03KOLhpQIRNBrAH3GsghDD
3TPA/QFvkKZQAjyw0AS0QUMPvAwTleXAS/zJSxx3y0KUvuCz+vavuK7L5SHXEwWtKVgjr6M/6KBL
0nL+NVelv71MNf8CQpQ+6db0pjljEZVhS3NuVz/BdI2Flku1xiTI98dLIDptqdS1nq+M97C4awPQ
IeOlxJmGM1KQiPyoEfks4rGwN8jklg4ZH+u5IETLcjpeGChY/aQ2yapp75SXsStALD4VsUAbOeqm
VsleZI1gVFRc6jlTUugoSNch5f45G7S9BWJtV2thHxGQ7XimZCHPeqlDUJcZGAEmjze3cuYPbtU7
XkOh3VjwaENBiK8PVbZJPRcGnoGkyJnY8h2E51jNa2Z44wgu2a7M6hwdt2jhiGMT0mXk1C/k5yVf
nQtNfT1/pdFDW0l1xsIxCpv5Q1I/3VjzzRltg1c8C+xYWF4EKT7eyqWoPfi7/ByIQPgEibGjIHXt
X9DcMm/6l1yXT/e/c5y4URqlOS4y9ibKjLfI8OtRHmSWji+xOwQm3f+h+GAha/tNHTD9vvw8lJ9D
+XnG0zJ4+le8NmpBpuF4h+OSfTpwST/1Wn6eyo82k/R8/1h+/uRZmc39o1mFBwtLGt+5gQAKyiL6
XY5bCtAqa+xYkBnQP+fY0ygNBbDk2u1BVb7xUqX6qg6Nli+12mMxUPWWKRVUso5Bhe6xELg58bid
sacil3g82reMnpLCQMGqkyEDjLwokePj4MRVG271o+PNNZccZ7hHhsFY6HhKN+O5w7ERUXOr0RdV
8wlW6EUl+uHCbJB/uwFvZEPdCDvDKBCxBUSb1czzEafIGhhYGSJLSmANDKyKgXUgzGMfpgjk8WkW
vchy4lkmvVERlcl41t3AU4GFLfDCwHrR2BmrH0u71SZabRzvoRLRaGe1DayukTORBW+iZ0OB6gTu
ibRKtHuMDLtEdaw1IourXQrIE5GVOCK7RGqhEOKoxEexqEWJ+xkbsqKR5B31PS4ItWKZG491qftF
fr7jtHL7HzlmafQamPJIfr7ltC5xDznW5fdnjnVdvi0/N6FOF8Bb8iOyW/2rXm11NbrLS+DmDYtv
o9R8LT9mu9OvPeBYX/SV/HwvPzu8lrXUs2J6FlXPwJRwg/EMnFgbvoeG/icuKN+9Iz8/yM/PXJWG
7Wdmp01bzha5YJWUtumlyfrvuA5/D6xFgTUAA+e3vEEXC2nP/ntu00XyR2KL4IABnuhhfMECbSgE
uGSARyvBQcfAeIYFJrCKBJj19Am4tq0QHl4a4K6e93iWE283w8cDq4g3euxm+yjM2fNmGSCekBVP
yIonaCQhayc0B0+cjCf4JCEQe8JjEhJ/QkROaAXa1Z3FJiaE+IS874nNScjVnqiWhDTuCWZJKDIJ
md8T/uOJc0kI8wm1xRO2k1B2to0kX98uiCJcjIWBS1bo9JIQNt4TKbTc084rahaY8Yrj3o4zDQV7
jd1jT1kBuqQnxnsShTz/pkUKbweMCN0Ju+14puNMw5mBglnxWs70nLGnxAKyeSNbJqZE2PzJsacQ
KDgKAwXRVTdvpOMt7TKMx8JAheyM2Fk2bwTnIPuuZ6LeM/vNbueTxpfUupJsKyejeyyIrUGMikFM
hdv66PpUi8VE2OsYxYaZX+P5G7EJNt8RjWUxXBaxhXNGtc5ObACdvLj7Us04yYJRsLwSzoGZq/yF
dU2Pf4Vzsztkw+6Qyvt7XR2063sLRh5vQfTy7BFHyOUX1JC4tExoUJqHU/bTDhASgTk+gvnY433x
BD0RK/UV78LbYaGiyQSByPiah6H2FicexBzEeTMwu0aMrI1aZjX+6ok2o4ZZ+juY+hH0IutWmEdK
9raJzFgNDcT7gbAgNRvdxRaCNBOR2/SlSdmMvnTYTH4XtfNaIN68soudI8cTzfKEvakT42A3b5XB
NjAJ7jeItn60KCmEy4R8lhC55qryZtpvIGKmsCvd7ArCdDIbESJYQjqbGz43006VsX587PyytmY7
jP1d1idh0hhvRh6YaPMEPxrmL7HNK5xIOU6kKC4f381pe6KbGQhkUR4lA5s4x97dT14ZGzQafin+
gkZs/s3PdIKG0mqA+bHOm3wT9T0cMsTmBmJxNeRuQFdoZpUppk0wwyDm8zZzu4YrapwkIaYEVIpB
sRXO6cQQ7+CkTvyYTo324s3obs4/bO4p1wlv7MQ23H1HxQnoS2Ztxm5ugXiRGL0IW0w2ePFDJSIN
LSRa1gUIsZ3NxisaHH0feygGZlUx/GMuKNMV54QX36gXh4IXl4G/x1BGA0poScmcmnPz/pT1IGJI
c3H2NApZQrWaCqgyCe0tYUqRphoHpmoRu/Lzm/w8kZ+n3GTiL6akYMYZU/vNwIGwqjpjmARIFaxb
Pt/qe5KYaVNhEpQV5IKkT9nyOJ2sKk+rFSIg4IisOBZEklNcQkK3SCq+acsWtiNHZk/5cUWvKJQs
5jpnboKTYJUmRPkzXHi6SskK0gmL7mRZ6X6Ssa+eqrkrrTi+7cl4opsGX7ZRbT5/okXV+e+fcqzD
8bf5u2xrMufFW+WfMBrmZsDSNg4ZO1z6sN7jWHXPZ2rmNGtmQGmVPh4HBJxO7VsVNtFWC3zPfNvj
FUxgk1kKVUVek8SwnwrrankiIKWqqJ1QE1B/wubV5WZmWtE5KzpnRees6JwVnbOic1Z0zorOWdE5
KzpnRees6JwVnbOic1Z0zorO+S9G51zHtBArjmfF8aw4nhXHs+J4VhzPiuNZcTwrjmfF8aw4nhXH
s+J4VhzPiuNZcTwrjufa4HiuanP3E24mt33s3u6DBzsXuOn7WSg56Wbw/7QJ2Z2798bNry59I/vp
uyetwQVu6TTtnPVMdpa6MW7ytHMglsTnuvOU7jr1n6vfXOrG5l/lm6k5JubairDbfzdGmEHblW3T
dE1744Pbiv3j64KPc2uyVHwrHP5LzP9m+BEeX3zPscoM38jPLfmZoQrKKbWjBzI2FuyMiv6fc4yF
KijG8CuOddH5Qn5uclqXpM84HihgxhJBIBVfy893nFYx51NZu+SqZDNLqlEHvXZbfqTOQQhoVNz5
ijVPvhu+m1fdEtklyY/mw+dyJNSGz+RIaiZKuw9fyhH2ITMmqbu6/41jW35bCmY48hT6OTmWNc+H
m8fON3b+G/m5xfOoYWILTCS5S4OpZWj4OjIGDFIe05KKjYJ4GY+xQnnsUh6TlVolk2owSeAuqZ/R
YWcQJ9UONegTJpV+y3UZoYNJnR2FWoUTGXIJ2Xg7XjpsWwFLlo5GU1Ux7Y43R85UnEmcQf5RBW/z
Wu9QjMhG4QIJQ3OQzK6jPSxQcBQyhUjBUxDNr1LDyFZKFWl0LAhR4tkYj2sKdmtDQYiSrLIjZPfN
W7Pk6wviMsmkVwzi6wjiggmifo+CekOhxU7nKAwUPPfUpKHrKYh1TzCDQUCGQUCGGZfl9hPSU9vR
rbgdsqKNZxotkDntc8CDWO/IE3YHHB96cyDDHtkTwVN3r8CeDRRE5esUDvd6Np3KZoYEdN2xK4bF
7F4eO99N8DLTZ1V/lbR6I3LIzR8xU1kU1heFgzpVrhNeQ2cYC0OKGOjDcC0OgAEqaUZNSGiJCSd2
Mr4KPFblfkndlwSClgQxltViIf6zMPwiP3vyIxDSVuwi7UPaXLPIaUa4+5yWFm9Fc2/valdNUHa1
yRp+0NCG2vNjb8ybsKqOpUwdTwyzjjt2ZTKQdsxdR+bHDgyYU2PVWADnSeI4cF8duLTOEJtgzRzJ
+rSVvCEH0W0HybaF5u0UXizA8YCXYSxghckYXzKAx4zBMAMtzNhuDLqYAScqhEsiGwIuipEgeSbY
jQODVO/4gWPF0UlCsjSza5UT9NpZRrb0s6LpdE4msdKmXzgN2k5naJKqJyEwfSs/3/Fxww5mCvra
27wG9KBX0J54ZkWAiSIrxOIn+VFQnrgbC71TnKuF9ISC/QRFGEVGiYW0heBFYwHC0INSUl9y8aP8
iBEx6aT+ipuwESXmc+b5YGgx5ry5cTOX/MxvVE6I6VibzQk3ZG3eY3OK44aszfRgbnjzj+NrJC1o
hDVHcop6AxKSQ9Tj0/MGyiOdaiSqJpJHFNrLdqLdvP7BXlPN750j3CyAJtE4xiK9vU9hiF9yh1WO
6mKLwcOL6TYS9RNJ4To2QEEB/upwZmc7U3IGh7iiI3sAdpU20nhmLs015kQZr1QUGli5wb7UAz91
jDe6sCBmzEMZBJyiJUUBGG818rA22Xu1x3rldeMHNlzKnAHVlDjjAgVMlAZUypibsp3Bo50wY07L
kUG7AHJlu4dFLGMOnVYzgFwJR789nsBvzaMkytacMOMVTGVWyLjup0/h+Z++ADogY3DN1ioYZdXj
W0w+vajay32OVV+6Iz8P5ecnrnYU7EVSr/ADxxrb8oAb0ezE2peKX/XGVj+8Iz8/clvNi1QTvCc/
j+XnZ/m5y92qnT2Sn1+Ell9EXpBpFoT28KOcVD3sO/kRtVIy/m65UGM25IYz82W6teT0qVEt7Zbc
J5WS7MBJMg77ILQKJH4760S4TBI+kAQBv/2UyvAC3x+PVQH6hmOpokQQjMeiKQ0qDX2JxG96Q+CM
6R+RMxVnPGdKzshKW8rCVX6HyN5SmLOGzpLBj1dk5a8kUKS6N7/P/Cqhui/SvVcRXdp1tLdXFEok
bc37/FidV+rX6XQmh3QHVmHSZJx/dHKhhAlQEhVfuCs9JNVUeccd8xSUnbnUQkAcUOiUDDAnqH29
vbec32NjmAqiuch30QnS2fcQC4NEqbWaF/kxQtK82r15fT1gmbHaQFki9hCFzonXZ2xdfITq3qrp
CJMKa1B/DaLpQLyUCp2t1LJ9gqhsoix5mjVt9SCDRNF/wx2tiLrbB7BfwiMcuX+d5Qe2dL5k+g1J
5PThHqc1SEClHAnBSuDjgi1atpSAMs8goAw8ZCDVqJahJ/AETBKyJG8ZuszZDBR3HM0ao/sbLUUq
bkcybG34Vtym7T5th+9VcQPtHvejiFj/aDO20hutDhKJhmt/4yYUBI+24gl00szKjszhDoBHRzb6
jpzkHfnaHfnG3fRCZzrIQAGNQ3vJkaHZ0YHdpN14ormmm0sKpnOp2C8zQBS7IEamIFYuJ5MkiDEt
KM8TY5fTBO/aFoMEzIppLYgtyg2iB4pZJ4gRLojVzg0SWiv54YPY6cIxS9zQm+YtyqeTWOgQNOBK
ukMMfkFjKyX7vNMM8zqpJFDYaWr58A3jeoYgqDbGchwppkPa506Zc0k04iTVSofyY9NEGdtTjgk3
CiCJNI93es6x0Iwm9If8SEsmad4kRpUkYXpJQo+SxFMlaYC0N6+GxYGE9Jjva5SVsJIkLZ6I2pLx
ENIOd5dciBqlpBhNkRocCl1E3HCigDnR+6JIObGwx4SbpG85LY0s2qVLqq5JYLfoeE40RCeKJRXr
TPMUjdSJghmRu2JhrO6BsqZojAj53CT/iBqi0ECLVqqJBwEV6QEvRgCF4+MUFLtfoG0lu5WQF1US
CnsCdSShWVnQj1l5LDLJInmiUceXoil4YtMpeNgikUwVilaw6ptOJHUsZkaWqjCbSqynkKgI4Dgb
BfYhzFTZ2gfNMlJJDRfCFDkuEyhCHphyoJs86oniFGpuDahVc6xYVXQztQr08oRSNr2PIB0ww/HT
+UuM3fgaPSfYkmbf3cwfGTaz74p4WyvFVgN7l+lV6JF+ZmesJvjAeMUawggQuazmOPTzZ4ti9izf
CaiMhlHOKGC6HosNbEuG9olFyOh80VEeuR7wZ1i8jOltmVCajJY2nbG3CokW96Lul86oQv3KwKNN
2cqmKMrNFoOTUSV5eZq3i4VJp2JPBY+E9Go20aT6zmv5eS4/AqEtxHFTvJKfl6pHqQegeIE0o3rV
Ea9UhesZ1zMPIjIm1dT25edAfgSnW/wuP0/l51DEa4mGCHflSPQgAbWlRlUlZbkZ8coH0Tgb1dO+
57ZIQRUvVe7ucFq9WvcRzvRYGb4P9/RG1TfFmJnE5JjEjpgGVdXEKynR0Um0gyQhzKO016gHSP1p
CMhJLOiJULFRrepRqzKXUMZUY1Ub7AYUNcFbibCwRIBXIhZtvNnObCBKZLjyeyTRAk3EUTDdBIRz
YwWBQdUzOGlVmdknmxukUf6UCfLKRKiNki7+EA2pFiCZE/iQE1SRg7mOAnCDHCvyYyvCVXuIFIiA
aMKox+CuWsAgwoyYHNwgOxsMskuIqPmjaEDcMivujjJWDQXQvWVqAn41TLLG6TCH5VXT7h7jvDDx
v6Nb8OLFOZesJ1wtkTVhvrPE9gZTNIeDY+dNfGhwQEmdXSth3a0IRK1Uvf2T9jGp3QR6/AST/K2C
sRi2g1r45bWDRMsPEjA8/KlamW4yMbya02hOqLGtewqoaQE1LWC419WwUFHxz/m7JkujmHmi2HNc
UknrjnYlMpwKd+LAUQ1QZFAnoqEXK3isJ7uvGsUUB6DufHXOKwyhYDWKGDnVeCXI/vGYZUqhazXm
S5Xeanmt4OLH0/OVv9mYqBI/m5+fVsQoH4pfMAgBK2iARkGs9YCMMhBlUqhyPp5BcU1gFRJmgIRh
QC2L4SGUKrd8JD/SiuEBjM6GPIwt9ueecfKy00de20feM9HkWQCAF5Mb8uIoWa1lq7VstZat1rLV
WrZay1Zr2WotW61lq7VstZat1rLVWrZay1Zr2Wotu3bWsuu4rdkaiLUGYq2BWGsg1hqItQZirYFY
ayDWGoi1BmKtgVhrINYaiLUGYq2BWGsg1kcaiHUFpphbN2//dWeuCU2zu3f4fOf+keJhDv/1/NX/
Ptx9erRzcOePu09f7Pzn+3T7+5MijG69Onq8v3f7/sHu86MTIY3OgbZLw/+8D7Js2kPs8MXzd+LJ
Pk4w2pmRXO/egO1kpsi/64SL/ubZUHTv+fW54fWW7jt2a/ty3XvsvIfP0tb795+8gs3EPr4d2d7d
7Q/2n/1754+dvaPDf6fx56vdw6OxztsP3n/x7N72zI1HT/fv3X16o/zX4Yt7b757MaPhLJScdCfF
07Phy2RYZ6n5++/y+WaMLc++fVvMd8FZUziW8LRqJttVJXgySdPhajWyvZzf3Myhb2p+EEkoPTp2
n2UXEOOHF+uEV6dMrT9f4/8yxxjGdrLfPgcNGxAa1SN7NP+cuUvshMmnKB6ufYVDVRTIqDvH/86L
O+43iCVGOUXfddgzeiBOmhElfoXUrcl7D/SdauwFEhXUW97gre9s19/ZNwyZKZ8XpWekG6Oe2hFF
NxkvzKTkqi2bWRep1YqshewdD0bYg2IVxJ9L6gAW26vg/2LxBF8+Vg3V+sWS5cWu5c2xpikoCkwU
4bH8qIR+l7bCB6F6T8YNAmYuY7cIA5v8A58WCIK4yIO6z9vX9J91ZE+hpTAf+a3BuLZdrGgCh8PF
WbZg/BGOlELd7BJgXhJQzwr2HoZTAFGh9XQ6yJWczlICB2mxIOCZAOR57Hl5Mig89T7X1aiqCFnF
vj7Sq4bvVuyHeJ3HY6lYUFj4A96mRNyRn9+4u6PQc6MO0CdcKCnU83qZtTyQyGMs1BQchYpCowW1
vqcpZyVGYdwp6ZUOY4VnJ1MloTJZpkxLkUlmS8V6JxK0JtLgJkuJiSFY4L1UaEIbC6A2Cv7KCco2
FnOUbTcYxxQwbxQglxNMsBO4bhQsWSB9QBSYlxNMrxOgcBSQWBTQlxNorxeLs1eLcz2ZSjN2VWCl
33M8B771U24jMcFE8R97Med4Nd9gteEpS+fhiynbk1rdxGwdcS9H9teO5LoCVKjm8cZeZNcx5aoh
wIC7OLW96OtRTzcTVJSEgJYCEetZTdaliCHRLIpkBLQ8f5NfK2GrTNgqEzbVyAcy3472OC8kL6Oa
52i9rjf86Hc8ohCUmzwpZryaY3WeaSYucrbE3hIOWp5GbIJRXBFRvANRVyp5PkoXRQEmdLaqKRGC
dOgU0ymLdPwWrj5owRuf7yiAk3Hkx9BERwU7qxcYrwpQegVZL4fJhumAcuie/AVplgpWjeKYR66a
cnSMV8TdLdnsU6OYGgE/SGbz1NyXH0UnCnyy0QiTJ3L0TH4EhNPo4qVvEeOpxNOkQY8M47gDbkeB
DfLNQeE88iYJeEgShJMksiJJSEIa7s2rZsjhRNrEQL6zsWAmQLMOJpZTddgfYMJSvKH+JF1s1fPf
6GoUAIGPZxzuc8XPSTSBpDfPZHoMzbGFrN5YZvHR+Nceu2KpCWrF0MHbCZYaV0WybCjMo1B51GQn
kgNpwEtjPnUQcBKxEKMEB0j+Widpcp3ke3WgC5xl/rBED+Syf4XoifvfGSpQ2loBe62uLFSym3nx
LRZrEiICi6Sunnsc2wVdf59xLP0S9jl2FJDmIoEYkVXVs5h6Fkb8lOYwVS+dIxFJFExyLHRhklaT
OBKtWlFYmgex3kdFJ6nZXn0NuAC8ZDGMik8SJMnIDJUj/8Sx4vxkgYq/KpRcbfbqHIqsM1FYf/wZ
zgIyzMLu1NM0gG8qACEVUxo5oSHJUE4CF/FB57wkb5We8SJOjY8I55IQoST4hDQo79hjhjINlTuS
MnWcjw0FIUvADOPE1OxXrxlekXEFvkRTobZAUUhx57s875552qhog5XgIs2TUf88f8TEkzDoeH99
7HIz06OAJgTiCqOJv4AVAjCXAHIiELkWTTJGkNQQNnL6ucECFWfDtueMjXHkOY+op3hbkGMB5Nh4
s3xL5MQoKPwo4HknKNgoUH0nOlIs/uAVsq4Kri+KVyiK5ykqCk+cU15caV4dY4p0bhTpKrqPgJw8
3hFveT8jkk2UWKgoE6mTD3QCI9TknxFnRTQXmjaP9tYE7Rmv2NgPjF8WXG+LMsDUbGs6S7lnBdds
OkGCHZpDTitqUcIRGglnCJJfOhzJSYl5CDq35MlBf2TeSdRgEvx10sDC6uG5mnzeBVnNAjrPgkUf
Vz0D2cvQbX+YtXFlWpojV+M4pN38lmIGzo79sSvHc4ttT8xmbGdTlxRBjmjUiE0gsLBE4+L2JfCr
muyvPr4sVRbut2UjClbWRIDkPndo3g4ZYEuDTsmGKUkIy/gWVNxoirEqohKDKIMjSM87knk6UmQG
GVPO8gB6ZADQmlEibZyobFFia7wYnKI6Y8U6EcX9S11nArZNsHuMXCJsPGBuVZCCZH1s/sAEpfDT
Izi6rKAyBUbRZt61tQVlBRn+ASyqF2tKJEOllyyMoZwPq3qWUk+5qV0ZZldsxSewUsOENH6oUn1J
Vi5RS309sYtAAlJVrMIf8y9VU0DEV/S1cW8b6nYGFFrczF9iafUceQVDEDtN+IPTdn2gIP0uPTBW
D83fImM1y6Fncnjy+3nGoyd9pScZIBYEh+7vMCVEceh70cV9oaq0KOiNWiyFfYm2HRUPoHFbIiNR
5b6e8DQGucnNsVvMHqrZkjUXsiVRJpGpl6ycMcpqIjkrY1R9RXLYB4LLFKku7Tv2KoBijTITc2Mg
q3QiUfpW4BKFOUvIRCbVKE3YICVa+AlufEdwfSBAbhwKJhBgRTOLWyoobOAaNm7gGsTig7scLExm
Znuum2MjC9NsRM6YRqrK1SBvI/DOiJYQkcUj0kqErSaEFDMCRzCWmiN0mIx+yVqEaie7ZDXJPAX4
U0wKW06p3D3ARwPyXjDdABXHk7uPgIoQMJyFSQ1IFWdQJQJkBMQo1UOCmRIxiwXwpex9EIKy/PHN
RjNbQkytMXBpzg5bi6rZTmLjWomPE9OErudJSWi7VwyTmBiMQF02XnNst9bzT5sBfPwQVXFWA0TM
gJnRYwcklt88G5Md0OzlCRNhsAJqVIJpBcTQ0M3psuzHIU2BWZpJEvNnHqY10AgMsDMzmuoWBlgs
YzHZShVgWZi504L6UT292rkcdk4H3NfNbKEaRk7M0/iU5x4GQbbHbaBAmBlxoxFPUFqyCoreJyJ3
xDQUsf9EbEQuzQpS4eY2dwQK6pMQMV6AX24y4OpgiYW94TuOG+6wV1mfZM5Y1W1kWIEtBeaA/bqz
tdRZGuviFXdqvf+cP1BPqrVIO40qz8TU1g/mt1tAgKenvbVBrSoIangx4UjVKNxg1YUUcHF0d5QI
4Niomi9vFGhaFOtZtBAeC36jw7z1CxHEkTzfsbnLh2zJFOLE0hYJ0IkSauxrpUBtxT/z/o5Cy4do
Du1piVH2NqyIeaYFDfLn6XFfiyZXW/30Tb9Cshplf5OffWkUAock2ayX0Ns46L0iPkRtQNXaxWYv
GDIvIbtR4h6iREFERQmKp8tLGtAo0MIoQMM4qH2EASKZQ704H6NETUVFF3bgQsWh6iVhcxQIoxdj
XBzMoq0jTkRrCcyK4oTzkvHZS0pdL+EZUTGOkpTXC8Bv/CZWW4VkRxGw4mNOi8k6SgNEcabE33ha
7T1ilu0UtwrutJNOcbYjwe+8dL4Y9FMvd+LeiKI9RALuta6SSDhGiciMotnLtPGSfdV3MiA7Najv
8z3U6oASHQiC71C01fTiRJ93aCDHJOdh8sQE2zaAvSJcOnZnP+n5Gvuq0TrzjN/1UM3sAYrrxXzq
ZRX1EiE+Xtest2BJCyItWa09gsp4CeMCsZAWdMkmT04DFUVlU6t985qbMm8sKOAWCPNJOrTFrE00
WujVsRvM8N8QnZssruilGuK1SliMPcKKR6DxLI6JkO/UmPsa54OYez2SV2JDriQO6ERwfcIgnQgd
88gqHikrie/aIxwlIAE+zAoDl2rO2M3UqIPsjvDJQHNoo4tBb7vkJ3YtUGQ4Dts0THGH6mZi2U6D
1XH7pWuDNjwzbOYEWKSTRDmvJqPVZLSajFaT0WoyWk1Gq8loNRmtJqPVZLSajFaT0WoyWk1Gq8lo
NRmtJiNMRtdxm7o1CGoNglqDoNYgqDUIag2CWoOg1iCoNQhqDYJag6DWIKg1CGoNglqDoNYgqGsS
BHUFppM3ZpM3WyaN29082L//4tmbHW+2RzeODnZ2bty9f3/n8HD/4PDfUS/+697+g1cXuOPQWak5
6a5Df9OaT+4+v/umNQ8f7z48uvNk9/Dfh9s/x5r02eGd3+7uPdm9wJqfB2UnbYV/3JxMtsm6fbR/
sPPN3Wc7hxdY39PRcNKarVuRzbci26rtm6osur6t26Zuh9lWZMPQ3LjAKbx2wcm64Aq21DsZ6Wfc
wO1idrd8z70YL2Yzt3Wcz8d5WzZ9X7ZlV5RjPptqGuftptysrObqu+C/kNVc3kaT1y9N+z+C4q8m
V/vZyFln+V9med2X21leV21f9NsJX7bzaV5XK6e9Bn3wAbPaM2zkPn7/Py9v3H2+JeHBzoMbR/s3
jh7vHl7YjvPnTOcVcLSzEj9aQJ4fXc+GFdquoDHfgvvxwUx55A4MasVLjfnMppyFajYMFjZBKFBD
YhrJNDFesGd4nWYvIoffeEY+6b7mGQyNCbSWGiMDkUak9xvPgAvzM0dL03VTCkbMnc2skkD0AgkS
IykTyVoCwi2R9iapd3gsAHWLJEl0YMaiFUjGGEnM7MiG6O0eUieqD21juR3xmw4TrM5AZ8kAZeR+
dqRO9PYtAHzRXmjOhxkiaMuTzYi/oUNIBpRI4mP3DtO9nhzSiUiZRGrHZO/bUCAPS7ImoMIazFH+
ApniGyglb1mJNTvjvioBtJQk4c7ajGNBPFvlrxzLy6vfOMbLorl5MsF/JflZSv0RL2cp8Yylhvp8
Km97KkeSalpQXkEg5VlAa1kgbFkS8QYBQQfBko+e06i+VI36qbVHaWbz1ORWr4yFDYUKv6o0s1jS
R29q5I6SM4FbzRfLGXFxZTJoZRAP25GksAbs7jr9lbhhCtpsGVJOvWvbIZvx4yQQa5p9EVbh8OQ7
Q9gkXDUauCJJYiPgX5emrNmaWw1oLDRZPKY38C3A2NhM+HadtYYhNngxkF5vGGAAxVHwY97AuPWi
OQzz6C2lnGVsE0BfVLAraduieDmiANSiYBV99/v8rW1juZfhte5H5Yka+pjArpA4dWRvsMJANqdg
nM/4swJ6Le0S6Ith8komm9s2S2Ewmo20/GxObj9MrsV5hvJmGCwxnngQPUnwvCWbi1P6VcXk1Vq1
cQQnXtsyBKwTiY+Q2R/FNxkJs/PdAQ2muO+fqGbJOzsi9PAjZiLCAn5wDSoKn/Gxga8EqiGv7w5p
V9Dh8g5piXZTdRNSQ+dEeUennsb81LDHMEWbyTx1kuZ4pMfRDp1OBeFgsZjCjCxOyAKYFCResDoV
wJGaKcwkEoGiuKTj0NF2M41J0KZj18kEcoLndz9TwYIeFe5SfiE/nwtbvDl/b7+ZvMjC7J1khLYb
qtnoAtWh8a4tHux2coxrbsp2CrMmcS1xZY48nB097hQINxaAmmTc1RnwRSbyzSL1FL8Z4FXDlNEz
2z1EF1rAYMBRr2QQeREsYzKT2hFVEcIUzqcJyMIEF8mgPjIBftFeSGikedYzseOZwMN5OrG2qNoJ
kplg0nqv5LF2ktx7vA7mco5hawtDXDlJ9e0kB/d4nwx1SYvtwrec1mH+Fce6FNyUn+/4HKDPzPzM
ePUtmjBBe2ZdySwfmljNAOTpWIhEW9hQdMQFRhYLNwtljNWxh7rZQ7ZiESIXjW8da+PBUrYBGBon
nq1YdsnmJAtVqngxoVgakAaWY7xnw5mBM3NWVBazgDeRLyLyZgSo60ne6cmn6skyGhE843AsUrUt
y262GPYUBgowjWCvsS8EzlQUbC2NnNGQ/1fzL9bzhVJRL7JiSyJp373gozUFlh3VIMg2PJ6xqtuZ
loJu8yBreaeL9muu6hIzhWkZniKjy2hmVvfrnP6OuTY+S7RJIPYloIqFY83cz1QbDRYCZZdIAe7h
O4nE4Tw9zOKApocIggloJMm0n5Z101NApfCoSpr5fZgy0Cd7j4krPfegciXUF2+fQOmZ63JtZTs6
JDa4SGQ6HEUSk/7RcIJJ96R616j0kuzWlcCrSmFL1TNZlyRPu8Bug0QwZgHVBsTiUSbJCNMJGdpR
sHXKsQYRkO+JcM9Ei+syHb6HOyGDapNtiM8j27AnlfC2BYPNmGHeUp1h8Lop8C0TWaZJpWvij1ug
gAGUoFbAcPcZ9FQ25mdyB3HEkYBn3YUgzXgTckdiptsU0yTLESElE9CWradVE5QIBAmPHGlnSxdv
BTCYHlibty1XrB+I8tDVr2XHmRaoGIpJIEglIH0FEwxtzWx1yAeikgLSgfZEPa2iTtfXse9N/pDV
yoOaI2W4aJheU9cDnMvsGJLJxD4pXL3iYVWC8O7sOz6PajkpVGWQJ5HaE0L1eIeZNSrOmAmFGWnT
WGP2WE1VK9hYgLadQMQbAZCZQocWwgQPzH3VgcsfOSYXbDJDSMsZs2kYU9jwukDBUNEDBRhHQDdR
bbuSwJnqifxIUE0lITmyH0muZVMaibbOpQM4nVH/AxxFukzwccEQ1R1Sc6f8ayx43dLAsyNRYox2
Ng0qBGCGuEbltATmtxMYetrKAzHV4JXB9tlgRwSbxiaPqKxR6+p6oCxHob3dXTmtSGvZlCC+IDyW
FVH1cfc5x4R6OsyLkxXL+lXk4/Injo2l2aYgSNmeiKNIzSLBToaJzkChbRMo8M7s2AFK2lszCGQ8
Dt/yZfTJzpRV2EZnnMlUzZZCTcH6Bi1Ilt6xYIYWxxnenIz92CXbJ6bnKXtPQyFQgH/YLi2JAZEA
8GbbgcW4FnwoAVg3hmR7xmTi4BKhbYlLCX6WiHHLbGCT0HamnWyIr8zWsdAcwc0n7klmiGKVTYRO
2s46Vq+EXjdVGf48NYttVWPfss17uNkgz4m9l3QMBovOpN8NH23LRZiWXnZssj2epp1ukl1iFxZD
Q5upwJvGaKPbpjR6pu2hkzBw2AZi0SjECDKPymgmYdOhRzvGmrOtiIijDWHaiCpSiYiaaRvvZADc
0Wpjj3NzRKWNVCLOgsyaypJQO4a1Q793NnOGaXMd66RIdOt8vW6q+S47+m3bUSezqZrq2YHVFul4
vMTmJR7rixYCKnJEH7XNtTI6a7SCKd4wJq2AZ8n3WBgCSqeFc9jGXirn2b46kS1yMrvVGGDe9GdD
ztuGYdH2nSFaMrKtiz4euDURP5LMbkb8SDb1ueBhlGTPDjcBy5Vn2xqz+Hrdk+QhF9jPZnoGgVQW
7why3dnWd+wdEEG3uzQjwkzKqOxGlsd8NhW42aPWez46maatje2F1mxmJ0BSDsjO3ipsxEPzZMWz
m6myZ7Ey24S1crBLcrOGutFe3jal4GFPzXVG1JbLPso+EVE8DVECvSLbO3gLFWBcRN1crZ6Mi3Tj
tL1NwOqh3dbYfnJPuNDzjFRFwux8YZsBUln2l4gSgOAL2w7JRsDjecXMoOjrl7xAAzp+5wXaaEdc
xy2g42/4jg8obfscU+OAH0LNHo1+SoKCJaow2kYbxSRlBD6FofxPbqXFCH3D4WCbEVpABiEYUaOV
bHhK4GJsdF8klWR0SxyJCZUwxigRib5Wq7ruXyPBJhKRGCPdrNNr0Cf3OI2OqvEsg27nw16KakUe
dLMdHARsvaRjJUpQZBzY5g/jk0RMSwBllJiR8ar5adRYLZxj0F2D7kOS3YY7wmFH16YbfsSupOaq
nyAbE5da3qIRjpKLLU1ipiVyJcaX+mkN1BmmeB+nX7zLhflK15gPZbxTt9jR3X9suwodCmMBixU7
7jzlgtoFdNMeTFd4S+7Jz288rdY26ctun9MNbyspyIDvdGuhB9yIlY1AYWUS46WewsA95k7ASOfM
qMcHtV+7HZQFsU91ukHSQ+7nnZ5wKEcTKetxtzlWe+Ezjme7jjVt006WRdceuzLtgyQ8tbsPXMHq
Qe0dZ2y/n0Q0VcQqk4imSurp+5bOxoAjYqB3sjGK+xJLCSHRkbiuhNUx2qPC7d1NjnVWsIWrBVGr
N9F9h58QxIVtsWRbd+g+LO571DVDYGw4Qwha5OHEw5H4ssSXIzdr6Kf7htdph8lOIu4HHqTayV5l
Xk594gvegF3S9hmaoCAYWT0WVG9gk+aqIa8rlPAvUMKhL6qh77u221QjRGKGJCzaFTd/DbrgwwRz
nmRbrBUet8LjVnjcCo9b4XErPG6Fx63wuBUet8LjVnjcCo9b4XErPG6Fx63wuBUe9+HA467jzusr
9m7F3q3YuxV7t2LvVuzdir1bsXcr9m7F3q3YuxV7t2LvVuzdir1bsXf/Vdi7K93ffcV6Kdar74qh
rTZD0ZSbuq+P7ZHatjdOt2/b4dH2g4c37h6+2rs/fuDa7Ci69vkp+vwDx/e9Y0yedOP80++Se9mb
gF/9FruLpr2cjXRP89F3AT5Hz4EmmhIrkDcHggG3xNBjCTkzNiqzq81T6bV12x6zu7e1pSV1Ar0J
AZOMJnsSvKeTJdkpbEMwJE5yAgdSCjkRrMZjsVSIXTeEySKbQEVEjGBqdBLkVMB+70QEciK1BOz7
wQz/JC0aC3ZGGkvWfidCg1OoYsDCEjBvBMxSIvCEMBnvFA8g8kYAEOkUxSJCWAiTlU3tvyIOOUkK
7URIC6Tp1QZvzPMRsor/juyYTrJj2p0G+szSOPkruUtybuYveFhvUliOJN7MoDHUwqSAmWzYDH1I
sB35rr5LPa9Zeif/zN3yWL6jhHObYCbzr/IjFc4KJpEUnpoaNugHJGFY+FF+fp5X13TyoDYqTdqp
KUSzKmzbQq3wFElpqUlE8+dy9JsciUM4fyYnH/AKscTl72k6bRxtUem4oNX5RX4U3aJV/0GOfqJh
lNTHapdRM2swYgV4mgWKk63j9buS/S38MGuHKTkuJwyUFlEQHBCziAgcEYqdGRcB2UQUDd5naMg4
Q6pM92LOmgA5zbGn++npbE/jJ0p8O2JmS9iuEuaxhAEvY8BLWLOSweQwmEWrnlV47sFtu2EC9hiM
J3Jvtvdh7DOI4jG0TTulJTN7a5oaO9olIxRskhUmT7v53q1JrUOocMZGN7UOvqZEs0/9aZ+Y4y06
w1tE4CQRDSY2lhvMzECTMS3YpUQBc1oiWanZ1SIwJU8hcknti40OkAi8xTNMoyFVTAstpnypGQtd
xoiYjTD7BBQaWCHw5sjXg1FYcomCGQET5snccQkzWebxAETLY7cjByy4CiDavrCEteRRRVse78nz
Xho2MxgXTtRsD1k7YR31EGh2vGxdSjslo8vAKNaTNv/UsjYZBtOcqfRFdZzL9MUwEZoBeAUKhqhV
MHZ9zEfU9mU7WagiaDWPhU07ZND2GwstL8bUFyAYq50lA2R0GyipZljVAI1rwxerKSLixI74fMeb
AbkFkHHeaMYi540wsG0G4gm0QeQeb08Z1M4wQNQiYCazHjEEulHoAfMalihwxtB8nkYI1iw0b6BZ
pl7qKXTzXuo3i07vi+WJcnmimgDFDjS1vT5az9BI3sadNQBVcSAUrc+j9QMDxFsNaKTpE1Ynzlif
WxdF7jGrm3KZTi144xnMgqQShi3HY7nX26GqJ/tfwoQYOBPp14RVM2O6PManh7qcXqM9HlnoIitK
hJ9FIjsiYzJSzwiavpsMqMkIxOoZoNRMkYmPKrvo6MhObbwRcP34Cb6eaC+dhh3W026yNKfIpUzB
auo4M8fhDl03awyeNkNtxFKsM7WbDMSJb0arBO0e+VRnvMmaB/7laYMwV4eGYYZMTda4GJyT1dzm
sNUTSqMNq4pL0lsWBNFhCxV8fZKojGRBUxK+lCSWaqyFNIuTtMsS6pSIoxLCu40lN08S75RKcaG4
B+BUI8/xApGak4RdebcvR5IyW+B73kneWIkAGF+iFIq5udT4AUkEXSqZv8mP5Jkuv5YfAzVKQbA6
3j1WUlpMwVlfIib9UvLEO0lWXerHb8nPV/LzjZKmr5DoDO8kt20pNu7STNv6Cskh7iT1rxPnk5NE
1gLOSoIj804cjE5eUH5HG84mdFdsGDQJ0SchFSVEhG0hcSZaNKRdsqcwOBvwKdqbsaRHzPD2rUR0
ULKbefN8eHeFhQJyotpMpCcCOy1+0+owUWOIY4gIVCZiRlfJDqU/IVuNl6zCVEYhphgZoGvKjd7o
nB0LVvGBApfUuYGwNd5MIXApgcueWhKSIyRryE2YntIVOEyF4M8/qP7jNt+tJq3VpLWatFaT1mrS
Wk1aq0lrNWmtJq3VpLWatFaT1mrSWk1aq0lrNWmtJq0rN2ldZfzxaSFWb5B9D/afbf/df/FsZ+/o
cDy6cXSws3NjTGN7eLh/cPjvqBf/dW//wav3peadWLMLoWkFg/4FDLrZVPW40eOmr7Zcqmiqbr7d
Y1/fOH/b7FvC48cpyGYcyaYX+2sEN5//JpgmBOaEKOnZEcdj0PDsueNR0RMiYBqmDQgTe3oEUO3G
f4nWh5sd3+ynKycOTzylZ78gz04+yVQrtuNJBEumYdohMVKbyJ5kgSZQbjZMGxpG26GEbRkTuzEG
ax77OnuN2D6PmX0EbDPHzF4D2ciwPdKsDYwwo4c3ByMjcYZ9TaI1ascWJfJC2/fRdh+QhktSy/GC
VDd+xvVAoZt3Qof4neLn3MCmi5mPaKvq+he/4HrkW9LYEeknsOPVhpaIn3Jh4Jn5al8O1WyXMyuw
6WNku4RstbOtIqXNotVOmk7HHtu33Nf9EtQwXsrWCKVslKCCTJ42Y9DFMRMBXD5klwb2ZNCQ0nKH
C2LKLcVKWj7gNBs1JDY2m29z11W22UcWETGL5JVFlMsiL2WRrLLIXaE6kCOxvVa/0xC616Q4B6rn
cvSz/HwnP19DhG5msy+nddNJ+Vj9g5wUq3z9WE7+Ij+/yo/QU8vL69u6hYSMklz/xE4SHYWGTSbY
bUI6NNtWOAhigQ37xt0oGwri1pC4wPGYDXW0E+y9BNhndhAYd9YRW3T7I1vmsX9l5g6ZtGNhLizV
JUp7xoAx7qHAXnG685/sXxfYwzTkB5geMcNm7JTZ7LFmV8IMaLbMPMwpmPaoQqiKCI2xmawQ0RR+
M+lYwUxD2BRsj76IAptNsUadyyjC2bQuVDQLsBNKvXsusrvML5kN3v0uRw+Q8dg1KhLvlGGPtkRE
WJ9tVpuVp3wJD7A5qZttPJFxKj0gwb1jD9kOPrabnxh2e/W//ao75+EV2qPt0W/9TJXuGtu2dDsK
VSlmU6NQ/sZH7VtsjaCh/mzsFdgaN+Qd+ey+HKn75jlEmOPBLOk2SMxIa7ZZu2SjxHoX+1AyAw9n
IraziAnPDDPKeJXblaqBPqbTUAuyCe/IGxmVxpZo22o4sSQqT41f0Z/KWnVT3F+Z/tK7ElfrgnC3
/IjWMNuuGSGw7iVMUN4GqxAjXD7JePE4Jn2YjTlWYuEs4xhjrxv1NNXT1k6iEjss4q7XHZjUB8am
MxqLX7NTSBbfVTiUo11aoeG2maOkawsMD4GtlEN+cuwGs/CU+mPOGJxEyl7EShCxTPipAN9I2FfN
jsNOvniT1PimZrCkbxhHDAYa7Y+OwEWZGuOIQF3NqIUZBdskvIRElUyiQg6zfZ9Vq4y2hMkmRLb/
cstGHjWbveCYcPhZHPaaIDHNgf1Ix4nLNje6+aMXn7r/ggdxa+sKEGR7pKx+0Kc6PjP+JbVSlvjn
MnsrZPxN2fwoMqZLjOQJu63N3YTdVtvHHVBT9ttxc8F6q5vgZsN9FNgG0eEECeyZ6HBVORxcro/c
YbuX9fP329IYbONQ226ULUm3bRrYQ8i+mNk6KNiOaewGlFlZtdNadsVoVUPh49VsH+lA/bNt1yYM
tLd+hTMHo6pSkIc69L0sIF68/r146r1413thVl78yv6HOR3moQ3+O7lZxDMvkIpewARelptekBy9
cDn/5fxFrflW+68hTWshDvReBCp1rvaf6sZtuudtL4KaF+RILwO210oJAqAX3tTLmNbdDr143Ptb
vM7zcel9rxf0vWBOdGHqWdi8ONf77zgtvdaLPOy1BrKIewE6qNNaTIPOvdY3654sIj0EWfed2Aid
mC6DgVFsL0Tdf0ZMqk7MrQE9wbk/5Ed4r1g8nVhWnXshr1QYyXOeBG2iY1Vsns4dclqqHRUW8kKu
zvYW7fpmAvsIqCJqw3/NO4SpRRkwaE1OTKYB5cmJ0XfLfHTDLpn2wXawzPrxl9ympImgoe5wB49z
IiGJ7dWJ3duJITugNjksviF+wwX2A7YtojLAngxX7XDc04VH3KGfvntt4Gp/Y0x8cvf53TfGxMPH
uw+P7jzZPfz39t+m3PR3dvce7Lx860vXgOmz2cg+zJDpcx2sFwOSPMUoP9z+Ubv5wXmTYfPibBPu
FL6At1dMHALPDu/8dnfvye4FegQunLI1WdZ5MKaqafu+rZu+qZqhaJr5Tg79cMrdO6b6S4z9v56/
+t+xa/9Tbur/MxL4nx+++Tzc/O6b2z99/s3/eUP03tF//s/Rq+c7/7kwN9CFD8TPkouX1BRnGPPh
s8/Dl+mbKyHw1qujx/t7t+8f7D4/OiWa/VSPnmos1ptC6ndzqwVsPktffXXTqvfN/lZS2xztP7j7
6l8nHpZnWlw+kNF67o21ct9TcN8PdR+d+n/Oe3W4iK1d3oPhjFU8d7Z/zep46oXjvHjF+y4Ep9eE
x+68iHXywjYkOnmXlEJj/vzHtO0A/0P48rYR+UkVXn5Spe1N29InZR4PhPDxmfHEs6eXosidqo+3
w+x/LnDBv4g+G0m+yHX34jnHGeIRTz9xPx+V3Z0H0f/78MXzdw6h0zboxc2EMzTVOCIumMFeyW5o
QQHvQd2aGSNsVpfMWBAnRf6T446Co6DPHIlN+Q8NbtOtp0sNuSPDaVbo9FjgjCZCyZIhUjzv4xsS
N6rF+KX8vOaNvEgtzEELIT/nwZ6CusvtUb3wjGPdhP4lx/ZpRUbsc0FrhUstfsanNchP2+kP+dnj
sUCh5sUEAbqBgrbsK461C37nuKQg7oN8wKvE+h1e0RziQxVgjCMw0+U5ZGlCtdsJ25xXwDMR52QU
OE8UaHoUGE4URHoUZLnTOFNLmCTQnyjIa5eBA6idnujMKHghl/U7N+Xnl4msfmOuYodHWDanFoS8
SxPoQF0eEs4ZS20E2cRYHPRRQAFRkOxRwEZRAFQRBHcUHEgUVIiTkNFYkq4qE2inCQzUVyNhoRHY
usvaPLLvMF5s2SdasE9REPOO6FuX7bibN0BjESYCh4rA/L0SCoo8ghn3Apjy8h0vXRQBTUdQ3d46
2HDQ2vMN3dh+KqeBalhknGIrtT2bKfeeRu4pekbjFaQpvfR2bKbIvwwqRNGbMgK88IzY2lX5fmu+
f21V2Tm9tUoQXZftjPRCG6mv+PnLzLERQoyL+bUVFaljpJmi5zSeRcZfBNoeW33nFzwv7m8ZrV7H
mGHbNSRh6sqHPKYdoSP0O04Per9udN4K+qG0FtKO/4nP6P0SsaCxDcIQvIy7OBjlNAL7WFsnSmLy
Rr/1K/58sDiZuLpMaFUyUIbBAeQbEuTvgaB5gCWexGbjGUFryF4C0c1CWfpyMyXUnZ7MfC0D+Mi8
XSEgEuUfLSYtEfqViQ3UES1R/FE2GPBg/qLsXTDeBlwtQ0Uy/BFYnsyZDOBhegpQhIaENvaw4X+g
LPHM1ITAojK5JbXQ+HkTVcfjOPrSNhGIIAyi7tMuuw540IrRdkfPhBbmzbE3WdpOx4b9Srgz2qwL
pDkaYToaYmfhmso3dN7Jxg1R9kqIsjOCJ9ttBIvhG/3WpxBnranky9RrbFwSIswoEH4ru1NE2cmB
qvX11Eg6EhtWp3RXAUM66RKBXZpGJN2RH+FW6Qu9qnku0mOOS32NEpgIrAsEk2k8ZJLZnoSzJJmm
6T43yQhJkjUi3eMlwvvTTxzb20mIqIGsaZcXSfMmGfJJGj8JL007PDSfflVdTPkVNQVLkgQX6Wse
qCnIKpOk0ZMsvEmQpUlGRfqWdwWaxoglqE8jttM33CqDQJlPkoGcHjESNCEzYYJJstgJPC8mWTjT
Q94t4ybd5N2AJy2CSeM/dZKnY4F1fWUBinbCJkgiF2pJKKtTOXd7pqOgmSAcKQzKPY41DcCfclpD
7Uhk4khaXv7Oi2Zoz74uLEKiPOTJijv1zS/4krypvc0xLQiR+/M3l9ObpzudvZtLmqW0fEGFExda
bg18hmbSFCwCdvECvhhf3s+/b7CpVErCzFJb6CUfKCl0FDQ57WuOB75s9Outz0H0aZif5B4RYMp4
GyQ7e4M1hYABSyPacaHjjPW0gt/oGHnZWNAuPeDGBoILCjVNZd891jg2HL0gebylmiz1swkJYjwz
H8q18b9U/iEDQrq/JWGEImBbQS62v3BaaGol6rO9yWn5bkvIXJqLsnM08neKkNQFAUyUBx6UWsmE
IcLJdp1qiClMAGAVktv+xB0AnTXss5XkFu3n3E9YYSJUUCUJQKqp/Yo2KudkT3G0rYSjtHd4jvBB
DbJs73KsJPxI60NbQ7Je7aGWtBoKOW6tmoYzteGn73Bz2kw7SO2v8sOXalpWY5zan3mhTMpWonrb
W1CmHf8pj6X5d7pqinbK1bErlpZZVCWPQpNYwJMJM5kgJpW/8mer+/8UDqh6qMpNU7Zl0/ZV285R
SeXmbe7/MxivLs4Ad5K0uWtc4BoXuMYFrnGBa1zgGhe4xgWucYFrXOAaF7jGBa5xgWtc4BoXuMYF
rnGB1yMucE1pey2i9fqmrfpiKKtNV/RbIWIerFdcxIZWp7eifZfSBP7avb/zfx0zlz3Y3znc2z96
dvfo6O0wtPJ/LhlQehGwtLNCAc+lDc8t5OUy8q9OEMvdB/eODu7uHd69f7S7v3dHZtfto/2DnW+2
c+XwQuLvzhxMeGFkX3R3vYeZ/KoHp3XW38Fyr3dHjWztsuHBF5rxeF2eT+G0+jCjps62DI9Dstx8
PwJ8Nu6ndPvm1+nEsZrjLLkCN941C3N6DxHoFBx65Q7XRnj/gNmD7Wi8bfenO28W1huPDvZfPN9+
9c0rLmZJvOJx/h6T+4w1vkKueq3a+vz114aK/nLzxC16uk48yxfO3l/vM1LeN1xuZfvH2H7TN0Pf
bjZDXddbXj/MpcKquXEREsC7e/+a8cPzUAffuQj9z//9zf7ezmpzPOVWEHVT9sUYmFJsim4z3wqi
qLob18Wg8R5yxNXMllPz9rMsIO8CH/oMAA/02U2OxYHrDAkL+C6By1Pvr0L+HRi4rMfiT9YwJQma
9BI6mCx0JoMeybzUgHyGxOMN+oRBGwUQkyfg7YRh4B2GelSstjNMrqEcFGP3jVy3+wEWzANJ+7a0
tCzxW/Vqa/rVjUKAxoLecVt+fpGfn7gKes5gfgq0iIJpjt9xXWiJAquOPyg+rwE2p9CpDelbNwCx
4/ccG4IPFKAmjd2Q0CYKTjreUpf8sWjMtgVYGDQGI9NuWb1NQSInxuOSgoF8rAkNk6cIu+cc68uf
8ajCgva4HiiAwVMkhkR8BAkjGE8rGO6lAAruyI84HKtXoAzEt1ZJtHJ1KKcF7VdJJHN1xL2CaZPI
xCzowiwQqWxIQpkwmbjGUL2Q4wfy81ivijtu23B6W/1Ej9VPV/8mxwrTu8PdgYLQUgsR9Y78yEfq
R9wkTVnvyrFQWj+UHz15F5xeRaGm0FMYKLQUOgoz1GPfWX6iQAhbaF6C4jA4R09hoCBjvnkFNqeh
UAP2ywoIzHYmakECg8YzCbifDGeJigjtjmL9BBWRh6ccl1oQhGIGY+yIwxwxBTJ7HXmlcc2Lk7W/
N6+8IV2D18tAivq7x+7rj4dO9RtDXUT1owuaQCZ30KkfNWuy4j14uJh80qA6hDc4opOCsJwQb3Fa
povynvgtp6XZ4i/E1GtyY8XNuaAQIL5s0ZbjLS2B+Zl7CdUXsNZY4B5f8VRJoeASey54NgnwtlVC
4p6GwjxCs2+LGTkaW/+n/LyUH9lVQFIeO0kSHYWr8I5u2gDgDwVXqQtcEkBHjaYTFhMFCxUl1ot3
9M2ie/vppbKPgWQ5dllj/V/LjwQ1CteLwsp4w5R+T8KsIiFjUZimk/TJXh+WwKUoYS1RInqixL5E
CbaJMje8RuNLTE8EOhlbDZ6Xykp8XBSgbZQYmyjhTrHVsGqB4Gl7tBqULlHMrUay28ulJSU0KUr0
lG8kyriRewUU4huNjZXXCWAkSkp132jALIGpALmi4B98o2HP92ftOHTH03huT1hMNXjOKDBS33zJ
aQHCSeI+32hktsZyCrozyTBLrxREN8ds9cPQTYGjCuNMv3E8wwYOmynCO73mBpIkOkCQ88x120e6
Keqy00jNZxxrnOhT3qWRpi95U+bdpGTUpJbpd44HXqWP7suPzI0kkyDtcTcZJy39ZiSzY7QvWEto
dOkLjgXb2XzDF7VWsh9KOtKoNE136qaAQE9AaSAU02fuIeLSE4MZLESSKEVPaJkn5jBsuOS5RCSj
P9Zd3RSQSeivI9i0FYhtK+ECrYg2raRSbJ8Se6cBhCI5tCLftCL2tAKzbH/nXkFStoLZbfc5LVS3
AtOWpc5brEQr8Q/twYzsYoZ7FvysUxn82/ldhUWPyL4ASeLmvezQkWQzgyRh60n2K0i6VYDkfvdZ
JFQJWU9OjyTsWVifz/q4yJkSnO6zxEVKjLoXXumzCuL6nD6gtAgPyiJYS3h+UjYhGeyplAXxjzIv
crkKpJGo5XhPj1UQ2yCebBBpNsSTRNCjG7C8G6TXjYo5Kd7lVo2xucN1kfs0ijerYhWEwweNH86A
sjQ0NaNvZVWNsjDp8VgkQ1kDQvVajkSKBFIv4ORKZxfNYgJJqEU2Qhb9bXbXFNSVQapnAOqBHRoy
SPVRqAsUItJci8hWzF9sgdWj6NYSmKHRHa/0OBjqGjybs0I3f5ul7hwFBDDGCuOvDVWo4cNOBtvI
fyJ36O4jhKPrO4Z784/U/UzW6FiSjROhTilomL0znLO9lHhtZisCgTD65hY8mb0EovGudk6BYUt9
OIbhHUpb5MZ+DhCgm1884tiAtkKQs2Npl16CGXrZh6q/r+KvyrNEeTsicoMpoJlIiQzMN8zOWMdY
M7AplGdTKc0hTFB4JILe5dvIEfGf7RrNaU2j/2w8uQjbTnNqY9Tl0vc+EKl1l7V1l7V1l7V1l7V1
l7V1l7V1l7V1l7V1l7V1l7V1l7V1l7V1l7V1l7V1l7V1l7Ur3mXtqgJVT23oebr/587B/buHO2bv
uf1TGhfBza2b37vvbx7D126/uLt3UdjeDw4tuAYYnAlp+l+TyvOMptfznJFnR/edJxWn5EyVUPDZ
zR9uf39zu15vfhojqT5zbwKqnNHz5saTE/EeE705C1+7XFP6yovOghr+GFjRBQb8XMOp+J6z+LJk
pGvmzbseFbjMZHsXNXS3t//PJS5nFzWOLlMuuJg6VP9zmbzsyjMVtsMg5P804hM3N3/4/vutzrn5
zn3z6aQlvbnpUtjw6dr+Iog/yZ7Wa1jJGlayhpWsYSVrWMkaVrKGlaxhJWtYyRpWsoaVrGEla1jJ
GlayhpWsYSVXG1ZyBRCB97KeV/9zyVbYCzO6rT6yuY9saOum3LTFpq42fdFXc3d9uznPHHfXzIi5
/dL/XJIR9mKH8rjb1IP9+y+ebb9/OB7dONr28I2797d1ONzfDqyoF/91/8XBwfZXGugdWyKeAfHw
vlu2vSWoKxpUTsxyEcxZVNRao+re89kyUpkA6BtR2CQXQpScEVESOkTJZRDdU5atlkJDAR3C9RRM
nAaAGKzQcwn5PKjcKyDJ9oglT54Q1TCJzpZFKx+XPU3E9rv8aCK2PfnZR2IRmUNFnlblwFEGsSw2
JFZxlp2l44zYOTXQTcPW/EP5uSc/d1kiNU2HLqliWvQSS9TrI3pSckGoiJhVbwnIjiE+4JWajkIN
HSFqcg5JqiMSbECidYCIA/KqA9wboqbHQNjNJH8Js+WbyLeAKcZjGQpYaTS3S0BuyyR5ycDRgahG
MLIRTKzLkpolSx6TTKyZqymI9CSyvMs/clrGWvuI44qChiqJwUDUqyi6UZRkIlFgsVHUqSjqU5QU
Jl6xu2KCiQLgjK2GL4m+qtBcGWCxtRgcnQ1iFhDItm8EFi9o5uhmhp2htnSgvvnx2PnymKFie6Iy
Q8WLY+fNtiSJV6LkbokCmo6Sr8Q3Gssimn9zG9HSDACA2h3oewf+3XJ6aURZ0pEzFkz5Bdbu0e41
+CsZ+F5H4HizSckmvtrjAMA1x2n7B3eovvpCgakKIm8RuVtw0K1Au1vRqVqBgosOMd4EclgB1mIq
Sph+EsYen3/iWFXgu3qsOGKMTUkmZNLpt8ERscHvodNLLI+jjiZTSQySI6NKWlCTbP1MeJKwKj0i
zdzIo9QM/hqNqqfQURhgVSgYqjllwWmrXVNMEeNtZH9yxvWE1yiD8JIRxz+RH0m25SWbTy85PP3u
bEQ2FjQa4jOYlJqh5eEovC7KG+NDblLr8/xlrZm3HMYX545rj61FODiMQiEKzVHzvU0szRhYMJZG
wHEwRQTeFu1mtJaJk9k9GLAj/G/iiLR/NEaIGhS5J2LtDsO8ShZb44Iy1vHelns7LlXHHmqPs4y2
nvLTacPEcgpW9nNtsm2q6V6d34RHRIxlkVCNSFRHJKQiElUSibZwWeN8sZ+Wi25r+9kX7ZYNBSOz
5DXWY6LK51+5EOavncJuZPLHVk3ic1NG21vTtGriVl4vXFPMdR7bfxS+E8WMFtX2VuoKInYCseJ4
teW3ui68gkZhdeqHEO4UlbthylfauimtIHEpdmWKuVN+sW19M3+7jgKxcmoybn7luKWgtlboatS2
fY/rGkz4M2RECvZ56W2JpPHNHa4HrtcUhLc3v/DFRIHIunkc1dDZQPQN4WsJAVLNsHC98Qymb8/i
5I+1ZXs8KmuYEr2NtxKEp0M3WRAfAz5ZhJ1FyDHgk04pXjwP9/IkYkx2L3bwZMsq5p1kS+Yxyvth
chokq/d8znZDOTM/W7CbFY41q/kgtvdGC6sx03ee3dtvTPB3pMwulWV5snGOlzCTRytgXA/H3lfM
6IzFsStTpIqFshAw1aImWEZr8f/4aNfnrdGX7cwehnggA3ksNBRKCgOFikLN42qoVeu4WOfFJZXE
gJZk1fLChJI4mXxWkzNjO5v4IFKCqEw+/zKnu7UwOlkuR9lBFh7hJeNxS0Hzt4obQZa3JKtqinvc
JE4FWQOTLLZ5I7rORvELgkjYaMvmWpJQbzLCiDjGN2p51mmfN2LZ3Yhdd/OpvEtSQovMTKUmGaDC
667YDJFsAlHf26qpyFRP9mLND92q+XQskGU64uv3lldUU+3tsWDYEkWEf2ezOtMtEdpqfW+H/dlb
Qk6VYWSXj3LSjyK7nURbA23BZBMBjSc0GyZm0i0RFvpLlO5sIuGBivitIppysGGLwKuQJNG/Peuj
l2VX+2G7ytrgEkyMVCdF8UdF0Y83n8vPZ3S3OhL+RPokn7PJSKGlflabuSwymPoyPsTiHkh+q+7G
RmZN84Ab7TMyDhVJ0Iuk2u/ybWt/W+eCPhjJC6w4DpKcO8Atrpd8jv3Tt5u2Lgujd012BhqrfIkW
yQuz6P1T7rc19uN87dr/NWFox+3E+we7j3b37j69cZKRdYJMiif97s7TnTfm6SkXwsmH9PvYt0+Q
beG923Rv588TNed7f2hKKXHe37mcR+ZG/lvKM25tZ57yjfOu1Jnzab4zh8cpYvH+YdJdzKffhYgP
XkRXb1Yt3ShPnA4iUgURqUbpxIw9kwJabTamprgwsysNx24ZZrc4CgpXsM3ERGrK9xGuROLJkqs7
3+U023phKzeTxmsu1BSaORGNhfA3CkzYQdpK8/vaGYDOIXE7U1gRvcXwNp7BeBzAb0XT0USCVZi8
UyXnEFG9pdAgs5vYp1a/wzlhg2mxOB7Gb7Fdx0xcHe+d8siLc8hrZx7R1T0FcBwzJGy1KYoZ5iQA
gJ1MgjhSzOoYcZJEu4TaIpS5LLbLvDv/jO064WeGvKDOEdlXMD/lNDY7aXqXRfLNIk3nHa6ixARQ
LNIxLj/jWM3HYqfNj/i+ehBRcVCtvZnzsLdH7PURHTuidUcs+B4njzfvDRPMNwKWbJ5wWreAesyx
qhNPOZYR3TzjWE1lQnmzy+mGQsn4xR0STathIOueJB17knTsi9Wxb0XH1lNJdY2xYCoe9qRgwz/y
VM3NeEoCPhjQmNO+TdmmEftO5WI2QEobh+ND+FSjGXPYBycCkAymaGIKYmcoBkbS8Tzeg2kpMJ2S
aa74dMw4ozvVtMAqW3bhaQ0hyQY9LT2qH1BaZBtNHz/nJulWNklh96L4KVTV3CjDJsZ5yzRmhBJX
dRJvdtLNd8Tzl8RdlsSV5rO5ewSEKVzVC49N4uRLzuwuCvc74ljqG8UVFcV1Ff/g6pzll2aPzpuv
j503vCKmhLz5Bi1dDCibmxyLbWfzlfzckp8v4JriHzLHk+52iuXnSzl6jikmofoTdqFvb3W8jmfm
7VuZbTp3Fs2BIauZUH0hzB+aL4bmCtFR0IhdvdmHyVtEhrxdYKXBC6K+t0WZBTPi84kEL0TjPS2s
TaH9+3AeY1PztbBqZmucV9P47xzL7G+eM2dlhsYvGIyYNT3LnMfw6N38I2aZTvHl/LztspM334qx
Tow20ldjh4BNUAeRjDQnG9765gDC2vlbh2KyyYpj10cF00qs0+Y7+coBLwc3aRC+yQ5mC15PgUCP
iHdILUeyca0SUZth2Mm+tU52+/XmBzIbMB63yArsS2Prh1TQ+DDo82yrvRXE/C57G/usZllx6Yso
leIrZqhaO29LQxzSEIqPlGkvfRVkkjs82EGmucMKHyL78CZCV6I1I3Jioj2TtZ41LJEvEdhkYrYk
HJCJYZ4wVCbkD5M2EpE40WxyuictaxYW+ohZP2L6j+XUm9EmEJbPMGcGtcleLutgJJgmImXoEtvO
Y3iqTTNFQCAYOtlm2uUjhoSjMFDwFEwmsYmMKOIRTnQPuHJ2BtFY3V64MCOrmDf/qa06+Duhu+xn
LAInmNqFYUqRyRPxuEQcLBELb2TIRBwsvjligLOyG7giskbHOVttJn6VJtRGNIFD5kDPppAZGd2C
PeL/z957Lclx7Ozat7L+A+3YJ7PU3VXdlXmwYkelk/duSScMmiE5FJ1mRoa6+r+LLx7UsClDNyT1
fRUMTmf5NEgkgARe4I9hu0rBhQ079le5pKI7AtKN8fDAbpcF5wavFTtFFQHEYNMCmz2bCxtNeIVU
n8aIGxWJZn4hNvTqjXA+ZwLEp/BfJAnbM1McXLJA5x2RIeUTjtVsC4p1VETHTWS7tsrTpxrMoDyN
qjkDNds4kjDabFPpN16QKNgOkhws1vRKIaJvZX2/PzMQb2C+JeuLy8quuxDxwL4Wm2AFbPcVDjaF
tpTfuYPgCMSNbxBHegpbChsK2r9ZfW2RrsNFDXi3u+CePloIg8Xiyqul1wrUa/uh115V/4tJJMbe
gJtt7KBOezeIJhK9Jk++QEGMU65gIwGtIxh7ZXSMUhgpgQxjeAAvv6j47pzHTXwVVw9zvhEqfUEm
TVutMEEiy9r7uqeDLKb3N758scMGj9fJxSM3f7djG0DGKTNOGboY4TVjnteK5osG3i+VVagRiOlr
RcUNpvnCgvdLRZ+t3hMsNc2XI9Nn91V9jQYqt7G+LjPVk3bM1/XVP7IMX863X2aE/tgGe8l99Jem
0jewgfFPRAAbwl5HWw9h1++2/e4CGOE2xu3Rc43D4pe++KUvfumLX/ril774pS9+6Ytf+uKXvvil
L37pi1/64pe++KUvfumLX/rily6/9DeAbPIscLCL89vi/LY4vy3Ob4vz2+L8tji/Lc5vi/Pb4vy2
OL8tzm+L89vi/LY4vy3Ob4vz2985v70lWW0tqP7a1bOTx0H1l+Px9TcffYbA4heM53+dka5/08gX
bN4zRIe/fm/Jl27qX5gWw/B4OQjDbf3YbN4XtPROBT9TVDjVz5l+HujnoX5+0s/P+jnnycczMQSb
7HHzTnxcCOycxd078fH8DYiKoX7GsR6OJstEid1xMON2DO+MK93xeHndr/zBLzxmKXFlC0SMJtmE
9LNeZbpRQDzev1Vr7/6Sbm3an5letrG6hx1nVLNkzH4601sVxEfj5jNrpr0+2Jo1Ffwtj5eM2H+t
l/2io8eOP7GzVSLgZhAtUfvWa+UN8PdF+ovqWQ+SQnzf2ZJeYrIK75sdV/ZBrcdh9NZ9zXtHComu
ioyE+mw9DbHdU6zhccd713Yp2WjZhktAJwioCxOdqFqy8kdZ+ffkJ6F4fz02XuZv3VDo1MavOO7t
5VpEppc7yW2sg4z29oVCodpga9GfGkvzEyOY6HEJ7XF1V0PxvY7ucTVT8Deoi9Ov1iyRaSDB2XRH
pBCMGkUloR7r54Z1+PzyohvPjeLVyLD+juu8GrI+sTeIOCJ+X/v+yQyilu9AOoB9t2SfA4P1amAk
jD57CRSyoTeZuvbEZMmmZAGb7t7wscjYV261aW48Yi/tGMWk3+gmvmkj2Zm1bH9roD8k/0wPj9Y+
G0mzUsnsFupN6HSgrYy8FNS4YdTULVOVYWI2N7XfO5GnemdgNkh9mN4pCVYGu+lVAxOncKajsLWX
VW+JyMxHOjOSBdrPjJPGdmJr0E/2AnNM8zDUW0zzntcxg9S+JitjxMdv6iMIQ4rN9IwRk2x5smFO
p701Rg0/Ma2cxmwKOO82YotGx7uJWasttv5kkx2jzJDTjNzaHTIKhPyd9fvIiiGxs8lRL8jU02R3
nWo5UKBrC2Mte8P0Kgao0PbibaeC8xmNlAypUxPohuJvUVsaH5T0GmULjXLInE7v7NViCFPvMEqW
6UOKXpw5pQnUcf0T68XGJoBpdisjrenWbNNm8HqwyjTnll53KTtSIkOdO8KcC0eWUqvAhinuq06E
Tm0GBtNapoLNGCZbMEYRSd42rV5UKRqxSUmTjjs9IfuwNNnpmFc1pI7sSzpTp0Hrvio1Okc9EFHs
Q7ZlInp6FKnVge3tiUr8GZcIGBYphCExtC4qyBgSlcJrYqT2chuvUD+38ZtrFo012HeHa1xQ+yJ0
aEt4gcs21rX8X93o7LyYWCQlPxrH7SD79bwymiglz7gYC5UtTEZ93NbN+L5+NBRrLYXxPf18wLNW
7Y/08yGDpNmcJAFFTSaT7SI1ix/bGNhIxi/0o06Ln0G8Gob4Jf1g1ZNwMMBrjBNEDVKUxBPFTqLV
w7rue6OpBnWYlJV/sE9sEyKus7gNa/KOybWlC6qNlImskcd3sP3uGOariRF/4EafxMU4edxyidEJ
LtTZkqR2xyt2oy+bku0CqatisK9cpQk9C8uI4NEzPTXGHXRsTE8Ze2K8jhwLnx+spTet5c0I5xia
tSGTS1UHs4q3rV+szlHyS5SEGH9ECh6YmyN9sGahs+7RIqw8lHHnhCsaVRLMGMWQo5bA+BNdbXUX
y4taSKJErnjKwq2ZEn9B1g6so0aqv1Iz6MJUgSj5plkVHkFHmSlWrBo2rBFGEH/HHAj74YIxk8hm
976HTERfw4Aic7jz5dL0tTgPln0yjJ9wvIYyEMHU4fsBNtVOW1t72jImEGlvZw/H1X0udAi5o/WI
Fplp0FYUBm7uKdhs+p5jJlVApzFRp021MmEwwWRofEAUM+Em0kGRpzrnGu8E6mfSeLGJFR6/3O4x
9n2bmd1YG/wOmOvosh582NmAPbX+jGObBSymyt84vZ63anUM2djA/pKJNT0fjHMlbUnbwqQwJE6X
0P/mN8NXbGqvGbfImEjJC/J4nNYyCNRpd0wvnkHlsTVy7fscYnx7GtKIhfWndmw9v4bW1x/bsa3B
a9jtGnLuEEg7CI2Yi4C/Y8BXMeAYGHAECrgGBTa5A7vbAQPzVBgpJAqZQqFQKVCfRH0S9UnUJ1Gf
RH0S9UnUJ/GezHsy78m8J/OezHsy78m8J9OuTLsy7cq0K9OuTLsy7cq0K1OfQn0K9SnUp1CfQn0K
9TEJv9dbepNXQq8q9KqAVM/Q6+O9Pt2/p5/39fOBfj7Uz0f6EZ30n+hH5NTLctN/rp8v9CM5ov9K
P1ryek1FWWxC/51+/qsfiQv9D1bvbaKQKRQKVt8rdmzyrzbbg7begzbFg7aEg7YrgvYpgnYtgkz5
oZeQ2v9urxv48sCXB75ss6JnVvRw995Y9lToKPQUthR2FAYKgUKkMFKgGoFqBKoRvBqMcqQ+0erz
i01f67S18wIJD2vJFGuptuvbTP8tBdV0fUM/1zm9hivAWQLv1/ye2YabQjcUZn//tbvTh0GUMYgy
BlHGIMoYRBmDKGP4wV5klIEtLQyzFGf+2KNJNNpzGk2ztptMBzJdTU7YSgjalCx0akykMFIIFGCd
2Qv0RaYvCoVMdxQKiffI7rCvvFaaieXyHlON1m6Zgl4GZ+Smf4f1Vb7EhUzVja+tzUwzvQ7mrhVs
eh1fCjxugvcaXXKNOLpmJNeYv9YQ9hrCXqMdr1EJMbtNBTol0aeJHiyMaKTyhaE19jXoGZua1lM2
LbHDmxVeXGwQFxs0ooO42CAuNoiLDeJig7jYIC42iIsN4mKDuNjwFbOL+TYyS0cm3sh0HeEII/N2
hDWMTOAR1jD6C+EaI3N7hGskvpX8jH8UPpL4VvIz/lGYTvICVU1eVdhQ8gJVTV4xOFTyAlVN0MrI
8I8QzQiFjRDECNGMPBWhpwilRigjQjQRMmou00BGTjSBM4EzjU80qtGohhHW2p6xD4r/rMV41mI8
azEeMxetta6sta6sta6sta6sjetqeVlreVlreVn/TrOZhUYfaylk67vwyRUFdeaG/tnQq7gZBrbz
A9v5gS3/wJZ/wKs84PEdcLUOuPMG3HkDHssB1+GAo3DA8S7g5hXwAAu4eQX8dQKeNwGnnIBPT8CV
J+DBE4iGDERMBiImA4GMgbiUQFxKIGwkEDYSiJAIONoHXOsDHtsBz+mAy3XAdzrgXR3wtw64bQcc
tQPeiAFnuYBXVcDPKmAOD3hnBfy1Ah5VAVeugONWwHEr4LgV8MMKOFkFXOMDLrwBv+GAc3DAzTfg
ChzwJA7s0AQ3x7vlzs1x6F4BJ52A+0/AkSfgBxRw9gk48kwF6lOpT6U+lfpU6tOoD3KF2PRabHot
0WD9jUm2NmM7E6ZNlDZB2sRoE6JNhNZS0Gkp6LQUdPpGp290Wgo6LQWdloJOS0GnpaDTUtBpKei0
FJgNp7O6iW10Els6cY9O3KP7waq/RfbfIvtvkf1NoO2u2LEJtJ0W9+6afiSEdRLJzNjVSY7rJMd1
kuM6bQJ2d/Qj/tKJv3TazOnu60db0p0k504crhOH68ThOnG4ThyuE4frxOE6cbhOHE6ZvANJuwNG
8+CGN8xCoZvVyoByE1BuAspNQLkJKDcBZSugbAWUrYCyFVC2AtUIVCNQjeDVQNmKruZSn0h9IvWJ
1CdSH9Pm16xbNsZr0YpsiBMnHykg6ATkG2vaQNOGWdYLSGnWtEFDPpzYaaOSQXQxiFgGjfagsR9E
LIOtLSKWQWM/iNoGEcRw7a0Ajn/WpB6bVa+kHt98+kH+7MtPv/rug089mYcyeVxKCtv9d//1qit6
Gc4szwJrtBiLFmPRYixajEWLsWgxFi3GosVYtBiLFmPRYixajEWLsWgxFi3GosVY9FfGoueIErtz
9eHVx1FiZ7dPbp5fuXNy9u7Z/s8ToWL3zq78ePX+nZNXAwK0ROoskTpLpM4SqbNE6iyROkukzhKp
s0TqLJE6S6TOEqmzROoskTpLpM4SqfPqInXemBnk/TqWf4a3zCuv6ZvAfklsDuylYUeoLMAeZj8D
Np3hsu6Aa9uB4bcDlm9ncvlU4M0ZHLwMVl4Biq4ARVdJDFHJW1ENgJcEFjuwaUdAI7ckjBodtxMU
vpH8RFsA+kYw3bZARW89nwXoz1twgLeen2JOjiH9NQWhW7fP9fOVft7Tz8f6MUA6wWO3D/UjRNmg
XBrtM/18qp+P9POJfj4w8DiDB2vKwhaUTKN9YWutpSQajRtUWdynY+HSyY5fZcBPdGyVtb5KBKiy
1idaV2XgrzL3J4YlMVBVlv9E91bZ9yuG/apNgKrNg+R9rpQJiXGq2P8rlJSUmqxCGkkJkpISKE2n
Sd0gOkvQx3TGXwWM384gfZVXQbmYkqVmKAZ+9wsPAZxvZG9JFKDj6gktAFCs4BQnoUJWUBNTA0lP
K3r1bHUgtVZAj/NaHdwecXrDjWqDcCcreI57fdvR+QzC1VN6NASKDBKggREX0AcLKIaFTFqoJVNB
oG5avKbjwOsbz1CwlFByoJsuAM+XwPYzkOdyoQo77hk5I7Q3edtNx1sKvE6dkdef6+cTTgNDmLxZ
1u9z5rNuPey2jll7XT9X9XPLEAJloWqrY/3c4LQlt7jDsUEe/6if2+ALGtLxiX6ucbpRsBSDxnfa
6qZ+7nI6GPygvpdx3WvsPze2nRtb0xmvvoznX8bzL+Pel+XH1VAPGr4KDQeJhhdE6x2A+Vf9PDJU
Q8ursTVuMBV6gH5HCp6Nw0GZPWNHMghEw4ncgspImoVM4oUMbn4Dpr+R6KahEjcMqg2lOe/+q5/v
BeisvCgAvI8sEBNSodYppTUpyl9SVsDdy9ZQlKikKL1FUbKL0tmP+LO2RPddbdip2jAt2jAt4rBF
m6mJjfICs0qbecGr5LjIvjr6yueLkJ8BsbWy8vmCZ7QS5xXUsiAp+WEKN3T0tY4EtK/EiUkpJROP
VO2sVnZeK5bZNM74pdXY+hWYIrCl1iBLMrNjPaCq44bMeNnZqHNP54UB3uZMDlRTWM13+vlKPxp+
bYlnualkbTPmNdCgyRlbYxJVCgXyF6HK2TFjdWvyr5qofmck2ZNWxmg8mnI9ItSM4RySIzlDBoja
IPllwx4x1xWhoo+kKh2xMIwkPByzGZ6KkNHHTOZREmyOZAAtHdnOLIOC1ueiZXkk2WbRsl4kIhQt
0qOn9CRdZ5FsML1dElv3NddJAEI+B0/8YAy+SGIokjZK9x1XV7wxc4aMDQ2Y7YrMZUkR0MITZv2E
O0jyJFWeTWMzC6cuwFYEz+ovJM9I8Y8irlb/BBWrZIeoIDpX0kS4SGsTZHNBWPZ7/KN+yd/j7ABw
5sY0boirnhCikcamuQTqTw3c7FKz8w4DOyYfReu5FazZhmQLmvyMEF0RjJN/e8WZjjOBgr8QIbwh
YCevMcncEplDMpJ28jboHuWMLJ4XsJm4a+L2MVfVYZa0UnuOhVwJpd3gNnW5Mm8Vpe0szWTvH7jJ
gKKV4kMbl8UwkpWNtxguu7xBEkNQ5VWSBMBe5R2S6JIqj5DEOFWZBau8R6o8Waq8R2oHU24kuDA0
ZDmZVHmlJB8bujv50Hq/QzJVTjKJoa5yaUlQUmJcqrxbEuSTfLwZ5ipnmtqZgU+Y9fKiqfKwqXKm
mR4R85YjTIKkq7xsqrxsqhxxpqtI7TZNlMIoCaw+FTK6gputAShI7VZPS2bmHEP5LyozrTLPk9Lz
JMuHAWdISphUnQsoW1hlglaf+gZJvbVq3OOqN8L0HM83C4ewxFrO5RqZahrpBZojd5ONaCTtCa4J
UwGVovh7WD0dATyTrbagTRQ/s6Xgy7F/dMd7/BM9Z/ySP44uVNYvjuayXwVsGW1zbubq0P8Owc8S
40l+LAGSNJ6Cc19h+6dgtyu4AhScBEf6veAJWHASHKWEFZz9xjbnoZ7xo8lZUFjHTOhsTwKMD3Pi
Zs+TSrKNQvaZspuXuhntH9NKYqmbn2LZcHZvktP2F8wfGE2yG0QcWhxenMkDmh3+n/Uke43tvb9y
gXUgGyN3bHHPE0ByIc+tZStZ+NSQ722qhi+47iIsKYs8UZfn76z+VgftF02GT/SjHBrhfa5qKgWZ
HcLnnPYvkF1AHDoFiezhI66TfMkR/K0V45zF0nMlVVICODstpBNrpARwllxIlOks1mby5sJ7uKd5
/oCLaO8hejq08MET5y8k76zkWfJkm3Cur40BZcu0IjNR+ZYMBUj0mRwxlrCkfHXhW9FT7Ew3kEyJ
jCbSL8qXnCbHkmnsO3T8HSnhyvcc9xc/0q0vfMQY93dP3OA9oVRilZy0lay2lXS2dfRUiCRHJAVu
Jf1sZaui4lqRlMIstZMndmmq58ZtP3IsHWLdLtbP0wtMAPsYPCxHwdoyJGCBUe3y2vMiBAqRArYT
U1xWpvG8x2msLSOWE2wOP+jnO2wSO8vruU0UCgVL2vlf/XyPqtRhZsAmMbgWteGMWzpIJWBZonpL
pcAd2Bd+4nSikCmobxSulhWnlhW1NqljF9KMrVcbEoxMVzoKmyduIfZzMkrsMCZs0eVGMh3kiw91
nps0naLKrVDuOs6sKWy45HkNyMPQyMPtuXSqJ3xAN/R8O42U34003s0XH5Sukbw1lTx9lTWykmjP
vsWaPRV84SsUfLn0F/oSy7I2Jgp+iYXJdwoySpSJ7psLKxRaUELnSWTDSewUZM9rwyJSthcHIlxI
Z11Y8Qr6h6fHM+4bvuSYHBomIIcL/Gu9npMXh6+5r794g2evq/Ktn9gxSewa5hDPu1oQwi0la2cC
NezYMg1vEIo3yLsbl+/nZDPNOS/MrzjjrBfr2HUX+CN264wM6kKj7WYoiWJev4/ZdHXxXT2sNK8/
gHvIYrK6Am+o8I+BCb6FLTCFLSfIlrm/m/OfJC+ItKOR0piNbKcChKM1I4VvmZtmXtFUDJZo7SGT
7omhGzzjE7bvERv8mJ9YS9drl8+mmeZ5R8hE0kiMVcloW8sTT4cLT5MOqzF3POd9Q6j1udyQd5NL
qm7JwUQy+hmkzrSmgFjb/HEE0sqkbgjQbljJ2Diy76AhdmYMIgl93HO5FwTGgqZfsBiYnW77OxfQ
4T3/u2kn8swoDTFONDEV/Izp3j9wTDanhsTXEAYtk1owXd7mTQrf2W6PZdUOZK0P3/OgKaSib0XA
1A492pQtxcfUzsUzk36wirKPmcoVLiQKJmH9wLHLG5ZQ+iFbKWhoyfbgbIJKm2yW4FE5B9sDpiv7
ImbgV1zQdMzeSvK9FVIqsWdBVmr2FLLvO2w87RFSAdM740mWQRxoRGQ2gjUbcZzTPA8UInNW/EJx
xGM4Y7JumZI7ClsumYnUxnSab6T3aaSda25CJPFbI21s8zM+BVnZmhdYKs2eBjcvu3k3O2PNm9co
rIvkQUNth9ElslIWlPQicpvo0Au6w2gbxv8hlOYiu5lplANRmwupXDWq2vn2I0J0Qb4ufqbnHi/4
hiLSsGWqVZrDiVY06oozm46RP6W2ZnawMvtRWcAB+WIabdtZQQppiBqmSHamxE4F31n3Jd234X1t
t47CFGbmC+3CJJ7Ilo6L6OCRhXNEyc3IxiOOyCO+1EUZ74uS1RdW4ULKQJT2zizg2iPqzNqu5naI
YQ0bgKnqYjGl8z0ejNXOiQsSU8YSUEgJmN1cjLnDjdUFBwq3UWffYdq+UrCa/P4H+aP66RtxwXl2
NJ3nz0v1CvM9PZen0Iu20Kxnt47PjyZPoKOT+zcf/Pvs52uvPi9V/6/LGPPLcGZ6/Wm3JrPluzce
3Nv/v/7zvX3rzqajo/PT4+Ojq9f3bzt7cHr2brGL/77+8+np/lek8Rwhf8+b+Ow1VesvaPDN1Oy5
AKr61VpE+tmeKa/erx9//JnT6KcPzvfnzh/cuPro35foJrivwr8usc5vBF9rcRpcnAYXp8HFaXBx
GlycBhenwcVpcHEaXJwGF6fBxWlwcRpcnAYXp8HFafBvnAafI7D0/Prtk8eBpddObm0f/3kipvT6
/aPp3CtA1lo8EhePxMUjcfFIXDwSF4/ExSNx8UhcPBIXj8TFI3HxSFw8EhePxMUjcfFIXDwSn9Mj
8Q0YeZ4Pjest8Q26zEpfhnPQczsKviX9fMn1vjTgtmev7kbVbR98u5+Fq/RN/ugrr/A7Xf7tna7u
b3pnYhNtOlDFp2emE/fuXlLXb/71mttxGUPxvLP0rRyLx+Pw10P1utv5lrgI/93WwASM6XCbjs0J
Imkkq0J2GN8t6LyA1BvY/mAL/3TPDohjA2QluUAAvXMElNOUWKUfmHBpDer7Q64D3N2opGXDGj/l
YwB/Gi7w7mfDOAVsvwKN7jdKiHNoeByIpks7IF4DkLxrvkNyC8eQNRhYPIOmMwlMVq9tAAXXPxH5
hGUbAMZ2BFYVWOkL1WoAnpOhQLJ1RL6Z6seZ6lkuwKSv1Ng8ZUbAYyM5K0jQMRVoTAJz1XJ5RRBr
dz8COOtvUU9YMrQGUm6akXLNa2k0SNrYA1kfyQ/gOVX8O9HznwD8baDV4Lnv25joqwSmsGFRr8gr
4mj+pFMI7G+FbOJ0dCImyd50Bsz64jDTG9JUOBA5XW3A0Btw0g07d3ePl/VUSvSQv+YCvW1I4wIg
Dw4Yj/PC1HOkcjAiTeREiIxh9mwr/lbIzwnSwIbZ3Z3eSxdmcqkU4HsbUNxOC9m7B9o03PYV+OEC
Jw8O5RzB04+eoWFOo+AVLWA426X6BRc2JDDoyWxhwNLCpB4MnBiE50SyFwOebyTVMNrBbDlN5B3P
VOrlNRWXM+Dw9UP6I5HQwNPZeAOisR2Dr/ckhomJ3ubMPwVKN2xppzZPyVmZdVVJniIZSQxaucBk
6wmvYtJY4pok0OcRLHPLkpJuWT0t0U0EcFs8JmJj3j/Rk27GVgHLQ5YdaPpT+6Lld0nAje9OmDrU
qXouIujHZ15lKQCS3BMX/G6EZRDdeK1Pd0Dxnq1nPmNpFUizIGNG3MyA95UejP5lpvFcX1JCWVOx
XU+XIOsKnPnItx23uvkZmmvp8DKcYDdzrkY1SB9g39rToyUFKp6M5yqvg2c6k2vwb1JQzGzBcPS9
93wpbawdBqY9eu4F1peRxEgFNPvxc+7Qly25kueqGEmbNBqQumhhhOJ9zWjMnDlDhNWz8kbdoZU+
Gn0qmW/Aj2HfkbbwjR/rRxkcOntIi+v4IQ0VHSrnQsCyF1eCNpcdLZKmLlqqYJJ6xdFSNYBTbnjz
o1DfR2VlGD8j44763zpsDeGM3/C0ddiXMGSyOFjahVHJHkalfhi1YoxKhjB+YcNjGQg0y6OSy0yj
Jrobb+rbn9N8q7DhwY/cTZohYwbjNS54/i0KtvQhB0bBrMfxCoDvNoY26mI2lk41ncAQ7cM3SFCi
llt+BmVDikrXFD1XgqUAUjKnaOmLlMMpVLtXi4Cl/lGWmGg5YZSpJW6+gOEaySudgvLwBDbzgpJ0
RGW2CfDUSJ6EwFZG9Kwj5EqJnkvEM2p4foy1UYiyw1jqlhFp+0J6CEgF3HvPnjFeyE9Azg2TYsn9
G5G/owvr6ujosrLLfy41It7G/r8c05rgTa8UqF2kUs4/jOf4SgoLi0y9OBOh0wrY/aNrIjdgusaG
71o/NnKuGUvbXOdB0tGMnsvLxRKvLcKMp7Xy2kbaGMnJUGhs9Me9RVyCK8zipCfu8uEaaT6zHb41
uvD4iOPBqm4CTplXN6OfzX1uDRQYvpHhGlm9KwnlTPzafcsdjP0Ia7fcagVJ0wfGctyxHd98qDZf
8g5YR6FKiUwiMFHTOuLo6WlgOFjPI6b2YLKL2EkkRCiOs/4Q/Ts03cmeFQJFguCkxtg3CGVaNXqS
Tfh7GOnktYMsLJdZ/x3qh+XE+pnrJPewtaxScTwuAl6y08BYFX5DhfFkGWRDyV4TWuTiYaZT4V8I
FGz2RE/he8EdJ5KUzUUpT0diGe4suWwhM8g4J6pKrhYkpqFXwmr8PceJBdT0s9scewa8gYx2vuoz
xJnJQ5rGb16fIWT9n8c1gBRMK1s94NiUy3ssYMy2jHHBKIJk5pFA0XaBg0j9iTtmcYH9FNJtRV43
+jMwywwpFDq/oBB5QiTvSjN1bG4wYKg8lYoXmmoaSGEBYHMsjvOiV/wpZkaB+ipzu3j9TAHTKr7S
qq1M6pHwzT13sOTfc9o5aGQz1636V2izU2elXyqzv2KN8Z6qzjM8J6E/7tlCTbAht40RYbuFzs9A
VNeb4SDJK4ViTgrIb3nYhvMXbvSXIRhE5xf0fvWshPR1o4sbqTlNCBk93xUDs52npgnPyl0fR0+m
d8X6xBav3e9cx6KCYOcCvqeaw1h3YVVzNaHR157v0NdUW8Txqoq4uccN3dFYdRNcyZYZZZved5Kl
BbfchYlknD05w4xUccmJvd2oPOBJIrQSJU8KWyHjrF5kHM7NADah1jDZnZ6Xb39MKMqe5MlzJ2Vs
hLZAJykrVXmJ630WeBKWGsteYSIgfWZM0mKSdJokPURJ4MLo9X+fRptM+DnqCmYys9HWh3ZcSDtr
KmuSGpE+g6StP7S6J2kuSarUyo4+QUIK6NMiBsuRp74OuLPFZLlv1aBegnoiY5TJ9klSp7ygY9Jy
Ysl+cUKPeDfGJB1oa5VHX0pXOCbVqbHxRO71yqvSnO/XBIJkFROJpKuklu3tftOzkjSjJLkzSetK
N21cbKbK8hLN0mJaT4NNpLuwOUtSZp+UXpPENpPWiCTtJGkdksEvVDtpOd4089MZtIiZK7rZ0nK2
ihMo23SoUj4KtGyUYQSbWUqUATqYKmVW+jWruJLgRk/IaCa5xKw1jSj5wJHDLSEgr50VYuGuSMEm
c61/geh9DE08fg+GxW5D7/nZSHNmaxqenQHPuADBsTJWT8b9E4bayOdsG+E9ao6lcnAJxiz6qJaB
1XYkDR1pc5GJLct7u82gkSmQucQ7YPoTi1/BvciX7cRpLHvLcAQXAHdo2MwEz+zp2xAmna+YTeSM
ozuj0wJaY6JfE8ph8qx22repSIKrL7nO/tFICuTkpEAhYqqLfqnBHz3tb4I1Qw6+y2F65Wo23mXo
L7KujH6Gjo4kZjVpbM1SvPqJO3oEdX8L6eF9IZm/7bYhX0z8kxCBLW6ERE9nfJfItBI6Gu4056g3
6Wz1EZs8pm6dkaHVjNojb2TwPAWodeqFTOMNU4LJudEn2ym3+oq54kzjYW+fWtN55mM7vsNomIjM
Vl+kkSNjMSKDmGhboR6WCXRmNpYCAXXRdzjSnHN+ROkzU8n6B8Qmf8ZNuIjvxgdH52ze8IYF2ynZ
LzEJRsbTdtUSkyshLCb22TpPvA41Yfee7mFi+3KVEG6d2t1GTDdj3EnwOPmdTccQpxO9Cd8Fi3WC
2yaslon6jYxBopW+qmaqmb3ikJZP7syesPHk7SxNepdkWulsMpOm1GucB57yHsXAE/m6p1l1A0ry
qkKk2VtBVbNX1VOa0imJQuE9hd4pVKNQw0I1XJtLDJFVY0B9SShoiaTAac4y6kyhRB6nWwqtKEyd
QnMKvWEGWna/WCTWrCjlffpGVFI+IB26twhDxSymej8gLpiE3Js45HsqH7LwWFp6mIRNqyqSlDvz
ZA1gECqWz0YvVrTB6Pf4Jbrc9C2iKiabky3n53aMgcL3F61eMx+rdK4JHg0tTbga0wU6u0KnNmu2
M1u0VXr3iDsYKV6GPTW5GMieTj8ztcocSfnNoh6+xR5Xb6Atb5ED3Je1zp56J9eP/78n6nrjwfHZ
/Qfn966enz87aOPr8nl7jqpfKvLb24E6uLhiLa5YiyvW4oq1uGItrliLK9biirW4Yi2uWIsr1uKK
tbhiLa5YiyvW4or1trliPUfM852rD68+jnk+u31y8/zKnZOzd8/2f54IfL53duXHq/fvnLz6yOdX
ain7O5+ximtYdWgOhInquO5sGe1XkgJCVTHE8yscCz1Co5fXJ5w2xKqr+jEJcLpgCBXC6V7f4nTl
RjCvikFhHdtxBS98rpNhnYNgoV2yvL7NdcFYrK9zvOEbYGBJf8jra1wAkKsYYPFNjoHPMva2uq+f
c2CKteOx+pXjnoI8beSP11ZCI9AGbca6NBW0SbS6x7GhcMk3YvUzp8XAVqf6eWigHMlByEHnmM/0
FLbcDAJXApzLMHcAYGhenc0FMHPgl8V+22bGME9gg9gneseAcKwuR/e6ANrcKHCPWfG2GCu2uMFt
jdtNhYHCCMj5hjN8VFypDcCXGyFhu5ugyStnHPArGtCgQURHMMsNFl2sP+/uAiLhiCMGGfIAPGRH
EgaFt5HCovl8M6q7A2WvGd5ET/pARDrHm2n46tmaYFBi0jJGPEHH8LOgKz4x6ApD1CWzQxEEeCHv
xFTzxJlKAVyuGRtYl/BqK81AdoWfG4RKEx7opCEA/6gf5WkIQpdNDswj2Bt5y014qwBUGfhiMcpJ
bcbjq8CVVNBO1IGVdWcqABtencgT5AqmjRbmpg9MPRkhhpFRbnSqY4ZoVKXqjRgxBPm02W3BySor
w5K/Rud6VwqUSWDtCYzQ6QJwSw20j+Yo13qnAacZWpqBpQg5p8i/twiRsBg8kACxUgAVtwHqbm8u
QNXy0eoZPvAAaqtH+vmN3nMSBf9nLgAElDzvAFNbrx8dpkQeeVP/GXTKMf1ktCfgZyEfT6cBNWlg
gDU/A1xKAxPFEVCaQ4mDK9e8t4FbbT5fGwDWDmktBBdDnmtG1Uaw1nXJYO1sNBJ4bYMXMgUw2Awp
zj9dQPylCZVG1d0M92ZAdW3Gp6wO65sosHRWW6N/5Fh7FTh3ttXvBv00gNqjZmQf1jX5LRJQjgl+
bXwfvKcRpJkR9KtpWCvzxXHiDf3nC+tcQ5IH92Y0dimvq7L6SifBetIMGD2r0QokewO5kVFxOgYO
rYAEZRiAA+NsYL8kAyhkviiC1tqP1AjrmaGdEYcqAEkVwK15QWpUUctNckgrcROb6KtvVOHbVM+g
+m9xLDYwgP1jaMUGmjYAmWgIyJCokIeccg01UckMkpaClEgLYTClHe1LTpngBTZEfoOelOk6yzye
14YVeF8/P0FLTkLkTnHa0WBPtEO6kJE12RMwGJTc2mqRwq80xjCCf1FlvZsHgAIjZwKFSNcbRucv
+vlVK6NkNDmVjnrtGAQ7KhfT/SxRf49BKSXkLTqG34yqiyN7Nr5UOAPlF2BAC5BmBRjQ5FChmUug
nRnZBuvNkViJDOJiBsF1dGBloFpH+ZWO5X1O23XB5QvotSiLTlEWnVE+NEXJdMaiRCjKoVMAfC1C
ei3J7tWaZlxWaXeK4GaL4CBH8dKxfGTv2dks1qpZJJMIRnaU400BQXIsn+rHcr34xAah1GG2C5Cn
Rjny1puOQdqydVP49tOxLTaSSOQTX4RnP72Y7BnGIZIBdInvCxZ/egm5Oxxy3GG+C6CMNjuHT5mt
muQGAid/3DLo/YMAqAd1/aDeGNRFwxe8AOAvA6fWflUZPuM0a5+hWA/q+eEDTgMu5tlpDM9ObvRF
bvTTabHhZEnOZgA7Q/eWR32Rk/90ekvBhJPPORamnnzukxjUdFr1U3TAdExGiUxiCwM7U8asolxQ
BeT00s6omPiicnQVQ0dk3iY2DoqjsStB2HRHpZC5w84oVUGwNz7iNpDnbLY1f9C46+98cU3B2Kra
KDJK6oiJ6e4obClo8NTn07G6In3E8UghUtAoakJWLW3VKurg0LaEAG+XsL8lwq4SQQyVxXBi/fVt
zLb6Rz4nyUGvPUmDa1gVXaEhzkpqSUCoVszjlVCkSqBU9bQgnosPX/YE8GolYqJ68g1PkMFme1YA
U8VVtbIBl+XhkNdaXORVnBUtkNdS9dcgL1YAvk291S7IdGyC2iOOMV1UbAoZXM8M0udIYQDS25G6
M3pSdrW+smj3CHzgeiagtA2ff0CfNphQWcJbRLOaV+aRVc3Yg3Ihiqvsvzx4I3yZB2vREy4YM00X
IJv3qpejHRMvNuLVMhZxWAXlFAXwFMX8JGN8YO2O4CeODmm7QlIz1moZXBxOOwEty7T9nDd2NArB
yPq4N0PJiBv9OM6LicFtD1/CdUzNIE2kRJrqOdJcbTEBmy3NpK4dSe2VAXwtSnU3FsvwdHqhG7s1
mMUjNt2pwELrCOCGxKxENGWQfDGof4dv6R8SRXi6JYMkH77i2NZDGxFh9iYTNsjqY7CvjmzuGTc8
ZUq4cMbG4Ct1kjiqFss6GLcUW9XqW7UWV4IOKyGD1bMyAaic2oyy27A3NGySZoVascexmqHvM/a2
jAUud0woDGaJTH5meFOVJ0tVwyaBBmQJ2ViYJvoqXDJdwTrSxMK8E0PQ9nXW1nbWnvZIqpus/fGs
/e9MZEMmsiGnJ3KXdP3aIcGJoRrDhQJPG+0nk6MfcbrQiMoZk/fuQKwuEZMEMAEErD4aCe7NpMEc
3bIGynEuMyy/AwqbckzOzBGbR3Y0W/aysqfTZI9/xPo0OsAsqTBHNPIRtWnEMDUSmZxJspmB0M0k
zBxZtEaUy3G8MHUx0lXvDSxSzkIqL0w0x/MOGNB5Mcnd5PpRmVRHoQcXGaWLTNpjce3hRx1/a6eR
5WWaKSb+I4/JAD4qy0dhxRmVw2NUgo6xmJL/wG5i7CXbyUY+PXsB6b/bzqxJmV8Lq9gI/HaRkWp6
0qwEZgN9xP2mztzjto4LF0l7223ciidzmuzsYzHlRjn6ipkoTIuRQULZaIt2Bwoy3ggOeJHhJdvS
gSA34ghQlCWsoKMXzEaF/KIFcbBggSrIhUV5ygo2p4LNf2xuZjM9tXRzUqXqH7BPnnMHao0DZhtO
ttKMjWSfGNuMWG9mtW5ODdGApScH4inMiUoag5cJeGT3s2BDKxhkRnC+izKvFbzNCq63hb2I6VbU
xIbh23Dx2SotCN4FQ8hIYo2pYL39K73kH6AulgZIG+9GOjvPObOXb4woB0zvipwswyNb/RomHvvW
ABY40NgJ0OgyyJQ+aMIMav6g9HfDiYFmmz1rkOI0nPIKDF82AINoc7jDR93SZDqluMHwPY+hWtrY
Dpp9w3VOm257xrHpvrIhDIL/HzSRhh+5ifypDSHBrN6Dlv1BuxPDQ/1IdzOobJAPyqDJNtzjFab7
ahoMJpycXxifYbOeM26ZwV1BzYU46bR12ZS5hwNySXMacTPTyT2ysEoWOSeVhO3KVmTZAhMY6NSm
pzZFxqhCcPf0QvRhy3PFKltkoioE3xU58JbmGj0ZBUD2KIrILlqD03ZO0Gm2x8SUNOaggPKigPKi
CO6iuPGi8PLp2RUPWU/c4dir4Z/B5uAg7mR+cDMmOviWbTOZ7Iri0xN5hgvx8AUBpRAJWRTRPr2T
mtk8V1x0UXh6ApA+4XBfkqeqQPiWuS+R9CexT5i2c2L6QnJM1BEtMnKMLUhLRVH3BSdvG/mw7n3k
4V3CAOAGz0pUPBcs9qsUvuFCvvhId/GR0Qppi4gcuYSsXPwMhgtTEDCtFfLTJpInlTarGZbYB/Pb
9PiKb/H46NXY8JTXkBeC408SLwLdC6a26YWYXjJ1LlR1vpn6VL/kzeHrxXWkxDBSn8SbkysV3Jyo
oaUnarMpqGBMSpuLQxE9sR9+WNPTq8tBeX5bopMWgKIFoGgBKFoAihaAogWgaAEoWgCKFoCiBaBo
AShaAIoWgKIFoGgBKFoAit4agKI3FhD0Ak4wzwK+sjjCLI4wiyPM4gizOMIsjjCLI8ziCLM4wiyO
MIsjzOIIszjCLI4wiyPM4gjz9jnCPIcF5vz67ZPHFphrJ7e2j/88YXy5fv9oOvcKUGwXTJQFE2XB
RFkwURZMlAUTZcFEWTBRFkyUBRNlwURZMFEWTJQFE2XBRPlfjonyBgwWL5Et6m1ItfR6qn9p+a2e
LaXS9dMHZ2dH+wtXT+7/+87Z5Xj+vFBV3kyqqBfLrzVlMNusvq57prAav6tfffbJPP4a+rcsIdjf
V/gy6PIF4wPfYO9eWo0vo3tfnGG9wR6+zEpfLm+9dvrg17PjPa85v3189OvJ/RsPfj16cO3O8fXz
d68+PDmbFsuj66fHV8/3q+vRviuO7l/95eSWDh8/OxUeV/i38/3XH+2v3zt+98HD4/tHN/dP/bzv
gaP7D+4fnezvuHV8enS2f9nx/UePedirhyl71u7f0v3ff/Y6SGT7vCzuz+t3qaHDb5wi/vV/P31w
//gVst83MNCvqoKXNu//Kn9kMk+IQLqQyVNb/t39pziC45tugWVSpcOFaAcCcXHrl29GlFYZcIid
biTLhQU/SckPeDVPUa9kArTEGo3EGvi7TuEWFkmrXHWF6E0PzeP6bwSzkaMjk+bNQprCnPvDMtdJ
44/yMZleRZiARQX3Dzkm5suiV8LHXMAX3sIVLItTJrDXojUsMsOCOLZXaLUGwSI5LI7Dsv5lhetl
hcjmD/Sj72YFqWWFUCkr5RS2R8SBeegr6VvIxF6RrSz23+j6Z4RgRUJiVciKlA3q6/wFpGIVVFhr
ILAhzDkvPZTHoiDyN4QaZkiBpD/W1/lbAAMMDEB10q5WxJu3eXqZnZ2ZyM+jO6zHFLeV/2tD4DGz
lYw4CeIayQloIVBZAbtb9etGUbH5Bz12i/d5vFPlTKZgr7lizbdIuUzUbVY4bla0SVZEcVZgUr5u
zbB7tyR7TCRKsvZtv6X2BpeggNt8A2qy1FxWe/u5ad3WPNLcan9CmDuBNxbykhX8m5Vlxmq+Jkwo
K7w3K9o437F5MZJqtnrGRiMlBQvL8jWl/CRGCWLSFMsa76yo4fwTb1NL8ynhKhYbpPCb7CGDAy8l
bnYkst3iZTqRVT7XEGqcZeuPWzicTe7eamZxxkoctBOF7H6g1+ym3/lOImLX2v0rU25rpGChelkR
Nr1VSGF6+RfSXNkYMGEy6Xmyv5jEQGz1TGd2MEV/akXBI7c0QvUXxpP3ynoTPMY5Ez62IpVc5C0Z
4AZPVJg9VyVMPcOGMtG2mSDbPM+LyD2W1ysTvTXMb45kxbLFQYEVE2nx3uhdQvKo5B1AbTyxGwyH
cLtMzOvmIbH8njzXG0eXRH+Y5iaibT2Q08K4meSEBecL9fXX+RwnBaqnv2JeEDJK3ELMhA7nGaLC
CD8Tv54JRc1OoCT4zQSbyTQbPMgw/saNtjh8D8SCp//1vvQK0CJjhfj1T2eYi06vHmzsDRlhAhaW
GFg1RyIGM/RrS0uh8Stb1hsZt6bAZ9o8MkpEwz6iMyw16FfEXkN+3u1k7fqdC5BAomGJbK/VH6b3
E91hqdEa45yoUCI1bgOFpdE9TrKJ9JyF9Sr7twnZb45/QZZWj9HMkEDizX7GezPDFjMTOhPr6V0y
F7x5jL/XJ9Ou7K1gsY00x/OgAfPzBbdavP7XdlzgXpUPZn8HHYlsBMVk4k53NqmCB6lmo4dgC6Nl
As0EzA7z2BZyFBba7FwRmYI42WzbL0HLdcxzCmZjusOH3OiPViCVKryNFvqUKjTVg2Wz145OttDY
7Sxe2VLPGg+IUSbAliS7AaYR4syfqwMn8CXv+AqW0uhn/B66yGd6pZ2V+VcJBHfi9ilfQZUaeWGD
OqtXDCHCaajRrsbXESzndbXxdV84vJcbYa6VrmzUuZHo2fIbri5Esfe0gnBsnwkNTcJjt51OGv5D
NuvwIAi+YAN8QF/YWJEDWgKGjbWRjpHJmiTXTnW7OZJ564HSer/BiqwIKx2QTXqCnOs8zvY6bdxO
jJHofFt91oyO1MCoXdsoTS5qBzW6TjbCkROvMZmiBzbLNC7xgtA8QbgAcUz4V/BPIBQuFkvVfp0J
Z30k+VmRMbF8x7pj3fC1mvil9YZNNEUQxX7OEN/IdG5MrYee2cWPuLpFohYmrqMWFpcHHbHFPq/K
bqxyyL2KgYqK7YkKLYoKlIoKjJpwxBoPeRZHG6bvCXVH+LBJpACoWExH/oo2Q+Q2HoRTxf4nXmRA
XLeQYQZ71PTXImWgSOovJ0xQa43woOr44hkSJ9w2q2Wl1eTx5ivSHapgN8pdlHkbJZKkj0hmEeXO
hrjcYc10lCvDcPvGHp11I3vCMN+gtLVJFqEawQtZpUj/KA/QnqGBBMbL4AQEGI8tbQUJHU+4CQYC
PCpbLspvjB4ilTHjXvOhIMoPnvh8xzvhCcbii5SYYrAFUqfKuX3PYYcGKseSBhRJod4bLdrlERRm
OBxfA18A7wzgkRi2VZE+pCiPYFrphgW+zD09QAZwTTSg9UzFJloWVI0ya0A7IHiaP67ek2NCHKD0
BEzT6CPirwedrqEQBMA7sn/ZAD5ucwyEXuIOUzMKSkRx1sD0LadcoM2GFtIjsXWgLpQLBUtP71lg
gRhiPXHsOQB8sn8XmcmJDzaGZrZjoFez3hBghyZp1a859veauewLPkhuWbBiPudGryIZa43X9ZZG
GiEfPivcuZFeHulTJKoTLtCOkWEf4e/B+TsDPdL6Lf0+QkcR1jsyjKbqdH7BJpu/DLYDoaPdoE9G
QuEj/lcRl6pYnEehXjRfcOk8IpBjmScA0xqtucxkZypHQWUlYDgWx0T6jQvUONGYRIck2pBAnmyW
rPobOBrSzIg9zvvXJSBHELVpvmXZ8UmeaaNx8/6M4y1M3O+gFyQgB8x5oX6DNmkK+G0YKqOa3aBh
AvR7iCdeD7rP50p2SEfATQZmhmlI2x/J/b1DcCC9u/WA/L8mjYMxzej72b9ckZl6oGbIyu1V8Oma
zdBq6H6C7avi6nKEi8TFTEOE+BBBZxsY8UKvFsbKVKBhpjavR6NzCkKh03FhLBrUVrzg7/HHR26O
mIkNzQYzcWAlG2CnAZP9gOg90nOe49rnc8GsYp1avEtABBpdIgLuc+4A34twfFR/CvC9AhCVaL05
qi0BAM2RZVdIw/EmF2yGn8OEDb8Ipb4RfDHOXY8d8zpfYdyQpwkzcHDeDStFpZ9M2K/GNINJyjhr
R1yJ48ovmK3wU16NkcDHtDJNKoM7f857BNuKKS+jPwOjqGgH1mdbhjvD1104LwAk+U4RFld4SoY5
+sovFXHC/6OSDW7bYA0OLGy9trmFeElPO9xXof4NaaBg9B2B+zLw23oNxROt3vFdbc/AO9AnV6NX
mvcbTNgmF4iGE6vzm/UeR+0zOcS6WGHX+w62xcA63Iaoig3W9+lBEUo0yUL7KFUanyTfyfiK6hGc
8EzOuGkIxMVFP2S6LbO5QPI2WAHad2upvFEn5oWEEBFjTLyuHzFt1ojb1io9Gj6lp93koC6un8B+
rM90YwU71jjXDtFhNwtFxnzovi9Qo41TSF0w62IV09GqFAB2CY4YapiAJkXV71isAHSOvls5sL5g
R0qOochwWx9U6c9yFY71v2gt1vDvuRsETiPcitBSGaLBBNvmQNdaa4JUz9ifc7+D9kGJTpJmZTAE
2P6mPbHziZtZJdXP9SbbOJC5jVwV17PJtEKK2CFRDzDvHbsQ0dbvaQXRPUHqYT2mm0V4VXp4vYLs
Yl/UtlZlb8xW4Govse4FqdZZb3W4ZdQQW/Bt82hrBHfObGQcbIuSvb5prTUL8hUwdtVCuWXHapQm
jdNwdIXKHG1np0rmqJr5hn9Zb7M2wIYaKLsZEHbxxuAS5A5NY7Sha+OMV5cdcNN4BjKXkdjKTZTG
Pmx3HgBLk/8lukzHvQ29aX0+fitAw8c7LMYmRZzASgpPJFiJGcvuQKLsIduCVx+9Ut+k53YPe3m3
lWeq10t6urzCZr12Z5f1fx7HwsslX1gRe8nJwreBnK2gzieBOUzHBM9ZOCcLbRLQQkXHmN4hp3tB
ckxPEORk+H4dwe1CgqhYb6bCisLArTjaNyKkqtcEZ31JUUmYH9MFq9ldHvW3WkTgTY4DBQsPuMEb
8eq3KNYOkMLO1trpDJ77GXgDgwgcbIa7fXkqrK1goYIDCCbod9MZiyD4kWNi3mTymM4QNZAaZzIF
/7YXei65tZsae7VGrx/3jF6bjktUNPEtA6Mo81New0RXl8CZHS+kzskvEekgc0AqFypP4EQauYf4
CAuNs7FCK5sKF+J++10g7rcaVArsOwGZUa2njYKN1MGfqcJbme7u7YLBIBhhG7kJLqQCiFKN6oQ3
UgGSqYJtqVr6KzaRalNAE3H6FuGNGZxLSdtVNNtQfWs1bAcoC9GgSuCpEk6q1ueKFFOrRQ1CFFoM
q1b7qkW+SuyoWtQrEs30LZAUjcARXaoW2irxqmqhnT5iH9VQSWipWnErElZGZ54K6mmJNVWyRsa6
WSWpTK8FcM/wClZACK/YxnU11DfFkZH2BQuBXLHDuzJRotYHXNgAFOnzjPcm3mKIxNg8pgKgnolv
2x76yjTQ6R4KHpDp1ZK8kJEgpoJXFCzDDOJDIYzTcAs62kn0+nQGDIgK3kQGwqByCegMvkU0WiNk
e3oK4IkKzEQFt6ICRVH9HmL7K1AUatdercxAUWRAFq3JF/EmiGi25vR8vaefd6rxTvXdOeSEmrZz
wAlAGhrfMN10Z1gNssgqWq8pKnAv+RnUhAIA287QHz8xjApDIxhm1Aq9NINfM50JFEagCxpgBn6m
UnCcA0OIlGNdvG/IF2L4U2FHgYBaA01azTB0GRA2h4Qyatu9Z5/zAG+N/1ju8g6w0gydt/uUNwDu
lAk6NCDfYMM5MX9fp3xFJAw+E1Js0HU7kJ1Wc5xtJWLW8Jewm47aWpvas6YgBr76gOMdBSDlCC8l
xLwDH2r1oX4+5bRkBMfiKPRiAYvOpAqh8afVx5yOF1aZ2IP1lLrP6UKx8O4bOzaW3n3Ncc+Nak33
JRc6LqjK3VccNwo+TIXCQEHymrz5Cqt2QR4orLaFxbqwYBZEhcJinbovuNVHfQcdgItG8KlHmXoc
KchWgMeX5CGsYG6kGSRN8zuBep+2jgdnBD2RGmGeDQCpBrJVI6bUQPPjjJml2ZrChfeAY5UBkGrg
nhnJBsBiAjV0tEVACadL/mZQqxrwXg6elQGZsKcU2157Ld+9i7Umif+i0wR9duBOdCBmSHJICayL
5iK7Sb8Kt00gJjRE2Ib4bTiHAkGomJhFydvVsJmR0MA6fsAMRyi0hrPTMJ1BUMsIajNfQILMRL3O
lxJnkGgzQmFGzsvIgvOb/aOIfNn65mfJSA9NuLIwW5B/qlAGqqDhEgh91fqKp3/j6o5C5H0mrKnn
bCQF41fV71UDmACJqzIvVBkiMml1av2V40hBjZLpJGPJqrKIVJlJav2NqwGJwmUX5JuCkFCQVQqS
SUE8Mqm8/sLxhkW6sGxnCogaBt1E3EEjaqDhf9lwE5jeUym4FOI3+yd8aWfxTmBR2M27D1iz7fgj
jlW73fv6+RDACltzv+TYl+dCIVPQG6PeED/Qz0f6MWDmz1mrtNaW+3BDAutnjgBWWEEQEocaCXZP
SpmSlDeukC0h4ThT0oyo6FB6oG3YzbUXK+kljMoJu/YokhklrKCEGb8D4SiBIzXRj2kPj0wGN8qW
tSljVGugiTbwQKexQbRysBl692v9fCURBuSL4Oi/JtWN5QEdGSjsKADsCRTmnopffZjcXyUxwKu3
4FxVALhI7EAmXCISe20Jh67iEBXg3ZQ2rzLJ38wLHZBxfiE0lfn6DLbIqpccgNIhFUBddHRDR0ss
jsVu3BxlDZloX8iYe0ZWK1v+hAFfwZaaLtgyg+ZKnEKSe14FBLjCTCpowNMZzCgjl5LfjA0mYwRK
rI0JA0+ivgnjU3b7EC0A9OkHjrnD1hrXxAHHq91srZBIlMxSoMwEyVV6oPsq7qVJuQYKUEFJSQym
Fxnm/9f6uc6LvHtpQGJ5TnSNCwxm+zALAuJ8MkMDcn5F5atw3YqkXIUBXAW5W+XYUxXLVYVWnHCr
SMVtSBJBBtA9sCjpswplq2AjVyECV4EUV2EdV4EGV+He18EsNLINGDxycYPQZ/q5d0GcXm3JHpHK
TOwJTmeUJzZfla1gf3rAiGW9PFjSAWVqMMAXPEyq0J8TjiYJb5IKPnSV51Iq3gO/8SFH77Avfqcf
M9iZtPS1fh7x9g0FG5uPOTZhSIKCsjVUbUtW6Z8V7OpqINB40KTiRr271M06SUKJMJfp1RgxhUmT
TWwVVEMrAfqvPmFCWzs4boKF1QTqlomXNlcNS6bNJrbE0pN2F1+56S+kB7FXfqwfz+diVjYNr1Bw
Km4U1XPESKxNMMVqUC0280DMrZavw5EesR4q6wStUudbtoo5cUikMFLw5lu7v+OCvVaIMgYTI2Ce
qt3Pyh51NXu4djtrBTnVusNANNdYYtmRr9qkrdqUrezPTzea9Uot1a50xjGzVpESqXAY+eIjaNVQ
92nju+IhULVXOz3WU/DcGybRqie1aVu1BT1ddRvdQEHTTHvR0x3WDd9ybPU1m+GnnPb6ulkMQNi2
49WRS9RywGSpBXK6hOScPDEIkvOInAy+IqEjq1neNhTXDULrZjYsjtjQkp/BcDcipQPyh2iKkaOx
HdhWs41xdPshIKRu3xzdbOgGSU8u1FFw457fs0UY91woCOMu8Ln9MKMBFDcbItwWtzH6e9AJihc6
nvIComTBSJgd99Otl14NKu8GyewGSS/4Pf5CB0J0/QMTpWEh9xBiD7WQnGsSbZFxzWDbM5Q99t4e
D6R+Bl3MDrqIHjOCtpn9o4UCb84XAKr7bj2QvaU3Gpnk6p6sTqDvNurePD9N5tKOQqHgj4PZ27zu
gPc2Jw1/vFLwnFJ+s39Lw654nqk2Wy5gGLVvy6W4KaCuCVytKQy+aQHMhFRPD20orChsKXQUdjw1
cmaNEdWSXBkqsIYnvmfmoIwJ1WytSgc+kmRslB9/QcYrSI4JT//kiSQG7GUDqOXVFQTAyhMmJhfw
CvtwBuxqorUJqol9HJMp5PXSSKI+WXzJUVVBHcxgKWaS2WTPYeMJbxK6V6Tgllcz/lr6KUsrc4er
dEPGppoxv9q+38oNzhJtVtidE5lEHLY4e04TyS0rvwM840yikuTPgIqc/TuYeU26Xr3PsedX8ddh
vbW1eyXBZEU9zDSJ2lHQNtJK4sTKjLmG/Gedn7qPOEZzNYDXTkhyHRZa4ATpdvZsCxuYhT3bwl5w
YWu0sH1aEOdS568jNYkln2BXN3XvcWz2BsELdv5qs+hK8Os+5DT5M9wACmwpegFIwcVToZGXsxDi
mwD4LiQmTWCuFhKRFlJtJthHAky8EIdSyGOaSGRX8G4u5BstZCktZEwt5FAtJDRNIHEXcqWVdqEV
6NXzpEUJr260JXNCwmTsqQYseVqYszS4Wu45GRqPZzZJEk957oKKwu96fvX3uCkBHd59HRp6Y41v
AXrQ3Qe/Hp9ev3p27N4sX333WAJcff7Z1+PXnz0BmLf/4sn9twxe6PkbcGmOOnNlp5O3r57ePz47
e9Vgfn/+pdPjhw9Ozy/le2Zt+/z0+ObJb8c3Pt/32Sf7L169dfyXn3tBHKFXSZMODPVng/OX8IZv
EkjqOfK/PtdUexkAyb+mu39mV74E4NXbwXsO89H88Sz9Zw7Oi/tnvkUL2+tsxOsgsCXEeQlxXkKc
lxDnJcR5CXFeQpyXEOclxHkJcV5CnJcQ5yXEeQlxXkKclxDn1xfi/BzJlO5cfXj1cTKls9snN8+v
3Dk5e/ds/+eJjEr3zq78ePX+nZNXkAN68UNd/FAXP9TFD3XxQ138UBc/1MUPdfFDXfxQFz/UxQ91
8UNd/FAXP9TFD/Wt8kN9Azmpn9PZs5M/zPufffPV15/t5bjVd/tOXL0/fjv9jO4d8/jGF3AOXPIJ
LvkEl3yCSz7BJZ/gkk9wySe45BNc8gku+QSXfIJLPsEln+CST3DJJ7jkE7yUfIJvr/PKgiy/IMsv
yPILsvyCLL8gyy/I8guy/IIsvyDLL8jyC7L8giy/IMsvyPILsvxbhCz/BlxXXgoNpvvXa/R8uQww
mOeFSrocz52XHIPX2YhLg5t7jNx048G9/f/rP9/bf/9sOjo6Pz0+Prp6fd+OswenZ+8Wu/jvW8fn
9e7x4/vSo3z36tnZp1fvHR/d//nu3aN9Zx7ffEz5l4MbdilV/df//fTB/eNXDR/1VtLra27HpZHs
s1Z/F6Oq/934/b66n33z9df7RXT15fjpe9Wr/vim1zIE+y/96zXV/82z7Lew719XAy6j85976r6F
/f8a2/DasyhPLr4oZLF7bDBvie3thMNIcLfCZruD5qlBGGNowlcwHz8C/PaFgpducB/MwKVGIbK1
qM3b7j4Xegr4uRhMU5RpUkGHk/fVwI2gdoxUwPxBGnX3DU0CzFvyekjxUQxnJO48ErY+YWpEzngj
Mrvsla7RU5v/6mXvcaN6TGbUSDR5JKh98gClTw0toQFUEx7i8QXugXmHNPbIiZSK7YKvKzu5wdvb
4Xqpe2z3uM0uQtXf4h+gUpUWmw/HwCCZj5gCIiLBDc0cJh0JrDnOCB4DRBBMTsBU0fC5RvbECSWI
uO5HHP4nP4MRVwfq1iCYxuO2Da+wkrriHY0qNF5v4EoJD8Ht93R6wZ3MRuNLHpXJZ4WntHmvrfGt
7O1VAb+ziOl7GkE2/4s3Hdqynfu1wk99Xx0rW2wOJoF3Op6eVbbbKuvvhDoBsFVwgCDt46wUpCrL
7eRiI5OKAoEikYV1pd0uxfJUBf1UGYSrIoGqgpWqjL8TNIkdy5pggbsrxdiuPqfe0sMFXVnl1lUF
/VVX8mrptMMlh9tmMc3Cdgp5RlM0G+BKnmK9dvZW/7Wusw2/FXuJK7YgV9r7W/1gY2vk1jNbjaEM
xpKmB7MVjH2s2W5faWNQ1vNmAcvBR0Qbeyvt6K20Rak45mah2Ctrqfb+VtqOXMnpZKsNxpX9aCty
pW3V1V1cIo0Q79vgRXfEMYb2Of5KVmMZLVey7a0eQlV29RScTpkiV2fAyDijsnUBL+DANDZmCHhb
U6x4DGA7BkeiNHKT6W51rruNJuVcuvne+tvsLyuZf1cyKa7kptldwRvPwKyuMc86nrYFw4jVmOF0
oVKwgRUw6w5CMWCo9DXHMvsopH1qgt/YE+vAq404d7gqsckT119yLNORwuSbgt4jm2fTG/D7gryt
66aCO1jbDPuGCxFfoDVnthQC34Uz2a7tasaqywyShY2vzKdoKpgbox8bcJGRkflh77mxeZi2+1yg
JiCCfsIxs0qk2syTrf8SCqPmkfY7sFRhZCM9Yoiz0eo1ndEAjL9zzEJhLVFM6HSBSY2rcAb9y7/r
7/TWQzgWH2txp0CNTmx/5AztN5eReQbiOc1edCWKtBK2XgkwrSvH7Z3dOp3Eqn8L2jHJZ/0za6t/
G4od/ZO8rlD17N/WZO9/YYHwh4HSrGBbBgCtMv61CXdI85gL8i7b/YTTH9ECic8lIOF8RfO+M0fm
4mwOfBEi/SuSar34wh2ApgxgojcTCMWj49RqpyDNy4RhlM1MkQB2XFwCEZoVH4aK50PFvaHiSBHy
POHMBT3hQbu+gnjBw5mWZ5qX3QkTSNpM87xV1vmbjzgWhYSv4Qr+Mn8CiskAxHkPZ3hAJorNgA4u
9GdmHmT8dC1Uo/+Y/qXvMt2BA7QWpAEJJ0NTBNnZq/aHXu0Cdy10TzHueo1jxr5ADeB63uVYmyDm
j7SaZ3lhFpkq4v75OF4FNmgnr2ggTs0l1jH9Brz0VvOsNi8Ud5la2c3TegpJoHdIhzLcuw0ebCub
9U3uXC3RXonmE1XYSnCdC3gRb3Gl9TGvdJ7t9pif38qoMRDeME1rurOCqRqtHsd0Dc7qjQ43pxm5
izW5fzU5gzXzpFyhSQx4+Sd0IVxUYn/CrZBoZYpVqM4Znys8NhyR0XZI6UjXgycJ5oF5t60Q5ceZ
WTaecQaAOIT07Y53q7n9jdAp1gbq0iAMc7Exp7aV6WSVZTcQVjIxbr9ELzT/oAkBWnrWqAhbOwah
1lqzVuetRZNrTeC1qGstwWitodxqS3YtFKO1dgDNIW8tzrIWrs1aAvlaK/pakuz6U6ZvfH05jyf4
fYK/o2PuVqK48L4ICn2d8PM6tDL1U7oDah/YgY3AUQkwATBMlt3tZxwzlxOAf4F6ANE4h9NZSE0l
tq0HuLleAA4Ez91WzjrbXhzkMnhhpLDjPUQrW7ABsBXBozIGBy0kZo8N2WChe+7DXh3r02bQpEd6
O73qG5zoQYFsfMD2rMcbyAcDzxD/1viSw6Paqri7wgWDoCRcrRJmUBEJNx9QAb81cgc1Gekgk9FW
/+UYQdsHcGQeWghEeMDL/B09Sod3O1p9AvuTCNkRpEmvdMdbAFiOjOJIVFL0QBxvEYX5Zvp/9E6l
L334Rh8Igueydwjklegrj0a1VgmEbQqgpZUJ21qmlQlLzJbaJJrnxG6mD9zDpzPokdVBWqlE9moh
XGb/OjrMwOxx6mQeE1pW59mTmFg2vuEz9fEjTtN7JneOX5OPANRl5ydmwAufc0xgHHD/33OBbxY6
o1BT51LA0iKm1ZmYMn3prfE+8AmUAW0b/c2o3lvC5jPD5SwpQzxOjTaSAr2bsFL9DgYLxZq1szqA
MVa3igWQqPnpEm0oyIYZWSFws6P3FtpZaQwZQgjdqvPXK11QqWpFkzImuv2O9/odG7gioafevEbX
VgQ/i32NIFCMM5c2zw/8MUNzgFzspRXk2wpg8giD3HzCrcSPgl9NyFoFJiM5iv6PXCCu2aGznTjA
TsYLZZzr4kAI/oFKELFbEG0SbW7zFjqtoSV5j7v50SphqWwqlss6s3NbAprMi+09Fg2zxZtF2GzM
PISF2W6yV4i723LTPiao1Yylsle2D2kWWMaNHAa2WjSzTssg1T5lLTQLP+u5RXw1M/GarUcqVPsG
2yN5CCKqXCG42tgqsEWxiRab5IdGLJarkMVDcjG8b72AqXpb0BdsZn/LBYddZouDnQ0tns3M+7KJ
tetASvv2Toe01mD15FywmRh4JnrOIQ9LtU9pbW/HqGt2WlFqTTgYTTj4TTS2+xVGTiB7NbRrxb81
iWNNPAmLvW0sKais2d6DluZmBkxZF5oQHpqsmEpTMI2M7cpYVcw4Yj1oL5eto7tqopMpfLYwNlF7
+40uYk/IxKjOtzUeERNImDUQKlDtznd4freBGxj1gVGHgIhcxHIfHFx6h1TQyG3TMPM7NQX2QwLb
HIHcD1bYKv4vnqApwkUaWAKeW8CgzxMVIN4g1Hn3Kbj0BIZCZJE3Vts56TCRPNJxc8oFtkIiO2GB
uFrbQFnPdhRvvAUmAkYRfFpE/yCdGgjE9rQ6xtw2s3RSYHeBxkV603JzZY+TRnJOVDz4qFn0Jxga
zVH5eX301/tE9+BtDDMNsogOm4Okn2lcZBMs0vX0A7GcDaXE8TDQfCejJYNa/R60IN+AijRvdD7r
Z/weizY2Tf4Wo2Q5lJAHvINGNllHAlS9480IFO/wMbPJ3OMJhnN0lHVGaMR8E4B4T34JeSEb1yYB
ztZfJ7pkmZqpe2QYRqbTyA5foPfNttnfxkgClEXzRDS02Ktk4ur2Lu/gy2b7jFo4LAQ4fGHf3Hr6
KR8Oz39g67sl+/mB9/mnfVYSCm4x6Ir2iW2mmcTIJqykPbgrhc61ddSRTU0iH7VkxnPeQEf6fihf
nTlVpmudsJPnSWCmG5PC9+CE076lPlIv+EdmeEzD2HzHMQScGP3sNSFy3zeTs7+OJEpbM90hEBrb
3oK3Ahh4m5seL8fJcDGPLOaRxTyymEcW88hiHlnMI4t5ZDGPLOaRxTyymEcW88hiHlnMI4t55B9j
HnmrsxouwTJLsMwSLLMEyyzBMkuwzBIsswTLLMEyS7DMEiyzBMsswTJLsMwSLLMEy7xYsMwbM3n8
nbnDNJPCHk5B6TRFzhUuUxYnQD6H6HMA0XJRIerVXVIeav8+yHwgYRZg4I2/kmSq4rsyFQpYfEAp
NwdOJj+wZYHefSzkvW/APfQcuZbd9mOQ+JQVtvykn1PD5bMEoqysY3korFtlRZdmmKRQJWlSSYpb
kmpWyByQpLEl6WhJylmSUpek8iVJ6EmmpeKooJ0pYvvCzjLo/sAF4G4Nk1UpD4vDh3bG1ooDk3a2
JiehPKcd6UUNOVio0YkUxIk8yPuhtbwGhi2cjDEkUh1PZ4C+tdwIO8ingrdcgXKsAN8WxzUEHFff
STuwVisItFoNEib3BCh0EnzzdAfPFCdcNWPndc0ULmrxE+ECgVuAty0g1lYKBehaEd50ieSl1uJg
TU2oWVOBDKUFYGgW3c+fsBHUC7rx9KLNBW19Ovan4xM2hc8uWCfcqPEx95YLhofpWMKKxI5kgK4O
36qUnvtjE6ulgyTmYMKoWZWLbrpRLek/4tigfB/xvcQbDFr3d44rT1hiiV85Hih0FMQS+g+tDoVc
CDYKhR4ZLlwCEbcCzFscUJeMDtV5Dq0roO/aaJY52XR1CG8HEwX53uikGPPZsyzPXFHA+zZQ0zJn
ffA328QrSH5gp08Fb5e/0C9xcwXTtAILbC1tMwu14UxoJsm0ipo8iTaKjne3jwRm4YSRt5IEM7UZ
SNXmGXboSna/qeCXVpwhh4MNE4NdIajULrSC/ime8IE6izsnLMsJS3El42Zq81MF0GL14V5zMPhl
fNYqTmYVz7fK3u1084ozWwoOGcvCNPqb/YX+iUDBu2XHmUhhwwu9GmvOWDKKC5kgGveQeyKTcmLw
M2S+GB0LmcQLleQMFSzk6hDIieXV8ZIdxHdHwZ8CXLmS26GQk6E6uDIJHArZKCogzdVfyM2VmyuJ
FyxhAiJpW81pFiyHAcj+rbMcB5/ZaceA9jQMlo6guyA7kM6hkc6hkA2ikMVBIulevLXsBx2QzQ3E
5wYqdHPEZ93TAfNcSPdQvAodBdCdVZjEF8/pULm0odBxD0KP9V2PCxYmq+kecjskv2fLmR0FXqiq
76Uka+XOcj4oucPOMj58oZvU8OFbk6csVcnWZk4btKUzfKcfZW0YtGkmO9qUEkKdZrk4A9+VRS9v
5woZjjL5mBvJwrPno4iqZPxUp2/p5x45IaIVpKxP8p7jKruAVC9a+/vPYatbJtOOgtO+xqazyhVe
7fkRxINWJq1dfcKA/xVczRm5r13MfoORZochy01i+oJGlbWskHMpaSOgAHBdhjnThQkxO+Qd1O9v
n9hdkLGvl7FBJsbEapHahZXS2aszJtiiZ74hV82cFMeT0JinXWc/GmZn/mwgJPYiCnmvCgpCwSY0
FdRxgkS3LRHbrbDdjam5gYLLFyMFVllLqZUwmpGydSr4igXbBa6ejX8U44bS21CMW/ceZDgygFHa
xJl+zmltoVBpNkk6TAhGL0rdbf3c1M91/dzSz7F+bqhfPqSfEGyrif4SAjWhp+umGIgydxr83Tdc
dXHcFAWJgAKeT+IR01WTt6UgiWckMZLpy8ih1cVlhOOG3DxXE53SLRtmcuy/ZuQyhULB7vhKP98w
si4OkmihIkhVSHoWpEjhUMji5Wcqop5PVpcvK2JKRYP1bIoV0XO+B7mwIi0lBJfkRLijwOyryE+a
WdOEShBh4IwXXHAZKbBUN9b15qQLS5N1ZmI5WhW1F9y6D1ip7PSHHJNEKHmmAn1lZ5kGLD3BVywT
sP7R1wtbA8QDdo6MbwrtnReHBUndyeF+5NbpxEVIH1pEUdJL2KWRtMYFG/pYxIfLz8xNS6BzhWOS
xRQSyhQ/g9prE2D3X45tTn7Hsem63z6xb3rtiX1V35k9PtiwvfnEJukNa7PtufXf0gcoMA0abmgp
1XUkvwf9p6InJHSJ5JSmhbCTzUUZklqnwCK5PEzyh2hODKLFB/Sxkh2VX+nDLQVW08qKbQpBd5dj
S8nzI8fk8ylk+HEbA/YC68DpDANi9g6SM0wFzBrqn6SE7tPx7sKe8nQjZg/PldP8gyRraOT3af7l
wOPGd69wwVbqH+CMmwvb4tPx+omd6fucZoXDBPqQ4+7Cvvh0PFzYu/YN8h+52j+xtX7nwvb3dPXi
Pvd0vIO4TEl3Hi3SVGrw2otw+/9ykxkDr9ux0XN/heuWweM7ji2/xw9GhDM1wmM1stU2yyVhViTK
ijNJJelYtZ3JAKGbXTM4vasTg68OrAWNJaBhPmgw84YG3vyrKPmNxDwNE0MjO0nD1tAwZ1S/xFrg
CXcqKn1CAzfmg/NPJSPZdA/KeWVxIVXinLExwQizf4tVxpK54HqU8KCqaVYsLXPbGs1lTX6bNfrO
GptRvaDE+rLlvNZlXi0HsrHnzaxNNtTBOaOMVhpZ8BuG/eb7BmvUxUa6QFdELU3d2t9JZsFZ0/WH
3djsN6tKa+N2X7IUmjagfHlKTZbJt9aUMCwjyGbswk1Z0TIifFMWtEy+tWlF9bQyrgv6qls44zpl
5oxrfrbS2sprWQG/1ZGel5DXhqusySQF0rzM5BGfFnAv2D3X9HNdq7ilA7yClraj0FHoKWxJhqMa
m5tilJYZ1YvxoUnO1nScyfPuPusGIvMO+bFhK2s+IXx0rYu/4WWZt1RS7alQHulH9lEtpIWQvKRl
dzrWmrFC6yqudZn5/R7HlQLaplmsOjInuX5jgr6lgbO0cJaNzbS6rEx7+X39SL73JHPNnpSZXnG9
xbTcjKHcjPo71Tzb3JkumFyijLC763RqecIJ6dcn3IzMfDzdli64JZmvkvkfmTfSdJOL/AduRXKH
r73El17eYP0xKwz24LSlsKEgbhbMn0w28CB9MGA2bgjfDZ7eSK02s2Dj+jKmB+3bBanMlW2HghhR
LtCaLR/vQXIjLBNDq2eackEzYwnMSFKeTi2jXlc/4/weG2NBqy4YEjMct6B5Z7hywbRoJi3taDbt
aDZtXmbPVqo9zXwhRanZ4LS/1Mz5WZm7mjJ3NW1KZVTViQU5d0oUnDs5KxspqEYSiJtkrSZxOG+N
rdyAG9nxsXiJdBT1/TSZTXSW3BsZNjSqhFdswk82I8LvmdNgbJKXmYnZhGh5KzU23pQZcDeEaJkB
ORFJFZix806vWlPoKXQUNty8xbJTKDRYEwUJP5kNg8yexEgoY8ZWntl4yGyWFLx9Co5AewaqNhec
hfZnRgpDpZC45E8VzmworHmPbaZqxkuGLOQlL57/XDJmMglWgmghG3ohFCpJzi4kJy8ESyeTiKX+
FM9qLlG2kE09meArraiw71Pc4tZJUO5U2+4Xrva2YWpbVd2vHBvrVjrJTkmwu5+4Coc3W0H3s360
lHQy9XSPuGngMVsxzrig4cragdupidlsLuq3nTosy7iykyVopzzZO3WNu3LaZlr87AmPzqTVNsX6
hBNeUpo/98VLcv1LcvxLMrUmbZ0nZQZMyhOY4qdP+JKmaD8aCeUUTG7SQIlMLqu6Qo5kmtAvE6aR
5MKv6+pyM082/sZg5UiXjFZMow1fvFL4jRcFM32cEuza6YNfz45Pz949v3189OvJ/RsPfj16cO3O
8fXzd68+PDmbnDmOrp8eXz0/uX/raP/ao/tXfzm5pcPHz06Fx/lkfjs/O7r2aH/93vGFtDT3js/O
rt46Pnrw8Pj+8amMIw9Pj2+e/HZ84xNd+89l1mT67tHN/VM/7+t0dP/B/aOT/R23jk+PzvYvO77/
6HGVjlb/Xq22q/Vm2P9f7XZDtxp2R+vtZs9GN7vtru+Ho0vMy7YMwrMOwp95Kb3xyr9cVNdiKFwM
hYuhcDEULobCxVC4GAoXQ+FiKFwMhYuhcDEULobCxVC4GAr/FxsKnyMq6/z67ZPHUVnXTm5tH/95
IiDr+v2j6dyrgaBZYrKWmKwlJmuJyVpispaYrCUma4nJWmKylpisJSZriclaYrKWmKwlJmuJyXod
MVlvwDRy0SzyufnPfL7/sPnQ/PvO2aXmVfrjT74Bl5j/iZ5Ffz/w//3k4/f3Pf3l8U8/70++e3a+
/+rZ0fHp6YPHDb+cof+bj/7r/3764P7xy+ErbQyQcSoItFGzeDoGmMpSHBiK59YwNKc7HNt3x5mB
QqIAIK9tWG0AU9x+AhhyD44kyNKFKpmitAF8HrF0em814LWB5EkRuD2rOF4O+5sT9Ru94J+goqbq
blj5HWZ3A7TjBi1vM6fkyCQFKFTMa2hOTBu4+AZA+R7Iy529MNQf+EDlVj5pgtMGqWPDlncyoNDp
TAONjCwJWwDQDZ64N7zL6T3kZxoBvDfpZUN6BAym0xnHnNQAbH7nAt9OdFKiIw1F0bNFdSi+QPpP
BW+VOjJ8wwXemxmOzHBkujEziJlPGhb9hVHI9F+m2zIVLSRLm79FczPdn+mSQkULFOhEVQDoNhy8
Lb5om5mAC3U2cHRHRnTQZpxDKnp0xfmj4uNR8eiYKuZfp38KdS5Ok9xjaWJ2YAyytRu0H1/ZNZ3g
cCGGAOa1k2IlaU6iCwz5fS1oQYlVQQlhptR4/iAtrPSCp/aLDk1PR1e6zHlJ9WbQVO/fSr9U+q7S
ZdXx8P2FfKJBCg3IRUNSXX/HBfIkRD7ZGP/mwMGAWRsYb7nJHZ5IkBY0OqBRF2eCbQQyk74xlMB8
H0RHS28jBQYjw5RsxBANb/Gg6toBN1/hMpaiaAuOsWBoq8wUgXxZodymKoBnGjjxFmWtM5BaZQ2S
w0Uocy6tANsxMu1A2CwwfyN26TzRnEElPwZPO1CgOcmXQbmlJpRLW2fUYmnWtfsQNihi6Ay8Vb6G
cuKs8mUKGQBoOXxWc6tJ4DOXE9JckLrA2JpcpkLy52VXlyfURCdWFxnY5UAaRmslmJ+ZZUdeCFV+
U1XOCFXuVyE/JHGOqFSbNhOZWZ8cU2X7pPUh6o+Ba3tisOCDobXFENqlGoZyBxBZRzbueV/mQ0ZX
cm7R/tO0tBRurPRVAlI4cAmw8cKK4uj/wFHPKRjMkZEMldOXrcm3WMSsJvLBlJJbuzskQDLaEkin
PKmnFWsDm/dMBpGesffdhYFbT/0IsK3nRDQqEKam9sdrZxQmlyLtrU9MkWlFL8ilSLvtVVvyVRv4
Qcm+4s7SkgjYVBvqUz+srGAbMOzrVzb0p3uMSn63Y8O5X83rlK2bbPNXbetHnA9D/kkf92lkAKwa
n/U3fAi6MEzzzmb7VOgoiIfJVWA63lAYKTAGJpvJE2y6AMkEbxmNdrogy6uTus8BgyqvZLhpJN2p
4N5XxMHIPACK3HHLO6TWDlkYUbQiVFZWhEDasTrPfRNFp0KzvoyM4OiFNQVqPNJ7IxWFSyBmdgie
HeJqh3DaIa52SKndnOXKMIuzKHPzM6IzKaks31Z/l7lJGw1hPF84Q9MSOYWC143hSbTI5IPhlGOS
/DF/fT1BvO2QzDvs1gkY+s6Rv5WWYE0S0R1dmvyt9AlMm62SDlmkAyg5koPGuzjzusx3M/KO5RtW
lsTqYmwHWjco/pXcchWo76lAfkmXeTKd6mzSOdPgeaFMplSSvPCtRvQu9wP/X+jy+Z0k67N8s+7L
3MFoy4+wfK8rdxT6oNAH/gGD7WarahIv+GQhA92WTvY1hOUekRYTUVzNg1W8gPjsRGGpR9czC4Bj
g6k/zDRVvfJ+M6qhU6+JuSs/pnmWZCd8xzEtqHRSpVKe9HRESLQML2FG7vb5WknnY+x4ixTHijLD
kSOSs2B54ufeBN+QvfOv8TD0bemjyz393CczEJn7qPRvrHw8aNnONkpZ1v9Kbh4GpdERje5t8KtK
L1pq0x2o+UYr7luLW9t0K3RgfQYHCHhR1b4itULkAXNAIr9G3r36QMi/iMqqltRn7YlwbN6Tc8XW
IyUKiZ7GoH5PbkU1ba2ECsND1ETNsvXXtmTZ6Eq8iYNEznKNFGaWVvSOqbimqWGwmHI7qHNtyV5/
azDj1E5bH2vJk4X0BDY3pPoEfEAmGqZA8mE4/Zq1df0DppdEqhpUDku5tf2YJ8hHOtq6L1amNArT
dWaOsY417H19VcvBA6rHhDLClC5S19eR1Kyx10Qz1jgFDK0lwUpdrWuJj1ImolVAn4vrOYmmMbW1
oorWEtHWVn3DWNesixIL178wa204HurHQNrPGU4DdLeHzshbZZ+TbLm23BtX0ZLFV9ZyVl9Lllw/
gjX3qE9uCrP7fyeVohHivNBExnRwXss9Jr2RmLp6TujNGccdhRVvKRQql9YUAoUdhYGCfzJRyBR4
YfAXjlaIfDTQhkiWwkzFIlWPNCayDLtRpJGeMVPDSA1NMlx7RyIZrrEMrH1yk0Bmjay4RjJcIxmu
5+4eqbxbNBm0B1zwjJ+WdfIrLlhWxYccm91UWrLZAMt1rtKEkUZZ2sz6Psc0YKRtIy0ZLcfFmX5+
0s+pfs6hc/pmpEvMUWacBxYuM/OQZNlRPuHY+uFnRCHLjmpz6xduYxwTI5vcVoPqQ17B/3LHlgw3
/nEyrGUYVqGbEq1J9EbybMAkFDSLn9tQLxAlmRVdaJypiqmNVLqeTbBm8xlNfpxWeqqRaacltWT7
d2oONJS9QO/4BPAmZxpoeWOwH08zYU2yV5O96ezslaANGU4fWL/nT5rd6ZRjxj7TN9nrQk9keqLA
JQpNKbzXVwTr9S0JP5UceprtfscWoYLGFoi+0JTC5CzUr1C/QisLhFy8ftTYjKu7+ROzcZV76M97
JPFBZbFcihsSgFTSxSekYu+ZSl7SRH0rraxOI/D7wmiTxVEqvuwUoXjKFlVoZ1QnQULmi0C4xPQS
y5n0CAK2498x/5qV7gbVIA/MyCCSwe7COz3dC71uWV02vpCbkBhG5BYzFfWeIuYzhFldCD9xI53W
yItuCtVqHvYGOTX6inSM9zimZo28Xc46GxTS/AwNa2gDTmneHqy+2KjdcOtLouXNdB+GjVmbPdev
PWqyiaT+jZmxzbr+Hp3A9zGgS9PYvM9QIE5bTmQcWiYt0rYiPtQYSdlUuqWQSGSNRqpVaCMHqI2y
EEv6qhtJexvlk7H88IYDsBGfV6Kr2GPxNX6yNSE1lHkOsx8p2Xsjx6vNbQyKO3QuY8GypW5I9GcW
fbfGb2ejDDkBEV82X5ND1Lrb9qBsM0DyssUiWH7DDft0W/IuidCmD69hjJbo6j06kG0MU2waJgiT
r7fXuI4sbOzCxNYNIvHmKnwFKucCS8MGEpNaF0iEHPBfD8mac41esq2K6/AhlkxLpW06xMaqog2f
zTkM2PYubCfiJhmubC/mBCo3kpXwLEVm6jGzjmsibizN9zFJiTZoS9Z/xsQkg24eUGHLz3WfHHZY
v9m8lai+kdC0+Qktwmp+Kl5gN52zWQDjNpFVJrQABEPd/IJhmkTWvj4WcqJx66+MzAaRwbr0kY2d
8cqNZHttsAbfrLTpm8l3a+vv8BPX2WyTKB7iJxz7Vhu7UYGtLIhk3nsa2D0LMAnf8g5eCEwfyU7j
vDcWqG1ge4tGkt99mLfFTbLH4Sy0efs1eGNse/AX1nX3L1hRCVNJ3uPYHQ8QarbugcBqa4abOE8X
Z47Jc/T6l9z1gEkWfXvMPSbov5GesGSrkzf6qzdVzJ4308nbV0/vH5+dvWq/oz//0unxwwen55fm
5/RnrfszF6e/cY55tjC3v27opX568cpZvHIWr5zFK2fxylm8chavnMUrZ/HKWbxyFq+cxStn8cpZ
vHIWr5zFK+cf5JXzdqaPnzx4wucWJWkdFj4jatJh64DnMDCO+QKQDI4V0UDOKMT9NoexA8ghO9Sd
g98RclkIuXQoheo3A/bggKgWz4+el1G8cnehQKh/BfuyEBpfCDu3eP7RIIUe6EhhmKOAP0fF7o9f
E289UhgoZAoEyotORiTyTLz0dCZyhqjNRGB6ATJOnTOhwPWc6SjsKPTcs6GwpdCBvxQoOC5cBOFt
oOD3ODZ2odC4Z8sZQOQcCcAg3lbW0sIknQoOEhcp9BTAhG7+lAWv/8QxeACGyWsYyPItK8zNqVAo
GJg04HUgXReCkwsg2MXxsZFsCqHIhbDngr9EIf65EPZcPDh5Jzw7bQ1OVKn2ZUF/56/5hpogpNOS
v9KPAKuyYu13Pxp859YwP7/kWJ2YP9fPD/oRuQqpYQJ3A1jMBIQVBsIV4hk+aFNBsfxCaZ2OCRQ3
wIIIgIFki+Q4wr0Uil66QS/nsf4eN2lqSj6r2kWvvfaVeukKvXSgXqpI+F4MRTuxa8nWEh6qLW0y
sBUJU6lqTzdIJA7qXQuOrwYR+l9GAsTjBipBITK8gEGQCQg3qJW18M3XQj9bfwJAZKEA5GUFVcTg
W0Aabw6BuzPojpvGbySIjmid0wQaKRjyrMAFBbS6pyODce19fhgsBqiCDUD6xkw00GlE8wKcdQG8
umThkuer0JZByYKQtnvABUMiezx6RYALKYroovo9fgXVgMhv3k29FEI5LCUHvAaxOjkatUNX99I5
e0ng4artf5mAFoTvZg5RAUk6oFex1Z2qoK7qR5w2uMCPGXdgnAqgTQVI1gLGawNZYF6wvABUR2bl
qoAbZTCNHOci+4IFylEGG8kRUQzyZy18ZDnRtrXQY+QymzFCZgyMTQaTjITX5ILbsGtkJL6JOH35
c8yaxhlwbQwTCOD7vDUA1g8AjAkUDEwlA/Xs2DIGEvOTLpAEQAvOtBZp+OO3VofsM8FBR0HdGw1s
5Sea7KvgYBw5A0uabXZcgGoduq43qNa0MrTnX/Tzu242nBChrAn4uPSgBY6w/+ZnAPTUDC3B6wl+
oEH4AcFTgHlP6LclsHI0VqBGJoN5udIEDn7BX2/TU9DT2dYaQbBmg3vWcpkNVNTmr3BPZZNNO7V3
pxQXWQDY+UQn1QlZsCg79dpO3ZWVRkB+a0l+BSXbA/YyMassONZsd6rTd3bNnruhn1v6sVUB1Zel
tgIduS/YpsuKGQSkbYpXuSCmFQUKGbWaRBJoSK030ui7HaQRfzAsYeMa8SbHdv0GL/Bl0QBWydhh
yCLRc3SAIxmvcxy4lbobE4ye7gNDxApWsYIbroChjJIM4i0+V3gri3zijFkB8E9J8Qp38E4zdyDB
VcS9urowCF4lbrb9qB7EQ44dwRBgwgymjCnlva8G1LZ3lEO6p5/FluSXIk+RhMJMLT1qce/JT1wH
o3E9Fkf87JMrJ6Bu194RyuE7Dtrdw4DA/K6+ccu2Y+0fcYfXhsYM/pZGwb9k3SZrav8Lp72NPW/l
0URHD1TbZMhq+Lii4vqNrXU2HoF3BhFNNQh+YDWr1LtqQpYQj6oM++Y2GETEQTBI9VPea5+XfBW0
YgeZTsOZLZqmYweT79TcIPtzkOwXrtkLDRyzfsexPSs3nyDJNkhuDDcvzOVt3NpcruE+D9uxhM7w
O5WWRFQlqoRfuNsQ3k3eUO6X+gUdrQEN0jcUq1LDiTWxgbToCT1cwDQV2nEfzZ6QQWu07bSM9OGA
8A2MxYau7dk5TKAwCgXcvwLuX9Osn3s2H9OIV/PNjlzvGrqh9gmpuHqiD92YV+j4rb4EdEqa85jM
tgKvNiCUkmPzCuDKRnc5rtjc07ImrLhDYnvGKbiS+aeSOSE58jJIXHnlowO+ZvPOAUyqeV28/oiF
c+22F0hyF3dPoMbvTwxPnhhWK4gWSLHqBtE6G0McN6+ipMyNBJayIlJWYDJdWHU7SQUUs4I0548X
fw/iq+cYqP4tLwCVVZB+q3+LVqiqNLTzhlYovM4pZSrwnXMfOO35GaTpuaEoapWaeqKESr0KJOa9
4t/y9Apen+qfYAQ0BWjEDhbTiHhqChPLbN43i06Ti2/zaLIKPKPcDJp2pDKeAk2RXRlngMxefWZ/
vynUKrPx37TN3xSf1ggJa+b1XAHvxs+gKSKradu5KTCrEWnWFJvWFOTVujtcJa9OJVtPBU/RUDHx
SGhyu23aVs/4OTTFkjXF8rW1JZJQgIy2QDOG36bdxabN4Azaf9POZtNOacZS27RX2bQV3LSjnDFW
N21Y2sCFvmPgtLHatHWZMepmbFAZO1XT1mvThnHGSp07B6okdQ5m8IwZPHeOVfiAY+lT2pNt2nrN
mLuatoabNmap8rB5klWEwdvQ876tH6PTGXKqNsanY5JvWLcARzppXB2XSOLRgEe1vuhN4mtbvwMl
svmXuWSK55YPNowhDfTVyjNGMW43sVxNRC409gqmglcJ7NUMLGu7KMnH9Xbunep1MOhVBUXuzOoi
xVr5E7L2MppSiTTlVshbAZ9uBcy3/ciUYZvyhoe6NSRXEZ5CN5tSvDVl1Wna4mgkmmvK50CVt/2T
Ixy3tGGyDKmZg8hVMbBt0EwY7uvngX5EqIPm7CBaGkRpw21et6FgaZrUJuXTaUqD04I1G4Df8CFm
8cYFR4wFZdaQEXeu96vvZQZqshk22YaydY4MRtl7RTaAFjWfFRba4rluEkOKZ3M/hdV6TT9JC80y
SGWzEEh7nfBpVxTWJJlqnInYEKTfB9Opf0NEtJn5C7e5fRwwVcmWJZiu39DaDfeTLCHZtGbTtt3m
S0qWTF4QQvimezYU1lwy1e+2KUbF1WHXNV1JA72zkDupoL4U0FoLelXB9lZcURgo7CwnktvTkIDR
oiruCUphUpWIaj9jTfRVfqoq74i8MpHVfqRAmOue0l1NCzCGsoY00pBYmq/fSAaNRbq5GEGuOj9j
71FWrOy5LRSJ3BSX3BSQnPGYy8R3ZBzlmhxemrxOMrsMzQhYqYTaFpxoMyBvDeNZU1h7Ak0G/Ymi
tGiAY5vHxwv5vtfFqbPiuvIo+WL8jt2hanayTK6hTGah2ZjcuNkL7GvNZrbKfpHvMiVqRmIi23kj
JcB0yc13ujmxnAC9PF1i50fGjRFHuKnAxpFnAsluwvPEROwyqRcLxouC/SGtZmhj29LpK8d+h57p
G7OVOwafv8AD24zEYaTIyJlw4ihKPlXEMROOIcWyju0u2CnhAckt7qQaSXwjkXLIekApraa3DLAD
jO+q11RwdgBvGUksaibIfIGbVJ6Cd1hn7ZjRO+Bgd/O2UMGqVrAYGfeISjYUf+S0XhZP4Buk+SkA
QBe3vmD4SKTqHJ2TjBfY+dal6qwsHHllXEHA80qRMk1zBPeGuN9Qi2yarl3eGi5+IHiuLkISRxm3
EvtgRSl0ihbChCfP1EU+HD0Fv0QGlRHGbSkUdtAIwZ5JcVZJuXBTZG/M0jLEu/Suc2rvMuOwSiGp
dCaZMMomrIQmkIS88aSXWMo9kabB8gs9ITuc/trk8EecBky/uX1fjCNB4wnrtGVq2hmxF9w6CrHY
0yWnKi0Y0TaMHnLaLKanHJs19CeOsXZ5NqhCEJT1fcX66WkiK5tU9QoX7Bgbq3YNs5K7ZKV6yZY9
RnuwefXxW5Fs/kXDiV5f1NOzJOle4GAWOJgFDmaBg1ngYBY4mAUOZoGDWeBgFjiYBQ5mgYNZ4GAW
OJgFDmaBg/lrOJg3FiPzyjFZ/hYe5XHKpxsP7u3/X//53vH987Pp6Oj89Pj46Or1/dvOHpyevVvs
4r9vHZ/Xu8eP70uP8t2rZ2efXr13fHT/57t3j/ZVP775HGnLnxdE5g1WdQlbWsKWlrClJWxpCVta
wpaWsKUlbGkJW1rClpawpSVsaQlbWsKWlrClJWzpL8OW3kD+82cCrl1iopaYqCUmaomJWmKilpio
JSZqiYlaYqKWmKglJmqJiVpiopaYqCUmaomJeitiot6A8eSx4eQgbdDsq6IEQv9++Oj/Ta/+T79+
ZW9arV/Zm57ZxejzR+e3H9z/6vrpycPzZ4sPe9ZKbFavrmP6S2nO6+qJ7V/1xJ5+/vW8BHcZqa7e
TD/uaf5fzztJLqP1/ep5R2H1to3C5nmbsLmcJuxn6/N2ZX8Z9dg+b39sL6c/nqsOuxj//E3v17G8
Iv77fK/6Swb8d9sMUVtkcTfn2zD/fmTbkEh30Ujr0MD4b46mLy/tjWPcF0KibL/PhFx/0NK3nZNx
z7ZQbS/QEk/JFd12sXpt4lnYgMU7oOZWCaaTd7vtVtp3PySujECW0TJiEZxpdvheinav9Ee9VPRe
+nb/id5te/rakey/oOo7glAs6lE+XL0kJeUOq70CmWXvqr12J/vvVAc70sZj/4MJc1v2X82w0H9P
3/oFdl+35Ohj41g7/P0Vu24SXU8orsVM9lYbmcJ7+RX0Cv/tLTXRNSKhhwv+bVPiK1JjjRY+/DFB
GXLc3/zyhAudRSZ8/oSv3N0L7nXueveAAK5kUdVmTpGf3ZRzqrvgoxfcEUm+VTH4LvoZaZLIa2PB
hmsLFvmVKBbLGvPJBU+tUH664OI1RWyzXW4xJ55PwhIS9uaxPuXyKhf2wOO6XPAviJ4oTW4Fttl+
ccve99h9Wzysntj6nzzp/RLb6wH3gECQ20iGMndoML/+VSOEnvcG/A+C30qoR/N70FYDuUwCsU4Z
7wdLFze+T9Ysf5g2BWMPCjhZXSdcRWEPO8vqQ+xA8rlJ1rI4JxWR2j41gz6IZLXRPREv67i9zh2V
D1LlSLdHvuSvCzgqxBWcZk3QoZG4xTDHzmNl8PqxIGnyYE4FOjD6t4n68FyZ7nERPfSJqNrIkEf6
0tKO5rNDV4txfML7I2CHdC+SKW6oPeFFMvsE4IVxwR+EMI2enKBEwESP8MOv5ILbzJymx/pPnlTB
/YPwlgnllBuJIvPec88T+cGEOAeFueeJLBDTU9tDp5TUP2Vi2R56vcTdoTuOB/H6cLi7SxqfctDJ
T/juREhqynQUDz1dfN5mVthIWCcRMMdQPjU2TIk4wzQUxiUz1w1gooP6CH9jBxi3yOktgVQ2lu3x
fZ6JT9gQpip5teki93zK9JUnQPWRcnZjceC79zgeiZdzvyIKmWpmcrk6x/DGFkYl8lT12nDG85UG
P0Oqv2iIG8TXGRQHyYH37w3ETUY+WWmc5fIMMyH48BSncq8ofeMGPsvWJJkihHmqFe9YEptGvwSl
2TrbyD3UPmXd9dB5yR/bm1QbGq/eC7QxDnSHY35QBVbVmXs666pMo5oI7vIxMGL/mWML9vqOY6ih
UlvnTpXJUL0K0VBbLNXf7n1b0XtGutG3rKIkOq0XSNKTxJIu1PlXozbe6saoaUcjxG849k6E5xW6
QzbUaXEEqmD0IGmvn8aeXeTYzzY6i1BuhJDjbV098DU50aqvtqBp+BrSnG04HTJGFjcpv7HYzXWz
/IGJNU+btlWbL3Ur3zAPlDW2qA3eqh2basxC6Varybna9Z0WYqaLkZIh1WgbuVpg4FqUszXp3TIy
Wtz7Z8CHbCgMJPTbUHl7XiLz9ms1VhLk9isQWDR4Ww3mVsS4/a8NiYnT2+/pIQ3a9gdEPbv+Cd/u
eNA6zqXo3i7Yira14VIEsIHhbLG8bq9wrJ5oyrBqqtRWEvv2Ok0g9tyWnK2Ec5vk21twcXEHoYnU
7YlFYboAFcnYa8G7OIHVrfwItz+yolu/3iXzGxKgPRhxgNpKMN5KJ9veI3Gl9Y3ITopG3cpLcqt1
aSuRdyvHyq1cJ7dWczGQ7S/Ezxv5ITUbdpCcssNorzdhec/YTCXaIhFvEai3Jj5HFya2SNZbY2NR
vRnhk9MzRBSbg+MW9JwtonHEGWrW/z7geKAAfZhyuyWad0uk7paFbou0sEW22lj/kIqazazqC9R2
pkxGD5kepWa61FCb9J7ANIj+Or5s4t2KhkTqFv31Owq0aHTxZHzbjJfPZ0TZrl4mN97WuaqzE0T2
LelZPcH9Fr0BRWt6yibqDxxDOyNjPPoHGIQRBLDAGf+A08rI4I7UJkEiJsxscWXYsjZvkZc9PTZ+
MRW/mKnAJ0w2H8XSE3Mz+Vvh3d4zyevrH4SeEq1M0Fyi4pmKmxP/9hEXqGTmA5naZmrrKEA+kVl1
TbwNzbBQZDZoaDRgWIWmxMYj88dyLUdwD4rfL0G3nHOMGuZS3tbrkMH+oSMKFXa0jcAwFW8diAXF
30MfmUyh4Mm4nu8o/oEdWbj9S1Tc2V/2T0I9BcG8+pfovvkTniWTihbUzeQv9HTpkSynDF7hHkP/
Wc+L18jIGwzQ8DXHjHMFyGg+A5JPcpw8quWcW0LpNHYQZEUnHz1FLu2sdJNk2kh4yaTFQavV34My
MX+UjquYo8xcuPuQC5UEz9yKbIAZZuurN4LrFnefLcLtFtl4i5S7nfu40seNxpigGmwGToq1P+VW
GK+P2MJO1dohlytiru7sqmFPSK5U6tQq007dkTfeYLoGGQlN0N86QJuEHVtRdx+CimTpUmWb3X2E
wRHaNDFsJ0vkKOFjJ7Pe7jMEK3XT7lPVxL5klZUQvPsSA4DVWibcnahuJ6lyJ0yfUbLNTjLmTsxh
B0qloSfJXaMqYrYSSlsJpQ0ZIsUzoRJ9GLLhofxsp0018izb5ioIAkfIn/N8RYQxEVHSuFw8qxwu
J8of4Isa5J3lbf+ILQDy3Ees3M1sPzLsmj9oAjJvdRO9esUXRI4762lJxXLwnGYnOpRxd/mMTo9F
mKVVDAgcszKaM4ScxoKC9qarlYI0GYW+1J39SNxdS59PEnYVrxPkQDZ9eaRJmiTyda07oycb8Psw
O4N1ucJ3xeRt+0ExhXHlAyzdYTAa+gUIL/L/2mJniG9y0AyerVwBh1VxjlMFNVXlzjmJeBCHGaUN
NipeYN+2dFzjDQOiiZGTZPSdyd0/Uq2GCd1G6ZEugF9mBifFMVfcMPeF4O/vOIO5zkSUHZhRO2Th
HYLzDtkdB52K72e9kFC8xwJgsq+DgeFa2sCzmC5hTTE0mWxNi2CURRF0iI+wlPqE82oyRS2LtefU
3vkkwh7PntBUYHWc62Jyws/oPP4BM93/aseRl5nUvcNivP2aY6BVC90TqZKJ7DuMCTvngAj+u9kS
PTICEv0nK1PjDE2LWCMCA2jmMfMJ3rEcuuEF/9yQrpOrvmF+oi7jBlKnw8DkRPDFQS/gyzQB7vol
esZsyu0Ljv0D1Hak1T4QBsglsLa6u/BBbwjoryPdatsrO+OqSNV4tNWdz6gZTdPMcA3r4c7E6z3V
2BoW5m8nWpR2MEJqk2hTYnASjUu0KdFKE1JgvwjYO2c1SNo7hy/+2CZdBefN8pQXmwyhaFHaggxW
sBr5eGQgsgoQm07dmX6BSRkdTnCP9F2m8Sabp084BkHZdyD822ZLAsNiutk055to7HRONhvZe2D4
ao4rIHTiJF6PiIWPnmYP8T3sJDY6D3iiQKMsRBHU0gI0aXC0Sehg7jfkRmMOFf5kIT94KLc0E2f2
utnowDcydxTaU+h7s/6DlVsBYJ2gSyHxAucojEbBfDx3B2TmJF1QaWbzJoSGCf8njhFRnEcV3lux
WgYsnQaRmT7lDsDIbA7F37mwYbsOy0dE5fH+rrTIG1shz+r30LRK7SqzrDIBK2h2zlO1wMbV3GmV
Xc3i9zDa1WSU92mKJtz6fbveYCqN2jWGy0ykw28wJj7XqG3r3wKryl86zHz+2VevymHxRdH0H2OW
XTt98OvZ8enZu+e3j49+Pbl/48GvRw+u3Tm+fv7u1YcnZ5N76tH10+Or5yf3bx3tX3t0/+ovJ7d0
+PjZqXD9wf3z49/Oz46uPdpfv3d8oSH3js/Ort46Pnrw8Pj+8alMRw9Pj2+e/HZ84xNd+89l1mT6
7tHN/VM/7+t0dP/B/aOT/R23jk+PzvYvO77/6HGVjlb/HmK3DX0/rLexH4ZufbTebrrdsNltd33c
HP15X+6H+V/P60h1Gc5ck8/cc7thvdXums9EypOL3nO7jP3P8VJ9gR7bPjehXJL74TQRnpulXkZF
no8Z/6W1/Ple9Zfei9P0fO5l4s13z18ue3/nkTlFXXaEXypmTWr5dOzBWEDqVC8QYVSJMKrpSWeC
gPyXDQ9EUS5mAxPqUhUUU5YdpzZtS2ai4A3ZsfvUQrstYFTbkk2bmE17lQ2lLmPw3it7Y0+A7Eic
beZMoBAtpkYSZJatKgEB2NgTLXIBTW6yxC0jpdnxxQOEPHDT0AxWAoSqgnKqv3KVsE6TfgOCnKCm
qtCoqsE7CY0qr4TS3GTbatZ16tamIOjuM+qeKVic/OccJ/q0o7ChoPAtubhOx4ri0r5l065v296m
1wE8U7c0FOeGmjyNw5but3hkoTEIjLAJoTDLCJgtRjsS6wXyYqqK8lyd0ILK23eQq2LB5ISbPTzX
EfWEp9XIqTA1zes88LKBZ8oTrkDuWJNAiEkzPA+RVFXoTfURpyXCN6pskc+keWjkhMidApw6gdR1
X0DIlepBrRbyP9iMbLgW5d3HkPGWUDCwrOr4hLuMOwDNTk2BjYwwh3L5LLangikt+24H7md+fKZ7
YgntE/hfTU8BuWMb4mbAkcm5EhlZZVut5mioAG1FDMbgEeZV7n21yXKpjfpKTGbFpzOv7nBsj/3O
sUZOEPe1yaOjyWzb7N1Sspsq0jQTtS1Xm6Zn+1ERegbHYSi7hvCh/lOOi0YGjkYGjkZ+jUYSjUZa
jUaKj9yBIpIHClsKTGybnWQMyZ1CkjtF83dfc3WE5KF9w8bVbJmOVxTgCIZzI0+y6dg5hL8scmnH
GbA9Mwym9JxRN4mPZjnWN6zHUyHwxJozFsitGO2thZEKl0C+IE0eHU1+Ik0OJk2OHU1eJxknrSYv
kiZDUu799RoieYo0DHQNk13DytawzDUMcHnr4BNmIGnY6hqmv4aFL8slJ7OjvJ+7MiY0EnM1wNWn
wo7ChnuAWrZVcHAwCtPkM5vW080ij+1D7vALzkBGCo5toRYIDbaBAtpkZm/AgzYAQ5vgZpuQZTO7
kC049CXgLOxCNnmDNJBIG1wm7z7hmHcUX5Z3FAh+NbuQcAcbuIMNwMEmY3qLv+nHYCd+14fO9HPO
kjFS8Jhwj9QGusHYfcS6u0LUWc0Lf9084diY8HxKaXZ+roDSNee6QDdU2KaZigJvDtiMAoahgD0o
IHpVx6jjW2RqmLiug/THJ9D6p0sVrmnM8gHHmverHznuKYwUDO3sIceRwo6Cv3xLwYLJ73JskpFJ
gPc5bWsm72y/27Gx8Oa8m3VIyQUerxH9atMD31LbI9605QFjzbzABrQhKFpmlkYzFLQxHW8odBQM
7gmmSJqjBhB7IydS7r7nGIZfkAMKMqZRObjube3AVMan2wyqDIMmH1PufuBCskBxzYSsSKLafjN+
CkQT0q/Cj5ojvCuIqIGq1BwUtwPYrEcUrywBBorrMLlsPEwFlhrHZgJRCphcgJ6mm7mnsKaAMwVT
mEGkQMKZEZ0AvVcI1XTs9fM2G2gS+3T48zX3GcLHqeEg1XDsa3INbHgvNbz5Gi5TTf6GDbemJo/D
hk9Gw5Oq4S41FawCjzi2dQp2jUNVw6GqbWfpOrMogWtylWMkcltQ2dfIW3CPki9j3AoQ0Q2OWcQy
65tpEuwiNTZ9Gr5ibefr0HWOWUmTr6QI3CYBs700LVHcbDIOWzaNPaPGztN0MyqeawEJETmzYGbU
D5OM8M+azvg9voSyHM71YaXMvhQjc1vvCMOyyfm5aT+nhVusebbGSSRRVOH0Nls8pbUK2bMJ8LMJ
brMJMbTJz7jJp6AJTbQFVnST+4QC2uRV0ITrmeVukuWF0oT/3VhBGkJ+Y7lpyP8NIb8h0jck+ca6
08IMNwUgFZOX1aqBrTsV6uUGOC829eewqf9lMpU3WfW30M77+Tevarvoud70HPgWz77x9FfOxEqM
kVcG6/MJID6gbzbH6AHktJFXpoEuOhdM9tHip0y6E4KNCTMIIgPY+o1l2hbl7ncusNQPLP6sxNIb
tx+gxNmaI2Q7OUrlrVlQhHMnX6qMf3HGAbgNhkwH9zJ5Sn6D07GrKVL3doZT953xNsPvSgZ8fv5k
pBkhqXll0DZf6m6Tv4HTbCSwSAaY+xULyIYLwvIRKmDJM7yU4ebnGfe7YPQx4CfB9iXLvrrCPrPC
YtN7KpI5icQcMdeeCsALTwQDPh2A50F6HsiXwFw22KchuhEn4KcVrO2pXtcPmNYG2VXNLqwwHLkb
55XckZQTZiI98GcNydmcuBpYaOsLJI0kLdlsIlDODH7JgV4xygwYbgY/Y2T9yIayN7n+dyPZEdlz
RNxF0pTRRcFM1jGhd6xMA07Eqz3jw96CrejCndq9D3mqGXJznAgGNEMPSfWA8vykB+5UAK6XDjOt
itaO6B8jaseIsjI6OCui+oixB6RGNwtLfBlOqbITtymXcmlt5LBIUKPZGJXVJ3coTKNjYplgLMFf
YVR5awbmL3jbDu3eEbOEzCZszYTompBQS55h3QxTSxaERLjTNIfcQgDuoxk7ZXNIskBMTxig2AVj
Zogd8GceiZrAKU9pNsgac6m3OEb7T9gDrE312FDKHRkyYV5IGAESRt1kBmvJiythsisXUl59Y6q4
vUh5lfJKI7CStX5l99qw2ZSTT1szNfoDCEvvIcNWVeLMqsSaubOdCdNdbWVA+x3Rh0eUZwNm7FAc
7ZgEP43MI7lnbRlRYscI0ZjyplwvCjtshkALPqQwTBX6lxXc1xTQ24YzpmW4YJ5ebVYzUKxlWpNT
eXaQWqWgmJaOSsHBF4EaHN1wv34qYtl3HjAzuXkomcXnNp3uPWgdy3aO2W561tXR5y4aOAZQs4tq
EdUCm3vfMzFzqTSX4Wd2bVY0J1CI7Kiogb0BN37G9AI1MYG4mnx9cwS/QgGMRNZcrEErZowjdgTP
ZwKoZAR9Mc5oA54gIvvujnOeg0B0AksS+P+pgrdYB+YeZjtL9VWV86Xe4TTTOsN+s9dW5sF6V6+S
eKDku5mc4ZUUU9lzxpLgrLaPOK48Yxst8pNWKHcVcko1/JFmO0561vxYm5bUpkAEC61QwNJEWL5C
sgwaRXXad+ve188HXIW+TL7p/djnqyG0GifXFFEcbbOJJ4aekUAygkdTXG1TaEcmPKzJlz3bS3a2
H6Cdg+FX5qjt+Eo/Vr6biYTXUK6lHLIO+IbTT6MF2NYVY9KMK357gTt0zu9zh5EqsaGiBTv3nvwJ
yWc1g4omcC094UwlF00lGY6npDMijsCoxhlU1IPkPYh7BgbYPhHCnzylxoWAcg9ML0gS2Wne9/yw
R2cWq8yalG3mCHmz/qSfM676O820fcqxb0syF22+1nP9POS04SMLy7Pajrk8wZVWqWaTJu2kIkuU
sakqn1JVMqgsOKKq9G412wKrx9sPJl5usSZvMVDbvGs+M7W8NpuH1+wqxEIGgVlOtTcqvKeRsyAh
fyXkr8TimDA5J8zSCaktYWs2E1/3CfOyccE36JiQZscTfm/uWWn9xoRy5hvpiSU2sYi4g0FiGU4Y
lRMG4oTJ2Mx5vp3G1ndGcm2+9W3GRVk7M6JTc68PBda3rdvA2ZK07TdW04Y19DezLZpUr2CTvJ0z
EJqSYC/2OA+CQrKxIPwNsjEw86IZuJ+QwOkMRsvB9970MTnYThfchQWTpWkOg2zFw+88qO4JX8LT
zEjnSiRbg7PxzyQTqSDSDLOijia+Y1d/5BiDXtr+tX/bc3t0XYrf1DevDIlz1f/ruT3L3jInx8l3
77k9yf75/qkvaVV+XrvfG6fjv3T/e0zH37wdAJzPOzvfxun0zZufTcu2x1PbHv02DEO/HvrNOm7W
q/7Ctsd2sz16pexl2Xl6kSH4Z+48PUvmvAXSdoG0XSBtF0jbBdJ2gbRdIG0XSNsF0naBtF0gbRdI
2wXSdoG0XSBtF0jbZ4e0fY7sdneuPrz6OLvd2e2Tm+dX7pycvXu2//NEirt7Z1d+vHr/zskrMHMs
oLML6OwCOruAzi6gswvo7AI6u4DOLqCzC+jsAjq7gM4uoLML6OwCOruAzr4x0Nm312SyQOst0HoL
tN4CrbdA6y3Qegu03gKtt0DrLdB6C7TeAq23QOst0HoLtN4CrfdKoPWew/xxfv32yWPzx7WTW9vH
f56wfFy/fzSde0W+Igum2IIptmCKLZhiC6bYgim2YIotmGILptiCKbZgii2YYgum2IIptmCKLZhi
jin2BgwYz+C1gWCl7ZmoQY3G0ulHRPCpHQOFwJ6HukiEkHfzM5gDkB+g94xI0HDJyjvTyL6wGzMa
ge1ARAz6jjKQ8dHL+Oj5XkvDM6gh3G7ew7Ttd7hdnAnXbA2RsUFIHNNpTfv+S2yq2GGNnRBL0/BD
y/IkybjnNzZoWsQnQQtf6mbDgK03dd56NtU+43jYXPBkKS9Mh8yQZLQziUnTHtGG96JBNzP4ndtq
aD3d2BiUw2zauQTmuxqmLf/MdUSxZnaXUyrMPo+xwdVPfEGjv/lYPxJ3NvLX2CDuSBfMnfMjWDHm
p4Za31DrM6JEw+Ou4bnXcMbL5u2Dc3MLkmkCwoxtAcQbELx6W0J8uUhttqkzy1/NRQOoy5eRyrYO
xk6bJKKmeMzHnMpZwJv3rtPBwD0jPYQkWd1Urx42H5vdhWlmlrhHUGTkZcwUG7UG4TXoeo01dg0d
r+GSa7jiGj7ZsSeLK2VDpMyIPg21r+0ukHCigItVZlM7s4U7YEo2XhR+h8i9iyTcbj6hCqyqDYN/
9ne47dq2bm/C1pAgi++zGv1/SlNZvRs78wWz98B+6ehEghzhO11usm2s8M0pnc2gZL1wm2O2bczx
DOGzsfJlpNCMFNrwCm04g2b5XGXzZ9jOOxKZDfaMIX/Efm8GqcD6GVjOd1/Tgey1szvPfr3ibFoU
MUZbIbXZEW/Ty7Z9K4tAd0yr2Dgq7pPAhkpG87dLq3O62pvTsA2sL2zp7tdaUyD8BJbUUSHIhVi3
cf2hfr7Tz/f6MZFmXF+xY62d4/q6fm7o55Z+buvnR/3c1c8D/TzUz5l+zvXzq35+s5cPiUK2gsZr
xI9nxB1nxBtoxD9oxC1oqrQ9/ol+PtXPZ/qRgW8ty/r6K/18zYcLhWqFcU1hQ6Gj0PNhry6PZx4v
XmhWqCsKvNms9vKCGrVWjJrR48Yq/wHfpLG2kSAPqlEr1YiGPWJxnTqDOm39ElXJVqBLi1WNJ6RV
jICUjaCEjQQCj4TdjMTHjLgzjzgDT4UdhYGCNeM9/VAh0feIJ8DI9v4oh+JRS+b++UyFChUqVKhQ
oUKFChUqVKhQoUKFpL5OhUhhpJAoZAqFAh1UqE+lPpX6MLq2ZE0F6lOpT6U+lfpU66BjO+5taG4y
dP4O6lupb6W+lfpW6lupb6W+jfo26tuob6O+jW816tuob6O+jf5r1KdRn0Z9GvVp1McIjG2QUbb6
0VhUZ9Pqqn5kTFlfY9ZY9awl7zmb2223qx1sDu8+vxK4Im9Dzq+Hi5xy3a0369XhmWF3cKbbbg7O
bDfrwzMhHJwZ+s1TZ/qDM2HdHZyJ68M3x93uqTMH39qsDuuzWfWHZ/YNOziz/3Nwpt90h2fiQZ03
T/XhZvvUe7b9U/cM24Mzu8M3d/1h27t+dzA6/erwW/uH+sMz/UEr+n0HHZ7ZHd7TbQ9q2Pfbw6/3
w/DUmYOx6Lfrg/GaUrgdnAmH79nuzx2cGfrV4ZltPDgTD0d5Gw97dbfaPnXmsM67zWEf7p6aBbvu
sFd323j4nuGQfnbDIfXuwmGv7sLh3NmFeNA/u7h+6ky3ferM4bfiYc/v4mGdh9WweerMwVPDujt8
ah0OWjFsDql3f+bwzZvt7qkzB+0ausN2Dd1wMDpDfzgLhj4c0MawPZw7w27VPXXmsF27ePjm4amW
hsP3hNUhhwz96qAVYeifOnP45r0gOxyeOeSQIR7Or/gUB4hdd/Ce+NSsjNvdQZ3j7qDnJ2fJ1cGZ
frU+PHPAV/dnuu7gzHZz+Obt7ql74ubgzG4TDs6Ep87EVX945mAs+vXmYF7sz+wOWrF/bjg8Ew7q
vN6unjpzwJH69S4efGszHPDVfhMOv76JB/y53zPocHjmcHT2LPPgW90hRU1nDr7VhfXhU+FwLPZn
+qfOHH49btZPnTl4z55YVodnDmSAvu8O5uD+zPapM+HwqT4e1KcP/VNnDsdi/9BTZw5HebvePnXm
gBv3+9Xq4D27/fQ5OLPZHd6zPfzWbtdtnjpz0Ie78Hglen3ZNFf/eRyU6GGK2qgaPNSR2FwwRmYk
jAaYol0i5L+aj/ngj2r3xxy2zWtkkIvE4HGZMrQMguQYBDEyyA43CDlEe7R10B7toI3bQbu5g3Zs
B21RDkKfG7RxO3wJRIZMY4byYGg1g5ypBm1VDtqiGv6ramkXTOhPwWMaB7a4Bra4Bna/hDcxHVsz
ATGrbDMOV/UywRrJ6XCKoyXQ3oLThmuAGFTip+1T2q4bwN0ws/KggL/BQPXk6z4ItWOURXcA3MNi
uQZt9cn5rw5y7x/ugdgjY9ygHftBbvqDthcHRZgn620FCsilKQrceMKKtpB/GwQhbhhRGHSk3Eiq
RcvSV1Ub0xMUjzX5F+tLSEgxANoCit0XXKXLIUCwkwvgJJkLhq48gEkxAP62us1xB9ICQ23oFwOQ
yhHotAiygiN+dYBeDI60YeHXAibvoZIAZquBmKLoT4jmhkwiXOX4gdGwQZqugCgZAIJxFKvi9YwU
vAkjyAAQVfObiYIH3fhLLhhu0E8cN3CLaaK3PtKZBgq5AUtgfSGmHPBks6wODpJxzjHVjtwxgtTg
sCg+fpF+M1jO7pQLNIwOmyEBHfwkA+8yN4X6jo7yueHSFiBX3WPQYAMwchjDgrxGogJTp+uQZQRw
rEKGAu+IhrdJYGwk6GGqtGFg/AaQo/eJkALEvUIEVwjYsGmMG1+hMNLMkYEaHclXH9x4Ff0O/6BW
BjC4IzHDlZjTCQzU0B9+hJepfbZXm/C1JFw1yt1moooAk/Q76F4DZm7gKRKhFmXbjTIiBnzWIxsN
lTC6CF5sJUSuEgBXCaPbP6vpPUFjMOIBuradlMF5rVkDoxaNSGhLNFArIvCm9gycoR+TnwGmxpBy
2F4MRewwfM+NIMPqHSF/xQUamoBnN/ic0Zjtf8GWNZyUM+6HAG2jIuEi6bEMCYroGIdM12WQd4qf
MSiNb2i0QR//DpDI2i6AuwX8DrEYlfiF/SXn4pnxznSdcRN4UGjfcoGOMEzA8ggmalwcfpuB4Q3+
Tog4M40r0FsGA7GypkfgvoM5pLDfMmGI0KEFusoQT2b2OV2VNSg7dHqhF5x3ax5E3PGmRZtO9HmN
yAQcNdM5CDch7hyoGbfnAawbdyceiK/y1AudI3v4MyDjwUrvcAdDVfxWsKKLExb0ZGQjd8mJkwHn
5dDjiS4rXvCm0r8VtPjsBYfxMRgTMLQy/V0hpOpn6GYi1u9zDJa4DNATOggYTJn62oZmmumy0gJD
eO+YoJUBdsGxQqmVDsrwg+o95feA65J5j6FQx3l5k5E99rOcMqMn+ifE1cvvHHt9NVEN3A1n6yDw
iOguS+MVTY2PqYX3IwQgO3vE2SBuZn7XoG3bmE+ga64/4gI94Iub1JH9rcUwoT/lGJSywiAU3log
CMdOd5h9n4LNxS3LLGHZQo5hVBtwYzTq4zEPMvgFyKUBpuxg84azWb1ZvobDRwLxMKYoOYhOYUA0
fybWwKw0zAiTNoJ/bEDsU4dvwUgyhB4X+QwtsoCIRLB1pTLmUOhdlEC7REQ0XM3unKltHrsfWVXs
ixuLVZECJ+yckEUy4UOqDeiOLbvhA2gVJDuT/sJnABEWRISI1MaMBHZeDoiKCqoKZJhuM99Lq4FU
FWGLtDmsQGusAtFjZ/dKoZArWRUqSVVYe8PjPDi7CvZ5aZPyN2sX/NHp7it2vMNxc4sr55ZFaca0
w0eKEAa5WgZYG2HhUgUD0OQ2fxRLWBX8Vy0iEDfuhpP2JOmYy/Ut9GP7rHmhSoA1pMZgntvSEg17
PTy4nCxli6fb4um2eLotnm6Lp9vi6bZ4ui2eboun2+Lptni6LZ5ui6fb4um2eLotnm6Lp9vi6bZ4
ui2eboun2z/e0+1tRINbfOIWn7jFJ27xiVt84hafuMUnbvGJW3ziFp+4xSdu8YlbfOIWn7jFJ27x
ifsbn7g3lt/vsVFjuuvdGw/u7f9f//ne8f3zs+no6Pz0+Pjo6vXrx2dnD07P3q13j6dr/751fG7F
s/Qo3716dvbp1XvHR/d/vnv36Of7N45vPv7q6wtHnID4g2FYSruS21cNhoApJTlYxrxf4KwDq7tR
gcTFtdH/I2NxOID9rsH+ED0hMfjwWJM6xzlx3wBwp2c781Q6AywsrHhKQul4DmMkGWridQFnqQBE
qCnXcf5SANg6gJEb/HHwRE17vYCjG5gngYoGf6FXlKoHkrOO3ByZipGKRYB5TYPdzm+O1McUwTJj
Dkcqb+qjEozH9R00xg0JxvEfiyxEXrtIxaOvMLRACmbIiFDbGT84+uPAsEaekrK37+PehO5fWRYR
5zwD44h866Ngmdwj0OGjK/SuZCV609uEsDmS19r0L5lrJpEPORVj13uI3OQjYGHkHSM54E3iH3/m
utfUG0FG20BCY19MXWiUGBbU13G40AOuMjLco68yfsYL3iuM2cgwaFmLCGHTmfZEXohJmxiYIAgI
sZD3VvKjjJBTtmBrwXcIo/GpHApkmnXK9WmXTGF470lkeFLvRHzopgo8iS8fL5hcLHVs/JD87qgh
pgLjABrkohyRdeMwz0VUSWSUFp+CptczlnYLAPw4zL0/Q+DXJ5C+HaH7IuR9Xj8BvT1JD1i+PG+j
6Q27GVM/90/gdEcJJ42kl7F+/gTecLuQBHPGPA5PACS3NOclO8A5fgIgGfnPZeQGyVqS3RV5e/Cn
jBjtp0vdE/jIk8Fj/SQ8syzAcTd/2zGVHbfZLI/jL0/kcY2r355Izxoc+XnO2zo+mfOTDHaTNNc9
le01PZE3M9CbT+TfrEzczRMpNUO6eZizc87QSZ7iuEbGH59I3vlEPrntnyeW89UwPJU9ThaCPj2R
py7glPp0DrpgrBYtOOLCGfEq23Mp49OFFbVhn1zNq6MPpxlQbA9hnLW/4kYZbJrOjs3mYfk/Aybf
4IR0B05uc+QB17dPeDtHZVSMmJGnC3Rfo/sa2crpRxM/LrSFDnY7S3KixwRXMY1t4aeuyzbYvA9v
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
jvvN8bA5HjfHwcfGBIKl0FJgNGYGakYHb3JNhbRQmZSi9/aXFXzH48vt6H2NTvUEt8FXs2vn+Vjx
emQKTIDCU4UqFr/EzQVOoDB/Mvdk/zo3Zz6avYU1hYb30FNi8V60aQnNeNrGsNFpHo/HzXG4fHzZ
uHY8rjbH9ea42Ry3m+Nuc7ypX72pX72pX72pX7OpX7OpX7OpX7OpX7OpX7OpX7OpX7OpX7OpX7Op
X7upX7upX7upX7upX7upX7upX7upX7up32W+IjSXjbbH42Zz3G6Ou81xvzkeNsfj5njz/c18ajbz
qdmMV7MZr2YzXs1mvJrNeDWb8Wo247WRF0KzGa9mVajWMpPWMpPWz42SDhDiAUJsapZaRtZaJtf6
sX7EmtYvGNUjuRLFWgqjFbSMl8JsBVGB5Qz3SJ+zXOIe0ZflUseZhkLh0sAZv8e/XnPmQCFyqeWM
38N7Zm7OfKJQ1dlb4Y9PXPKKsRkNbFgTZ8x8XKPKr9lca9S4NXq/SuJJLRmjloxRS8aoJWPUkjFq
yRi1ZIxaMkYtyaGWHFFLqqglY9SSOGrJH7WkkVpGc+UVX/Z4aHSEfEcIcYT6u9QXofXRWQRofYSO
R/YV08HUsB01KvAaDqNG213BIVQYrysbnaVQnfBRW0GlChs4yfHEuDmxgYIcT1TbE/X2xPalG6DH
8cSwOVFvK9ZsX7rBQlSh3daj/Yc7tp9tt43rto3rtnf027b025cO2zuG7TvG7VfGbdXHbdXD9pGw
fWQLNzpsoUKr1HCcBqYBrezYZ2t98kC9hUXVW1hUverVKknblUhapTVTaQVVIn6VFktli0U0s9LK
q2w92ZLQUq1uwUMznyc43gRNSKwL06HUWIRqDDk1hpwaHWeNlrE2daw1p9nIzccT7fZEtz3Rb08M
2xPj9sQGCdRs8YrNFq/YbPGKzRav2Gzxis0Wr9hs8YrNFq/YbPGKzRav2Gzxis0Wr9hs8YpbYMES
jWZ7YlvTLV6x2eIVmy1esdniFZstXnGLADme2NZ0i1dstnjFZotXbLZ4xWaLV9yiBI4ntjXd4hWb
LV6x2eIVm+3CbLYLs9niFZstXrHZ4hWbLQFptnjFdotXbLd4xXaLV2y3RKjd4hXbLV6x3eIV2y1e
sd3iFdstXrHd4hXbLV6x3eIV2y1esd3iFdstXrHd4hXbLV6x3eIV2y1esd3iFdstXrHd4hXbLV6x
3eIV2y1esd3iFdstXrHd4hXbLV6x3eIV2y1esd3iFdstXnELXDue2Na03T7Sbh9p/+GRbePabdW7
bdW7bdW7bdVfbAVvO7TI2wvnsvtIKQj3UFfVcYMK3XGx95fDzB7pwZW/cELr1+cMsnvbvcJM+ktn
SNk9f3bPn93zZ/f82T1/ds+f3fNn9/zZPX92z5/d82f3/Nk9f3bPn93zZ/f82T1/ds+f3fNn9/zZ
PX/+Cz1//pXm+uz+jQc3z+/f/tu9s9vXbjy78vP1Kxc37pzfP3t89rfr57e7F3+uvLjr7MoLrfKN
x8upP0HvvHsV7V5Fu1fR7lW0exXtXkW7V9HuVbR7Fe1eRbtX0e5VtHsV7V5Fu1fR7lW0exXtXkW7
V9HuVbR7Fe1eRbtX0e5V9Ga9it68weQ/8iN68fDiV3L/+N3Hf8ufffLBzw/lHnLt4vzBfXkenL3/
9ScfZzxIXi1/4TuQzPmdd9u5lMXmP8g3+FZr9Idn0xuv6htJw/Tn50ba3a42bleHauj6IXRHZu+4
OQ/9cMnvqv29bI5vLBvXyyak+o/mw1L/4/DcO3b7ssourl3/9d61R687O9c+C19uFv6lvf/+3fx6
fbnW3rR/9H+fU++7w0a8hqrvdGhDh7qj3DOGvh6qetF2dKdUaDjsOVff9gD8ZVOuvhFx7sWX/omQ
fPfaw2svhOTHd85vXVy9e/74b4+Pfy5JysuJ18jsvDJt/Bdb5stR5P+0L15T6tc/RMnPb762dLr/
udbDG37/7MmVl2ZI/sng/oGHzqx/fD68thgvy9cePDq/fX7/2r0r/x0qmDc3U1+PvPZ7PPVrJyf/
Yra/3o/+h2zxn9Pgf7Lm3tCX/8n6ey1ffsO79KtS3VfeUP/TrfC1KF5erlLH/4f6MF49cnRnT//9
RvGHW/rozaYr/7dr950cqldTJI//hqX8g5zadia8lR48daz53CSoz4+fNinqtU2mV5rXf6k59sfJ
76vyNZem52vmVH53qrwFgfYvpxNo+naoD+3hMPYh9P2hPVEKVG175a+nnbvMKb8+y/R/lzr2j/ba
7wTdWxw0Kzw1XwDX8sE8ko9/5Qq8nGkpdHhzEvvBXHgzjgLZnJWXxwNnBs6cRohY47QtTycKDTEO
CgWvRbbgEBHn0sRTwtEtX+CFVnfiXyxnvH0936I12Vsz8R4akb3uI/cELnFG/szLPV6fAwWak7gn
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
nU6/3saT/bk7btDT6ZXT0TlumSffCqczarty8q0wNae/mk7H4nilc1dOvx7bxl05ec9xshxOr5zI
AF0XTtbg8Urvrkynv+riCT3d1Lkrp2Nx/JG7cjrKfdO7Kye7cXfkVifvGY7L5+RKO5w+059+axhC
666c9OEwPeFEtcbESxQ0aEM8HFlhiOM4jKGL4/mKBsN06eLVo/l33oyXcr5cgGotb8iZ8mdQ9H1d
nazqo2zUuCsn63NsTveUMZzu1MeJdji9Mvkr4fTK6S4zuh3/XF09u3LKoce+Ce5K566cfqs/kZ+O
V1xLh1PeP45j766c/srxpHF0LR3j5K6c0nMqGx2vuG+5MR2ja2k8kWW76TCN7srpM80pz57CKbc7
XulPr5y2fepP9/epH0+fGU702yPbOuUu8VSaPF45kXe3K83plRNZvzsX5W1X2s5dGU6vjO7KaR/G
KZ7SE0/nz/FKOL3ivh7b07bHzv3qZDX1h8NJu45XQnd6pYunV050s+2Ke8+JfLldcW8+kSG2K8PJ
leZERj9e8c9Mp99q4mlLT9dyfzjVT47r/2QEj785nLT9+OKTX7WHk5XSb2WBTq40J/Jcv6EQn74S
XNvD4bQVWznZkyvdiRTYH9Xik5YeVYST8eqPG8fTV4bmZFX2w3CyLvpxOpHD+vHU6rRdOXnz1J6O
+9SdzsOjsn/6TH+ycrcrJ+06it+n75lOJM7tygk9x+UV3JXRXTnp1dic8JTtyumvmhNb3lFXO11f
MRzcFferU7m5P0oBp88Mpz0Wh9P+OV45bfsppx4Op7P3OBFO5s/xyumvjv+m0yunv2pPufBR1D/p
56E7tUMNx+l7euV03Ddp9ISeY5c93avD0J6suO3KCc1DaE6fCScz/HhlPL3Sdaff6vrT93Tj6ZX+
ZK87Lq+2dVfC6ZUTeeN4JZ5eGfvTdo3umVP7yOCsaccXNycUOtlmODLP9vTKaW9MzckeNUztiUVg
mMLJ7D1eORmd8RBOdtrxqItMf6jj1cJ1r0TP+3tUrnspqFydO/9h7nRtH49ywBSGuMldU3d+7sTh
Uh2PNzseR7V6OrKorj+Mh6NQ1+/DEQ9tW+uCXsAl8l9TGHS3Sb0ue1qdiC+xN/w95uEz1oU9Pxff
vJ31+YH+b9pE/XetQf7WQ23eYAOqNb9a86s1v1rzqzW/WvOrNb9a86s1v1rzL7w1/wImYqxxwTUu
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
BM4YmWecBGyB20HgoOOg52DgAIMpqWnJL534tlYGbH7k3G6Q1rUzEqBO1bb2a7I0GsLKfqxTGx/E
jP/ekGQzixAzxHaFNtKzmN8x+2SKYW0HMwd8NJJCfqFDIh2rjvv2AeeiWKqihlG1QG/hrZsOhzK6
kLl04RlNDj/rZtseiQ3tIfbTPwK/1gpxAgCJo+WKv6zqluX3jOUUDEgNn3cpopTsI6ELbfsPs5LN
h6eSGG9mLAwRYjY2e7+aXzctmGy6lt0aVNxu5YvdUwgi27ImsXcX2Z0maipNVjWQMmQTOfuL7FmT
JAmfFFBNos/jgcKgtMpnQy0kqcN5PNfsqa2o5O2n8ucz+SPp2VsBO7Rfyh8xBMscnVqhtBVjtKb7
lpytx5dPECuLbDvQBr0LncKkrKSRpO2exN4wtVISs5WdsBVAUyvO0VbsWu1N+SPtb6X9kk57an+U
PwJMasWv2cp21kqRiVaKSrQCLpJpPLVixmwlX7SUbp2kAtGkzhrBTU2NvLqRWdfIFxrpy0Y6UaIO
ji3UPmh1o5moGzmZe6IlYW2rG812QAdppaWWHMEtDr9Wt5btYOUgcZA5KHqgM8kM92YYA8i1HUBP
hJ4IPTZgEXoi9CiCuJEObmQIm3s60jLA4l8SU7Z4/sTXJc4x8UeJ4CKCkXAPkS9EmBBJRHiiiCMi
QcjmIetTdh1ZorJniUAndkuRTWQXENFPTKFiIxdZTSxTYgUSK7eYuMXwJDKfGKfFYizGYTEai9FX
LFli7hXzsmxJYiAVK62IjCJQi3wtW4QwPNlJxBgqdjmRysU8KLxBNhDZaoT1iAwuIrkI2ewtjDjV
GScD9zWfyl7yFau0vO3QoJdORfuGtbA/NI+8Hlru3ju7c+n7469+OVJ16eHd22d3bv1+ZTO5XLpz
d7t5dv857D6105690/4eFos69HW91E77O20ytZ9fZnJWS2m1lFZLabWUVktptZRWS2m1lFZLabWU
VktptZT+iaX0YtT+qmieCvb6O7fim7Or6/3H9x7enT9973+vn92/9evZ5au3Hj64fPvssUAVL9+7
evv69+3ls5/uPXws//9zW5kPqhn0QhinXsae9bKj/z//7+O7d86qjbIadmun/TU77ekao8+ONQ9v
ouTp85LzDNvRRQlHMOT/g6fmTOy68NK78p93wB9/QV/+63F+3r3/+vrlOYm44N31Vrvp7XbPG4wm
eq4Yn4vTGX/YDW+6D1/fXvZKopjCywZVvY5Ir/D6OGl3sThp95o56V9+tr+O6dVdrEDC7vXN9v5i
zfb+5Wf7M0zbNyd0/iVme3+xZnv/+mb78NezPf6BVvng+LazO4/07+OLtZKHi2SQes5OfM3cVgFY
n94/+/7Wo7Prnx4Xy0fHH165cfZX59Rvabu7EJPmNe6ff6H2/eHc/os3ssocr47JDxdL5hiecfT/
jbP74bWbt544u6/eutE/+e8pP/fZ/ft37z+4dJyUy9XXyKFfAWHPyvXeiDn/J9k0Lp2zm/9/93RT
0Q3l/y7QvnHp8M9m6prDoYlDe5j6MAzTpaZvwzC2w3AYmunSK3b8/nj3zo1n8vv+HYPS/n6z4+/C
/19yGv99NP/n3pXv/znhz/S6y8f5cfbov1IZeAVM8Nlm+fOO61+DYJs5b53c55X4Xjdhf0cv9cnO
+1/tVnzuvngBFWO8WPa5scr8Ly/VtW0YN/Gtm0I3HuW7/rxU1/WXqoh9gQbj72B9+q8GCj33Lv1f
hRN6Nfy8YgVejJFeGEvmeJGiaf56TGQYu3joh9gOYzM0bTjPQ8ZQGfoFGou/Az+vI/9vRz62bRdC
NzX9GGIznZfkxmasq/ACjcXfZhU+H5udLpY2P1Vt/uVnej+FYYpDF4emG6fx/ETv2rrpXJyh+Nvi
SKr29WIb34XRvqYq973Msh9j7MI09EeRY+iaeH7Zj82lF6wA0vyfZPI5vmxqR03ls1+Z3JV4eiUc
3JXGXWndleCudO5K764M7oqjOTiag6O5czR3jubO0dw5mjtHc+do7hzNnaO5czR3jube0dw7mntH
c+9o7h3NvaO5dzT3jube0dw7mgdH8+BoHhzNg6N5cDQPjubB0Tw4mgdH8+BoHh3No6N5dDSPjubR
0Tw6mkdH8+hoHh3No6N5cjRPjubJ0Tw5midH8+RonhzNk6N5cjRPjuboaI6O5uhojo7m6GiOjubo
aI6O5uhojqc0x8PBXWncldZdCe5K56707srgrozuyuSuOJobR3PjaG4czY2juXE0N47mxtHcOJob
R3PjaG4dza2juXU0t47m1tHcOppbR7Pjg9Hxwej4YHR8MDo+GB0fjI4PRscHo+OD0fHB6PhgdHww
Oj4YHR+Mjg9Gxwej44PR8cHo+GB0fDA6PhgdH4yOD0bHB6Pjg9Hxwej4YHR8MDo+GB0fjI4PRscH
o+OD0fHB6PhgdHwwOj4YHR+Mjg9Gxwej44PR8cHo+GB0fDA6PhgdH4yOD0bHB6Pjg9Hxwej4YHR8
MDo+GB0fjI4PRscHo+OD0fHB6PhgdHwwOj4YHR+Mjg9Gxwej44PR8cHo+GB0fDA6PhgdH4yOD0bH
B+MpHwyHUz54vNK4K627EtyVzl3p3ZXBXRndlcldcTQ3jubG0dw4mhtHc+NobhzNjaO5cTQ3jubG
0dw6mltHc+tobh3NraO5dTS3jubW0dw6mltHc3A0B0dzcDQHR3NwNAdHc3A0B0dzcDQHR3PnaO4c
zZ2juXM0d47mztHcOZo7R3PnaO4czb2juXc0947m3tHcO5p7R3PvKOwdhb2jcHAUDo7CwVE4OAoH
R+HgKBxcrw6O5sHRPDiaR0fz6GgeHc2jo3l0NI+O5tHRPDqaR0fz6GieHM2To3lyNE+O5snRPDma
J0fz5GieHM2Tozk6mqOjOTqao6MwOgqjozA6CqOj0PG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4
xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4
xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4
xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4xvG4pnc0O67XOK7XOK7XOK7XOK7XOK7XOK7XOK7X
OK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7X
OK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XOK7XREez44ON44ON44ON44ON44ON44Ot44Ot44Ot44Ot
44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot44Ot
44Ot44Ot44Ot44Ot44Ot44PtEz74tn3mf1aTCxtF52y2nbPZds5m2zmbbedstp2z2XbOZts5m23n
bLads9l2zmbbOZtt52y2nbPZds5m2zmbbedstp2z2XbOZts5m23nbLads9l2zmbbOZtt52y2nbPZ
ds5m2zmbbedstp2z2XbOZts5m23nbLads9l2zmbbOZtt52y2nbPZds5m2zmbbedstp2z2XbOZts5
m23nbLads9l2zmbbOZtt52y2nbPZds5m2zmbbedstp2z2XbOZts5m23nbLads9l2zmbbOZtt52y2
nbPZds5m2zmbbedstp2z2XbOZts5m23nbLads9l2zmbbOZtt53yXvfNd9s532TvfZe98l73zXfbO
d9k732XvfJe98132znfZO99l73yXvfNd9s532TvfZe98l73zXfbOd9k732XvfJe98132znfZO99l
73yXvfNd9s532TvfZe/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4
YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4
YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4
YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4YO/4
YO/44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD4
4OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD4
4OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD4
4OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD4
4OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD44OD4
4OD44OD44OD44OD44OD44OD44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj4
4Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj4
4Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj4
4Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj4
4Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj4
4Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44Oj44OT44OT44OT44OT44OT44OT44OT44OT4
4OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44OT44PSE
D9aY9AsTnPo3K+BQo2hrFG2Noq1RtDWKtkbR1ijaGkVbo2hrFG2Noq1RtDWKtkbR1ijaGkVbo2hr
FG2Noq1RtDWKtkbR1ijaGkVbo2hrFG2Nov3vjaJ96yUjawRtjaCtEbQ1grZG0NYI2hpBWyNoawRt
jaCtEbQ1grZG0NYI2hpBWyNoawRtjaCtEbQ1grZG0NYI2hpBWyNoawRtjaCtEbT/9RG0b8tvWQNt
/3Og7abATjE2m3vkOP7N+UjbONRC3BdoLP4OlbhfoMxzfPLq1zgRX4Sc//l/H9+9c/bn7f3zCO/Q
OiRj65CMrUMytg7J2DokY+uQjK1DMrYOydg6JGPrkIytQzK2DsnYOiRj65CMrUMytg7J2DokY+uQ
jK1DMrYOydg6JGPrkIytQzK2DsnYOiRj65CMrUMytg7J2DokY+uQjK1DMrYOydg6JGPrkIytQzK2
DsnYOiRj65CMrUMytg7J2DokY+uQjK1DMrYOydg6JGPrkIytQzK2DsnYOiRj65CMrUMytg7J2Dok
Y+uQjK1DMrYOydg6JGPrkIytQzK2DsnYOiRj65CMrUMytg7J2DokY+uQjK1DMrYOydg6JGPrkIyt
QzIGh2QMDskYHJIxOCRjcEjG4JCMwSEZg0MyBodkDA7JGBySMTgkY3BIxuCQjMEhGYNDMgaHZAwO
yRgckjE4JGNwSMbgkIzBIRmDQzIGh2QMDskYHJIxOCRjcIj+4PhgcHwwOD4YHB8Mjg8GxweD44PB
8cHg+GBwfDA4PhgcHwyODwbHB4Pjg8HxweD4YHB8MDg+GBwfDI4PBscHg+ODwfHB4PhgcHwwOD4Y
HB8Mjg8GxweD44PB8cHg+GBwfDA4PhgcHwyODwbHB4Pjg8HxweD4YHB8MDg+GBwfDI7rBcf1guN6
wXG94LhecFwvOK4XHNcLjusFx/WC43rBcb3guF5wXC84rhcc1wuO6wXH9YLjesFxveC4XnBcLziu
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
jpAlR8iSI2TJEbLkCFlyhCw5QpZ8hCz945bMiGZyRDM5opkc0UyOaCZHNJMjmskRzeSIZnJEMzmi
mRzRTI5oJkc0kyOayRHN5IhmckQzOaKZHNFMjmgmRzSTI5rJEc3kiGZyRDM5opkc0UyOaCZHNJMj
mskRzeSIZnJEMzmimRzRTI5oJkc0kyOayRHN5IhmckQzOaKZHNFMjmgmRzSTI5rJEc3kiGZyRDM5
opkc0UyOaCZHNJMjmskRzeSIZnJEMzmimRzRTI5oJkc0kyOayRHN5IhmckQzOaKZHNFMjmgmRzST
I5rJEc3kiGZyRDM5opkc0UyOaCZHNJMjmskRzeSIZnJEMzmimRzRTI5oJkc0kyOayRHN5IhmckQz
OaKZHNFMjmgmRzSTI5rJEc3kiGZyRDM5opkc0UyOaCZHNJMjmskRzeSIZnJEMzmimRzRTI5oJkc0
kyOayRHN5IhmckQzOaKZHNFMjmgmRzSTI5rJEc3kiGZyRDM5opkc0UyOaCZHNJMjmskRzeSIZnJE
MzmimRzRTI5oJkc0kyOayRHN5IhmckQzOaKZHNFMjmgmRzSTI5rJEc3kiGZyRDM5opkc0UyOaCZH
NJMjmskRzeSIZnJEMzmimRzRTI5oJkc0kyOayRHN5IhmckQzOaKZHNFMDdFMDdFMDdFMDdFMDdFM
DdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFM
DdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMDdFMbVdRc0XNFTVX1FxRc0XNFTUralbUrKhZUbOiZkXN
ipoVNStqVtRsqNlQs6FmQ82Gmg01G2o21Gyo2VCzo2ZHzY6aHTU7anbU7KjZUbOjZkfNDTU31NxQ
c0PNDTU31NxQc0PNDTU31ByoOVBzoOZAzYGaAzUHag7UHKg5UHNHzR01d9TcUXNHzR01d9TcUXNH
zeAgPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8aPI8a
PI8aPI8aPI8aPI8aPI8aPI8aPI+ur6BmcBAuSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0uSA0u
SA0uSA0uSK18wariP7lrdK1frvXLtX651i/X+uVav1zrl2v9cq1frvXLtX651i/X+uVav1zrl2v9
cq1frvXLtX651i/X+uVav1zrl2v9cq1frvXLtX75b79++U35+H7huuVyc11ursvNdbm5LjfX5ea6
3FyXm+tyc11ursvNdbm5LjfX5ea63FyXm+tyc11ursvNdbm5LjfX5ea63FyXm+tyc11ursvN9d/G
zfUbzR99E275zsvnn766f/nqrdcf3N99+vTZu88/vXv+zof3T16/9fjF01e3N7978vL+8etrNXeP
n7179+zxH5++P/755m9vT548f/b6+smv7t75/Przj+//LGfz4/tXrx6/f3/3/MX9s/uXY2n0xcv7
955+dv/uj8bP/vPrrOT2uXfvXf/qk2tNd6+ff3T/7OmfHt+iO+9eXd/t/tln8/HzN7Xd7f6j91rK
9SCU3fVe2t3vxEq9jax814vefT19r+tYfJlj8T/Gtn4rtuGLr8Lf3L9zfPn5i9fP9z/93lvv3r98
+sf7t995+vrV2x/dfz5iat9+8c5H775X3r7/+MXrz99+9cEtQfe23a/efMLXcz7+o1X9n//74+fP
7r98Cu5Dv/d1IgQNCnSNBbrGAl1jga6xQNdYoGss0DUW6BoLdI0FusYCXWOBrrFA11igayzQNRbo
Ggt0jQW6xgJdY4GusUDXWKBrLNA1FugaC3SNBbrGAl1jga6xQNdYoGss0DUW6BoLdI0FusYCXWOB
rrFA11igayzQNRboGgt0jQW6xgJdY4GusUDXWKBrLNA1FugaC3SNBbrGAl1jga6xQNdYoGss0DUW
6BoLdI0FusYCXWOBrrFA11igayzQNVboGit0jRW6xgpdY4WusULXWKFrrNA1VugaK3SNFbrGCl1j
ha6xQtdYoWus0DVW6BordI0VusYKXWOFrrFC11iha6zQNVboGit0jRW6xgpdY4WusULXWKFrrNA1
VugaK3SNFbrGCn1/BQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4KCCgwoOKjio
4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCC
gwoOKjio4KCCgwoOKjgI1XyDar5BNd+gmm9QzTeo5htU8w2q+QbVfINqvkE136Cab1DNN6jmG1Tz
Dar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyDar5BNd+gmm9QzTeo5htU8w2q+QbVfINqvkE1
36Cab1DNN6jmG1TzDar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyDar5BNd+gmm9QzTeo5htU
8w2q+QbVfINqvkE136Cab1DNN6jmG1TzDar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyDar5B
Nd+gmm9QzTeo5htU8w2q+QbVfINqvkE136Cab1DNN6jmG1TzDar5BtV8g2q+QTXfoJpvUM03qOYb
VPMNqvkG1XyDar5BNd+gmm9QzTeo5htU8w2q+QbVfINqvkE136Cab1DNN6jmG1TzDar5BtV8g2q+
QTXfoJpvUM03qOYbVPMNqvkG1XyDar5BNd+gmm9QzTeo5htU8w2q+QbVfINqvkE136Cab1DNN6jm
G1TzDar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyDar5BNd+gmm9QzTeo5htU8w2q+QbVfINq
vkE136Cab1DNN6jmG1TzDar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyDar5BNd+gmm9QzTeo
5htU8w2q+QbVfINqvkE136Cab1DNN6jmG1TzDar5BtV8g2q+QTXfoJpvUM03qOYbVPMNqvkG1XyD
ar5BNd+gmm9QzTeo5htU8w2q+eb/SAruQzd2g9a+QWvfoLVv0No3aO0btPYNWvsGrX2D1r5Ba9+g
tW/Q2jdo7Ru09g1a+watfYPWvkFr36C1b9DaN2jtG7T2DVr7Bq19g9b++gpqBj2hvm9Q3zeo7xvU
9w3q+wb1fYP6vkF936C+b1DfN6jvG9T3Der7BvV9g/q+QX3foL5vUN83qO8b1PcN6vsG9X2D+r5B
fd+gvm9Q3zeo7xvU9w3q+wb1fYP6vkF936C+b1DfN6jvG9T3Der7BvV9g/q+QX3foL5vUN83qO8b
1PcN6vsG9X2D+r5Bfd+gvm9Q3zeo7xvU9w3q+wb1fYP6vkF936C+b1DfN6jvG9T3Der7BvV9g/q+
QX3foL5vUN83qO8b1PcN6vsG9X2D+r5Bfd+gvm9Q3zeo7xvU9w3q+wb1fYP6vkF936C+b1DfN6jv
G9T3Der7BvV9g/q+QX3foL5vUN83qO8b1PcN6vsG9X2D+r5Bfd+gvm9Q3zeo7xvU9w3q+wb1fYP6
vkF936C+b1DfN6jvG9T3Der7BvV9g/q+QX3foL5vUN83qO8b1PcN6vsG9X2D+r5Bfd+gvm9Q3zeo
7xvU9w3q+wb1fYP6vkF936C+b1DfN6jvG9T3Der7BvV9g/q+QX3foL5vUN83qO8b1PcN6vsG9X2D
+r5Bfd+gvm9Q3zeo7xvU9w3q+wb1fYP6vkF936C+b1DfN6jvG9T3Der7BvV9g/q+QX3foL5vUN83
qO8b1PcN6vsG9X2D+r5Bfd+gvm/Q2jdo7VuAesgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQasgQ
asgQasgQasgQasgQasgQasgQakgMakgMasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgH
asgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgHasgH
CuQDBfKBAvlAgXygQD5QIB8okA8UyAcK5AMF8oEC+UCBfKBAPlAgHyiQDxTIBwrkAwXygQL5QIF8
oEA+UCAfKJAPFMgHCuQDBfKBAvlAgXygQD5QIB8okA8UyAcK5AMF8oEC+UCBfKBAPlAgHyhGPtD/
ohTc1RW5uiJXV+TqilxdkasrcnVFrq7I1RW5uiJXV+TqilxdkasrcnVFrq7I1RW5uiJXV+Tqilxd
kasrcnVFrq7I1RW5uiJXV+S/eFfk/4IU3NV3ufouV9/l6rtcfZer73L1Xa6+y9V3ufouV9/l6rtc
fZer73L1Xa6+y9V3ufouV9/l6rtcfZer73L1Xa6+y9V3ufouV9/lv3jf5UrB/fYlr8oV7td5XJTr
aX77n/x59Kr2FYP7bToY/wo5uG9qfff5x2+9+/n1A54+ufv48cuPPnlx9/TZtfjb+15/+OSTj++f
vb779OXT1/dvXQnxBQG4b9734bjfXvzg8cvr7ePVf3z46lvT7P3XChwH9dV/O6rXcXr9h7N5/zYt
x5c+Hn9r9O//d7tf3r+4FfsVH57/eV9vn/nN7PG/IW95vvkfr9fsFW9f2975O4v4lu+ub3Q3fbO7
54t1WIE+n0CfT6DPJ9DnE+jzCfT5BPp8An0+gT6fQJ9PoM8n0OcT6PMJ9PkE+nwCfT6BPp9An0+g
zyfQ5xPo8wn0+QT6fAJ9PoE+n0CfT6DPJ9DnE+jzCfT5BPp8An0+gT6fQJ9PoM8n0OcT6PMJ9PkE
+nwCfT6BPp9An0+gzyfQ1RPo6gl09QS6egJdPYGunkBXT6CrJ9DVE+jqCXT1BLp6Al09ga6eQFdP
oKsn0NUT6OoJdPUEunoCPTyBHp5AD0+ghyfQwxPo4Qn08AR6eAI9PIEenkAPT6CHJ9DDE+jhCfTw
BHp4Aj08gR6eQA9PoIcn0MMT6OEJ9PAEengCPTyBHp5AD0+ghyfQwxPo4Qn08AR6eAI9PIEenkAP
T6CHJ9DDE+jhCfTwBHp4Ah07gf6cQH9OoD8n0J8T6M8J9OcE+nMC/TmB/pxAf06gPyfQnxPozwn0
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
8t4hee+QvHdI3jsk7x2S9w7Je4fkvUPy3iF575C8d0jeOyTvHZL3Dsl7h+S9Q/LeIXnvkLx3SN47
JO8dkvcOyXuH5L1D8t4hee+QvHfI2Tvk7B1y9g45e4d4vUO83iFe7xCvd4jXO8TrHeL1DvF6h3i9
Q7zeIV7vEK93iNc7xOsd4vUO8XqHeL1DvN4hXu8Qr3eI1zvE6x3i9Q7xeod4vUO83iFe7xCvd4jX
O8TrHeL1DvF6h3i9Q7zeIV7vEK93iNc7xOsd4vUO8XqHeL1DvN4hXu8Qr3eI1zvE6x3i9Q7xeod4
vUO83iFe7xCvd4jXO8TrHeL1DvF6h3i9Q7zeIV7vEK93iNc7xOsd4vUO8XqHeL1DvN4hXu8Qr3dI
1Tuk6h1S9Q6peodUvUOq3iFV75Cqd0jVO6TqHVL1Dql6h1S9Q6reIVXvkKp3SNU7pOodUvUOqXqH
VL1Dqt4hVe+QqndI1Tuk6h1S9Q6peodUvUOq3iFV75Cqd0jVO6TqHVL1Dql6h1S9Q6reIVXvkKp3
SNX7kKr/E1dH/+nron+P+fZaG11ro2ttdK2NrrXRtTa61kbX2uhaG11ro2ttdK2NrrXRtTa61kbX
2uhaG11ro2ttdK2NrrXRtTa61kbX2uhaG11ro2tt9F97bfQbbWKfa5Y/nW3MP71++mxl/qrbYP9y
mfT//5HfQEvy/+YGb7lZYuyu3LjeYq26/3mHt0vcffmG3gfn9etpigsJQzG4zXW4zXW4zXW4zXW4
zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4
zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4zXW4
zXW4zXW4zXV4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4
y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4y3V4
y3V4y3V4y3V4y3V4y3U4yXU4yXU4yXX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4
xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4
xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4
xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4
xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4xnX4
xnX4xnX4xnX4xnX4xnUF4xSMUzBOwTgF4xSMU3y5oKCegnoK6imop6CegnoK6imop6CegnoK6imo
p6CegnoK6imop6CegnoK6imop6CegnoK6imop6CegnoK6imop6CegnoK6imop6CegnoK6imop6Ce
gnoK6imop6CegnoK6imop6CegnoK6imop6CegnoK6imop6CegXoG6hmoZ6CegXoG6hmoZ6CegXoG
6hmoZ6CegXoG6hmoZ6CegXoG6hmoZ6CegXoG6hmoZ6CegXoG6hmoZ6CegXoG6hmoZ6CegXoG6hmo
Z6CegXoG6hmoZ6CegXoG6hm+ZDdw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw
0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBB
AwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MBBAwcNHDRw0MFBBwcdHHRw0EE9B/Uc1HNQz0E9B/Uc
1HNQz0E9B/Uc1HNQz0E9B/Uc1HNQz0E9B/Uc1HNQz0E9B/Uc1HNQz0E9B/Uc1HNQz0E9B/Uc1HNQ
z0E9B/Uc1HNQz0E9B/Uc1HNQz0E9B/UcjHMQzUE0B9EcRHMQzUE0B9EcRHNjhdiHb4j2tS4Nr8XI
tRi5FiPXYuRajFyLkWsxci1GrsXItRi5FiPXYuRajFyLkWsxci1GrsXItRi5FiPXYuRajFyLkWsx
ci1GrsXItRi5FiP/fRcjvw0dtH99zfJ6l/oLgt5eUbxieMXxSsMrgVf6X77yFwS9vSJ4peAV1NxQ
c0PNDTU31NxQc0PNgZoDNQdqDtQcqDlQc6DmQM2BmgM1d9TcUXNHzR01d9TcUXNHzR01d9Tc/7Lm
v/Q+ur0ieKXglYpXFK8YXnG80vBK4BXULKhZULOgZkHNgpoFNQtqFtQsqFlQc0HNBTUX1FxQc0HN
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
n3eNQ37WYXtl+9C8jxzysw7bK9uH5k3nsD3JUg9bqXkbOmxPstTDVljeoQ7bkyz1kOfKPg//Pk+a
fZ5h+zwh9nnS7POvep5PPc/UnmdGz5Om52l02cY0eRptJ03kK5GvXPIjLlnGJcuYJ5bMv5kfOO4/
Mm48Mm48Mm48MrgigysyuCKDKzK4IvOuO/AiAy8y8CJ/ys3Oq3CeH/LRePhD3id3+WTszJL7p+Re
LbmfS+7Vkvu55F4tuZ9LngAlP7nk4S55TEuezyVP45LVlTxpS56ZJU/akudhyROp5FlX8rQpeW6U
PHtLnoclz9WSZ13JU6vkOV/yXC15hpc8M0uefiXvdCVHcCVHcCVHcCVHcCVHcCVHcCVHcCVHcCVv
piVvpiVHcCXv+iXv+iXv+iVv9iVHcCVHcCVHcCVHcCVHcCVHcCVHcCVHcNcnWc8p6zllPaes55T1
nLKeU9ZzynpOWc856zlnPees55z1nLOec9ZzznrOWc856zlnPees55z1nLOec9ZzznrOWc8l68lx
xbhNy7hNyxgayK/myHZesXUOpudQeg6k5zB6DqLnEHqgoA4U1IGCOj6jjs+oAwV1oKAOFNSBgjpQ
UAcK6kBBHSioo7Y6axu3jTqGLXXcPeq4e9Tfz/Itx/6WY3/Lsf8c0Na357/ngLYOuNd3xsMYhNUx
JKtjHFfHOK6OcVwd47j6dDx8OB7G/aWO+0v9eDw8Gw/Px8MYOddxh6vjDlfHHa6OO1wdd7g67nB1
3OHquMPVcYerf5rlt9zSllvacktbznK2aWXk5CZychM5uYmc3ERObiInW5GTrcjJVuRkK3KyFVlG
ZBmRZcRWRk62+jbNzXp61tOznp719Kynz3FPcmseYxnnivwi7+T7fJIDncjxzdy0lpvWHsZ6kaO0
uWltHPL2dL48z5I2zos2TpY2jnYbx76Nk6VNtoyTpY1j38bZ1sYJ0d75BsJybop0aObRh6Xow1L0
YSn6sBR9WIo+LEUflqIPS9GHpejDUvRhKfqwFH1Yij4sRR+Wog9L0Yel6MNS9GEp+rAUfViKPixF
H5aiD0vRh6Xow1L0YSn6sBR9WIo+LEUflqIPS9GHpejDUvRhKVYvDKsXhtULw+qFYfXCsHphWL0w
rF4YVi8MqxeG1QvD6oVh9cKwemFYvTCsXhhWLwyrF4bVC8PqhWH1wrB6YVi9MKxeGFYvDKsXhtUL
w+qFYfXCsHphWL0wrF4YVi8MqxeG1QvD6oVh9cKwemFYvTD0YRnWMwzrGYb1DMN6hmE9w7CeYVjP
MKxnGNYzDOsZhvUMw3qGYT3DsJ5hWM8wrGcY1jMM6xmG9QzDeoZhPcOwnmFYzzD0Ixs4aOCggYMG
Dho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4
aOCggYMGDho4aOCggYMGDho46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCg
g4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MO
Djo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo4
6OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo46OCg
g4MODjo46OCgg4MODjo42MDBBg42cLCBgw0cbOBgAwcbONjAwQYONnCwgYMNHGzgYAMHGzjYwMEG
DjZwsIGDDRxs4GADBxs42MDBBg42cLCBgw0cbOBgAwcbONjAwQYONnCwgYMNHGzgYAMHGzjYwMEG
DjZwsIGDDRxs4GADBxs42MDBBg42cLCBgw0cbOBgAwcbONjAwQYONnCwgYMNHGzgYAMHGzjYwMEG
DjZwsIGDDRxs4GADBxs42MDBBg42cLCBgw0cbOBgAwcbONjAwQYONnCwgYMNHGzgYAMHGzjYwMEG
DjZwsIGDDRxs4GADBxs42MDBBg42cLCBgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY
4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCA
gwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgYX2NYzpcW
cP+f//vj58/uv1gh/jek8QSoHqB6gOoBqgeoHqB6gOoBqgeoHqB6gOoBqgeoHqB6gOoBqgeoHqB6
gOoBqgeoHqB6gOoBqgeoHqB6gOoBqgeoHqB6gOoBqgeoHqB6gOoBqgeo3kH1Dqp3UL2D6h1U76B6
B9U7qN5B9Q6qd1C9g+odVO+gegfVO6jeQfUOqndQvYPqHVTvoHoH1Tuo3kH1Dqp3UL2D6h1U76B6
B9U7qN5B9Q6qd1C9g+odVO+gegfVO6jeQfUOqndQvYPqHVTvoHoH1Tuo3kH1Dqp3UL2D6h1U76B6
B9U7qN5B9Q6qd1C9g+odVO+gesfstoODHRzs4GAHBzs42MHBDg52cLCDgx0c7OBgBwc7ONjBwQ4O
dnCwg4MdHOzgYAcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHBDg52cLCDgx0c7OBgBwfRsyzoWRb0
LAt6lgU9y4KeZUHPsqBnWdCzLOhZFvQsC3qWBT3Lgp5lQc+yoGdZ0LMs6FkW9CwLepYFPcuCnmVB
z7KgZ1nQsyzoWRb0LAt6lgU9y4KeZUHPsqBnWdCzLOhZFvQsC3qWBT3Lgp5lQc/y9RXUXFGzomZF
zYqaFTUralbUrKhZUbOiZkXNhpoNNRtqNtRsqNlQs6FmQ82Gmg01O2p21Oyo2VGzo2ZHzY6aHTU7
anbU3FBzQ80NNTfU3FBzQ80NNTfU3FBzQ82BmgM1B2oO1ByoOVBzoOZAzYGaAzV31NxRc0fNHTV3
1NxRc0fNHTV31AwOIp1VkM4qSGcVpLMK0lkF6ayCdFZBOqsgnVWQzipIZxWkswrSWQXprIJ0VkE6
qyCdVZDOKkhnFaSzCtJZBemsgnRWQTqrIJ1VkM4qSGcVpLMK0lkF6ayCdFZBOqsgnVWQzipIZxWk
swrSWQXprIJ0VkE6qyCdVZDOKkhnFaSzCtJZBemsgnRWQTqrIJ1VkM4qSGcVpLMK0lkF6ayCdFZB
OqsgnVWQzipIZxWkswrSWQXprIJ0VkE6qyCdVZDOKkhnFaSzCtJZBemsgnRWQTqrIJ1VkM4qSGcV
pLMK0lkF6ayCdFZBOqsgnVWQzipIZxWkswrSWQXprIJ0VkE6qyCdVZDOKkhnFaSzCtJZBemsgnRW
QTqrIJ1VkM4qSGcVpLMK0lkF6ayCdFZBOqsgnVWQzipIZxWkswrSWQXprIJ0VkE6qyCdVZDOKkhn
FaSzCtJZBemsgnRWQTqrIJ1VkM4qSGcVpLMK0lkF6ayCdFZBOqsgnVWQzipIZxWkswrSWQXprIJ0
VkE6qyCdVZDOKkhnFaSzCtJZBemsgnRWQTqrIJ1VkM4qSGcVpLMK0lkF6ayCdFZBOqsgnVWQzipI
ZxWkswrSWQXprIJ0VkE6qyCdVZDOKuWrX+38orbLaKNRuH0we0jbZtNyySfbK9NdY3QDt9EN3EbD
cBsNw200DLfRG9xe51+OhtmYXeHXW/r0ajhPE4DrzXn6OVyy3/z8k/z3+OM+LQC6vfng6817NElf
79nTBaGPZu39rPj2gzetu1fKDFeE6818GgIcPhlvlUYDl9ncfn3XYStw/dFxWsd8kG9WZu2jMff2
yqjs8OgS+YrOEkYXfi8/mZs53z6mCcPtyfYub9p7+3REOvxx/OtNA/mVdLMx/zgdDLq/6SQ+21bV
tgHb+/XcX1ne3IPH2XB/3dmjcb8fZsHXzR7tztcPvBzmJuTW/TLfd59PDrmreh6Jsc/SNeb2O6e5
4aMh+va+Mn80PSJ6drsf06DgmJYFMc+BHh+Oh9HgfEpXiZgGGLc329615JM6tvEX+W+dbz69BSKP
hWdD9yHPvUO6ixym8UhPh4TbxubmH/IIHnKPD9uKvhtN1ZffjX99nD895pPtHcYuPnw6N2uad/Q8
PpF7Nub5eT0bp1XHebR8n9+dO/zhzU/jF1/PMz6dgn6TP8+3ztP66XyHcXJcN3CaQsQ0u7j9zSXP
pNw/x+0aaHOvRh6JeX7q9Fb6cDx8NE+m4Qtx2f8hf7vkh/U89uf81XmZz3tE39xtDp/lbsrPnEcy
/RF6WmPdPkDzj/dz++aR3P1wVDK63M/v5XnaclvzyA/Tjl7yqE0PkJjWH30zzbj8Pk/PsXdaXg3T
EaTPg3PZP8u3annhnPKVmk9svtl525Jxmm1H+phH8pTn/jGP0zi2t9tanj/H7UleY9NZ4/x+Xuaa
b5dX0HGaZb3IHSe5j/LEGJ4nt7+ZJ9Pz8fAyX962Zp4N/5WX1XaOzUtgu3fPk63P89inic91WyZ/
jtOpp+9+nFekzd+Y/ijH38z9vk9iDDOTy344IVxejn+9yipbPslde8pjPaxXbm+VB+iU237atj0L
fHhlHKndj3ITcjectncZ23LJDxzmKF2fj7f6Vb7s862nQ0qfd7GeBL3s/5j/3n4wPmOaEh3zUk33
uuvZf8wb1zy10o7j9kpS5rLdLbfapy/ap/Mk2HbEYMhlnyidBZS8xDfq9DxP5xUY0y7m9mReMXmx
xbxRXJ9MM4tDjgeOE1GX/evx8Kf8i+nf9ln+O9/qkqOO44b0vHQuea5vVLrkzhl7oG9OOMeJiduP
fHzS53NXzIs2jav6ZppzyHeJ9M885KHdhgqXca75L/NGOt88zVLOP53H76GyPm8N83PbO/mDsX09
z8OJ8FPeZS/JteNvxy9ut/PTHBYNJ50+77hprtnlgYxzKOXj6Pb01xs+LreLcXz45Gb/7ngYh0IG
Cvt3xsP38m9n2T8YD9/PgzSu5sMYAfVxMc2xXc/K+g/nMZhHsv9sPIyd1n+SJ+84DP3nuR9meWNw
0PJeM+8EfRykPkY8fdxO+qxj7rrfzXPqkmfHHGUdfz8/wg45xN1ucSWZ7HlxWe6C8zxSc8ja8889
b/vT1uec98P++/zF7SI+zTv5MKHp/cH9MLZB3UTS2O7+9vzFDZvT7es4T/Ee81Me5yZogmWfAw/N
y3Mc45rn8bzp9XFy9ic5js37fJtb+t7c8ss8ce7znJ2H7A2frtfTvFn1D+Z+mTX3MX7pY4TYP8pR
cMtrc5/7QBJ0c/cMCPc/zPfLE3eco/b5+Ne4IfeBwP5fuatn7eOW1wdI+hhy9ZcJ7nGl9D/mWDuS
o/NU/TQry/NiTgX6GN9cZgmf53l0zEvsNMuYh7XnjaC/uRWeH4bs2w/mzeRaxTxLLjlEl7wB9byG
64bLOV/rDwcr3Zn2P8p/S54ZOQSbhmg9p3aX5/PcmjeBntubDk999yx/UHOQu597ZPqb7XN4sM9Z
Up8eULcn82r6Xf47L6rIOc0c6lymX1JPo8PbTSY3PnIoNgc3PXdQz7+q211j2jbdjljLs/eYp/1W
1rx9f5BX9iXZsP1G3lz321gv78PbbWD+lfwk/z2vgoSp/yrfPt91+lUd04vqlMOatIm9/c72yyXH
2Ie8cHKre87/Ht457yvz0pY8bj2PyXS92j9JluUJup27+69JxL2sr5f19bK+XtbXy/p6WV8v6+tl
fb2sr5f19bK+XtbXy/p6WV8v6+tlff0lra//jmSxDx+/ePwmWezVB0/fe/32h09fvfXq+r//Fi/2
2d3tpS8OFvvCrzWWUfYyyl5G2csoexllL6PsZZS9jLKXUfYyyl5G2csoexllL6PsZZS9jLKXUfYy
yl5G2csoexllL6PsZZS9jLKXUfYyyl5G2f82Rtl/x7Ll6ycfPH2zbPnO0/ftzf/+24rl/cuXz1++
urv/7PXhna9g3XJZXi/L62V5vSyvl+X1srxeltfL8npZXi/L62V5vSyvl+X1srxeltfL8npZXi/L
62V5vSyvl+X1srxeltfL8npZXi/L62V5/W9jef2tXbdcDtnLIXs5ZC+H7OWQvRyyl0P2csheDtnL
IXs5ZC+H7OWQvRyyl0P2csj+Sh2yvyHTqTdfgNx+6613Xj7/9NX9y1dvvf7g/u7Tp8/eff7p3fN3
Prx/8vqtxy+u7379o7snL+8fv74Wc/f42bt3zx7/8en7459v/vb25MnzZ6/vP3v96u6dz68///j+
recv7p/dvXf9q09e3r+6e/38o/tnT/90/aPnz67/eHH3h/v3Xr8p8usxCP8WbNj/+b8/fv7s/ouP
wRebfknBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHBIlHB
IlHBIlHBIlHBIlHBIlHBIlHBIlHBklDBklDBklDBklDBAlDBAlDBAlDBAlDBAlDBAlDBAlDFAlDF
AlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDF
AlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDF
AlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDFAlDF
AlDFAlDFAlDFAlCFEKKCcRWMq2BcBeMqGFfBuArGVTCugnEVjKtgXAXjKhhXwbgKxlUwroJxFYyr
YFwF4yoYV8G4CsZVMK5CCFFBvQrqVVCvgnoVQogKDlZwsIKDFRys4GAFBys4qOCggoMKDio4qOCg
goMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMK
Dio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4qOCggoMKDio4
qOCggoMKDio4qOCggoMKDsLgWWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZYPAsMHgWGDwLDJ4FBs8C
g2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZYPAs
MHgWGDwLDJ4FBs8Cg2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDwLDB4Fhg8CwyeBQbP
AoNngcGzwOBZYPAsMHgWGDwLDJ4FBs8Cg2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDw
LDB4Fhg8CwyeBQbPAoNngcGzwOBZYPAsMHgWGDwLDJ4FBs8Cg2eBwbPA4Flg8CwweBYYPAsMngUG
zwKDZ4HBs8DgWWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZYPAsMHgWGDwLDJ4FBs8Cg2eBwbPA4Flg
8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZYPAsMHgWGDwLDJ4F
Bs8Cg2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZ
YPAsMHgWGDwLDJ4FBs8Cg2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8DgWWDwLDB4Fhg8Cwye
BQbPAoNngcGzwOBZYPAsMHgWGDwLDJ4FBs8Cg2eBwbPA4Flg8CwweBYYPAsMngUGzwKDZ4HBs8Dg
WWDwLDB4Fhg8CwyeBQbPAoNngcGzwOBZhsHzPzdYeS1GrsXItRi5FiPXYuRajFyLkWsxci1GrsXI
tRi5FiPXYuRajFyLkWsxci1GrsXItRi5FiPXYuRajFyLkWsxci1GrsXItRj5b7MY+U05ef2N6UOC
BFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriABV5CAK0jAFSTgChJwBQm4ggRcQQKuIAFXkIAr
SMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriABV5CAK0jAFSTgChJwBQm4
ggRcQQKuIAFXkIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriABV5CA
K0jAFSTgChJwBQm4ggRcQQKuIAFXkIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJ
uIIEXEECriABV5CAK0jAFSTgChJwBQm4ggRcQQKuIAFXkIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQ
gCtIwBUk4AoScAUJuIIEXEECriABV5CAK0jAFSTgChJwBQm4ggRcQQKuIAFXkIArSMAVJOAKEnAF
CbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriABV5CAK0jAFSTgChJwBQm4ggRcQQKuIAFX
kIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriABV5CAK0jAFSTgChJw
BQm4ggRcQQKuIAFXkIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwBUk4AoScAUJuIIEXEECriAB
V5CAK0jAFSTgChJwBQm4ggRcQQKuIAFXkIArSMAVJOAKEnAFCbiCBFxBAq4gAVeQgCtIwJUAB5E0
K0iaFSTNCpJmBUmzgqRZQdKsIGlWkDQrSJoVJM0KkmYFSbOCpFlB0qwgaVaQNCtImhUkzQqSZgVJ
s4KkWUHSrCBpVpA0K0iaFSTNCpJmBUmzgqRZQdKsIGlWkDQrSJoVJM0KkmYFSbOCpFlB0qwgaVaQ
NCtImhUkzQqSZgVJs4KkWUHSrCBpVpA0K0iaFSTNCpJmBUmzgqRZQdKsIGlWkDQrSJoVJM0KkmYF
SbOCpFlB0qwgaVaQNCtImhUkzQqSZgVJs4KkWUHSrCBpVpA0K0iaFSTNCpJmBUmzgqRZQdKsIGlW
kDQrSJoVJM0KkmYFSbOCpFlB0qwgaVaQNCtImhUkzQqSZgVJs4KkWUHSrCBpVpA0K0iaFSTNCpJm
BUmzgqRZQdKsIGlWkDQrSJoVJM0KkmYFSbOCpFlB0qwgaVaQNCtImhUkzQqSZgVJs4KkWUHSrCBp
VpA0K0iaFSTNCpJmBUmzgqRZQdKsIGlWkDQrSJoVJM0KkmYFSbOCpFlB0qwgaVaQNFuQNFuQNFuQ
NFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQ
NFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQ
NFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQNFuQ
NFuQNFuQNFuQNFuQNFt2X30D5RctRN4sfzcj4c11OL2We+bFHDeDckvf8YzfmDEibRqs337H07x9
Wk1nbEqkL/E+7YaHSf1lBKvcHLdniMH38+cZSXDJIoc3e+x/nB+WlsbT8dw/me7NGSNyztCH7Rff
VHHeQi/qo32aOO89zasjzcYlPydjezZ37GlwbRlq0jNnZ5d/3jPs55BBBj3Dfvb55JgG3fs0jE7D
/D8r65JRDpm9MpIFbkb4x6wvXzlv+T2ZtnHOig+7/OU8wDONJ6OHbk9yYw7pJj1Sc26RFtOa/KO0
0t7eZewJmXbo6QF+ePAAH6k4t0+e+RkZxtEz+WRLi9o+p2/JThlpMO34M6niuo2H3FeHdEufLvu7
TEzackoyKOZWX4ZnnPJHmYWTH9kf0jhOm4F+yQCeLWIhd/W0vC+ZADFdwf3jfDPNosb5cPxl/iD3
9sxQGNEKsUVh7GfgyG3PZUjNPEkPmfbS8xgetxyp7V3z9NtOyGmj7vOkuL1v7sJjpkSd0pj8kiED
27lw3HZPnpszkWKXyQgjdiE2k/qeSSF9y555CIjZCj2lO/380fln+YOS0SyamT3TMn+47bdpu57e
9YeMsZqRGpeMC5rnzjn37CWDrnSeF7e6tkrHXW5GIsiL3B+HjGrZgrq2DejztjODOSSN5g95oV8e
Ms1OeaZP1/ztbJMtSy2vuvOH4zcya2maxp/yJnt+mm+VF82M5DoMO/t9pjTM/KfD+7POGeHVM0pg
3GNud7zj/AvNIK1Jgfpe7oZpof/j+YkzueqQQQr+NC+drOm8pazl+bNdeedEQYYtbJEsf5on1gwf
sLy99i2w4SGH7OGVGRiTATIjQ+xm5p9RHufcg3375LyMH+rNsLu5qeeMh+kPzv/nDGrY52dvjvyX
7ZXc3HG13c4czd2c73PJMjIYZX7W9XyccWenLWbscb5d3jO3m9wl798ZrvNwW5gJIdve21B6SXbM
mID9liqTfNln5Nspczr2P83fGJ88Y+O2FJ59BsLtZ0TEOBf2ecZvzLjklfOQfTPrPOc7jt8YpO/z
/Nx/Jy+mmRqX4Nv/cDyMbJo6/2jAdf/93NBxHo40mdu9ZN6XR2jD/rsZdzGOxP57uS1jt+xnCE0m
MMwkjf3Is9iPvJn9TzJLbOz/ucMkT5z9r/Kv5w77ed6QM59mBsrsR4zNfoTa7Acx9iPmZf+zeXhm
tsq4yvuIzbodtXHe7d8bn/3T3PxZ8Ey62OdvZ4DavBns38kfbMmC+WSiL8eBfQRI9P3bGWUxj+E8
6uNmIyNo5fA0b4jzg9/N6KWx5TN5ZuS89RFE17cUmBluNmLq+gxmG+l0cZ6/OyAwQ81G/lWfaVcj
g6qXn+UNd57yIyhmJIzdDsrE8DgoI7Mr8p7aMwHm+ouX3HkTc5kC1beUpC0raEv+kXmGjNyrGUq1
z9H2nwXf5KmSiR5bLtD+z5JXMk1ojmI10w1z/N23wfrY0X0bK2/jv23UmMPbrr/Nf+fWxLbp53yS
1fUsart/zHvORtK8hfW89PrDSbidK5lKst9mIu/mTXfehv8w9+Ml0yTnLa08yT/MoK39llK4DUu2
anMwswX2bdX23MaeaTOn3Ni+/fm2RfmjvCs8DCe3SMLtcO1z8/Nqz/vWfhs8fp7/brP0OcA5PdBt
nj/lWf5q5JM8fPs8XPuk9zmjMufwy3+dv5HHfp+39pkaecqR5nZgZnrnaRZ92Q5V+Xm+R946TlnS
ITOS8iY6Zx23JzmZs9yFh9wrh3lM5u3l7Xw5z4xt/tC3z8lN3077JEROJPZzInHJY3/JE+VGDc0Y
ne198kgfturytJgpjfqbnH7MtL9P8ucZWzRZds7Cdd4Mbtd0BofND/TPcgqzxQBlztNxqyS3aBse
HnOn5v0rBxT7xGfZSD3PhXOeu9EfhlJb0NLM7qzvZ3Xb2+UI6rBNCw55GW5FzIp/l/8+JEDn/OyD
/PeW7dkyq3Ojfh7iY148GUD7q6/+i5CX96+ef/Lyyf2rt24vfvD45bP7V6/+48NX/6RPenn/4vnL
11/1520eWX9t6/6aCP5bkEX0xSL6v/+Q/flXXj99ef/e08/u3/3pdaN/dP3Dx+/f/49/+z/vy+34
/W/do1/i7PqXvwDeff7xW+9+ft3HT5/cffz45UefvLh7+ux6/G679vrDJ598fP/s9d2nL5++vn9r
J+Uf7P148KsrO8f30Y7vox3fRzu+j3Z8H93wfXTD99EN30c3fB/d8B16Q80NNTfU3FBzQ82BmgM1
B2oO1ByoOVBzoOZAzYGaAzV31NxRc0fNHTV31NxRc0fNHTV31Iw1TsEap2CNU7DGKVjjFKxxCtY4
BWucgjVOwRqnYI1TsMYpWOMUrHEK1jgFa5yCNU7BGqdgjVOwxilY4xSscQrWOAVrnII1TsEap2CN
U7DGKVjjFKxxCtY4BWucgjVOwRqnYI1TsMYpWOMUrHEK1jgFa5yCNU7BGqdgjVOwxilY4xSscQrW
OAVrnII1TsEap2CNU7DGKVjjFKxxCtY4BWucgjVOwRqnYI1TsMYpWOMUrHEK1jgFa5yCNU5x1AwO
Cjgo4KCAgwIOCjgo4KCAgwIOCjgo4KCAgwIOCjgo4KCAgwIOCjgo4KCAgwIOCjgo4KCAgwIOCjgo
4KCAgwIOCjgo4KCAgwIOCjgo4GABBws4WMDBAg4WcLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzg
YAEHCzhYwMECDhZwsICDBRws4GABBws4WMDBAg4WcLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzg
YAEHCzhYwMECDhZwsICDBRws4GABBws4WMDBAg4WcLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHIQ3
eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3eYE3
eYE3eYE3eYE3eYE3+fUV1AwOwq28wK28wK38+gpqBgfhX17gX17gX17gX17gX17gX17gX17gX17g
X17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gX17gVl7gVl7gVl7g
Vl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7g
Vl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7g
Vl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7g
Vl7gVl7gVl7gVl7gVl7gVl7gVl7gVl7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7g
TV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7g
TV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gTV7gRF7g
RF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7g
RF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF7gRF6GE/nfnoT1/1/Z/t+6MP1VrLt/5Qu5X3W7jfzn
G51LCo6m9n/3PP89Wxg+TplkarqO2cIydUeSqrQy1T+XP9OpDZF999SKnVLkdvL81Xy7/fY3Kck7
puDolBKfU8rup4DNHgQ7s6GmvJuyoBTWn7PwU27q1LmfUma4f7SJTzdp5Wn7q9RfnVLjdE4F2Wmr
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
BjYb2Gxgs4HNBjYb2Gxgs4HNBjYb2Gxgs4HNBjYb2Gxgs4HNBjYb2Gxgs4HNBjYb2Gxgs4HNBjYb
2Gxgs4HNBjYb5p8GDho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4aOCggYMGDho4aOCggYMG
Dho4aOCggYMGDho4aOCggYMGDho4aOCggYMODjo46OCgg4MODjo46OCgg4MODjo46OCgg4MODjo4
6OCgg4MODjqo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ce
g3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3oO6jmo56Ceg3rI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrI
ZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCrIZCojk+mbChZei5FrMXItRq7FyLUY
uRYj12LkWoxci5FrMXItRq7FyLUYuRYj12LkWoxci5FrMXItRq7FyLUYuRYj12LkWoxci5FrMXIt
Rv6LL0Z+Kxso/8z0NcDmAJsDbA6wOcDmAJsDbA6wOcDmAJsDbA6wOcDmAJsDbA6wOcDmAJsDbA6w
OcDmAJsDbA6wOcDmAJsDbA6wOcDmAJsDbO5gcwebO9jcweYONnewuYPNHWzuYHMHmzvY3MHmDjZ3
sLmDzR1s7mBzB5s72NzB5g42d7C5g80dbO5gcwebO9jcweYONnewuYPNHWzuYHMHmzvY3MHmDjZ3
sLmDzR1s7mBzB5s72NzB5g42d7C5g80dbO5gcwebO9jcweYONnewuYPNHWzuYHMHmzvY3MHmDjZ3
sLmDzR1s7mBzB5s72NzB5o45agcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHBDg52cLCDgx0c7OBg
Bwc7ONjBwQ4OdnCwg4MdHOzgYAcHOzjYwcEODnZwsIOD/S85WHd/ycHrK4JXCl6peEXxiuEVxysN
rwReQc2CmgU1C2oW1CyoWVCzoGZBzYKaBTUX1FxQc0HNBTUX1FxQc0HNBTUX1FxQc0XNFTVX1FxR
c0XNFTVX1FxRc0XNFTUralbUrKhZUbOiZkXNipoVNStqVtRsqNlQs6FmQ82Gmg01G2o21Gyo2VCz
o2ZHzY6aHTU7anbU7KjZUbOjZkfNDTU31NxQc0PNDTU31NxQc0PNDTU31ByoOVBzoOZAzYGaAzUH
ag7UHKg5UHNHzR01d9TcUXNHzR01d9TcUXNHzeAgwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsqwjsq
wjsqwjsqwjsqwjsqwjsqwjsqwjtq+QYaKNdi5FqMXIuRazFyLUauxci1GLkWI9di5FqMXIuRazFy
LUauxci1GLkWI9di5FqMXIuRazFyLUauxci1GLkWI9di5FqMXIuR/zaLkd/WBMp+eHTZ3cqN/aOD
3J5cb+iH05sn+uM3D9ffKPmkvvnV0w/yL7Yf6JtXjo8O/uaV9mQ8fHf+4vj57RfHz8ujvYy3+uGb
h8uj/WV85qPTab5y2M0nV1iMvznvZ4GX9uZJ/e14jx/Nl9shP2X+/LPx80fH3Szv2POt3vzqFZ1H
mZ8S5/HLY6Pbe/lWkU/Gn+qL/Pcopj262Jsn8cP8wTGfjM/Yj7c6PtLdeDJ+fhw7+Thqtrdzq8dB
OI7dcTyPh/FZx++Mh++Oh++Nh/G5x++Phx+Mhze75DoOCM0Nnp/647kn+n7+xjw0+qvx85+MPZeb
a49O48nxp2Mrx74+/ixPlVngL8dPH/XLfDKO53Wn7s/5jnX86psPisOjdsxTocxjMff18dfzzffj
rDqNmsrz3JQ3e+66/w/jMPt85Xb6tTzQc4/9Zjz8dh4CO8+qzjXfI0+ufZ117eeB+d2oYuzXcj9e
/P34s/fz/Q75R+d85ZhP5tu8PTe/+/yBz9Pg8Xh4Zzz8Yjz8fDw8mZsxf9cuWW3PM3peCr/O6sdR
tA/H37+bZ9PYtX1WPx/em7ttXPm3a25W/3SeE33Uvnu0n7vxg/Hw/ihrVC6PTuPyP348Hj4aDx/O
62JvcyPGvr5dyPNU+sPYJR/Nl+eeqtvJNC6x4zjex2fj4b/y3caWHl/Ok6Qfx9v8abz8am5S3gIe
HS65iyx34tioOk6r4+txCMdx3o3jYHmHmxe3zso+GafPJ2MHjjPEf597bf7Sn/JzDvOTY273p3nJ
2TwV9uM3jp+PD5kFfTYe/jgPdZ/HIC+Y64s1n/R8InNr5y3w+ornTXH7q10+sXmEzuMInf+YxzPf
t53yGj3l30SeEYe8s+RGRMnNyjM8Wl4Vl3xF80luTGRZ23XR83e65JNd3mK33ynznSccTj/NUyvf
t2+75JCHYdsBWU07Z8WRf5Vb3sdWlRdz5+99/uph27jcJX3749zcee+WR/s2T59xFCIv8gmZfvyz
ere3267x07xHHbYtyL/aW94Ct/fJ4z1vXz1P/OMk7O1JyV/e3id5eJ6nwvcS6PNdPstfnHD43bxD
zxP2esfY9uVWQG7RvBX6vO5vr+S1uJ2v+3nRPmzIPm8Cp4nTpOa+z71wzPN3ouWUG7+bWL/tqcss
NG9Nj/Z5lMaR7PJ57oxRwvkX85gd8/TbdvtxvIf8KX+Qp8AhN+ygiZPtj3PvH3J3HMZFdsnjfMiC
5uDJcyThydzjwyk7z4WYl+atqO2zZZ51c/wWicv9LOv2y3kKHPKdt1e2vXnM2+IxL+ij5yu5VQ9P
ts3L47/Vc8ztOm5bkbDtuTm5Rx+dJtl/lr86qtn9cv77lHevc37gcXuP3JE5Nsoz5jjf9bojx0V1
2xPbj8aNY4Jx/4t8j8u8w2zH9iS5x3Obt7tijikenXLfneZw40n+xmG+3bzptu/nL25/ep57YF6L
7eF63S6pU27qaTv1t+pyJ49R8m2MlMOrifpk/KPzVmReoWfJsV/ew7f787nnDstP2nb8OfJWuL2y
/U7uou1KP+d2nvP6G+PO230pT4vtkh+jthuZ8w0veXaet8JyELGdQ5fcrkt+eg4sH7h6yU/fwLHt
5XnLt7ld/ZiX33FWeBuQnBN2WfzY0ttW7POQbG+YM4lDDpq282TMBK67a151pzkFiA3Y87zY5b6Y
x2qcAXEYA4x5rOepM08Tmad9bGed5xnkOSy9JG5P38mPefMe12N7yBv5OE1ut7A8zvPtTt/NG6Pl
qWbzlXl0xjSwn8Y8ZMzk+mmc8tucbJ935EO+zRxT6Dwf+5xxjXvBbcw6B+K/Hy+PQdHp1/nTcdQH
+Ls+yQtu7qMxfj6N6/v0m+TO3A2/HJv487k35oV2up8FHfL2NM6x21GOrLXMIzgJaHkildwbnmOH
0zYezJFnfvwotszictx7enc8jInCaXDvNEYMp8fz8+fY5ZSHts/zrp9+NzHQc/AxL6LTmNCd5hz5
F7nNeZLP43HKOYb+V77RuJGMOc5tDNPmn87562lMBk5j1H96mhfo3Jpn43zaf6Xy6y+SXl9P25gb
ds4ddUz6zMLGdOP86fjXH3L+Pw/s+3kvysFcz/ngPCtOHyZmLS+UsaN3v5p/+jCdmn/xYh6ReXLK
HIzEeV4j/zUexpTl9Dwn3HnazGtUcoxleYc6Jw1POag/zTHt9SiNYWlso73TZ3nAcxQ27986LqFT
jv5b7rB50zzNz7396XxlzHtOY0CkYwZ2ej0/T/N7pJbFJQXnGO62y+acf3D+9HmelOPLiHF9Xv8d
ebudsxiZp30/jSnUYWB8TmRLjglOD3u65WmQN9qcNMnDiT9Ho6ecnZweJk3zmijbxZRXQRv3vJYX
x/zCISYqbr+4vX3JOWTOIcZ73G4r2yePm0j7IP99zCLzN+bM5JTzjtN2N8kr/vQyf5DbPK7g64k4
B3l1ToZuv7M9GfflOaU/5V1sl8OF05zW9HrOorfPzWHWdvLlnS8nc54Hevcw1Yi8g87B2fmX+e/t
fec3bD/LDzzk0Gbsg/rT/MWtxOM8XvP2qOO8OOe8IG/Nz8eRyL28z32ag7Cn+YPcjn0e9n0iITYk
5IHe59Zb7vd9nkc979b7PIxzdlS3H8yLbXuzvO3kiZ4TopyCXp8csqhDfvI+3y7vUTkjuWyMzp13
yuv/9HAB5GWdE+3Tw2k3ZymnnOWeckJzmiPOOH+WP8iKD7kxh9whh9yGOS/rc0gUE06Wg6/d3Nw4
PuzfbdB03KYzc9CbpNou8mNu47yb66v8t+VNfPuN3AtjTB35DWCcf5UT0Dln/yBvqHlUj9t3IHPM
/Z0c0Wx15O7brpX8ejf39fa15y4nVfbRvALnnEdzNK25B+ofcpKSx/SYXxEct08+5zBL5xZPCO0e
Stgu1+P8bnYMLsp741/jrr779fylOcmxHOD2/J7jnDw65dToNGdNtyeateZ+3uq45M455ThyO49P
eSwuebadtifb+2x/vs9f7vnN8tjbJb9ZjiRZy9tp5Lf8LUfr+9xzp20ytFWT38TMnXradsk5p0Lb
ICrmrz7sgG35os9b4WH7q8ippeWhOeYn5ZE957k+d+0uB9D9vfzBvMJf503Y59tfcr3kkHOUbdfn
V59P8lPyuOUQfI5vb3+T5JukOOd+mvOD87xpxhxcn3I4ccop4277wfx68cf51vm9wnZMz3mZnPPg
Pnzctkfy65g539lvf5M3inNOKOY+szzcx7yvb+P5eRLtHhaX8kvavKcc8+a4kX/MKq8nyHZ1X/Ju
e8lbwyW/4p57rbyfw8vc05dt47P+S44GTvk98fyuqs2Nj/M7OVfNLwLmjMVzmWHbgdvFdcm9ctn2
W96E58V1zoF83SZAeQWdt3njfPs5gPtw7uAJg7nD5yE6j9vg+bu5B8eJ0ufIYiy9nMckcYx8b9/X
5mwlthNvjjPGmK7n7VBymiS5zZK3i7y9X6u6bKOMSfQf5s0rRwg9hzFzeH3+QV42ksPtuVXjT+PH
uae3bynGLj7/KG8/c5+NXzz/JCfhMZ/s8/u9bVA0bz65+36WM+95pxjThfmF5HncdAaVbp+WA4R5
Fz+PSewcRZ1/k7Dq8xTq2wJnS77kV0/j/nD94FMe7rkPzmPKXcfM7vzbnLXMDf9d/vYuN3XeInLQ
cs5D1ObA9rqL5h1msCbGbLXr6/z9/PYq8kzcTsn5xcRhLP/oe/MvfLtwj0nJsZ/P7+XKT57m88id
x11vXky7HEV4jqhb3rw9Fy765PeNION3YkwPz/e5m8eJdx5T9/PbOXaZnzhWws65nDYJfJ5vMnfv
q9xDeQXMr9Mkv+6zBP5cb7J5wr3OqzGPw1zVzOXBG2vnl85vz3N3bmEb38qc55k2ZpznMQ09jx09
F4POY8xxHlf+eUwxzh8kG/I2NKc25zmYibw3xjaC9Jxp7Oehu21oLmPMsV7d7hk55pqn2G77VnPe
PuaC/u/nO87x/xi63P6t89DPWd92/HbzFI/9hwnjOYp4mreSU/7FIW8l8/u1D/MUzWXnCbzz51/9
Vxy3bzXeeufl809f3b989dbrD+7vPn367N3nn949f+fD+yev33r84umrmwzk7snL+8evnz57/+76
tnfPHv/x6fvjn2/+9vbkyfNnr+8/e/3q7p3Prz//+P6tl/evnn/y8sn9q7c+vn/16vH793fPX9w/
u385vkl58fL+vaef3b/7o/Gz//w6K7l97t1717/65FrT3evnH90/e/qn6x89f3b9x4u7P9y/9/pN
UXe7/xDVELkFo+ys3GSwd3J99HYLyRJvd19Pj/86Cn/fUfhr4qZvQfX/kDjqQcIFkRmEywXC5QLh
coFwuUC4XCBcLhAuFwiXC4TLBcLlAuFygXC5QLhcIFwuEC4XCJcLhMsFwuUC4XKBcLlAuFwgXC4Q
LhcIlwuEywXC5QLhcoFwuUC4XCBcrhAuVwiXK4TLFcLlCuFyhXC5QrhcIVyuEC5XCJcrhMsVwuUK
4XKFcLlCuFwhXK4QLlcIlyuEyxXC5QrhcoVwuUK4XCFcrhAuVwiXK4TLFcLlCuFyhXC5QrhcIVyu
EC5XCJcrhMsVwuUK4XKFcLlCuFwhXK4QLlcIlyuEyxXC5QrhcoVwuUK4XCFcrhAuVwiXK4TLFcLl
CuFyhXC5QrhcIVyuEC5XCJcrhMsVwuUK4XKFcLlCuFwhXK4QLlcIlyuEyxXC5YoGngoOVnCwgoMV
HKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHBCg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMV
HKzgYAUHKzio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCC
gwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoO
Kjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio
4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCCgwoOKjio4KCC
gwoOKjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYO
Gjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho
4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCB
gwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYOGjho4KCBgwYO
Gjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo
4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCD
gw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo4KCDgw4OOjjo34y7/GpxWC0Oq8VhtTis
FofV4rBaHFaLw2pxWC0Oq8VhtTisFofV4rBaHFaLw9fT4vB3+FZ++PjF4ze+la8+ePre67c/fPrq
rVfX//0388rP7m4vfbEy+wu/EFnWlcu6cllXLuvKZV25rCuXdeWyrlzWlcu6cllXLuvKZV25rCuX
deWyrvyHrCu/xV96rJb01ZK+WtJXS/pqSV8t6aslfbWkr5b01ZK+WtJXS/pqSV8t6aslfbWkr5b0
1ZK+WtJXS/pqSV8t6aslfbWkr5b01ZK+WtL/PVrS/45ly9dPPnj6Ztnynafv25v//bcVy/uXL5+/
fHV3/9nrwzv/oI22/OefVYn9CDY72Oxgs4PNDjY72Oxgs4PNDjY72Oxgs4PNDjY72Oxgs4PNDjY7
2Oxgs4PNDjY72Oxgs4PNDjY72Oxgs4PNDjY72NzA5gY2N7C5gc0NbG5gcwObG9jcwOYGNjewuYHN
DWxuYHMDmxvY3MDmBjY3sLmBzQ1sbmBzA5sb2NzA5gY2N7C5gc0NbG5gcwObG9jcwOYGNjewuYHN
DWxuYHMDmxvY3MDmBjY3sLmBzQ1sbmBzA5sb2NzA5gY2N7C5gc0NbG5gcwObG9jcwOYGNjewuYHN
DWxuYHMDmxvY3MDmBjY3sLmBzQ1z1AYONnCwgYMNHGzgYAMHGzjYwMEGDjZwsIGDDRxs4GADBxs4
2MDBBg42cLCBgw0cbOBgAwcbONjAwQYONnCwgYMNHGzgYAMHGzgY4GCAgwEOBjgY4GCAgwEOBjgY
4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCA
gwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEO
BjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY
4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjgY4GCAgwEOBjjYwcEODnZwsIODHRzs4GAHBzs42MHB
Dg52cLCDgx0c7OBgBwc7ONjBwQ4OdnCwg4MdHOzgYAcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHB
Dg52cLCDgx0c7OBgBwc7ONjBwQ4OdnCwg4MdHOzgYAcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHB
Dg52cLCDgx0c7OBgBwc7ONjBwQ4OdnCwg4MdHOzgYAcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHB
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
IUXKkCJlSJEypEgZUqQMKVKGFClDipQhRcqQImVIkTKkSBlSpAwpUoYUKUOKlCFFypAiZUiRMqTx
1Xcsf9FC5JUIR73V0M+P2jGfnG9P4vDo+Ka8OP7g9nDZPzrXN//ePzrsx298OP/iCrHbv0+PLu3N
K/7oCo3bK+df52+8+dNuP8l/X978vD86SL6SdVw5MV8ZT9qj4y5fGSXqLPH2y/lX8eaTr9tzKPlK
n0XZIV/Znuzzief7jHovjw6nN69cN3Zu/KOzzzJ67qDrp9yelEeXsd37w/yk/fYBWXHfzV0W23Zu
pY9C63zl+juX/IDDbuzxd+fePLb8m5a/mp/Uz3lw5q5/O39wmU/2+cn73LG9j/q/lwVsv9rzN7KS
fe6g/dii3W/z32MX7h4O4D7y7Bi1xfN8s+09dB6j07bbY27hIfKVsf93+7mLj1vRNd+lzk/ueRT3
p/nJ8yge/2zj88nDL+f+3287Nffldvj224E4zV103HZInl6H3Fdzc0tuVftonOoP230YT+TRMbfy
cJyvWFZzyM3bTvbDZX72+ZSvnPOVyIOeRRy3siwv3u3TY57aLa+e7ezM6/jRcduY7X3ywprHN34y
9vHn+XLuvePY5/tfzmvgbPPK3u4np/Ge8dP8t2X1Y8/tfpc/yM885c44ZaXbXeqcp9tx+53c0GPu
y21rtn2wXUDHNzv1vM/z+TyP7O02ccxTLg/Xdks65smznY3zSLY/zPN3u6Mc82CdWm7lth/yXDzl
aXDOtztvG5PbcDplNeesJn/5lKfpKbfznBsz71X66JJvuH36OXfBOUs96/yIeRO13+T7br9R8q54
zjtRbt4ld+04Ba/X3Nij1wO/n2fEw136JLkvTvmGuS/O+TuXcd6cJ0NuV/M4b8qP8lcP+S75x5fc
7ovOE/kwn3yUPyjzB7rLKzl32iXPpLGvbu+btYwyr69sHzA+8vZKbty8iMoH+S650y6R4Mg9Pql4
ySLOn+YPtlrykE4EXH4wHr6T0Bi7/TI2/DLq3P5o3A76Zf7SfItxd5+4ufxw7of5kZfvjofv52aV
fFLnGTRpcRl7//Kz8fDjZOH4tUvy/DQ/9Ofj4RfjVPjl+Nev5g6ZjE42XasZF/rtnCnzjec5cxnn
4mWMHy6/m78/rtHbH2rCZn5wXr6XxP31yWm++bx5l1/nDxK48/Z+eeTjwFwGPC+Px8M74+HJrHqW
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
rcoAUssRzjHPqblCeMqJ/fmh7FPeXU+5e+Z3qpd38t957E95Npzm8OcP+e8xpz28nf/OXXHKq+iU
X/IfcsP3uaePOc7b53fw5/wq65TDu3OeEttVfZo3iTlsuL2SG7udEjnvGHOo82/ze6bt5+Nb+sO7
4yG3dy5a5NLH5fAkf7CbGzG/NdOHY37OnXeZf/Ne/qDlhh/yss7dOZdP2jxDL4f73DW5YnPJHX6e
F9L74+HpePhgPHyYvxR5K88dOedCmsN2fZq/mqfoOS+xc551241vm/DMw9HzaJ+TaD13/Tm//BjH
+3L4KPdGSYLl6XbJv9luADkcytH3aZ4j593D9l9yJT/ZkLVc8sS4zNnRx/mu+faXPJmOeVi3y2cb
Fly2D5yDgIEeySmCzX/P71Zya2TsPBnnpIwLWMbZJWNgJPNbiZfjX98bD98dtQ6cy7izyPfHwxiQ
yyC6jJGs/Dgv3/7P9aNfrear1Xy1mq9W89VqvlrNV6v5ajVfrear1Xy1mq9W89VqvlrNV6v5ajVf
rear1Xy1mq9W89VqvlrNV6v5ajVfrear1Xy1mv/btJp/U370f0uO9pJfL/n1kl8v+fWSXy/59ZJf
L/n1kl8v+fWSXy/59ZJfL/n1kl8v+fWXk1//Hd94fPj4xeM333i8+uDpe6/f/vDpq7deXf/33772
+Ozu9tJX8IXHsuJbVnzLim9Z8S0rvmXFt6z4lhXfsuJbVnzLim9Z8S0rvmXFt6z4lhXft86K7xv6
IuWLVCMP+hYocKDqDKg6A6rOgKozoOoMqDoDqs6AqjOg6gyoOgOqzoCqM6DqDKg6A6rOgKozoOoM
qDoDqs6AqjOg6gyoOgOqzoCqM6DqDKg6A6rOgKozoOoMqDo7VJ0dqs4OVWeHqrND1dmh6uxQdXao
OjtUnR2qzg5VZ4eqs0PV2aHq7FB1dqg6O1SdHarODlVnh6qzQ9XZoersUHV2qDo7VJ0dqs4OVWeH
qrND1dmh6uxQdXaoOjtUnR2qzg5VZ4eqs0PV2aHq7FB1dqg6O1SdHarODlVnh6qzQ9XZoersUHV2
qDo7VJ0dqs4OVWeHqrND1dmh6uxQdXaoOjtUnR2qzg5VZ4eqs0PV2aHq7FB1dqg6O1SdHarODlVn
h6qzo7uhg4MdHOzgYAcHOzjYwcEODnZwsIODHRzs4GAHBzs42MHBDg52cLCDgx0c7OBgBwc7ONjB
wQ4OdnCwg4Md1OugXgf1OqjX/5J6tvtL6l1fEbxS8ErFK4pXDK84Xml4JfAKahbULKhZULOgZkHN
gpoFNQtqFtQsqLmg5oKaC2ouqLmg5oKaC2ouqLmg5oKaK2quqLmi5oqaK2quqLmi5oqaK2quqFlR
s6JmRc2KmhU1K2pW1KyoWVGzomZDzYaaDTUbajbUbKjZULOhZkPNhpodNTtqdtTsqNlRs6NmR82O
mh01O2puqLmh5oaaG2puqLmh5oaaG2puqLmh5kDNgZoDNQdqDtQcqDlQc6DmQM2Bmjtq7qi5o+aO
mjtq7qi5o+aOmjtqBgcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBB
AQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcF
HBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRw
UMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBBAQcFHBRwUMBB
AQcFHBRwUMBBAQcLOFjAwQIOFnCwgIMFHCzgYAEHCzhYwMECDhZwsICDBRws4GABBws4WMDBAg4W
cLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzgYAEHCzhYwMECDhZwsICDBRws4GABBws4WMDBAg4W
cLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzgYAEHCzhYwMECDhZwsICDBRws4GABBws4WMDBAg4W
cLCAg+UNB/+51ttrMXItRq7FyLUYuRYj12LkWoxci5FrMXItRq7FyLUYuRYj12LkWoxci5FrMXIt
Rq7FyLUYuRYj12LkWoxci5FrMXItRq7FyH+bxchvynr7zZrly/tXzz95+eT+1Vu3Fz94/PL69q/+
48NXX+bPXt6/eP7y9f/4x19iefUfWZH9a1v313b5bZ+99e7zj9969/Nnjz9++uTu48cvP/rkxd3T
Z6/uX75++vzZ9YdPPvn4/tnru09fPn19/9ZO6t9h+fU/77V/blFvCnrz1u+8fP7p9Z2uRX1wf/fp
02fvPv/07vk7H94/ef3W4xdPX91OrbsnL+8fv76ei3fXXX/37PEfn74//vnmb29Pnjx/9vp63r26
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
kjaVpzfgg8p8yKpsXYeDSnjQCR50XgeV59DL3M+0/7rq56AyH3qb1Ge2yZtZe3K6s1qt1vVtfSL4
d/ZqDK1RnZumjrtFP8+9qsDayYSL9voP18c8fnn9UP36n7+oM9xUC1vyqm/3Tz3eVPSmKut9ydZP
Q6fa63dTvWyqu01Vtm1+Ir2FbvqJo5rCsVXH6hfDwid6I6kL0U8edf2PWTWVvNOrrS4PD/SJ2eup
t8+jKuCosvROsLWZ001SVTftTq3rE79UtX1i/871++mNrIvZTqMePtMXW1nTqoutXmZu9/78kdd1
bTdH49Pppw9+oIcqyqKfNp1ruwSpNfDwoP3CHXWvs76obsebaTp6TRzU+XtjT2+1i3OnvXrHC+Z3
5EFtLr3d3njHL5N3WaGdcWqXunHqqIraUut21qft1Xvt4fd+iOol+117+FjfbXVxeOQFrgc1Yj/o
R6oS//4H7eFDtRMvy/vt4beteftZ+p1z+nXHTmrtLP2xPfypPbTbZ33mzcr7+fRnNTOvkwsV2X/S
69Cv8pZu+8Vobe10CroYjS3pbnt40E74c28s3i+pgzofb9UPebu63x7+IrQc9MFNdbX3g3mHmvwz
Z5KLKNtOp3PQXbKpWR79W+1Mz7/sp/yZIOYludceHraHz71Afpelx+3hkYgV1c2bimeqGT/el+rA
vaa+cJa3Ep0ur/cz6Ul7+Lo9eAv7pj1cqlPUbaVauGoPX7WHb9vDs3bS91qRWjUdv2jvPVc9TP6k
7PVk05NVn/FW8r2/XibxRZ20czN5gLSl7/wKZO/9vmo/3m+jdtJTuz7hY/2Q2kVd9KToSdKT1oel
F3od9WSnJ7oGHput7+oNNZnaz0wn3duFBa/Zub+lNmj6pRZRnXrVWccxFbz9pOk+OJfCn8x6ojMy
lcZUeaafbEQ4Nyedk/VC6Oo0qp3q0nQFd/1J0BOVeKfa26mg6iUUZiYFnknhalJwmhSuJkWpySPZ
c2fb4Lq2lhm/Vugc/IZrpbP8pe5NnWOLLE9nevMXnVoLZs89ZC+bLs9eZ+TxQbnU66SQSWUVTxTe
JkXmyYPkc92pphrA6/r71iAdh97Sz+/3o6pO1Gl72Hp+0svfKsfe9lu8V/Gqw6363VXxTmvG9fhb
vaHStzD2HCzpl9d+OJ1PC0BP7aXHPKsqtXeTvWdqt/X5Jz2mfN6i4j+1K/qlPr+K3Krym2Me/K3W
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
9289ufPNo8/ay+vvnp/ce/rk6uK7q+e37r44vf/44s3Li+dPv768d/H8zccXz5/f+ezi1tNnF08u
LtvcybPLiwePvru4/157739/zpKcf/fWg9O3vj6V6dbV0y8unjz6/vSlp09OL57d+vLiwdV1oW5N
v1mWeap5ihaXOMV8K8wxLSUuS4g53fqX5uj8o/ycG0UYaNYUaNYUaNYUaNYUaNYUaNZUaNZUaNZU
aNZU6OxUlLmizBVlrihzRZkrymwos6HMhjIbymwos6HMhjIbymwoM3TQAnTQAnTQAnTQAnTQAnTQ
AnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQ
AnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQ
AnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQ
AnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQAnTQQkGZwcEADgZwMICDARwM4GAABwM4GMDB
AA4GcDCAgwEcDOBgAAcDOBjAwQAOBnAwgIMBHAzgYAAHAzgYwMEADkZwMIKDERyM4GAEByM4GMHB
CA5GcDCCgxEcjOBgBAcjOBjBwQgORnAwgoMRHIzgYAQHIzgYwcEIDkZwMIKDERyM4GAEByM4GMHB
CA5GcDCCgxEcjOBgBAcjOBjBwQgORnAwgoMRHIzgYAT1IqgXQb0IxkUwLoJxEYyLYFwE4yIYF8G4
CMZFMC6CcRGMi2BcBOMiGBfBuAjGRTAugnERjItgXATjIhgXwbgIxkUwLoJxEYyLYFwE4yIYF8G4
CMZFMC6CcRGMi2BcBOMiGBfBuAjGRTAugnERjItgXATjIhgXwbgIxkUwLoJxCYxLYFwC4xIYl8C4
BMYlMC6BcQmMS2BcAuMSGJfAuATGJRAtgWgJREsgWgLREoiWQLQEoiUQLYFoCURLIFoC0RKIlkC0
BKIlEC2BXwn8SuBXAr8S+JXArwR+JfArgV8J/ErgV8I4LoFoCURLIFrCOC6BcQmMS2BcAuMSGJfA
uATGJTAugXEJjEtgXALjEhiXwLgExiUwLoFxCYxLYFwC4xIYl8C4BMYlEC2BaAlESyBaAtESiJZA
tASiJRAtgWgJREsgWgLREoiWQLQEoiUQLYFoCURLIFoC0RKIlkC0BKIlEC2BaAlEyyBaBtEyiJZB
tAyiZRAtg2gZRMsgWgbRMoiWQbQMomUQLWPUlsG4DMZlMC6DcRmMy2BcBuMyGJfBuAzGZTAug3EZ
jMtgXAbjMhiXwbiMUVsG9TKol0G9DOplUC+DehnUy6BeBuMyGJfBuAzGZTAug3EZjMtgXAbjMhiX
wbgMxmUQLYNoGUTLIFoG0TKIlkG0DKJlEC2DaBlEyyBaBtEyiJZBtAyiZRAtY9SWwbgMomUQLYNo
GUTLIFoG0fI10V5d1/DmODgvcDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZw
cAYHZ3BwBgdncHAGB2dwcAYHZ3BwBgdncHAGB2dwcAYHZ3BwBgdncHAGB2dwcAYHZ3BwBgdncHAG
B2dwcAYHZ3BwBgdncHAGB2dwcAYHZ3BwBgdncHAGB2dwcAYHZ3BwBgdncHAGB2eM/maQcQYZZ5Bx
BhlnkHEGGWeQcQYZZ5BxBhlnkHEGGWeM/maQcQYZZ5BxBhlnkHEGGWeQcQYZZ5BxBhlnkHEGGWeQ
cQYZZ5BxBhlnkHEGGWeM/mawcgYrZ7ByBitnsHIGK2eM/mZQbwb1ZlBvBvVmUG8G9WZQbwb1ZlBv
BvVmUG8G9WZQbwb1ZlBvBvVmUG8G9RZQbwH1FlBvAfUWUG8B9RZQbwH1FlBvAfUWUG8B9RZQbwH1
FlBvAfUWUG8B9RZQbwH1FlBvAfUWEG0B0RYQbQHRFhBtAdEWEG0B0RYQbQHRFhBtAdEWEG0B0RYQ
bQHRFhBtAdEWEG0B0RYQbQHRFhBtAdEWEG0B0RYQbQHRFhBtAdEWEG3B6G8B4xYwbgHjFjBuAeMW
MG4B4xYwbgHjFjBuAeMWMG4B4xYwbgHjFjBuAeMWMG4B4xYwbgHjFjBuAeMWMG4B4xYwbgHjFjBu
AeMWMG4B4xYwbgHjFhBtAdEWEG0B0RYQbQHRFhBtAdEWEK2AXwX8KuBXAb8K+FXArwJ+FfCrTCzh
3173An4V8KuAXwX8KuBXAb8K+FXArwJ+FfCrgF8F/CoYtRWM2goYV8C4AsYVMK6AcQWMK2BcAeMK
GFfAuALGFTCugHEFjCtgXAHjChhXwLgCxhUwroBxBYwrYFwB4woYV8C4AsYVMK6AcQWMK2BcAeMK
GFfAuAKiFRCtgGgFRCsgWgHRCohWQLQCohUQrYBoBUQrIFoB0QqIVkC0AqIVEK2AaAVEKyBaAdEK
iFZAtAKiFRCtgGgFRCsgWgHRCkZtBYwrYFwB4woYV8C4AsYVMK6AcQWMq2BcBeMqGFfBuArGVTCu
gnEVjKsTS/i3tVrBuArGVTCugmgVRKsgWgXRKohWQbQKolUQrYJoFUSrIFoF0SqIVkG0CqJVEK2C
aBVEqyBaBdEqiFZBtAqiVRCtgmgVRKsgWgXRKohWQbQKolUQrYJoFUSrIFoF0SqIVkG0CqJVEK2C
aBVEqyBaBdEqRm0VjKtgXAXjKhhXwbgKxlUwroJxFYyrYFwF4yoYV8G4CsZVMK6CcRWMq2BcBeMq
GFfBuArGVTCugnEVjKtgXAXjKhhXwbgKotVror02quVjV+pP2ZX69/YPvwZl/+eU1cYm2LEJdmyC
HZtgxybYsQl2bIIdm2DHJtixCXZsgh2bYMcm2LEJdmyCHZtgxybYsQl2bIIdm2DHJtixCXZsgh2b
YMcm2LEJdmyC/a/ZBPsTdJOv7j18dK2bfPfRZ/P1f38lmXxxefn08vmti++u9nf/NY5QY5vt2GY7
ttmObbZjm+3YZju22Y5ttmOb7dhmO7bZjm22Y5vt2GY7ttmObbZjm+3YZju22Y5ttmOb7dhmO7bZ
jm22Y5vt2GY7ttn+d2yz/bXWLW+21t5/+vjN+y+e3Hn86N6tx3cuv/j62a1HT55fXJ43cJ7evPf1
44snV7e+vXx0dfHmFPL1oX/Gnb6vUpz/+X/vP31y8Y/P9wf2llq9kId1s1VP8gKfZDm9v9QbVU92
emJ60hydm936KdRwd+74xq75sOdmL5z7F5vR8XTlttXurZybt3FuRsOHZltd2+/n5l3uFuPujb7J
Lju/JSfsVsjsv/uul2Mv0/tmUGxh7wbTzep7y++3hw/aw2/bQ7Nqz++1YzdX7NyMz/PvVfRFhvXt
nObmNZ+b93tuTvD5o/ahZgGf/9QePmll8Fd/bg/NND277fL5idfdX1S3/Y1VTw7y827uy7kZkOfb
/r47n+c7fs7mleOlaZbq+aI9PGgPn7ULdNePvDXH6PzQDaqbAf2p/nfWPJx/JwP3ZvLdTL+3/Kg9
uIu518kX7aE5nOfmaJ6bq3h+6rbR+3aBDm/s/II+81a5Navp/JX/4NraYL50q/udV89zvz6H1c2q
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
739/zpKcf/fWg9O3vj6V6dbV0y8unjz6/s5ZDuX04tmtLy8eXF0X6tb0G0slpvnsN2pxDiXcCnNM
Z6HGsxV3vfUzqraMi/BjL8Lfu19eg8K/uoDOjclJgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlk
gdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdlkgdnk6S8oc0CZA8ocUOaAMgeUOaLM
EWWOKHNEmSPKHFHmiDJHlDmizBFlTihzQpkTypxQ5oQyJ5Q5ocwJZU4oc0KZM8qcUeaMMmeUOaPM
GWXOKHNGmTPKnFHmGWWeUeYZZZ5R5hllnlHmGWWeUeYZZZ5R5gVlXlDmBWVeUOYFZV5Q5gVlXlDm
BWVeUOaCMheUuaDMBWUuKHNBmQvKXFDmgjIXlLmizBVlrihzRZkrylxR5ooyV5S5oswVZTaU2VBm
cBAWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUW
lQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUW
lQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlQUWlae/oMzgIEwrC0wrC0wrC0wrC0wrC0wrC0wr
C0wrC0wrC0wrC0wrT39BmcFB2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW2FgW
2FgW2FgW2FgW2FgW2Fie/oIyg4MwtiwwtiwwtiwwtiwwtiwZHISBZIGBZIGBZIGBZIGBZIGBZIGB
ZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGB
ZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGB
ZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGB
ZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGBZIGB5OkvKDM4CEvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJ
AkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJ
AkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAkvJAgPJAgPJAgPJAgPJAgPJArvIArvI
ArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvIArvI019QZjAO
lpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFlpIFBpIFBpIF
BpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIF
BpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIFBpIF
BpIFBpIFBpIFBpIFBpIFBpIFBpKnv6DMIBosJQssJQssJUuzlHx1W44bsxSYt8Dsq8Lsq8Lsq8Ls
q8Lsq8Lsq9LsCxbNBvsvg/2Xwf7LYP9lsP8y2H8Z7L8M9l8G+y+D/ZfB/stg/2Ww/zJYXBoMwQz2
Xwb7L4P9l8H+y2D/ZbD/Mth/Gey/DPZfBvsvg/2Xwf7LYP9lsP8y2H8Z7L8M9l8G+y+D/ZfB/stg
/2Ww/zLYfxnsvwz2Xwb7L4P9l8H+y2D/ZbD/Mth/Gey/DPZfBvsvg/2Xwf7LYP9lsP8y2H8Z7L8M
9l8G+y+D/ZfB/stg/2Ww/zLYfxnsvwz2Xwb7L4P9l8H+y2D/ZbD/Mth/Gey/DPZfBvsvg/2Xwf7L
YP9lsP8y2H8Z7L8M9l8G+y+D/ZfB/stg/2Ww/zLYfxnsvwwWlwZDMIPFpYF6BuoZqGegnoF6BuoZ
qGegnmFcOWFcOWFcOWE2dcJIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JI
c8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JIc8JI
c8JIc8JIc8JIc8JIc8JIc8Js6oSx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx
54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx
54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx54Sx
54Sx54TZ1AmzqRNWFSfMr06YX53AwQAOBnAwgIMBHAzgYAAHAzgYwMEADgZwMICDARwM4GAABwM4
GMDBAA4GcDCAgwEcDOBgAAcDOBjAwQAOBnAwgIMBHAzgYAAHAzgYwMEADgZwMICDARwM4GAABwM4
GMDBAA4GcDCAgwEcDOBgAAcDOBjAwQAOBnAwgIMBHAzgYAAHAzgYwMEADgZwMICDARwM4GAABwM4
GMDBAA4GcDCAgwEcDOBgAAcDOBjAwQAOBnAwgIMBHAzgYAAHAzgYwMEADgZwMICDARwM4GAABwM4
GMDBAA4GcDCAgwEcDOBgAAcDOBjAwQAOBnAwgIMBHIzgYAQHIzgYwcEIDkZwMIKDERyM4GAEByM4
GMHBCA5GcDCCgxEcjOBgBAcjOBjBwQgORnAwgoMRHIzgYAQHIzgYwcEIDkZwMIKDERyM4GAEByM4
GMHBCA5GcDCCgxEcjOBgBAcjOBjBwQgORnAwgoMRHIzgYAQHIzgYwcEIDkZwMIKDERyM4GAEByM4
GMHBCA5GcDCCgxEcjOBgBAcjOBjBwQgORnAwgoMRHIzgYAQHIzgYwcEIDkZwMIKDERyM4GAEByM4
GMHBCA5GcDCCgxEcjOBgBAcjOBivOfjaC9OPXZFjV+TYFTl2RY5dkWNX5NgVOXZFjl2RY1fk2BU5
dkWOXZFjV+TYFTl2RY5dkWNX5NgVOXZFjl2RY1fk2BU5dkWOXZFjV+TYFflfsyvyJygnX917+Oha
Ofnuo8/m6//+SjT54vLy6eXzWxffXe3v/gu8psa+y7Hvcuy7HPsux77Lse9y7Lsc+y7Hvsux73Ls
uxz7Lse+y7Hvcuy7HPsux77Lse9y7Lsc+y7Hvsux73Lsuxz7Lse+y7Hvcuy7/K/Zd/lrrVter1ne
WIKe//jwzuXp8M9/8/nzV/na5cWzp5dXP/jlX3gn6Q8X8wetQ+8/ffzm/RdP7jx+dO/W4zuXX3z9
7NajJ88vLs82n6c37339+OLJ1a1vLx9dXbw5hfwjq/uTi7vr5YtnV093H77z5v2Ly0ffXNy+++jq
+e0vLl60Qt5+dveL+w/i7S+fPvns9sXjZ1cvfnMuZbPw/Xlq6Z8s1P/8v/efPrn4cUvkf6+5/QqX
4gdW689GzN2auRlAl27vLD/yozynj/KcPla3hPa3yhu5eUGXZqZd+lebl3Txj/mr5mRfuhd184Qu
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
8I7wqYrqNbDqCq86P5/nX29u3l6aXt5VUdbey6tCHdRODirLQWU56EIeymuvDz8yN0bmxsjcGJkb
I3NjZG6MzI2RuTEyN0bmxsjcGJkbI3NjZG6MzI2RufEPMjd+wj6sz+88u3O9D+v5w0cPrm5//uj5
m89P//3VZqzvbp3/9CM3o1zvc7l7+fTb5xeXz9+8enhx69tHT+4//fbW07ufX9y7evPOs9PRT1+6
de/y4s7VqTC37jy5f+vJnW8efdZeXn/3/OTe0ydXF99dPb9198Xp/ccXL225eXzx/Pmdzy5uPX12
8eTiss2cPLu8ePDou4v777X3/vfnLMn5d289OH3r61OZbl09/eLiyaPv75x38ZxePLv15cWDq+tC
3Zp+kycL03nv/1n7oNRbYY7pesdjiBZv/eK2gyM1Z6TmjNSckZozUnNGas5IzRmpOSM1Z6TmjNSc
kZozUnNGas5IzRmpOb92as6vNHXVp07G9NVPmb76QbGbX7fs/5RsjstaVcgTV8gTV8gTV8gTV8gT
V8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gT
V8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gT
V8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gT
V8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV8gTV4gRV4gRV4gR
V4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gR
V4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV4gRV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gP
V0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gP
V0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gP
V0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gP
V0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gPV0gP1wjq
RVAvgnoR1IugXgT1IqgXQb0I6iVQL4F6CdRLoF7CyC6BegnUS6BeAvUSqJdAvQTqJVAvgXoJ1Eug
XgL1EqiXQL0E6iVQL4F6CdRLoF4C9RKol0C9BOolUC+BegnUS6BeAvUSqJdAvQTqJVAvgXoJ1Eug
XgL1EqiXQL0E6iVQL4F6CdRLYFwC4xIYl8C4BMYlMC6BcQmMS2BcAuMSGJfAuATGJTAugXEJjEtg
XALjEhiXwLgExiUwLoFxCYxLYFwC4xIYl8C4BMYlMC6BcQmMS2BcAuMSGJfAuATGJTAugXEJjEtg
XALjEhiXwLgExiUwLoFxCYxLYFwC4xIYl8G4DMZlMC6DcRkjuwzqZVAvg3oZ1MugXgb1MqiXQb0M
6mVQL4N6GdTLoF4G9TKol0G9DOplUC+DehnUy6BeBvUyqJdBvQzqZVAvg3oZ1MugXgb1MqiXQb0M
6mVQL4N6GdTLoF4G9TKol0G9DOplUC+DehljvQwOZnAwg4MZHMzgYAYHMziYwcEMDmZwMIODGRzM
4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZwMIODGRzM
4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwO5msOvrospsxyFpi9LTB7W2D2tsDsbYHZW4HZ
W4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZ
W4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZ
W4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZ
W4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZ
W4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HZW4HpaYHpaYHpaYHpaQEH
CzhYwMECDhZwsIKDFRys4GAFBys4WMHBCg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUH
KzhYwcEKDlZwsIKDFRys4GAFBys4WMHBCg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUH
KzhYwcEKDlZwsIKDFRys4GAFBys4WMHBCg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUH
KzhYwcEKDlZwsIKDFRys4GAFBys4WMHBCg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUH
KzhYwcEKDlZwsIKDFRys4GAFBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0c
NHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQ
wEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEED
Bw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0cNHDQwEEDBw0c
NHDQwEEDBw0cNHDQwEHD6uSE1ckJq5MTVicnrE5OWJ2csDo5YXVywurkhNXJCauTE1YnJ6xOTlid
nLA6OWF1csLq5ITVyQmrkxNWJyesTk5YnZywOjlhdXLC6uSE1ckJq5MTVicnrE5OWJ2csDo5YXVy
wurkhNXJCauTE1YnJ6xOTlidnLA6OWF1csLq5ITVyQmrkxNWJyesTk5YnZywOjlhdXLC6uSE1ckJ
q5MTVicnrE5OWJ2csDo5YXVywurkhNXJCauTE1YnJ6xOTlidnLA6OWF1csLq5ITVyQmrkxNWJyes
Tk5YnZywOjlhdXLC6uSE1ckJq5MTVicnrE5OWJ2csDo5YXVywurkhNXJCauTE1YnJ6xOTlidnLA6
OWF1csLq5ITVyQmrkxNWJyesTk5YnZywOjldc/C1l6Qf65dj/XKsX471y7F+OdYvx/rlWL8c65dj
/XKsX471y7F+OdYvx/rlWL8c65dj/XKsX471y7F+OdYvx/rlWL8c65dj/XKsX/7XrF/+BN3eq3sP
H13r9t599Nl8/d9fSfZeXF4+vXx+6+K7q/3dnyDcO9Rch5rrUHMdaq5DzXWouQ4116HmOtRch5rr
UHMdaq5DzXWouQ4116HmOtRch5rrUHMdaq5DzXWouQ4116HmOtRch5rrUHP9r1dz/bXWLa/XLG8c
Qc9/fHjn8nT457/5/PnPs7Pz7/1aq4Lnf1UHdur73vzk4u56+eLZ1dPdh++8ef/i8tE3F7fvPrp6
fvuLixftILef3f3i/oN4+8unTz67ffH42dWL31wf6585/8uLZ08vr37ZWui/+evVxQ+sX5+NcZMb
JDc/Y6tfyDFX3rwH+fceuvlvd96Vo6883d84yI340MyQ54d6LZ/4Y7fklcPvNqkI3WbYLeH/pE+o
CFv/cjPMjjKVb3bZp1uxmwFvcije5Aq8yRV406ltxZ3Ru7/yJk/sff+wTm3rn2ku2cuH/tvNJvnU
nXTP4q0/Ofpb3aV560/8HG9sro+yRXbv6pfMu486h6POqlXjqdK6R/dRtvPNq7rKSftsFN6/pQt2
1Mkc+6/33+oHbEV1S+2dv3LP+N+1V3Ic33Xb8+y10myut+bUfVzfbn/+ffvju+2Pb7VX7bLvftse
3m4Pb8kRuhVn5z/4Xnt4vz28o6K2BrL7wK/nwQ/5h/bQ3MF3zXx+52X4pD182B4+bg+txe3+0h7+
7Cfphu2nJ6ueNLPt2pr37lN5XZtXw9a/sbVTfbe9vu1/Xrza7rSHu36y7je+u9ce7vsV1SW4aA8P
2sNn7cGL0O7b3aNWrl7kz/2+8Ga8+1L3SWsAu8fe3t3GffekPTxrD1+1h6dqR7IYbzfo2Wu82aHv
vfnY8Y066ZbsDdx/6nnzSX/aXl21h6/bwzetln6rVtQa4+7b64fJ+6DTQVuxzzXdeoLdd+3h+/bw
wqtXjeaNogtWDnriJ+oFPT8JehL1JOlJ1pNZTxY9KXrSuoy0+jU86Ldr6yfCl3rd31jd6D33Iqh0
zbt9i60dLurO6k2D8k5y513e+YmKbSq234RFHdHuXGP+RCdiOhGreqIzsp2e6EfN/IB7VYipYq0V
PT7X6621wPf1jevSHVXeo456KnVrRae/NEf30wf2+kzrh89Pdj20itNNhv7p2+a95Dc619aZT9e3
2KmWvI3O50bZGo+30dPPNLt5u+5qTv1dO4frH0n5ZjL49M5u8qO1Kj39xd3nT0+SE63dWpae+xsN
qecnO3/ixMjuR3+6yO1wpxbiDVpdVg3vtBP/pL3SB4NX3/lJ0pO5ffRP7fWj9vC53l38SbsXalj1
2p8c/HXroWr8oD182B5+3x4+ag9/aA9/bA8ft4f2u7GVNP65Hc7P4i0/eFVh2012fuIn9LbK2SAV
vUus8U57aF1ivNceWk8YL9rDg/bwWXt42B7a+cd2/vGL9vBle3jcHp60h9adxWft4av2cNkeWicV
r9rD1+3hm/bwbXv4rj28aCfQDh1aqwvtF0Kry9AqMbznZ+h1EL2jOT9JepL1ZNaTRU9UQa2jOT8x
PdnpyV5PVj056MmmJ0d/4i0peqdwfqLymMpjKo+pPKby9AtmKo+pPK3jqKFVcGiXMDzzK90u8O76
R3fXv7i7/rnd9W/trn9od/0rLXBpgVGjR4svWjDRIpHGxBaOtAiidR7t/my9TrtFW5/VArr99fFb
bNJ6gRb67a+Pv78+fovV9tfH318ff399/PX6+Ov18VvMt14ff70+/np9/PX6+Ov18dfr46/Xx1+v
j9+6pPX6+Ov18VvI2ALqFl+3LqIBr/Ukh+vjH66P36Lyw/XxGxtaB9K6moaeFoO3kLwF2epbdMWD
rnjwgtXwYetLPtZdevxlRYDGYGQMRsZgZAxGxmBkDEbGYGQMRsZgZAxGxmBkDEZ8MPITFtM+v/Ps
zvVi2vOHjx5c3f780fM3n5/++6sVte9unf/0I9dPzp968+7l02+fX1w+f/Pq4cWtbx89uf/021tP
735+ce/qzTvPTkc/fenWvcuLO1enwtw6jYZuPbnzzaPP2svr756f3Hv65Oriu6vnt+6+OL3/+OKl
JaPHF8+f3/ns4tbTZxdPLi7byOjZ5cWDR99d3H+vvfe/P2dJzr9768HpW1+fynTr6ukXF08efX/6
0tMnpxfPbn158eDqulC3pt/EPM1LtTCH816XmvOtMMe0lLgsIYV66+cZOI6r8NOuwt+7Y16D0v/j
W+6H10R9OfSbU3GfXv58q9o/sRCv3wLvjbByzUjEm5GINyMRb0Yi3oxEvBmJeDMS8WYk4s1IxJuR
iDcjEW9GIt6MRLwZiXgzEvFmJOLNSMSbkYg3IxFvRiLejES8GYl4MxLxZiTizUjEm5GINyMRb0Yi
3oxEvBmJeDMS8WYk4s1IxJuRiDcjEW9GIt6MRLwZiXgzEvFmJOLNSMSbkYg3IxFvRiLejES8GYl4
MxLxZiTizUjEm5GINyMRb0Yi3oxEvBmJeDMS8WYk4s1IxJuRiDcjEW9GIt6MRLwZiXgzEvFmJOLN
SMSbkYg3IxFvRiLejES8GYl4MxLxZiTizUjEm5GINyMRb0Yi3oxEvBmJeDMS8WYk4s1IxJuRiDcj
EW9GIt6MRLwZiXgzEvFmJOLNSMSbkYg3IxFvRiLejES8GYl4MxLxZiTizUjEm5GINyMRb0ZC+gwO
LuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g
4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OAC
Di7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLuDgAg4u4OACDi7g4AIOLv/8aOk8
SgJNF9B0AU0X0HQBTRfQdAFNF9B0AU0X0HQBTRfQdAFNF9B0AU0X0HQBTRfQdAFNF9B0AU0X0HQB
TRfQdAFNF9B0AU0X0HQBTWGzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2Gz
U2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU2GzU5vN
zq+39vq6bqq9qZ+/vYIwHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaow
HaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaow
HaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaow
HaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaow
HaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaowHaow
HaowHaowHaowHaowHaowHaowHaowHaowHaowHTKYDhlMhwymQwbTIYPpkMF0yGA6ZDAdMpgOGUyH
DKZDBtMhg+mQwXTIYDpkMB0ymA4ZTIcMpkMG0yGD6ZDBdMhgOmQwHTKYDhlMhwymQwbTIYPpkMF0
yGA6ZDAdMpgOGUyHDKZDBtMhg+mQwXTIYDpkMB0ymA4ZTIcMpkMG0yGD6ZDBdMhgOmQwHTKYDhlM
hwymQwbTIYPpkMF0yGA6ZDAdMpgOGUyHDKZDBtMhg+mQwXTIYDpkMB0ymA4ZTIcMpkMG0yGD6ZDB
dMhgOmQwHTKYDhlMhwymQwbTIYPpkMF0yGA6ZDAdMpgOGUyHDKZDBtMhg+mQwXTIYDpkMB0ymA4Z
TIcMpkMG0yGD6ZDBdMgmQ5kNZTaU2VBmQ5nBQZj7GMx9DOY+BnMfg7mPwdzHYO5jMPcxmPsYzH0M
5j4Gcx+DuY/B3Mdg7mMw9zGY+xjMfQzmPgZzH4O5j8Hcx2DuYzD3MZj7GMx9DOY+BnMfg7mPwdzH
YO5jMPcxmPsYzH0M5j4Gcx+DuY/B3Mdg7mMw9zGY+xjMfQzmPgZzH4O5j8Hcx2DuYzD3MZj7GMx9
DOY+BnMfg7mPwdzHYO5jMPcxmPsYzH0M5j4Gcx+DuY/B3Mdg7mMw9zGY+xjMfQzmPgZzH4O5j8Hc
x2DuYzD3MZj7nP6CMoODsPsx2P0Y7H4Mdj8Gux+D3Y/B7sdg92Ow+zHY/Rjsfgx2Pwa7H4Pdj8Hu
x2D3Y7D7Mdj9GOx+DHY/Brsfg92Pwe7HYPdjsPsx2P0Y7H4Mdj8Gux+D3c/pLzP+suAvBX+p+AvK
DA7CAMhgAGQwADIYABkMgAwGQAYDIIMBkMEAyGAAZDAAMhgAGQyADAZABgMggwGQwQDIYABkMAAy
GAAZDIAMBkAGAyCDAZDBAMhgAGQwADIYABkMgAwGQAYDIIMBkMEAyGAAZDAAMhgAGQyADAZABgMg
gwGQwQDIYABkMAAyGAAZDIAMBkAGAyCDAZDBAMhgAGQwADIYABkMgAwGQAYDIIMBkMEAyGAAZDAA
MhgAGQyADAZABgMggwGQwQDIYABkMAAyGAAZDIAMBkAGAyCDAZDBAMhgAGQwADIYABkMgAwGQAYD
IIMBkMEAyGAAZDAAMhgAGQyADAZABgMgi//61dKfQ4dr7Bkde0bHntGxZ3TsGR17Rsee0bFndOwZ
HXtGx57Rf8c9o2O359jtOXZ7jt2eY7fn2O05dnuO3Z5jt+fY7Tl2e47dnmO359jtOXZ7jt2er7Tb
89cytf0x/kFj3+XYdzn2XY59l2Pf5dh3OfZdjn2XY9/l2Hc59l2OfZdj3+XYdzn2XY59l2Pf5dh3
OfZdjn2XY9/l2Hc59l2OfZdj3+XYdzn2Xf537Lv8tdYtb6xr7z99/Ob9F0/uPH5079bjO5dffP3s
1qMnzy8uz/aopzfvff344snVrW8vH11dvDmF+frQP6OT7qsU53/+3/tPn1wMw+SfatWbThHKeb4l
5anUNP+VU29ehl/y63AR/q3tkv/xZu5TN/i3HXVC8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCfEPwn
BP8JwX9C8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCfEPwnBP8JwX9C8J8Q/CcE/wnBf0LwnxD8JwT/
CcF/QvCfEPwnBP8JwX9C8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCfEPwnBP8JwX9C8J8Q/CcE/wnB
f0LwnxD8JwT/CcF/QvCfEPwnBP8JwX9C8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCfEPwnBP8JwX9C
8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCfEPwnBP8JwX9C8J8Q/CcE/wnBf0LwnxD8JwT/CcF/QvCf
EPwnBP8JwX9C8J8Q/CdMgiVwMIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAw
g4MZHMzgYAYHMziYwcEMDmZwMIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAw
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
+d/N4nbsihy7IseuyLErcuyKHLsix67IsSty7IocuyLHrsixK3Lsihy7IseuyLErcuyKHLsix67I
sSty7IocuyLHrsixK3Lsihy7IseuyP/wXZH/Bha3Y9/l2Hc59l2OfZdj3+XYdzn2XY59l2Pf5dh3
OfZdjn2XY9/l2Hc59l2OfZdj3+XYdzn2XY59l2Pf5dh3OfZdjn2XY9/l2Hc59l3+h++7/FUtbm8s
Qc9/fHjn8nT457/5/PmrfO3y4tnTy6sf/PIvvJP0753dD5qGvorD7o9bIP7hWvtlCzW8Zv8vr9ma
YzhvRyppPs/fzC+bzZ5eDcff1+Eq/Eda/vYkkTLNGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrM
GPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrM
GPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrM
GPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrM
GPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrM
GPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPrMGPr87daF81/+tswLOLiAgws4uICD
Czi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4
uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiA
gws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIML
OLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4gIMLOLiAgws4uICDCzi4
gIMLOLiAgws4uICDBRws4GABBws4WMDBAg4WcLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzgYAEH
CzhYwMECDhZwsICDBRws4GABBws4WMDBAg4WcLCAgwUcLOBgAQcLOFjAwQIOFnCwgIMFHCzgYAEH
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
wKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQ
wKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQ
wKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQ
wKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQ
wKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQwKRQyOAgxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4CxK4C
xK4CxK4CxK4CxK4CxK4CxK4CxK7C8s9Yvr4kmWxIsTOk2BlS7AwpdoYUO0OKnSHFzpBiZ0ixM6TY
GVLsDCl2hhQ7Q4qdIcXOkGJnSLEzpNgZUuwMKXaGFDtDip0hxc6QYmdIsTOk2BlS7AwpdoYUO0OK
nSHFzpBiZ0ixM6TYGVLsDCl2hhQ7Q4qdIcXOkGJnSLEzpNgZUuwMKXaGFDtDip0hxc6QYmdIsTOk
2BlS7AwpdoYUO0OKnSHFzpBiZ0ixM6TYGVLsDCl2hhQ7Q4qdIcXOkGJnSLEzpNgZUuwMKXaGFDtD
ip0hxc6QYmdIsTOk2BlS7AwpdoYUO0OKnSHFzpBiZ0ixM6TYGVLsDCl2hhQ7Q4qdIcXOkGJnSLEz
pNgZUuwMKXaGFDtDip0hxc6QYmdIsTOk2BlS7AyjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmj
yAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmj
yAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmj
yAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmj
yAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmj
yAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjyAmjSAhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhPBQhP
BQhPBQhPBQhPBQhPBQhPhfhaWL7e7H69//Txm/dfPLnz+NG9W4/vXH7x9bNbj548v7g8b7E8vXnv
68cXT65ufXv56OrizSks12ucv6z77NigOTZojg2aY4Pm2KA5NmiODZpjg+bYoDk2aI4NmmOD5tig
OTZojg2aY4Pm2KA5NmiODZpjg+bYoDk2aI4NmmOD5tigOTZojg2a/zUbNH9199lXXkb9n//3/tMn
F/+cxe3YZzr2mY59pmOf6dhnOvaZjn2mY5/p2Gc69pmOfaZjn+nYZzr2mY59pmOf6dhnOvaZjn2m
Y5/p2Gc69pmOfaZjn+nYZzr2mY59pv81+0yHxe1r5K6aT1FqSUuallKnU7SVX7ZXjTY8bl+Lq/Cf
bnJbEA4XhMMF4XBBOFwQDheEwwXhcEE4XBAOF4TDBeFwQThcEA4XhMMF4XBBOFwQDheEwwXhcEE4
XBAOF4TDBeFwQThcEA4XhMMF4XBBOFwQDheEwwXhcEE4XBAOF4TDBeFwQThcEA4XhMMF4XBBOFwQ
DheEwwXhcEE4XBAOF4TDBeFwQThcEA4XhMMF4XBBOFwQDheEwwXhcEE4XBAOF4TDBeFwQThcEA4X
hMMF4XBBOFwQDheEwwXhcEE4XBAOF4TDBeFwQThcEA4XhMMF4XBBOFwQDheEwwXhcEE4XBAOF4TD
BeFwQThcEA4XhMMF4XBBOFwQDheEwwXhcEE4XBAOF4TDBeFwQThcEA4XhMMF4XDBtFAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg5WcLCCgxUcrOBgBQcrOFjBwQoOVnCwgoMVHKzgYAUHKzhYwcEKDlZwsIKDFRys4GAFBys4WMHB
Cg4ibTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwg
bTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwg
bTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwg
bTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwg
bTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwgbTwg
bTwgbTwgbTwgbTwgbTwgbTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwi
bTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwi
bTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwi
bTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwi
bTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwibTwi
bTwibTwibTwibTwibTwibTwibTwibTwibTwibTxO/3o56p8i6DwWI8di5FiMHIuRYzFyLEaOxcix
GDkWI8di5FiMHIuRYzFyLEaOxcixGDkWI8di5FiMHIuRYzFyLEaOxcixGDkWI8di5FiM/M9ejPxV
9yz/Y53lCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2t
CF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tCF2tGMHBBA4mcDCBgwkcTOBgAgcTOJjAwQQO
JnAwgYMJHEzgYAIHEziYwMEEDiZwMIGDCRxM4GACBxM4mMDBBA4mcDCBgwkcTOBgAgcTOJjAwQQO
JnAwgYMJHEzgYAIHEziYwMEEDiZwMIGDCRxM4GACBxM4mMDBBA4mcDCBgwkcTOBgAgcTOJjAwQQO
JnAwgYMJHEzgYAIHEziYwMEEDiZwMIGDCRxMoF4C9RKol0C9BOolUC+BegnUS6BeAvUSqJdAvQTq
JVAvgXoJ1EugXgL1EqiXQL0E6iVQL4F6CdRLoF4C9RKol0C9BOolUC+BehnUy6BeBvUyqJdBvQzq
ZVAvg3oZ1MugXgb1MqiXQb0M6mVQL4N6GdTLoF4G9TKol0G9DOplUC+DehnUy6BeBvUyqJdBvQzq
ZVAvg3oZ1MugXgb1MqiXQb0M6mVQL4N6GdTLoF4G9TKol0G9DOplUC+DehnUy6BeBvUyqJdBvQzq
ZVAvg3oZ1MugXgb1MqiXQb0M6mVQL4N6GdTLoF4G9TKolzH6y+BgBgczOJjBwQwOZnAwg4MZHMzg
YAYHMziYwcEMDmZwMIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAwg4PzNQd/
2Q2UYzFyLEaOxcixGDkWI8di5FiMHIuRYzFyLEaOxcixGDkWI8di5FiMHIuRYzFyLEaOxcixGDkW
I8di5FiMHIuRYzFyLEaOxcj/msXIYfr6GtmNTmdlgnpqcHFZTjfzKb552W90Hq6vr8ll+Le2fb25
JOc/Prxzebqnn//m8+ev8rXLi2dPL69+8Muv0DD/mbb8w8X8wQt3/+njN++/ONX2o3u3Ht+5/OLr
Z7cePTldyXMln9689/XjiydXt769fHR18eYUln9c3T9cqF+8OD82TQQqahEqahEqahEqahEqahEq
ahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEq
ahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEq
ahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEq
ahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEq
ahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqahEqagkqagkq
agkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkq
agkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkq
agkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkq
agkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkq
agkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkqagkq
agkqagkqamkCB7FJIGGTQMImgYRNAgmbBBI2CSRsEkjYJJCwSSBhk0DCJoGETQIJmwQSNgkkbBJI
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
vTklpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPEl
pPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPEl
pPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPEl
pPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPEl
pPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPElpPEl
pPElpPElpPElpPElpPFlpLNncDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZw
MIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZw
MIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZw
MIODGRzM4GAGBzM4mMHBDA5mcDCDgxkczOBgBgczOJjBwQwOZnAwg4MZHMzgYAYHMziYwcEMDmZw
MIODGRzM4GAGBzM4mMHBDA5mcDCDgxkcnMFBpI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0n
pI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI0npI2n8q8x
fU1INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9I
Nk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9I
Nk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9I
Nk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9I
Nk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk9INk8t2fy1tw4YFBwUHBQc
FBwUHBT82Sj42gpQjczSkVk6MktHZunILB2ZpSOzdGSWjszSkVk6MktHZunILB2ZpSOzdGSWjszS
kVk6MktHZunILB2ZpSOzdGSWjszSkVk6Mkv/azJLf30BqvtPH795/8WTO48f3bv1+M7lF18/u/Xo
yfOLy7O8zunNe18/vnhydevby0dXF29OoVwf+mdUYnqV4vzP/3v/6ZOLIbj1U6WeashTKVOMU8gx
xPqS0tNpfD70tl6Hi/BvLbc1rvVfX+tpmk6hVz0N12s4u5zkkl++3DmMe+41uQ7/1rfdzTU5//Hh
nctT2PD8N58/f5WvXV48e3p59YNf/oXzjH+4mD944V4luPhx6V9/r8p/2eKMm/3/uNlPWE1W6nQa
GAeb4pRevtWXZXS5r8VV+PePc37a3Vxfr4FU/UkDKU92/dCb2oenq+XN7V8Nir/Nr/2/f/JXaDz/
pjfh6e4LZz+X6XTzhfnlwUZYyq1/fOU/ubi7Xr54dvV09+E7b96/uHz0zcXtu4+unt/+4uJFY9/t
Z3e/uP8g3v7y6ZPPrv/7zfnaPP8Zm/s/V6Yf2+Z/elD1Cuf0S8dhv2T8Uv/ZcOrniPHqzxZS/3xX
4/lfnbnlnP7JW+AVT//XaJJ/0wZ+har44eP7ob859elPL3++BvITC/FaV9avWkm/ZuW8Qndlr1fU
aD8zQce0xN+t9NdmWsJ+/WmJH4iAv310/+rhrYcXjz57ePVz3zu//sm9pnfiLzxm/Pe58X/9FvMz
diP/Lif3us0s/MvO8BWpHqfXKsjw4ow1/ldsIrem35x38qSpZqvT2f04vjTrU5Y6JsBflwvxb9/Z
/FMBwi8yxfKqc3LvPLl/cWpTh/2bj041ePngzqmcv7nz5MVvvn16+YW3vB/7q59cf+X56ze08K72
x2Hzx9TIj+i0f8Ghyo85vdF1/b2u6+xMukx1snmaanl55aBYGgx5XS7EvzNDPro436mn3/ify4uv
vj796X+e3bl6+HLX8MnF3XcOv/vwzuXpLM59w9XTl989HfLR/S/jm18+uqvnPwU7P/Xr/5pB4//9
q3/vMv6YXnfMxL0KLv/pmn1lkv1rruk/OsqPv0C7Jy9aiPLjq/wf//jPdvKj0/inO43Pn4+Y6FVQ
vEwlnvcvl2u1k/RySlMNY1z92lyI/6Bx9elO/+WSD/7qx37OzuV1yq74GbvPnzZaDa/XNGz4SdOw
f7fOfq6L+gM/OLD4y/bGYcoh2TRPS61LXeJfdcc5Di6+Nlfi3x6MNzfudZl/cyLWj//Gqf/7aV/o
HcYPf+31X7L+P6rtZ+ok/6+f9Hr/BX/xry7cwMEv2wlFO2tKnhXsSq7Lyz3QWHt8XS7Df+bK48gt
fLUg/7VZsAtjwe6V7/dqMU5xjuG8wznEl3MNquXR8b4uF+Lfvuv9P6RqPr/z7M61VM3zh48eXN3+
/NHzN5+f/ntZr+ZnnNz4Jwr0k7LMflpfFv/1Z/zPkO/HVdLp3xSnevvROTb+2eZuXrk2f8Tl+k/e
hPdPNPQfh/hXayS/WnFfLUz6uYr1an3R5c/Wul6pKL9KpY0o4v9I+5ntFEdYLjmchnFTenkEZ2Ox
8TW6Ev8ZWwbGRf/r2ZNlns52dEtczrq1L8tFWR6jqdfmQoyJrDGRdTM+eG0msuLoel/5js9zijWc
ndemKafwV7hdbHS9r8uFGHHPf+A1n0KK81ynspRyfvir6Usb88iv06UYN+B/YmqrnQLeOdRYYzzF
vOHmmsdpDPtfnwsxbr7/wGtupeZpnk5DzRjP3rYvX/ORyPj6XIhx8/0HXvNTkBPOfm85p1piLS9d
85CHO8VrcyHGzfefOM1aYzlvMg/zPC0p/VW084Oa6aNG/97wrU41pmkxm9I01ZfFX2L4V89jjS7w
F70d/iN00MZ1/+k37WDff+I8d8hmeZrmOYSlLunla27/4lHfuAh/5yLMSzmP+OZY06nmY365x7Xh
k/Xa3A0Dff+dN+B/ozBqer125Kfh2TN0Q8+6oSPMe7Ux3ZyLhVBtmUv9qw4uhHLrx91Od7+88+SL
dqqPnjz7+urW9L/u8Nzt7uf1/H8Nb1htT97313XvT8qhPfmdvz4WvbHpo9P1k/SGHf3JTn/ZBT2J
epL0JOvJrCeLnhQ9qXpierLTk72erHpy0JNNT1SevcqzV3n2Ks9e5dmrPHuVZ6/y7HWcVcdZdZxV
x1l1nFXHWXWcVcdZdV6rzmvVea06r1Xnteq8Vp3XqvNaVZ6DynNQeQ4qz0HlOag8B5Xn0MqT21Hy
G7kdJbci5FaA3H4+tx/P7afzW+3h7fbwTnt4tz38tj20dpLfaw+tOeUP2sOH7eH37eGj9vCH9vDH
9vBxe/hTe/ikPfy5PfylPXzq5Z73erLqyUFPvLy3/fXip/isPXzVHi7bw/P2cNUevm4P37aH79rD
i/bwvR+u6JeLfrnol/2uyLor8vkO8SdRT5KeZD2Z9WTRk6InVU9MT3Z6omJUFaOqGLUXQ1fZVB7z
8nzjt69XWuh9wUV7eNAePmsPD3X7z3rSShrut4d7+nNQr6Ceper47f6+6Tbak6J6KV4drYfqtvW1
tJZRWssorWWU1jJKaxmltYzyqR/IW0bRKRU/yePOG/ux9SPH1oscWx9y3PmHtvZwbA9vtYe328M7
OhnTk52eVD1R17n2J6qLVXVx0JNV1XHQk72OszcvvGV1uTrOlvREl8PbS+kd+RsHL9gd/ZLeWFV0
79dOT/Tbmzr3repw+qWqr2+LnqhY26TPRP22jlx7+fq31EA2fXivs9qrUvaq071q8KArair8QZfW
u6/SvuO3pteU35be5korVWm9WGm9WGlXtLRerLRerLRerLRerLRerLRerLRerLRerLRerPxBd5fu
t53u0p1uvJ1u1516hJ3u2526hp1u4J26hl0/oHqNne7tnXqNvX5r3//Sf1T9yF6/te9/6T+qTmff
n6io+15UdUP7/kRF3feCqYfa9ycq6l5tZafLv1Oj2amF7dQgdmo0O33L1J5MLdXUMkyNxtSMjj2m
UTPqjabqL1V/OeonjirGUcXwhhX8O/6Drf8JreMJreMJreMJjSuhcSU0roTGldC4ErzXbXgJDS+h
4SV8r9PWXejtI3zRHr5UPznpSavMqPqJqtWoeo6q1ah6jqrVqHqOagBRvxx1uaOuaVR7jmrGUaWL
arRRLTOq0Ua1w6iGFNXqoppNVNuIar1R7TCqrUa1uqimFdXmo9pqVAuPaplRzS+qp4uK4KIiuKgI
LiqCi4rgoiK4qAguKoKL6kyjOtOoCC6q14/q9aN6/ajOPiqCi4rgoiK4qAguKoKLiuCiIrioCO70
ROU5qDwHleeg8hxUnoPKc1B5DirPQeXZVJ5N5dlUnk3l2VSeTeXZVJ5N5dlUnk3l2VSeTeXZVJ5N
5dlUnk3lOao8iitaNx1aNx1aaBA+9sjW79jkwbSH0h5IexjtQbSH0A0FqaEgNRSk9hup/UZqKEgN
BamhIDUUpIaC1FCQGgpSQ0FqZUtettZtpBa2pNZ7pNZ7pE+9+LNi/1mx/6zY3wPadNtfe0CbGtzT
3fbQgrDUQrLU4rjU4rjU4rjU4rj0qD183h5a/5Ja/5Iet4cn7eFpe2iRc2o9XGo9XGo9XGo9XGo9
XGo9XGo9XGo9XGo9XPrei190pkVnWnSmRaOcPqysGtxUDW6qBjdVg5uqwU3VYKtqsFU12KoabFUN
tqqKUVWMqmLUXgwNtqwPc1UeU3lM5TGVx1Qe87hH3PJrHFpbCX9QT77TEwU6VfGNn1rRqZWbWK8q
SvNTK+2Sl0f+Z28lpbWL0hpLaVe7tGtfWmMpzpbWWEq79qW1ttIaRLn7r19c+nsTFeF/T7/XWmx5
6CdT+njhqCf9Lx7mtWZZWrMsreWW1nJLa7mlNdJypW+2K1e9ezpdUQ8aNqfR6fp5YHFUx7d9oNft
y+Yssvn6h08jl3a3niJxx7G1XmPnJT6/cd2GTk2q4fkUoDiZ9l+3Q4l4R+9lT0dtfDu9tfoY5qEO
Fr3srYWc/9JKtn/jWPWX7EVoOLD4gZ+mH756NHB+0o9y3c7Mh+b7b9qr657s1OKdEKuj1JbrJr3N
vVT9BPrxTPWl4nkNrt7znyq7EeQU3bUCn0673XenHzzu/RR0dn/UcXd6sldVma5EqzMNX86fOfiJ
tzvzfNzgb3mwYup2V5FyFTurtwGrn7eHdqcdFN5Uj8TOB+tHjXqS2jn+Qa+zH9whV3UtFvUse7W9
vcLcvUfAJlSfT1anv9cV3KvGW/xkU7u7j39prx7r3VVP+hFaFe+/9dPyKNJ0fapqtnr7PLVGjxm3
1vds973Cbw5+aB+88havIesnel+HVrN+5EdojeN0gh6dVI+6zt85qiWpftZ+DxSv1aor4e0z+yD/
8/bwhTemFqAcd1/q01E/Zrr2mz7qt7n3EdaHWfvvVE36Tb+SArVpjub8A1lf3vn5+ZWcftdK0rrb
7YHaadG56sq36NGirpoHo9VjUOvR2/FTNc9WO0V3g4em5hfnuHuiQxXdOAf9JenJ7Afb+pm0Ztav
9KoreVDbX3Wd2rU9d2tqP2t/onvMQ7ztM93mWYfTHbT6rM0zVVxQHalhtOD7/B1vTE/bw6X+3M/G
W8NXuq16G/NboPfd3tjM2/Hio8nTuTh/Vh8y2vS+7sjZP+GB+vqJ1/tOxGhR9XHXkHy8bK+eq5RF
T1S1B13rNgY4H0oX6KBzP/RzVwFv/tKu1PSeTkHVcOhHaedy1A+2KN3y03aoj/XnxQ/tobp5L2Yi
6HH3jV73N9pv+Oh41a2qadRT61/VcXnTUlx4/osoc+y9ZS+7T9B9642gV0RjyHEnlHoBom7xTh1T
O/U7sPq45fzE7xjdbNU7itMTj6r2igdWR9Rxd9Uevtc3fCLxO73WoY6KOtaOdN06R7X1TqWjKqfV
gPUh2eqYOL+1tF964VXhN61mUKyP3vY6StVCzl6XtocKx9bWlj+qI/WDK2rfPvTrd1My867Bf7fc
1Rvt/Ezt0BF+UC97FNfWP7cP9u784GFRG9KZ97ha5bFwQ0YPpZZ2dU0TvW1Acb4Z2487N+3t9tAu
RWgotLfawzv6rhf7t+3hXV2kdjfvWwRk7Wby2M5UMvudXwO/kvb79tAqzT5Q422XwT5SPXjxWnBQ
1Nd4T2DtIlmLeKx1J+bl8Kr7i7epo1qHR1nrp/4T814hbu/iopi86OaaVQWbXykPWU1fX9Tt+/hy
U39on+qD/SY+eE/eRkNmN9PwtQd1jqR23nbbP9ix6dNOqzdxq/4rd3QKWWDZKfDIuj3bNU5qx97p
WWucdk9xrPr54mf6wM/86A3nQm3WL9k1n073k3dW9tDrxctsLX6xFiHaF4qCi+7NneogCHRePQ3C
9qUfTw23tdH5RXvVOmRrCLSvVNVe9tblWQOJtZDLLgXudqfYN4q1qzjqTfVblUztwocC1uKboxfh
hdrRqlvs4MXwy2rqCOy6K9xuQvb+hncmp1J4KzkqRA/qgEz3cOq49PGa3VwsTRPs3tProJahEMxn
5kxDu+NTb1veCZjOV1MNNj3RG0lB7s5rxCfadgoPdholmU9GnJ/43fQXvdZNVTWm8VDn6AN304z7
uZPRyVeFYh7cmCrI9K3Uew2fPzhfsaLWu6rZ92J59/1Qd/ZRbOifUOe667Ge+uHeDfi3wgd67XeB
YLp8rMPrqD5xsmpS5KCwRuuV58/0D0fF2HvdODpr0/jv5sjqV/zWDrpupmvi0y+7e2KZGmhvu7v9
2Nzw75sIM1yJX0dX4l9eUim9XpJKP6U4Yw50zIGOOdAxBzrmQMcc6JgDHXOgYw50zIGOOdAxBzrm
QMcc6JgDHXOgv8gc6K9mizK2qo2tamOr2tiqNraqja1qY6va2Ko2tqqNrWpjq9rYqja2qo2tamOr
2tiq9opb1X4Va9AfyOQ4z7b0OZw+4aNpLtNS/drnhmdN+Wrl01dwi0P//JlF8+Y+y6cV66opoZ1m
ehpij21N+zzZ6etH7+p9rQYdVUhn8e59/Zhmk3yyefnaJ860grtpva1/8LoUW19v1GzH+a1F84ZV
87xBv6OMiT4x6XOLs9aTTSkOk75uigH2WkMyBQM7PVk1N7rTXJ3WKl4q1lGraFr2bos65zWIVeXT
X7aeOqGFzk0l3k/6sC6wJ0Io6+P8RCez10SeRxKmadDlC81i9qO0mvBQ7KgIan8z/dpij/Mv+9Kl
1kFNi849Uaf/jvWkGq0mOSO1SHg6x73qaq+Jal/gmJSs0peItUZ/Lp/WLQ96S2kI+km7WQg99LWL
qNyHvrqlqvbVhqjFN5+QXR7rYFmFau1h/aPeUG17eNRWtWpfhdw56s81p/wAb6R7LbSbruHaU3j6
UdX8eoP0GezFG8X5uKrCVQk6B80JH7W+09vC2qtHbdMXAydBp6141b4+YFqktb7sf7M23wt60MKA
v7X9Xm9ErYpnpUv4akVb6Cg+461lg70yiHw186hMDW87m2r2qBwjjbDO5eolbb2cr0aFZ6qPvVbJ
e45UPwHzbsfXRPsQaq8b/XiTTnZQS/eQs7e2PiGw6a7bGmJMaS5O0IM62e2RDqWbxkPUfYtSdlog
c+DtP/NyegBrWsVpfcy5x1v9G1k5TE4Bj4LWvnrxvv+ix7B7rWEtj3TrqExbT3BT++l33iYUaJ2r
r4Z/7w3L131mda/W18puUsBu/uJr9Vq7b8GvxZtV1E01aP2XdRvflFd5hn6qm1bm7WbRZdMa2U6/
3RdDjv0vOl0Pxlf1BMtNz3VUMbQm7b91ao8eHB16htcdHU59Zu/kjuq/lddw0y344myvvY7So9jh
KzS7vqAvvuwUPR80LNl9qE+0X/Zxa0+A2CkXb+erc60t7NTiOzOOunNu0g68nJuO2D7RSG/ePttU
4vlm8oQ9gW/3u/bQ0gKSf6nBdfeuTrS1w7aQf+5LvF9u62VtftIUJJtPVCpT1Ha+/q/FL1/E3LWl
xF1b6t99oDSuVv9eYUENZ/exvu0V9pE6ZKUG+Fr+rmUQ7Fo+wa4RY9dW2He/98vjy9rtLreWsXS+
aq3d7R603/5Qp+8F9kXGnT6t3DXvDHZ39UZP6tQTR5/iQGtrd7a7rVVEv4Z+1Vtn45M5+0fqEP2H
7yvrpZ25L/q3FDtrOYDWF+A9r6xlCJrnxLXEwLr5ZxsEPJ+spR6ZJxq19B+Lv1eH602+rdG35K7z
RXEMt4vS0qWq+lTT4vvpg0dVnmNOCTjWE1R6mkZPugjeQlrKkecD7RRtv5RzoKaixdSekrF7adFb
iRwexWrm0RR/Ww/WW0Vbj5V7/NejRoW3lv+s1zqb2k990xOVzlSo3n94n9NJqi7MdOvZTSPsbUUL
wrs+ErmvTte74S+9Ho9K5PUuLd7TF5XjtOsJoj0s6aVVMNNzJXtpTedoWug/6GStf72fkd5Sr3AT
TvZs0H65djp93e3qt3Y9eHyh18WL7gHO4YZu3n7iE3206oku306Xayd6b8pS9vBr+ZM+oWu/U9fu
M3sHRZr9wviE48ELfeyXKn6kY6jrOKhIe6WnqBP1Ucf5iQZzs6pwr1rxaUuPXVp3cv6zWkYfP1j/
HZ16b/YihAYSOx9IHHXtj2ooZ2pkZTD04+hK73vp1Cw8QdaXUm8SLb/W+8oYcZZtKnhf3dxpXu6g
H1y+0xCmZ2AoxWbtJdEZ9fBwVaWq/1JAsRM++wSi2sKmtlvtJpTqOS6eNu1TWwelm+xush/3fViw
123YC+El/ote7wVQH5891OueVl2UJt2pr0u86uZR7v/Hry4mfD6crqsPsaaneu0jxceikW6dVTMF
fnm1LmKazj6+1B20sYwtuiUP6ksOSsg0HW7Xv6Oeb9V1PagmDxrd9JS5Xi8+bxHvq/Y1ftlU8INO
1YcTB/Xmuzc64zvBDv1bauYHNaVNN+qhl89HUw3JU0NwW5Q5f177ZHwd4SYxWRc83pRt67+ic+5N
bVO9bLqVN02t9JraegfQs9b71/t+Eo9SlP3kLer4mQbwuhBbHwSrO9j3QmmUrU0Cf9KX/XJ+ow/2
g4ny1m9+1f7W89ZV10dV8VGbNzyi2PWMSF2Y+eY+80i4LYOdX3tu822vEyfR8r3e1/SIorQerfdk
ZM28vYSoHvMfVdc9I74D0ol81MzOTjmiUdVxFEL36mKcGW3i+lRJvsLg2e17bdfIyir1prro4mf/
YFtS2Ld4uM25nkdfB+1Jagfy7qqP6f2GCuoxl/b9Nntve416expgz65bNeHntN23kcfWJvO3J6K1
trR4/ztpvK8NFrZvQ5J9G6Ds26CipQnXXS//2zppD/A+1NhDc14+4bo989cHbUzy8ee+jQn2H6hJ
e300VO/bMGTfxkWTv3pP4U7V4Lg1Bs+ibnV9roLWNPa+O6qdUG5R9145hR6o71sIObfwe9/Y4NvB
FmFb2T62bwOa2Quvwc/+tl5rM4x343st42w61P5mR5jTfe8Fa01kf0ebj7J/3gdN+zbM2bcgct+G
UPsHfl38Tm3TKObTJj6EOaqb2H+pbs7TWP0n2yBl37rNfWPEvg019o1Dbfaubv5HzwJud/7+udqi
5qysz0H6rp7WE7T9iHVrI4mD2rK3DG+wq1DS9ghWHxf5lHsQkts2Kesp+z6/ttdd68Obfb9wyvLd
K9oNvSvUdPWmkNYDKF+5V9h4voYe676lDktLB7ln8CoR1pnW10W1k66qwYmMW9+u+ZVmXU0/52sC
b6nkmnYsPRzx6XmNE6tou1OisjZWKcD1BaPjQ1005ZLrXtIx1Olb6tGDutH9TeP0LnvW5ag9mls0
XNad0Pd+9DUFD7Un3U3KKlZ1Wm8LGgLuVa97jfT2Pe+5LcJsCuumj/S+FoN22iS3701BT0zzbtbf
Oqp/7BvD9uqa1Rz6koUPEqebmbhV7c/ElV3/iyratHXHozElgtn0lT6RFXX3o2gDcQfJzW/3iZ4O
k/6TagQOt0XU3it5bK8ciKMqWr3TzS5mj86m32rFxsdOz7WHx2eodzqiLl7fJOKV+tJe1KPmBTzO
tX6zXeqjnZiT/nLUl/v5tbNJfW+cv/5cV8NDZK3bmU5yp2uxUwzioe2m1iNMaACsVaLz/dG/rDbZ
dyUr2VDzHp4utLu5y3Z9Plbhu/eDu96z9RM/ajq6t+T+lm6Cna6nL5HtdXPtFSzutWiW+tZctSZN
Yp8/oxu742qv4La39j7hq2rWTM1efdzxuV6rcfZG78H3QdPPe/W2e01B7lW+na7BXmfZqbqqmGsv
uJpWv7lXLfB6nzzfRJO9SladZe8mV21k6SVei77Va1SzNaZf7xtx+mzIvhdVjXTtZ6Girr2ofdOL
KmWvJwcd56DaOagYB5XwoGL00dxel2ivHf+bauyga3Xof9E+lN4pHExfV7UcdBYH3ToHnc5BteGz
rVrKEiSCiHJ4W3XTWsnhHW2Y7WekWYebMLXXg8IFj5Czh0N9geRdgcc3LquT8Ntqa01y/l5De12E
TdOYR9XiptGg9c/0t1TlPt5SttN5Aslxrr3pmm3oi4XaUN37sU2V64HHUaO05c96Q5W9qZ1u2irf
u0Wn9PJCn9CV0sE0ObrvYaAWaPJNp7bpHtmvr43qycgDGXkgIw9k5IGMPJCRBzLyQEYeyMgDGXkg
Iw9k5IGMPJCRBzLyQEYeyGuaB/I6aoCMDJORYTIyTEaGycgwGRkmI8NkZJiMDJORYTIyTEaGycgw
GRkmI8NkZJj8shkmv4qqyCvYz+TrQ/+MJlWvUpz/+X/vP31y8aNVVD50T6oPT7XsvlT/amejv52A
+r9/8lewmPpPdet6dQmd6X+vZ8N8ab/doweNKTfd8oeWKrO1YObwpQYtrWs6aC3ew5QeZvZA4PC5
RuJ97sBnxj72rx773IZ/w2fSNJjq2ppbi7kPLV49tC728FTDdI2F9oqci2ZbjhriOBQPGpUdNE6b
FJmuiu4OygTyiCSpA20ytnb4Rr/S19cXHVNIcp4d2iT7wWHQQs3Dlf9eH8wVFa50Denuf+DzSG2i
4PBCouEe3fxRUMgamCnK8xmDQ0tfa4P+uj7QzO1Bv6iaLmoGPs1+0Dx4ENvVYqwrcSuR41TRiwY2
x/51VxtvUXyRB8teg99dvyL98JrzOyppqyokWvsve9j0UK81MbnXJzxWOmip76AxXV8zO1zqDZ2z
KV9qlYuAs+zw0hPPguiLDRq4HfQJzehpWLT231XeRG98pnP2EdOiCz0p/2zVQPogpcvtj3rdj+sj
0t/rB7WEoQj8Q32wF1ELIz5Cyr5aqdw/P6mlzebtVMs71anfIk1ozPrklnydTIuYJnXw4+7m1tvp
7GfV+07tyCOgg6bUDgqvUn/Db7Z+MHU7augarBwUbMhD6/xEv7zT4dRHSYTyqFNXjpYpOLTDzQ2g
21qR5OGm2XkgfdBK2EGzKoc+0vxOb6jEe53MXhWy1zl0PypP4jl8rB6t6/Jreq/X76rT7esyfpvP
8iTqN/mqc1Sm4HO9VjpUr4VVtbAqv9Q1ObePNZT17KSH6lB1VT00nfoA7i0/iZtyqPr6vbL2iXKF
jEV3hg/GZqVwHpQDtymLwGugCRqeJ2B0TVdl1q39l5Wp0909Dlr87UXot6vLdm4+Z+ppeZ7j9Sf/
0EGOVEetNZrmvIqu+EG1etC1OsjBobe2Xo6jKqdbNPV2fNC1OKq1HfqTfpz+9Z0+LJcHb0TxY82X
iGTdz6tqIsiRVnUNDzdLqf1+lm+SKvXQq0TjrJ5G2NfCbypAya/7vurUv6UpzYOG9zLZ0thWa77H
vl43aRqjua4c+yLi8Uqd8KIU4Em/rFF1r/qdr3vc06/oum0qdjcQOYh8TopN9eQTspu0iw+f6A31
Ir6eN/U32s23KT28D7P7Nd10m2y6uDc/12tEiQOeCLrr31FH4SO2rDqbdblX9etHdd4HDTv3vbLc
9Ed9yqrOsZPfpeLt5u4+qrc9qmvoy7Vea/EzhZeq6T6JclD5j4oG5DipCbGiJcXtrtaqNbHQV808
DaVXYL+5jqqVY683dcJ+c2me+NzV9Q+34/S5UI9DvIqbxubZEMaP0I7ol2hr3eD2tmrQE2k9smiD
8u2d9vCulgs1d1t7w/M444GyR3vop5iue1Ue1OS7L9qxRxlO9N+p81KEYApjPLzefqvbJijc9rNq
X63vq6aVHuAs395T9+N11j64aUXuoO0Ku54uraBI/mD+Q7/XEoL3FG24sLXlt611Oo1KddfdyNSL
+0yrR1HbJ4KVlslNHd0qwxufpuqy9Ju6vqPqYGvLdE0517Y/a9TiJ/4XfVrrGt5wNwUtmy6RJF2P
PX2gsaYe2kJhM6k4f75Phaol9ibpE1S+rpYf+DeWfuPKI8eZ3/wgz/PpauZ+5bbW6/nNNCmKWBRR
F3Xei5ZhlJp/Joj7/7XhYfPwPFdza3hu5rkp5dIP7TmQLR+89mz+zQ/i1av1v971bn0RW8MQB/7m
Rn3e4K50N+o6zMpI36t78z7reFsrl74xqC0Fb97S2ojTVyfbWrdtbTjY8vyspbybryo0Z6QzG9QN
HbV2uSq15ag86b3ug6p5+EW9cJ8FXPsyhvcZirm8iU2SWV+9+2hj2YOWBTz+b6FL7YmNm0Z9/fpN
SsVoOatVAXndyaBWl0436dq3V32uJqplBAfe9uJfOuH0D3eH7dXLKRnw3EAcfe9rVlMTrQ6kw2/1
jf6GPBk9IG2iyuYuEso6OX9QOWy+knf4ndbJjsJtD3V0T1pfvZUTrKekuFL4QakIfZ1Z73+ny6CO
fNUmjq13ZN0TzAMQdxN9oENpzttZ2Fxyzq+1gCk/xt/pDU3syjm5HUpTGebN05uG4ujbOut2ETx0
80jcA/+1MXFt+R7eetf2u2ub/VnbTELbc1btJpnKodu2dNRVC4nai2DNW8jWDxT9djfT9mRtw+Ta
6nr9vZqKF1Cm0N2Iue9o6+tSPqW/Kp72MDrepPR6Xa9/Uvab3/6tTPGpTkW3zF4LqJuGeTdLFV5j
jWDuc7neJIBsynfdq3F1rzwfIruP3NzqNbY+urk6Hj3tXZn8tS/59UzeVZxoiVYmrfPTGz4LtLZx
0toAsjY+r42/q4zT/LOzxg77PuXlt8KfVHof9rVuZb2v1uSJ9156f3igfrZPLXrphRZT/+ZhsY9a
fVrHSx40ElgbetbGJ+/ZimY0V233OSqMWBsFkjwaZy24qTG1W2xt13ttBFnlY+s8Wy8VgvlCVxto
rn39W/OSe018ariiOYdmU2Brm2lsKWI2teswq4fzmzt7yTxpppFzaS1k+VS15h/6Xr+jCNynBNdv
dcvN3hR83XltM5bZC9SmQNZvlMTu10A3zKpJx7UfWGSSd4CtN5OON9+a9KQvQ/pQSnO1Bx23yPbc
QbdqSnHSRhHZK5qm4GrfhrT2nWjq1Fd1Q6umGVfBfr25L0yf8SheBr/nLrZ/RjnvDofDh2paOq71
KtFIZd8rQKXp2zbU4Wg+VGaJFp8J6H1rbD85VYn1L+t09xp+9KwEeVLe1ZfVTdyUtx+u3+OahunJ
7bovNJMoLxBbNWm53uRbesNfNdu4asjQ5+7Xm+lTj5nc5qmvmNt3+qDDQS63u765t9dlL4DOyLvC
RfMBqzKV0k177Zkz/UR26gR8GqOKmjuNUle1X0dLn7GdHOtH5dPXbl6+avS79tSOF6oMn875g8Jj
Nb9e7crJ/15vqAnsdWJ77eXc+pdV+3tVh298OOo671WgvUZycn4Wc9ebJrvX5ruDeLX231b+2bEn
c2oPZk84WNUE9jpy/0uvzVXd4qobetWkQq+Smyf99HT9e3lWndfaz0KwNZ1O3+WgnPXf66Memf/R
Xx+64bl+cO3HUEUqNlKLWTVNuGgxoGdcrDIOcjD6Pr9VM2Tl5toetAPpoHPuvaJiCs1mrXIYarg+
f0I7KbRG9a4+2L+q4bIWCW7u135LHXSqPfNj7aVTJfv0y3wTXmlM44xXRv6q8fR6Y+pufXJSP7n1
LED9Uq/4TRsDdv0v/TOqon6nbzrPTfffpqym3rj7Lb/1ORAd8KjWufWCKYjobeio8zrq1xVY3nD1
qF/v4Oi1fFTOxqaqPKrMR82/zlr1vEnJ0tLhUbOg/U44aiTRE5F6O2kjgVN19UWH3GeU/C9aqPC6
0DKZZ+S1AENTbT6JedQ9pKpZlb3W03LmPuPmM3lv6Weuj7F1e/asCZHt5jr74VqC0LljVKrZTjPs
mkVtY42WOWRtJGcHX4XWmGynHnmvwxRNrGqauI24Wl9wjlk9EG/TRh78t9ny87s+OepCDPd0w3kd
tfj50O5vn0xOvRqa65R/aOqzQhdKQ1L31Gd2vVPLas8HEXBWQ4p9ObCvV/Z4sKcf+8+3wsY/aIXP
y9ymew5toHBo3Du0iOFwR5tiNHE99z1afpn+oswCBR+aYm4DuoOPkf+gc+6LDJqSlum75qo9xtpp
MdrXqCeNXw++4Nmi/sMj3aB+Nm1zw7b7ZYVuRrbGyNYY2RojW2Nka4xsjZGtMbI1RrbGyNYY2Roj
W2Nka4xsjZGtMbI1frZsjddOwmYkdYykjpHUMZI6RlLHSOoYSR0jqWMkdYykjpHUMZI6RlLHSOoY
SR0jqeOfSur4VeRobrRJzn98eOfydNjnP6jM8ve/dnnx7Onl1b9a1uWfyWj54WL+oBTMq2ji/LjJ
pb9X5b9scf7hPNdRPXb6S3OZUh+/V9RU+9j66LeIhyta9anHNivtA12tnJ2eHDRVVftERNVbRz0x
3V8uDvhEb2Q9UbDni9vWMhuaZmvtzkrHm7WOnQrgQdFRZe939dE7+OO+l6OFt00g9vw66YnCUJ/A
PyraOMpGRjHXuWrat+Kf28He0gddrPJ9vZ5VLoUppjr1OeajlvfqMw17NFvsIdJRoMjKmjm+NOGj
7qz2802af3BJ+zv+Ro+Tt36U/gMq1KYz9kCm6CJJp/k9vW6rcT5r0PMnjjdaz6tOvbv47FTEYzfO
0PXzkKqrbR9fUoiWKGu/Gkc1mKO+7ixK1y1lm3SMo4pw1OF9SbqrRM5/UaVL/9/TeOpH+mpsx9R0
oQ/hgiYYsvwWukJ9UXGWGwIe+qmrbTm+wu/b4QWXoyK1Y5+C1xStpju26f328I7m6pUO0FVUW3S1
NSnRzYUvo98u2/S2SlXa6y/aQ4uNpkN7eK89vNUeju3hd1rQ8ddtQb5JL2/NOWZrqsdVA9atJfxt
bWyztYSJbWqhXbrbXv2hHed37dUnOl/loB29oG24lD9tr/7sVTcf9GSvJ34qd9rDp9JrdxFs3a3e
oRTvks5fXP3J0p2rUvvL7fbQzHOaovPpZtEVud8eHraHlnvQRKCPe68VP9N77eGz9tAir/lxe+UP
n7eHR+3hS80LeEN8IpG/Ho16h/ahgnYv8dP28FV7eKZW5e9eKruxGQA2MdRqL3VUzgVNhVXdxge5
ariFmStid+HZ2vP3vLl93R6u2qe9TbYZlvgXr+/il+6b9vB9e2hzFem2hqSeAnBX91nStx0Y3li9
M9zkw3Z+4he2pbMuaii+nL7/o167BeMfdAr9gzIM2OvQVZ5Le9113uOFj/S6TUM0le+jFNW9Czgf
QYMfNW+vuvOTPsvod9jHekPC3rrFfR7y/ERK6qt6pvWot5Ths+oitS7q/Fb/jI/l+2tf7vVm5JOR
m6Te6/GJ3lBJlEf5nl7rrmpN9ejDufyRWphKbjr/vhx/0JU11YjJHa7qbpfRzvd6LVD4mbRF/vMb
uqk1X9Z91/rv9mP2s1fD8USIvfc5glj2n9sktHx+EvVEpd91fwYVYafz2enkdyqEsp1v5jZ6E9v6
b6nteOQTvhZb+2+rxe76T+pwBxV97b/teprfCBD9y0pA7HZ2VWkAN6ZtmhPwYWNtQ6zlK418NWW+
18/tlUjTidbrrrvrqJvz22rTmvamSHV7+YAS6+4I2Ks298rr3vXs3jatt7/BxF42C70jaeHUsQvi
Sxn4/Fb/Vv8t1fBeFo795tlLxdWnkcJthRf68qozX3V6a5+JUCLvqtPrZ+WVH3+r124R+0f1Cv1g
/RtqMavSanoNr+oDVi3luvTwS/W56j5YNVklp8jfqX5Vd6uqQ7OADUhFEc7ajXeU4WdKh+jFPqh3
Pah6Dt673tVrXfuDWoOyIb/U65ZLs7+t16qKg+6i7hwrofob1fdVcd5OiaFbVxlWeLepSfS72pOx
5Hlw/kv3T1GT0LijjaE8Wyh6Szm/31Z1W67+ca/zdeuqzQPi4/6e3tBU2qz5pH7NN1Wemxo2t4VN
NrB1vVHS7vTYlIlqXo4LVY1mbI+q8M1vpM/aw6P20IT595/rQ0rOO/QM21lLkx6GPdJH1UQ33WKb
Wl3v+PqAxy+H6Wr3RHxT1SsLz6/3cf+FaiOKYGpuR32ndwAKhxR9K5H7/Bed/1Hrh2KDynJUw/Bc
xf1jHVWHP6oxrbqs/fbpYcGx/6AHAQ09QUOE2V8rr9fPJrTKC61NhnYDh9a6QguMglveXLZX77SH
t1tZG85D61nCu+2hBeShET20SDa8r9vX/gm92Kq+rKcdb1qXlPZ4bckcR7kaVS1dV3f+UMdRlR16
HnK57cGf9AlPcv1Ar3Vj7pXzVFUOZandLBD7ItGm1dqs3PXtpdypblUX9RdNpPQ8v9qf7PRk0XGU
f3Njm6SMKh8Ul563dWPO4WljO/lp7PoPqMSmrKae21V70aOmhZUId9QPyBRbtj8+Z7RpjbcbD203
GaKOuOW23vAsPC3Abpo43xTfxXdUgP5R0ydUkp0qyAOu6c96rai5X8Cdbiqf1K9PdbB+jKwRRK/2
7mmu9EflfEjufO2FTjqKcsxNV3GndTbrS0v9jPTk5sOq/12vVNVlv3y7fiG0HLz2ClHz2quuen6F
n1X5QikhOsu9JspWneVe0yqzSrPX6fXGvpdFljJvtQCfbvzBNhVi7cVSpLj2X9eApOju6a1z3702
+sn04+jG8utbP2h1/EJ/Vu15ELn7o7ZkKfG89yc+G1c/1Gst9WrH01/0hn7zoMo4qKS9l1JmrmKu
7aYxrarLfja9DvoN5HFAdxHTpsR66I6W3e7jpkta1Xh6a5TPw5dKF+2f0MXSKFkg3HoOt6bQNk3n
KQ/s/JbO4dDd+AT+qg/3BOaDznPTyWiTpBYjt5tf31QFm4p6Y1Tgo+pPdNz+CVnL7pVM0U/vqKrd
FMXt5Lqz04xZ76UPsl/belal6mLTZzz5d1POePdpje/po8qIUAq/FmFlhV33fSPRF3pDmTp990Bv
HEof97o67m7K0lP7+g90a/o+Heg3UXyoo6jSjt1eTDXe5xK9EL6bd9M05HbTnTsCjm2u8PiWoOET
6z696xPG+pKmi/1DfojWuztujr9TmobPfLbJx6NcqI9K5z5qG5fT4uhTzW126fi+WOjT9eK5r2Ee
fb7WJ27aeOj4sSYStRWrW/AclC7k3WpRmzm2tnhs8cNRq4t9PHjoSSaaRZ/7E807z/IE0v7dP+mN
nnmu9QotUzR4Hn2uvk1wHe8pq76v1cilxWR7Ydp25ndi1Xesb7vuiRb+U43txwuNvfzPbd3VXRyP
bStQc9uy5Vt15ErNkl9UW9E9tnDs2PokTb/7KlFbJj36QkJD89FnI9tUgbvuHNuUZNupdb4yvsTi
RfGZDq9BP3ibuEiy+vbRm4Px2Fr78TtVkRZ4PIxKfY3ihVa5lTikpGC12qUv13zvF67oqhdddTUg
rcVrGr72/PpFUcFR23uPmrPvralqcaNqzaJq+5s8y9qKtj3SsE+9yFHZcX17le/+kAPb+cN9Mab/
YI+eusOmIO9dbepNRzdSX7uPl3pD6xqmZa2qTJGjDGX6pEg/eZPNuxei3xbWf1CVWpVa1HcWH2Wf
26OTg7q7qpMz1abLE6w980eR814Fr/2qeT6DskKPfWOSDm/98P1G7+lImmU5qll0m76dIv1VJ2da
0TJVvepB2QlHDUp6hqeGsecZSF3UrX9Go6C+mmQ6vV3vZ/tf+mc8f8aH5Z/pKvk2csUDvYJ2WjHd
KeWiV7zP6Njn+jGfYHmsb+hy7vpGE12h7nJXtctl399SvLB6r609wHM/nDsR6fbqrXuny7DT7dRd
/Kpq3ycq80PNeCg589j34uqMe5E8XJ2/1DH0yz6RaQ0cntRSf++/Ofcd+P1y9C1gznff7/ypjtd/
ut+VSm7yrKrygT6hZrDXld1ryjMrk/igyjWZqq2+iuPTCQ2ZdqUjqCL74qZ+9aanWlW1vWHv+1Yx
3eneSSmR4JH+3NfHdyqX+o9Vl8dHGPETvVYD3uvqr70kykXrK8NrP5z2kc8+D6eAsHQDacF157Nm
/dTttcmAGRkeI8NjZHiMDI+R4TEyPEaGx8jwGBkeI8NjZHiMDI+R4TEyPEaGx8jw+JdneLx2mi0j
d2TkjozckZE7MnJHRu7IyB0ZuSMjd2TkjozckZE7MnJHRu7IyB0ZuSOvXe7Ir6ID8wOzJ6fwuPUd
5yduCfCuXmvGSTrAL9Tksj7RF+0X/aXoyV5PtNLuE1436pzvKUzLumJKGTmoSD5bJoHcsyqR/uLZ
ElGlS+p9kgouifnTh/cq364/6T+hgvoCirTKt75+Ll+jTaqZ519X2LSq4z6oYL2EvnQYtX4RddNn
3TOLZEGbePj5BzZ9VD/pyyHR+4PzZ3zG1vud81+kEr2KZLMa6VHSVrteGo2hd+qU2qju/JZWG9tZ
bV3XfVbUEr/XG/rtvSppr4rsSnerpodWXYdVdbP2s3KJ3I/1ho676nKsuhyrqnHVRVz1k95fvHQV
VtXfqmpbVdCDJrRufkunu6r6V1XJQQU9qAX2RnVQ5s1RSsybytMb8EFl9omBvuTRszGij4E3zb6c
n6g8h17mfqb911U/B5X50NukPrNJ5Fx68JoqaKLJ5090lWs1htol+HXcTQObvarAg6HgUmFtqHSU
K9i+f1FnuKkW+vSr9ZwzVfSmKut9ydZPQ6fa63dTvWyqu01VtvUhTj+gfuKoptAdD3xyJnyiN8Qy
008edf2PPSNAWSq+yt40ys6f6JO9OoOjKuCosvRO8CiR/Kq6cRo3hd9z1ORDkDZtn0TepS9VfKYv
trIm5ZFt6mV8GDkrQaHFYVvaa+HZD/RQRdGqWJXctS/BJl99dqnkO+peNd9R1e14M01C/EGdvzd2
d/3xRJ30jhfM70jZI20tsau28X/tCqChnXGLI7f0rrrB1hiSr8q2BIaWubal32tc4CVrKxzpY33X
o/dHCkWUk+jdWvpIVeLfb2si7qaVtL6bWopWcqHkLjCoUYljJ7V2llr6SWqpUandPqsM77yfT3KQ
8NSEdKEi+096HWp527Nm+uRN7RejscVTr1IzLGqGfOfRaE9ZyDreqh/ydtWSnVoe6RktB32w2yZJ
ctE71KR5i73m9/JNWl83jui5lZ6SolWE8y/7KX8miHlJ2lpoamlX6XMNUr1ttdW39EjEkoXc2lMU
TTXjx5M31NFr6gsNnvq8tbeCtliWWmZT8hbWcpfSpTpF3Vaqhav20BKy0rftoWV9tgkZWzx0bCuW
6bnqYfInniWVlNeUlNeUlA+UvvfXi0wfOqecm8kDpK3p/1vosptN4vDYbyNfWXXHmI/1Q2oXnqyU
/G4/P0l60vqw9EKvo57s9ETXwGOzJtB/fkNNpvYz00n3dqGVuN7U+z3g4/5No5CjBkabEto2hYOm
+0A5Rj0hKSlqTYqFFYpuCio3EaFqami7ufc9FD0/OXpdmq7grj8JeqIS71R7OxVUvYTCzKTAMylc
TQpOk8LVpCg13cxEeDKCi8LHrxU6a9rA50Tyl7o3dY4S+3/pLzq1vcZ9tZdNl2evM/L4oFzqtSZi
df92nii8TYrMkwfJR0l3nv/is9Bt3jZooWdRle77UVUn6rSVsyMR/fMTn69Rcnmv4lWHW/W7q+Id
XxNuM9lbD2OTFm6Unrdp/m9TDs/5idYAesyzqlJ7N9l7pm726VMlpU1k1qbz2vxWNy3hVa1Hnf/S
j6kJVV8TDIqsUndi+0Jdfi+rPnFQHRxUB/0HfHpba6Pn8EI/edAs4axK7gwR7hXSJi0YTTcX69Cf
KHzujeIg89beBajH1qJSuWlTWy98/7CGhr31epg79dc6PV+1qp/otc5gUyVtKlRfmNopSPR5w3qT
ktPv1015+t4dz4riRJSbPCOF5AJWX5zPkovuuu3LXX1Z7duX+Jv8bHW52arEn+4vl78T+fRFn5GK
bVopf6v5N12UoyriqOo9qr/aVIu+/LQoHc7bSu08VeidlCqTXnKi6D4B7SfdVCLfeA9XTQfsNWG5
Lq+uebp56n3o6ep+Eysz2uESpIfsyYbu3GVCQmhpj+WZxnztlgl/dP74pUquxdzix4P8s7RC+7mP
V33YFV8S12415fwNf/JkIJWuJVCHP8uN0sey7ZK0ccz5MqsFaUayr/aq25Yj3BY+1TyK/ANkc6Bc
ivl3+oYWgNz/qVmXbC3ZcQs3t4H3A0F9dbjT+vanKp7uDm9lbWCxhXsKu/xk77YG4CfX8sdCC0fb
2HMLLRZsIwOT250sWfqqhfdQoWWrhRZvBS++Z0K1W8hajBe+0S3ol+NZe/BUqitdTk+78i891+4S
/7kWKAbPkL2jIW/rJMJ37aEFhs2JofYMk8ONB4RHJ+680CdEwg01TNe09I5Tn/FQTJkAW1+Ej8/1
OunJpKMc9GTTW0FPqp4selL0pP/kXk9WPdEBaz/gzp+YfrTqHEzTwqsKZir6/2fvXZsbR46s4b/i
L7OxG/GymwRBXBwxMYGr7d2xPTuevT1fFBQJSXRTpMxLd8u//gVUdRKUREm4VBUKYPV6R5REEVm3
rMyTJzN9DMbHnUoIB/UqjCChDwm5mTehiYSZN4GbP6HDDZr3BIbfBGYemhQULyBqAOEJnsSibfEL
CrFwmP9v+AWHsR/wPQdBee8Rnta2wG8xhACD4nEK1jgyQZ/BBG3SEyTLFS84Ts165oX/YF927Av6
4SWYmwBTwoaSBOXCQsuUOoQ3nkn+jO/5PBxh1/BwFD9bX/E2rGOIlQ0JeKHmdTwS9L94xww8K3o4
8qAiKKwY0xRiNCFmgzrKUtofh++skslEmzKkjgFgj9CuwtGGiTkp8VR0OEPjZLR6SdBOpXgxgeYA
HSXEHoroBWaHDgANOcIAI+ocB+JYglacHjekMdkRCYExRND0Hi7j8pEcRNrhe6x9hLmJSBbMRISZ
iKElYgwlxufSjUBtZnmEhUXji9NO75jBQsBgY2z6GEOJcThjyBdDvhijjLGRY5IPElNrCHpEiZTi
PZjPezDO4H9wwpoFmm5CXZhg4tLMJAgEhZA3wSiplQfp+xirjVxL5q8z0MGLiVjNBHL4ruMNFtEe
y6UH8cyGR2xg/v0/geVyyG0JMcDWDrCIyDM7+UwiZWPWExDOUhoXD0XAbuG4j01E7r/CMmW/8P6B
N2LSUhBRIjTkpGVPsZ1SzBW4TPf4HpKlyK4h1Zlih6T0EwwshWlPO43GAwgXgDOhsHQl8uxWj7Bo
Dh1TcJX/KbdNmAlvcUyaQ+V/wCTg+UDDmdtg/RFLAds4AKM3ASEJcQXWJJh1DfRYUoQXgjkA95Ld
QtYv7AsL+zLrK7GYtWcx1jcn5PB0SMZjS1g6im8DvqUm6TNCIHCGEVxktrfFkgEZ4axABx04UFwF
M2DUQjoe9dNO0S6FEBZk7sF8sX5Dpi+fbh5Q4sg+s5dtHvZgRrSFoBv1LYzRwjZGBznOE2AsNi8p
Q5/cS0mBJ3D7enaN31NfF55AvOS/4CaxRb1MsMvxC1wNFraYhW6YEXYa7+Ie8uFcY5Z43GEBPYQr
E21aePiEi8KiN9YBCpgHInhY4QYELR5YWWGX8y3LjGfmyBQzxqFudhAtzqvIwDKz4C3x+eNKjNmg
vJdlmTK0AbMeUDYiscxUZ/3oEt52HHnfCaMQeQF/0wHIPxQ3N1kZHuahf2tifQXKDOYA3Y/Usx5v
/YaVQW8cbutaj3ztuK60mG3PoqUeRR758Y2QncDvX/cf+D0iZx4nov4Z31PcDKElD3EpbJIykOQi
FOZBSVD82qMXHo6PzRlvFOjyIK2HWBUGCUKNW8a4uWXvlbRYiqV6NBge6/uKe53IAmMIwV2SP+B7
YhHAqJkRnQC3LUdh/PK4kHIMKZOenkQ8Ahwyn2JdRH/A/AWYCZ4SXVRz6LrmxxO6UbdZzLr8wSf+
g9F48ul78TlyKpKIlPB3//qX7SZr3dPZ4D4G9zG4j8F9DO5jcB+D+xjcx+A+BvcxuI/BfQzuY3Af
g/sY3Od93EfHiicmZ8fk7JicHZOzY3J2TM6OydkxOTsmZ8fk7JicHZOzY3J2TM6OydkxOTu65ex0
UvOkLhPl89iafdKHGEPiVGDBPD1gl+23x90i238ufng33+XTuP/0972c4bz1tLeWWiQvqOFc7LKH
7e6gdkbomXrMy3v9orwMEAJ0dIpqcVzHhTARUlyFKfRiShqIF5IlvYCSX9zwsJmSsekPOeR1AErJ
NLjNNJ7NnXUWJvDY823miPGQDo9FoQhnwnq9FJEHJqTNn/vviPkjyMhrlk1wa3HUxmZOoc1cRptZ
Eaz2fcIaXXgxi0LYzNi2/xOio14bB8tnLLZns1gbw1sS3gvDYU6RzZxJm9Wj4pQvmxEfeNMbGxc1
kIHE/j/MLf0iwgvgmhzFtJkXaF/x33MrzAZNivNZbC4Nu6hsRrCyGUJic3fuGiw1dllShbMYcAIv
hsaLdFJ9ahZkSXjtd5tHjficMBeKmbSJzVxBm7lt9hb3SMgZb9yath/gp7Orzf4HPDh+Je34/c7t
CHsP1xK+ADddJjyQ9w0RRm5pMwzCZlGkmDmCNsxx7kfY8LDoDuYgro1qmRHMWd5rg9dnt7/D/+Wj
Ya6g/cg/1sVSci/ShiOIiscJCocXRgj9aoIXFl5QBTIqtubiV/xYo3q5j8/lvqINX9FGDUEP9gSC
lglYEcW2RxyaW9M2ILbgj0Aa6I8xJl6Kka24z1okFWg87zTCPSHEdUI6m0B6/NIQ46UQfXggRLhy
UVIWpBF/tsA7UCMxhsg+pt3Hk+jjuDVroww6yjcXhBAU+PaJTsMn9QF/Y+PFFC8wgT49GxE5ii9E
ONg+haXBePKx5D7mkodqoj3/PoDgAYYSoJRdgGcz568wOTE4+hVOGTxdRBwSCkbYZZezsl8X/TlG
FWDk5Nrw+YtQlBXKCL044h3eiAg/zV4IoXj3O78M2AdYOSpQSBNb/oo+B5MW4j0hrQs2f0jzB4IV
LQfuMLisdrm1QzwLHXYQZnPLIxPiWNG5jXDD+qDcIDqZYedD4giVqYlCG2NdIpx17q5NsftATQAW
b6Nuqs/fWpj/HCH/I/6GpEXAyiexMUUxRh1hrihoRCtF6gbtg/6A7wN4NZjWEC8iiBkh/kUagwYb
U518/FVC0uAnFOPx6CeAR3mdVBfchwBtEHwoFA+cFh+PTDA4Hv/wyo1AyxPTLidBMTcxZpR7uMym
KD4FcxXTxFItZvoVdhq/Z1Pqj/MX3LtEa2T2x+wGYmOPJzQLGKPvYjqIjw0RcKuW2pNUV4JjlKBb
gEtrwDf7Ed/zQPz/4HvsBiqcTNopwWFISASfo4IcHnX+yG90GyudYm5xiyI4lJxsSQqsIcRC+iuF
NDTqFKvG6x37/4XvaRKpsyOmI0UniBQB9YAIbCQfW/sZ4kDYKAngNQ/tUD0U+E+IlBTSpmVzRRVf
6Q5JSW3QPsQa8fCmt+F7l2TjmGuIO2/GQN0ZM8lmjK9F2AhXizNmFc/YvufKgoWoEm7nzv4DFzGO
C99KPIuAtU1JOGmDdaZJZtx65yg25yT+FTEzlEvm5fRR5bkQnv89M5lnrEi7xyzI2d/AjmeLN2OL
yVoDJKzmdQLOWjL7P8wQWzTWbceHEkoY48FD3efiD/nEkRVt81/wG23Gl4uxs3iiwgwhmNkVvuc1
Z1lUirtSM2axzxYYAniB/MqZMeOcH/LZLbQ475jBjIDZigfWyYDyEeUMURWaH6EZS4yYfcGNzucV
TSgpLhWiHR9Pe5kxw5i3FmINLQuwn88N23bM0UhmLPYyY/fSjJm8MxZpmbEQy4xLzhTI7CsgU779
YDXzvI6IMbkC/vHcWC6KInPxYRHPYFDPUJyejIkZLOsZ1e29xRnFO4jtxbGxGQIeM5jGPoLZpf/3
J3zv4gX2B3duZ4iwzBASmeGim8FaoF6AFp8fhO8dXBt0Qc3KnYnVg00Pp6b4Fdpm8UCzh2Pg08fh
ydy8G2MgPmTz6eMdvMCIqHFGHLSoRTwjpUSnERbvDBEh4tTMYHbDTyn+iu/z/4fvMfUBpiigB2AM
AZKbPPyEHkBTHWBuAkgTYoa5LTADjDzD1TaDuUkReRA2EvARihd4BDdtA6YRQ2ztkD4Vqo9mJiR5
6YFYjhCjDLFkIQSPIDjPLZg94hcQMsIDIkgbQVpKcKBzgEsLvQtTTvPeo5o5RIp4Cx8WSw2w/Xh4
1welM6b3cz7YAd/DiyEjaUYygDdF5yqGwEQk9rBMMY0OZMyYPgdzxK/k6L/gQOIdMT0A/XVoIUlw
0h4RPRK7J4Zdm9CTMH3lIwiYh6AxvLWQPpAYGuifmmLxYrwnQUNj0v0BVp4HVtzf8D3WOUGORvkT
JCmElAIIsUjxJeiqCW2N3k5h2RKFlGGCaeKdZdBn0x+X6iWhz4EtXj4UE5dQS3Fu3v07foFmYrhv
gVLOgGLM6PKD3TdDnGQG23AG03IGI3FWznGCOU4xGG7neWhd5ZfqJSUQg+RhaoE1SUjQYSFhiR0J
b1UMlgEzy1i0JmHISOKAqsIpNi7D2LidPKPcM2Yr8AvJ+XeEpXiEhkGbzn8Ar8Pe5FaMw4C8gN3d
DkPFnL/CLmHT5LBeOmP+JC4ssyGdX+E/c6kZAuqwXecwo8xhwdKAmQYOM9EcphwcJODyxBDemtz5
f3zeuAHnIPgUYZMSY8sBIhpxqveR/9hBJyUObrCOcynIxV70C/6emmFyC4sZs4xNlbDQXrHz0WeT
X+gOp4r8BxB0UGt8aurBoROGizpLPJ8zDm/glo7xBLYdHT7TzKh0VjidcEG4dndu8WcghfHT4IDd
z0E6n9lvDrPfom/4LdignPjjMYjW4V+YtTjhTViYreixuQj+D08OMCR2SBxmaTp8P/EF30DZccY6
+FDcXOHoPUsX8Me0wMz0dvke+orsJOrnxwfLB/cNv+cbhl0pzhECsqPK+xij0ao/JWLuX2DbkPrm
V8c1PoH6x/DtxExch5utXyAWGL8cQHEYN3uM1CyO13hXfPO52OBE1eO3jcNtleLRHn5Cv6K/svGC
smmgcrjjfsJhsOFAc9OR8pwcbicXz8KfewAjOFE+AiMY6Vc+29Ce/wigkQ4ciYkjSi2UEpI3xgsL
LyK8wO1YysLtBDTGjukBHPn+xr/38WHcaHUAuM5+w/cg3MaYHh8icYsXVKjEIQ0Iu9kpgdwAK0Ds
Mm4kOrBmHcCDcCSKn3DY+zu+hxABVoRj3bwj8BT7KcWl5XB1Vmx1TBjSjWH4Osg7TBCbi4G7OXRU
Acmm/4nv6QGQNsCoaSF4rhHLQ0uckwfSQED6DzCtPDrhcK0Kq9qBCe7QiSoThWP0gowxzSGMFH6H
eeWzQ4yI96+E2138BGMKsTghBhdiTCFGCbZkhu/pAVjQEJ+Lygw/80OXIIWNmrlyYnfMLqUZkp5i
6uuMD4/AQoqRPUy7O8K8UPaAD15SgrmLMHj0Ff8zvgdXhQB8enYCFuWMhOCO5w0cXkwOb7Tj/QHl
CXjfuCU0CcnhAyDDTCME9wfADHx1tvgLEKNmuIh8JGTH1AGUEmmxD8p5g93ogbCNRqT/wGkgnUbL
RrLx1YHeiPCOGOOJMfccPEcZgAS55QWBDFs8huaIsRox0NdyOrDNaEvHcGlKdBAbDQj4P/A9TBTS
UTE+NwHo5wEo5Nm/4V/wDuRZ8TPk/xO/oDbk1G8bLg/Nd4IR0WATbM+E3oOhJZAuwSlLcAATsARJ
p1I+AE1agqBgTO/BavPest4fMRR24Fif6/z3KZRKCulSLBdHGN3vUEx4XAppU7vryj+VMsIMcmKQ
E4OcGOTEICcGOTHIiUFODHJikBODnBjkxCAnBjkxyIlBTjpBTrSrnWPyXEyei8lzMXkuJs/F5LmY
PBeT52LyXEyei8lzMXkuJs/F5LmYPBeT51Irz6WTqjZNK5uoKxEjrg2UJb4cT+etraxPdTtbqakr
Q+WGWgilXJyenIieVhWyNNoPTQX8kDfnwPKF8ZW4BH4jWgPWScmNSOFN8V8hCJzwq9alP2XXKAe5
+B3tMkvUJaSe3TIusy9ddh25zAR1GcyYMhPUZTCty6A7lxmrLjNlXWbYusz85I0+3F9hWbK7mcf9
OX/JZValywxGlzXHcFkJ2zEr28v4gAUGhJHO6EWMF+y6ZAyE4ns+TFgxCax1l9UgDhnRLfoVkRUq
uMv/8BqGdYKIGn8UA7ZcMDF4hNNltqLLrWoGMbrMZAyY3eaC7sH9TJcZq7z/gsvwWfceMAKzM1xm
M7oMtmV9/xKXV3rms80sPpeXk30EWMyDwHwRGDLLNwX3HZlnnvD4CeYqYTH3wj3nQ/7K5xJbiBmV
LnvS9D/xW0w5NiDA0xgoZYRfcHjVhemIipn++A7fU/VILDW37FBHNLeguO3kw1Zyy0qzPj2Ax1d5
6INFJmzsEg+gDbXj4uGXmLoE8LKff0IVWl6NEqQVl+oVwwWOSU4fL2gIAQw3bKqU3oy4KODNX/EL
ziT7B75H96gIQ6TR+5hMH30dIyAlZZQR6CmnzbhEmzjge4jt4x1UtpKIMrR+PuaN++XTHX6BgWHC
Sp+A6DARVWekj4O8Abn5Fn41A5LDa2cG+AXqQ/PitSnzT8cr/B7b0gc0m2Ab+rxHwV8wUDQOitEW
hwNUrKNK4cnRnDDLnmkvj/qAgEharHGKp+BFgGEGWKiAoDze1otEpHfQA13eEI83tECfuAS4WoEG
cIj4C3QZL3n6CCU3w1/whh3/gV2BflUxvQPTG6C1ike/4lE8dpYmf4LICAVE2EA8HALAKEEfgAQN
wIr3UJ8WGxEjrLiHfc1xY5d0LdphsEvDn1JLtT/j9wiUcQTIBdvaBTAM79xHefxiBGwWYqYOvf/D
GwEN8ZZ/0d/wCww0RHyGE6oCrmz/F+ASZ87s8X5swBB1y7mf7HLQOEVxU3+KdYgwdRG4WDH9hJMr
/guD5tgnWnZSFWwwMeFZU5dLNMDLf0VaPMJ6R5g6rk1c6qnz3/gFJoKzxONHKFGuxaFvI+BwHn0m
NnGEY5yAjMmJAWO0LQTe7/GujC54JinIuS7QctSIL17g9NG+ilHNOsWkx5gF0t0xGtKhBDL+KinP
NUwm4NE4zl66BJUHYYkIqxgDEkogaOxjwXkTGuJ60N8glgpV+ne8A0sV01sBFse0sbCf+LZh7MlC
k4HgSbGHEFMW0wsaKuY3QbgoohdE7OLBArAqI8x3go2U0E8wzXwWGHBafI9gAq+CHPEJKz4O8rKd
WrzA/CcYAQ/xTHFAEywwGY4JdmqCCYqgDxKaKXoPkPsIn8NhaL+83srazvQI4tPTI3ip5X/ie5KX
t+G8xabg+yfDrcDGHLBSy5OfIQXNIzYA6injqFilvkuxt1P0u+IY/eQ/8AvMAF1uKSqqxxwU/gu+
R9wvxiLE+NQYG4KCJxRnoyOYkrnFQ8ucLpBBUaG9Fg/TBhn+EIsfg4TnQilTtIlnXiQ0LLrDoUf4
hUKxDaJVxViQGG0TU5xKDk9ya8Ojh6EGNap0gzXHOVtk8vHIQwyOnAdPBcLwFmY0RSHyH2Ai8kwL
1hTCp8ZA3n9wUfgTWR++hNH5Esam8iK2ZTx0akB9f1y7HvVRAbeZW38eGmXyqws9in30WSoezONO
jDvjsbvX+wvexm4nj0vAXBVWlj7FTk/4HcvwUZ+3WPGYQ+ExC5j3d2J11ou/nOJS5UPgj2fepPc3
vM3ma43pvuLfcx8HpdcTj5opnrCcPfyKLSPjRCYeVBvXaB5zBT3EJvj5YeSuxGNhA+8Of4Szk6C+
P792vFv4x/yxzEzwmAHLufse8wM95iXy4Iu3FY+avtfE3mPuJ++a6jGPgTPFPOZSegxC975CD7m4
C/mc8V4ifLegMRy/LDzWsjD4d1jViDXE0EjERYmxwNwp9WC5ePA/PYRMPXQ0DIjbcYAaQewtxMdx
Vo8H19SDK+qXT+LWiweb2INz6iEQ4cHX82BHeaCKe7C+PDiGXqmZqKMhNZIJ8GYfG9eHYDwU4ZUN
LumTfcjD3aYYeIIHt86Ds8WSUXzWnb7wrxCHiZAV5UNtk3Q+BPdJH2MEaNMCg4PSDz3waTx4RB5c
V68MafDY7fgbLhEikmFiqaEfrQLP+uGRWxqBVfbjiNDgL6AxwTQLkAMB8tY/YSDBqgM09AcYqAht
4xrBZwTIF+L2cXDE70lSGgRlYlIDZlw9ZGLxDg28OaF7MgPkYGG5A9LJ9BN6QbOCNQuwDJQ6m9B7
sDAhPAWi2oW4Tn3q+c3jnMjz4vKm/wPTjbLqsAFCsJJp59Kx4y1mkj/ge8rdDdGgDx6Kj3kIqcMo
bFBOM/b/HfE3GO0h9WDj7vkVho7ZpbMIxws3epkciFlCyuMXfI+9RLMfkojY4BH2SkhTjGXATYnt
OsEZ8sk+hpWNRIjiJ5g5bvSyq7zYAkylJb/g93TvkCyQLoJGimDXJJCODn+EUUeYIDJfyaJMsWVT
9AKMwB1IITgRnEkdRGBvpTQB7OkML/Wd8tkx5iHGW9Gj6yu+57vjO77nBwwrEmPeYvpMDJ7blEG5
K+mkxRhzjObHEX0Oli9GNzLYNDCmwht0p8UvEkifgNPuo4siiUV6miwY3Jwg7aBJS+Kd3IYYTIJ1
Q+tzjIBn3PpALbxyrXk+nA8CQ0hsHvTp4YSEGHo6xo2aAs0bl7cjLSeHGzjiHpS+UkwQBhBAUsfo
afNPfAZmARvp79Dk/Ixs8XvMEt+DjADhA3QtfoHpSzF9KTJbMI//RN9aGgsmmFCJkDY9AKsEQNIM
+pQ8vxRqnpY3pRf0CLZFcfUl/G71CVNi0nIYk9+h/OLkFynrTZX4THlyrJqIVlMCWplTEDL7minJ
xP8Prl85ty0FJYcDHpglD5qxUN+cHvFXeEtctp/BjuNC/pnPB6eM+HP+99wG95GZyfWmz8JGnLDu
M/vfZ848J4n5XPbfMMF0ANiu9hkk5bNoks+AIp95Gf7/4xM9w4xz8x7obcIELL7nA7ji30PgazRD
RVCJ73WfeQL+EqeDFCJbbj8DZ4bbmwzw8JmG8JkDYD3iFuNjuUNIAD4Yp3P634AX4MQmyPzgKsy/
xy/AvuaYt8+8CZ95Ez67wXzmabCPTXwuGztYnF3NCjwkzGFPWNqxlzJl6zM/wGchkZAv2xF3WYiD
w6cKzQT5feJj1Nw+4SlMPmIMPsx5MKyKFwleYAE9um/oJxO8sLFo9JMpXszwwsELDy9cvPDxgj4Z
TaJxJGF2+wjWBOXO8iAqcYJ8iOFjgOVPLLwAy7gcF7uhI9ISMPF98IJ8WPY+qQxY7sSm9hEtwYaH
Je/D8fdhpfvl8Hx6Mz4lgBABRA8geoDJDSBfAPkCyBdAvgDTHeDp3Fz1aTsgFMTCOsX36Nebcvr2
3/ic27ibQpKO5E3A54J02I2IKfjlX4UwWTz6FbYQt8XZMqfYwehAGEF23qEMlmEaYSZDeFI03hBz
EtJP6FPo4+nPY0jGsa6fAS5x/jDD6SKsYIiF42hthO9DTExEGcf0E0xDhKmKsJARFpJXfUn+hOsT
E0UzEGGFI4wvAgmeDi9JQ/JGsLJCLi+EirFPYsgSQ5YYCxm7aiseGUDEACIGEDGAiAFEDCBiABED
iBhAxAAiBhAxgIgBRAwgYgARA4hoAIhoV/vIZLuYbBeT7WKyXUy2i8l2MdkuJtvFZLuYbBeT7WKy
XUy2i8l2MdkuJtvlg2yXTqodvcf/8MuK4dyl4yKjimjxAlhQTEASoThAhxAfQB8halYxu8P3iDmk
BO8ALUrA5fAIsuLhhf/GOyBCQn/MK+whQOGP4UcDWEqAdiVAmBIgTAmGllBjC2B1CfDVkN6MoSX0
Hl6W8BdocbgFhH8l9AKkD0L8EnoRoigpJE4BsXEc9AQITjGGFKNKJ1ABABWpqmEI6gVzQgqHnv4K
C5ZiMCk9nZ5FH8hE5fAsR1q4UcciQwkw2iQgCB2Vx7jlzi7aNGJlGXlvHkYHShkBI+GgLiNbJKwS
cBL8AS47EyfgD2R6K2A+IOtWVojKNkjwV2hd/pHMtAiYtgmYigq4DAzCCpiqC5jeCtiOY11kEt4l
jMD/ADgVhX2YukiYUi2sYeqxQH/BzIqIAXjMNkhQrTLhRemYFVaEVPg4mKoKcE1hCZiqCpiqChjc
FnAR2LkNVri3uAB/h4nGP2KNc8I2QHAPIINt2YDZdrwhEi/yz5owFfsIcDWn36Dti4/AaO48c+CA
uo9QKIC5WV7I8C9G2Eo4o4ZF/dPoP7CL2GYMWABrTJYNXP0JNEHAIlYszpsEj3x6sWngHwVAuQKg
1QFQkQCoFlRg8WKKFzZezPDCwQt4+Ggggy5QMZ7Nq15P1viefoHanDaJAOm4nWH9N3opEA2A/phv
bYBmAYJMRHcIcAhhNxc/wRgxs8CL4KckKPRavAjwAg/10egtxIT4mFgeXbL2+J5ZQtyyAAqQQt4U
n1oYHbCeQvQXCfEe3sIt4MrWyoWdWmN/5v0wxV/z6scsSum71NHtitsH1IXDT18yVlCf8o8oEBrT
Q6b21LJ+ILcuGD9rNVT4XbCcGc5BABXHCwqzDUVTqQcVqBulW+rbz8LcpLI8BtCkTDt5qBfqUUVs
lNj10FkvZTrLY628PM76QzuO/AWP1fMK9hPU+WQ15vPveY8Ti9mQ1i/sy3+yL6yJmsUictZv7AtD
Ltge9SwmqcXQE96Ui3VWyT/cg7DskBUv+ID+CDnZJUXlOllzLY8ZyJ7Fyr1bTBNaLOpuMTTfYo6Y
dce+sPFbbPys6ZVnrdkXFj23GBBvMXVmsVaQFmsJYLEIONvGnsX8bouVDmVtCTxWXdPj6CIL7nsT
9tETtusm7AkTNpcTNomMGpuPkM+BxRWNh5roHuFpFtrKWFzRFC8wQbyKqIVOPhYQaourluJFhBcx
XiR4kfIXfCcR0kSeHNgGxQvI40MeH/LQgvmQx4c8nOY2YRM8YUs4eeArzRaYAaIMe2FQNQNnGZrL
AFRmuDDDiN0ezL5gxgSzRNidyMwRZkEw5cHOJ9M67IgyncUMOuZoM9uEaQFm+jHfnYE6zFZjrhRz
WxgswzAZ5ikxm4+hKQziYGgGQzkYSsFcL4ZPMDyEqSTm0TNYgZmMzKBm9jVTEezCY5qEee/MkWRW
OfNn2d3AFAhTNezqYTY4M8mZkQ3dghVH5XGPGCiTX5gu+S+c0lQ9Gd04I8YZMc6IcUaMM2KcEeOM
GGfEOCPGGTHOiHFG8s3SSeBESH31qfj+C2KbKUyrNlNo9MjPY8sRPwOKG3E07Y6gcm1povVri/HO
ttO4McJUcusMddu+4n7aPmSbXJWODnfZiIEy+8Mum99/Ho8nejWRUdbNxamxSQVMcOujq3z0F6CI
ZW22D3dDV/ugnWDtz4LVqcX0oWBVLaVBtlRqapq4Ete0gwNqCb0X3pitbm+DdqNvf9hsXbWA3V4L
NDz/fVce5tZ/86xrY/O5upoedlvB5N4IthKdOJpoqxVHcGH6OrkzXad2pvOFMxDP/8Pp11AjziTB
2Pkt4GkEWpM44iBqo2IbbybTKFiImeXpZfV58lSJr5cq8Q2Go363+3rtdl+FOenoeo04xpzs0px0
dDUnHWl3wHSs1R3AxTHmpERz0pGvYu9X+33+C6Eza4/t3wmSSw4QMpoYO12h5cJVhS6WSxVxmirF
iV46emLsdPW7faLXbp/I2+2WXrvdMja5+t1u6bXbq0bV61Oe73bZzSjb7ba7/ShfE4lbX4xsOsfW
q40w//+xNfauVptl9l3Uh55M266/VKDpVAsuqXAN9Y4yEHMqZIa+VUrY7AT1R/IXx1QHwRufUmOR
KLVIpnpZJFN59retl/1tm92ufrfbeu12W95un+m122cGW1G/22d67XZ55KGpo9dud8xuV7/bHb12
u6Mi4u/qGulzJWd4T129TrxrrLkuGQ7aphC4hqMvL+LvSksWNsftTR2nzQXryjMn9eKiTz1jTqrf
7XrRpafy6NJTvejSU0OX7mC360WXnvrSdrutFzHUHpvdrny323pR7Gx5FDtbL4qdPTFusvrdrhfF
zpZHsbP1otjZVkMQjH/OnlZjdJ8d5sv5YZ4/dDO/zYrflo9bz/eHP2+Xq5tVtlQyAW3lM7ediPPf
dhVkKwSp8pn7QZxC1ouUatcv9VRzp+2y+fLxb4f5IdNRW76QzthKHejKF2ugmaasI11T02WqlyXV
sGB0ts7YxOJF/oynQELxy7vV/rDdrfI1UTHWOqIY+0jAma8z4ZIPuDBRzKqLMzP0Ir7atYmv726q
4+bLZvttM+K/61zBnZPHaDnZWu7crHep6mrL88YOu11vr+fr0fxw2K2uj/lbPy9y73G/zjXpaLPd
7PMfb26V7vnqEsmjRNl6EdxtQ3AXeZ6q7zAl9UpFy9WeaeTpSoHyBnYOFPdfqLTljrkNff/0k73q
qu9izUBbvw4w6k3zCpOg1zJ+ePpr5kzW2eo69F5qN35NCbBt1HExkM12mf9ZuXQdtu3qiqDr6afN
dPDVKpxqVW6aMFHe2PHqJGl/FHxdLUi/Jfr9emqL2MLVcbMqkvyvip937C2fl0eir6xXeqw9tPRY
/RtK9dCArn1+urtEhMsj10j1dU0f8036mDzr1Dc0I5VevV7VCOyZwPBDoe722WG0zN+jhlVUTxjT
P7KNoph8pB4VXfAvFlU/fEyg/EKuj4mp6NulWTXRtafwREVP4clEW7OKRNN8cl/d2Y4klLeOBss2
uUy7eSGgXhiCUzsc0GbYJq6v5sJ/Oe+NijV/2eZnc/M5Oy5GX3bFly+7/CZ+qvD5Zb+YOeOJjlFT
0bPzXlHVijOkooHLRNdm9BPTjL5Tc8rS1ZyyhGqmqhXMOwayW1Rvf1vZ7PrZMr2mZm1SYbuigpZz
OjqRp0kFdRFSNTxczW7XnU7jGxBvtK7b0G1opolQtT2Y2+yjPAgBFpIMn18VYIwJauRCtpmtPhgl
i3y37yt6S8Nl5OrtK2MDdxv3ri9J4y3Yxc3Z6lBOdXVtTe+RTl3bqa6u7VSCIfKw2x62h8cHXQLF
z+VRAnFN9Y2NTGUaJVOT463EEni+paXEotyeQuY1pqZNNMpVp0xsXVWJrTNe3hMMVVvMs/Y1u/8Q
f+jSAtOrM5bt6ohKucPJS6y13k12uRrNr1HeX58SEYRMup5qSKgZudcGUKokSVNbTa92F7YnJd3t
4+tXkb9tSBTqTrAep9fkmai00vRq3GJ7IhHE1e5qfjxsR8lfRj93rc1eySIxXVevFjW2r87EnekK
bpiOvp366zNdIyYzWfpulH1/yBYHNT0OmgllToPSm16vplW2imTtyUzfyNlMJjAwUzG5jq5T64h3
iU+02K8GRFNwV/zag3JtE0dXs8KRBn/N9OoIOBurcy4cfS8TR+Zl4hgahkI7baZXu8XZWJKH8quO
HsqvzTyUBtM66TI5GyP+WS9dPpGTk/18tMbrVKrN9GqnOZvI0Gb6gS0/y9Jjb5oJmOlPxTtG48mn
71qaSufFlMdk7wnD5fy0XFZhdeGTU1s90YOevu38EFWTTr1u0bTiw1kppYBQf9EqovmX+jFNY1vJ
VFCaVr6oL+Ug7txqWvSie5g0npMGeko7U/0vLSKj4k7jtBd36lQuKvNyH1qfNDa/THkpfW7caS9u
3Kn8oPDLJ45udvP7rB+65URWDdei8lXyq1YX26+mUkDX1pSlEwLbQLhy5602+RHNz9NxcTjuss+L
7f39dlP0ys2fd8h2N/NC8MV2vc4tqfzZ+6e/mq/X5Y9knw1BEiq51Vf389v8L293Wbb59LC57akR
0NGJFLTS1Y7ly6XSR7JGCkOFhE3vKz39wzZx6UazXXzSYrs57Lbrvebq8x1RpXmKqydb8Wo8nujk
Ir6QyviGXej4d7ajbiq1qajGVhdlDr84sZoY6XWkanah6XS5KrpRtw9PrzW/TM9Lafz3Lm6S82uh
2yXSQMqGRrCWlrlCu3w3X+Zft8tsvdoftNMer6WTb31bWlrfJjKjWg+93nvSU4Zky2g8M+HWrKWl
jd0OAd8Ub5tvFtlol/3juNrxWyv7fsg2+9X1ar06PH7O35OtbtUbnLWFk8SW+9lkbMq3hX5WmbDZ
fqupNKPFCvfmgcuvnfvVZrve3j5+flgfb3Pdk//s+6H4gJXq019BGPn24bRx64m+O63dWL7TDnVA
hQ2n7sy3FaaRAtbQQf5ZnH98bkr38/uHdfbp8P3QrWIr5VC+SYz7KMYMn+pXQrmObOV23We5qXFY
LfafS0dUtkJ485lKQJC3RejtAejIrX5zHWtkY7+xEDKf20hLNHtmk0tQI0bmr4oMb1tLYNaWCTLo
yBxqQxsqz8dytZ9fr7PliB6KnyTsB+qul2qiDCdcqfUlpVdaWnV9X20TSTcFtROohU7VDVS3Zdzk
2tzjv7bS5piy++wwL0qufy5yVa7n+wzb73PxzdX8ens8XF2v55svCvV7Q+EMQUWcMmq4BEpMdSnC
tbQqZ1raujN5tq5+lq4gO7fi5rrbZTdX2f3D4VE/xfhCtqozwRNMrtfHbDQZj7/n/980JegCDWF7
bP/uvWkUrNxerLFKQ1W5hN3KJvpsXGCvyIGfjRZ3s24+00yBpdRdi773ZFJhL6w2X+fr1VJTi+FU
Oik2Y5FmNF9tsqU+dcteimR8yG7shNO9p5+lUFm61mdwn3swq5tVpquOeC6f/BiSo6VfXa+3CKOF
f77NDqNiO+aff7P9tD9ey1MXbVRU/d1R/PGn1WI76I7kZy4MiQhIGxu7+QLKUJ3PFYZ+ql2YfFKv
xyZSvqN2dBFRzMmTZ7lL0Wz9P6jDxf06QwMcLdEAR4HFe9zobvO+lHBAjQIEzYiaImXVwdfhopq1
Zr5Dg6X+DlGxyNqvWBur6Ff9MDUlHJX74/qwKjIvtLs9nklmkEXlmujZ/GvlelaXrCVS5WqJn7mS
9UL2neViVUj8lPXhXaRrNh5G9+eup/K3k93S6sp6JpS4GT1dJ3m2j3ZstDdlM3ZAF/iKqyW+4srF
V/a7Rf5W/eziE7lMgSzlVvHJ7GtlE1eVq40uvl6udOSelGJJ5t08PajqXVn9iK9Xmy+0mE/frLfz
5Sj7KiUvsHWct7ae9jTdMrUti3qa+8NlbdSlu+Hsd1FFoMK07A+PuXG72O9/elg9ZD/mS7b4ss7+
dTn9N1N1QOQ99uFe7PAuEySbyM3X4XiMvSbcT/C09F48+bbar3pevKoqaPiSala2GbpSpKXhjDWy
S1rPhfFlu9CNvpa60ZerG/Mf6ejHlmJJ142TsV668WnoWutGPmMKdOOZuTC6sQPdyFdcM91YRaq2
u+9XPXWjZLtxv9itHg66NaR7IZVkhPNpmjWOBp6Rz+hGhbrxxW7URDfWkarl7mM/0tN4PJVNvpa0
tNSSliItyedab1V5VkijL7vQl5aW+tJSpC9/1fh4qLIqp1rqy6lSfflrH/SlsS810JdTLfXlVK6+
ZM/R0bp8Jpl8XWlrqStt/fIXRaxpLUJTnwmyUlSCLT9h//xCKWoRJWtSBEzIr9rqSVU25UxLPTlT
YVNipttrr0tuAyB08nXWSDMt7Ulp9SK1KhSJCpGdz17NTV7QA7U0xk8Ek3/HOFreMY7JButMlzpa
6lJHiTaon/1RT1M6Om0skVMlNdmBzVtP99Svut4wqrwYV8sbxtX5hml6TNzLTZFpsQl0u+rcJphT
vU3SidACVJbGAaazEsrXrp5eTN+iO/d8l83VOFYNZ0sBy/fFPEi+ZxpoAa/v/pFijMOTojU9/Xqw
iJOtK6kaL/FoohOqxsTRYAabaj6NL+u3hJR/X/ta3ou+ipgOTfqvGm+IXw0rqLMbx9fyxqmarfin
zTL7ni3j8POX7LHYWl+z3T7/4FzDLLKH4hH74pPkLFXFhys74X3Q/Wprz5UrtD8+tFAQgzDAm2mW
ipu8mgI5tx5KHlxXc4l4eDvzQEY6cXujpXrKbn1tsdo8HA+j5C8yYIyeND9tpmZfTFyFxekFD7B9
srA8s6l+ynBlHzT/aAnY02Qs3tFW65s/zUu3m6zxtGuw/+opEu1MybdEkw4eTLRMXZ9MlELctVbo
V5XXt37UoTaT1pruKUXXTDS+hyfy7mGdgOnJpHezN9Jr/kaazGA9raDvPaw66D7RsjjCpF5xhGyz
2C5Xm9vP6+x2vngc3V+P/j5/mOc6Mv/Iu9XN4ervq/3nff6f0dNbs1HRsWuU7Xbb3X6Uj+32uJY4
DcLEk4gP6AMO1Jiy/P/H1ti7WhWwkh6ZJ6ezKTvy0nRNau/H3QAavTbbUW/dbMKOtDZ4kpoRiYHx
mlnDakbYXOvvLmq/tbUN9PSbLHmWv6WT3W/pMXs1bmRNTX7luJuWxX0mU5Mk15nO0rKAzWQqTxf8
RVI0tI0e+EutQGNTtT3V6Q6Z9nPfaHqR/EVlFOfpv6P54rD6mo3wO50ulrcFNHeMwjvm7WXQ5Lpp
KGCzTZndPxwenz78p4km5+RUpN5PqiVJ5f+qYQvwplMkbJFPd46E9LNX0y8R+/6LzjGhv7SNCn3U
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
wFYPYJgFMMwCGGYBDLMAhlkAwyyAYRbAMAtxQEIckBAHJMQBCXFAQhyQEAckxAEJcUBCHJAQByTE
AQlhA4TY6iG2eoitHmKrh9jqIbZ6iK0eYquH2OohtnqIrR5iq4fY6iG2eoitHmKrh9jqIbZ6iK0e
YquH2OohtnqIrR5iq4fY6iG2eoitHmKrh9jqIbZ6iK0eYquH2OohtnqIrR5iq4fY6iG2eoitHmKr
h9jqIbZ6iK0eYquH2OohtnqIrR5iq4fY6iG2eoitHmKrh9jqIbZ6iK0eYquH2OohtnqIrR5iq4fY
6iG2eoitHmKrh9jqIbZ6iK0eYquH2OphudVTyJNCHu6+2TgFNk6BjVNg4xTYOAU2ToGNU2DjFNg4
BTZOgY1TYOMU2DgFNk6BjVNg4xTYOAU2ToGNU2DjFNg4BTZOgY1TYOMU2DgFNk6BjVNg4xTYOAU2
ToGNU2DjFNg4BTZOgY1TYOMU2DgFNk6BjVNg4xTYOAU2ToGNU2DjFNg4BTZOgY1TYOMU2DgFNk6B
jVNg4xTYOAU2ToGNU2DjFNg4BTZOgY1TYOMU2DgFNk6BjVNg4xTYOAU2ToGNU2DjFNg4BTZOgY1T
YOMU2DgFNk6BjVNg4xTYOAU2ToGNU2DjFNg4BTZOgY1TYOMU2DgFdnkKUsiTQp4U8qSQJ4U8KeRJ
IU8KxzmEmxzCTQ7hJodwk0O4ySHc9hBuewi3PaTgCtz2EG57CLc9hNtOsasQbjsFhCLIE0GeCPJE
kCciXALyRJAngjwR5IkgTwR5IrKN4UqH8KBDeNAhPOgQHnQIDzqERx/Cow/h0Yfw6EN49CE8+hAe
fQiPPoRHTyG0CB59BHkiyBNBngjyRJAnIuwC8kSQJ4I8hMFGkKechITjufzNLt7s4s0u3uzivLsY
oIsBujiDLs6gW34ynzEXM+ZixlxoABcawIUGcKEBXGgAF5rfheZ3ofldKHwXOtyFDnehw13ocBc6
3IUOd7EBXGwAFxvAxQZwcYO4uEFc3CAubhAXi+ticV1oEheaxIUmcaFJXGgkFxrJhUZysTdc7A0X
e8PF3nCxN1zsDRd7w8XecLE3XOwNFxrbhcZ2obFdaGwXGtuFxnahe93S0yRRE5pwGik+MIGjSiMN
8eaEZgwyh5jVBM9KaI/R52Ck5Qua8Kc/TxC/yR/NtnEKcCbGMc8fzUaRfyz7SfHi6XNSqK98VzMl
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
0bPJrxDEm+hOIkA3EZcb/Td0JxGgm+hFoheJXiR6kehFphcZzJmw3gywDLDMSzPAMsAyw5vBk8GT
iVL22ckAywDLAMsAKwArACsAKwArACsA42QFy5yxuhmrm/mRClY38/MSfkICBb8KwEoXlSoqTVSK
qPQQpeBHBahF6fVRen2UXh+l10fp9VF6fZReH/+DMYJwK71Gafrxd1xWL6JU/iiVP/4n31a80v2j
dP8o3T9K94/S/aN0/yjdP0r3j9L9o3T/KN0/fsrD6yjIsBal+0fp/lG6f5TuHz/nljpi2gREWdii
dP8o3T/Kwhal8sdr7qyDLFNblMofpfJHqfxRKn+Uyh9R+SOmtoipLWJqi6jzEXU+os5H1PmIOh8x
tUW0+IgWH9HivapfRIuPaPER/29EeY8o7xHlPaK8R5T3iPIeUd4j9rSIPS0SEBbR0CMaekRDj2jo
EQ09EuwV0ccjERMRNTyihkdiqyPad0T7joRkUchwvgKwADA/OpP8pSAMIAwgDDzH+LGB0EBoIDQQ
GggNhAZCY8QMYAYwY8QMPAYeA4+BJ4IngieCJ4IngieCJ4Inggdedu51RnWmclZxyl9Iy8fZBzOB
J4EngSeBJ4EngSeBJ4EngSeBJ4EngSeBJ3HYyQXe8nYQZkSg48lAzfw4IwIdavYGmDOYM5gzmDMn
UhKHTLyDmV5kepHpRYZhfRAyw5sBXxjeAuYC5kJ3ClALUAtvLzy5ALUwvAVgBWAFYIXhrSKnzkSd
hzoLdQ6q+K6jnSRykkROkshJEjlJIidJ5CSJnCSRkyRykkxJ6bcMjFAn2ZSSBEySgEmyKSXJlSS5
kiRXkuRKklxJkitJciVJriTJlSS5kiRXkmxKSeIkSZwkiZMkcZIkTpJMSUlSJEmKJEmRJCmSLumF
hjxJnCRZkNI7vq2DK3GSJE7Sl3xbx1xyJUmuJORKQq4k5EpCriTO1FNe1by8akLSJCRNqpLGvPJq
QuQkRE5C5CRETsK7k5A0CUmTkDQJSZOQNAlJk5A0CUmTkDQJSZOQNAlJk5A0CUmTkDQJSZOQNAlJ
k5A0CUmTkDQJSZOQNAlJk5A0CUmTsPMkBExi30OtWvNatQnLT2Lv49VrEyInLec1M/p4djyANx5o
3G6AN35sgPezfZkTeJnu+Om6TL+Mfhn9MvpljLPRC2OcDfDm4P05YI5gjizNmVdEwEfAR4fK2yOY
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
ROCBmPBAzK/gyYEOBnoRkKnGSwPgA+B9uTTwBH+g3+VfATUAFS5hj5WRImmZUwOzz47PhQ+4j7OB
0EDoY+g9rRbTXAXV3HAYQDX0gMgYGpj9xxHMEahLA8wRzBHMEcwRzC7DXCgud0EJy+0M+PIc+hUZ
8EgvIoMZAR+h+cjkRkYs0VMXb8vb/aW8KzlUBrNuDvLy0kQvEuATmJO/nSlwYAsMhsXx+EuXJzPL
aTqaaLTbRbR8a3Twjbvnp59en3xyvnt9Nt/12fXnB4v+vVusz9Xu8u+7ky/Orz8jOPHk+qu3uzkB
3ydvfrr78np3+eb0NXe9u/5k3CP4l1fXP73ef/eTv5z+/VRf/cvZu88//+qnzSErYD9rzzZHCe5H
W6vhez/94vzN2cUXVyebpntRMW8PyEoPziH6qCNUOz/3/b6z+LQj8jEMZnPMGL+FMx49iPaxF9DH
CeH85tDeQ+U3fqKo2Xt06oE5gL8nOv5Jo3Lv0fvjIOnNh0jS98mpfrlX+fbYzk42p3c6VnE/XjtK
heOoGP12bzn76s3p5+evTs4/n9n1a/9enSgYfnd5eXH546t3L2+7IhyFsnMkjHfwjdpRKEMf9yp/
X33rQyLBf9r0/8O2/e3+3XuA85sfvxzH10XHA2oK3FW9ucur1qiTNepkjTpZo07WqJM16mSNOlmj
TtaokzXqZI06WaNO1qiTNepkjTpZo04+4KiT50jy9nQ2z/vbuh/DPLRmb1mzt6zZW9bsLWv2ljV7
y5q9Zc3esmZvWbO3rNlb1uwta/aWNXvLmr1lzd5ypNlbni3v/1Ef4TnykwffeHrr2wK5bmHcep4z
Hj/0wwhraOcjnZl7kiztz5ho/a7Rjk+YZf1RoX0gKfefDubTnjm6h+PkINHJ903k/8np+et3l7vv
Ob1wXNUWvpffbiPhD+Z/uyvZPRjsg0vy3KSBu3j1nvBw22Oz2fdWD2c/OTuFCcNYvMz4pt3dnNzZ
jYs84ehfXMn4yokBwlKR2dISKT95pLzHxXvwu8e8E8Y+EcY+P8cx47LPuNoTbvQFGHiyvx0vfPbb
6U7G+Z5xrCcc6xnHeqZfhX55d4o36FchUMR7WuhgIcrF+17oaWGcC6NaCCHITJOPT2E0fKAKE5f9
OXSw0MFCB6tbyyPUsr9Jw1QHqQ5RZli5rNGtY5J/xrf11wr8yjJHZJkjsswRWeaILHNEljki/zsP
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
IDswqD8zhhP9mrirCrRGL2jUucYfxaKjTaw1Qt/wcm1prdHTGnFm83O+VRcbsWgjFm3Eoo3kWPNr
fUhqNf/OnRqTRnzYiA8b8WHze36k8WokxxrxYSM+bCTHGjFS8ydu0cg2EmiNGKkRIzVipEaM1IiR
GjFSIznWSI414o1GvNGINxrxRiPeaCTHGrFEI5ZoxBKNWKK5ApRmuRFvNOKNRryhY3ymY3zWoCLm
Ol1iEs7zGef5jPN8xnk+4zyfNYtmmI0rA42RxkQj0PAfRxqJRqZR6QDe4NCecWjPOLRnHNozjugZ
J/OMk3nGyTxrFqmVefsEsAlgk38FsAlgE8AquetAnulAnulAnukcnukcnukcnukcnukcnukcnukc
nun4nen4nen4nen4nen4nen4nen4nen4nen4nW2RJNn5tL5apKzjd/PlCkU0reN3toWmS+2SaFrH
70zH70zH70zH70zH72yLklZYuLRVty3iQtty2yIltAU3ncMzHb8zHb8zHb8zHb+zLTJBu23TOTzT
OTzTObz5W820DuSZDuSZDuTN32r6dTLPdDLPdDLPdDLPdDLPdDLPOJlnnMwzTuYZJ/OMk3m2XRhA
u3PjiJ5xRM84omcc0TOO6BlH9Obb/TeJRqZRpwxO4KyecTLPOJlnHMgzDuQZx++MU3fGqTvj1J1x
6s44dWecsTOO1hkH6YyDdLZdVDIZDqytH3qGDsmZzsaZjsRZiwwsCJ9SfybeaFnvS71NTKJDclaP
xLXVxGA6AGc6AGc6AGc6AGc6AGc6AGc67rbXTusuvau7dKsH4Lq6PTcdgJv/10DqJJzpJJzpAJzp
AJzpAJzpANx8i4ZcJ+FMJ+GsnoTr6rbedADOdMrNdMpt/laTo+NupuNupuNupuNuplNuplNuVk+5
dXXLbzrlZjrlZjrlZjrlZjrlZjrlZjrlZjrlZjrlZjrlZjrlNj91olEnVUyic2/z5TrJcAsH4MwP
wHXVSGAcgDMOwBkH4IwDcMYBOOMAnHEAbn5OopH5yt/ur/DfFK74j7lS+YezccbZOONsnHE2zjgb
Z5yNM87GGWfjjLNxxtk442yccTbOOBtnnI0zzsYZZ+NMZ+NMZ+NMZ+NMZ+NMZ+NMJ+FMJ+FMB+BM
B+BMB+BM595M595M595M595M5972g1NPgXbVOmI6CWf1JFxXTSSmA3CmU27WwRKygJiOu5mOu5mO
u5mOu5lOuZlOuZlOuc13tjQ0qjr3Nv+vwe1gEhk4TCfhTCfhTCfhTCfhTCfhTCfh5ltGGpoNnY0z
nY2bL9fhFdvokJzpkNz8rdGo4y7+0bE507E507E502k502m5+RZorloodH5u/r/URmS862ZcR+tM
R+tMR+tMJ+pMJ+qME3XzTQ2NLV81NOAx7byNw3bGYTvjsN38G78y0BhpTDQCDaMRadDN6A/052Su
MAmRdSP6Ayvtwn4c0TNO5hkn84yTefPtwJgAX/mQI3rGET3jiJ5xRM84omcc0TOO6BlH9IwjesYR
PdMRPdMRPdMRPdMRPdMRPdMRPdMRPdMRvRls/a0YUmf1TGf1TGf1TGf1rP/Nc4dTPXGx6Cc89POk
VaYfEix82ILlD0G2xoqssSJrrMgaK7LGiqyxImusyBorssaKrLEia6zIGiuyxoqssSJrrMhRx4oc
a/bYNRJljURZI1HWSJQ1EmWNRFkjUdZIlDUSZY1EWSNR1kiUNRJljURZI1GeMxLl2fLHPiixzNXu
8vz09fn/flNymYt317vL+drjZ+G8R4apPdK/72oqt1pH+H2N4bdf/esnb366+3KP9c3pa+6qqez+
5dX1T98XGv7L6d9P9dW/nL37/POvfto9W76vA/XrR1urQSo//eL8zdnFF1cnm6Z7UbvbH1OysMee
yqNPWPhYPHiLpLPPPCXfQ4VHlXPxDil/T3Zfvt29mhOcHWNC4n9Ed9DMxI9Q7f3jql3/8SUz/Ie1
af7Fq6urk3f7BeLk9NN5BK6uv3q978Bnu931T779q/cITl682DxfDvMn6dkjcdv90v99UybCYx3v
O/fhMOvY3QRdlWGzCLuvNvn8GJ9DMzx2pfLWE/uhJcN+Wtp5/tH571//6ud7CL/b/e3d/osbhwHO
dq9Pv3qfQvLqp3PWyG+D+rUHfPn56/l3l/r35HqvDux18JPTl3sJvDu7ePP5XujfUvB+R/i/qbyU
qbyUqbyUqbyUqbyUqbyUqZiUqZiUqYaUqYaUqYaUqXSUqXSUqXSUqXSUqXSUqXSUqXSUqVCUqT6U
qSyUqRqUqRqUqRqUqRqUqfaTqfaTqfbTbB9xC1I1o8ispmpQ8+VqVpF9TdWgrMeaVqM1VBZq/l/m
I9WHMtWHMtWHMtWHsn4xoiWMaDXigYpR8xWMTYpkmBs9v/EftzQ6Gv6bgQbGrxr40BH4QFUp6xdj
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
nCWmVCWmVCWmVCWmDCWmDCWmDCVGhhIjQ4mRocTIUGLkIzFPQzIQCk8aEiMNiZGGxEhDYqQhMdKQ
GNlHjOwjRvYRI/uIkX3EyD5iZB8xso8Y2UeM7CNG9hEj+4iRfcTIPmJkHzGyjxjZR4zsI0b2ESPp
iNVlqK4+dR2pS0VdDapZTblGTLlG5qESaiUdMeUaMeUamb9VV5R0xJR0xJR0xJR0xJR0xJR0xJR0
xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJR0xJRrxJRrZEaqsVbSEVOu
EVOukflbTYCSjphyjZhyjczfalaUdMSUdMSUdMSUdMSUdMSUYsSUWcSUUGR+gGZTmUXm/zWpSjFi
SjFiSjFipBgxMosYmUWMzCJGQpH5UYGG8VVPY+CryJWRxsRXiUbmK39g4Yo/2Z+TaPhdpd5VA+4H
Au5JQzJfoTvVJD2wQSUxiZGPxMhHYuQjMfKRGPlI5tv9N/SrcgtpSIzsI0b2ESP7iJF0xEg6YiQd
sbqqVvtZXSDruliXQ2UWMSUUMSUUMSUUMSUUsQKT1B21MouYMouYMouYMouYMouYMouYMouYMouY
MouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouYMouY
MouYMouY8oiY8oiY0oeY0oeYcoTM3dZ8KVmIKVmIFViiWgSUNcSUNcRqjpABW4ByhBipQYzUIEZq
ECM1iJEaxMqyzFdrARlBzDOCDJyRICOIkRHEyAhiJAIxEoEYiUCMRCBWbhA3d01AnYBa838MnLgg
/4eR9sNI+zH/hndNYK7ETf4PI/+Hke3DyPZhJPmYnwPUyRvOouVoau2ukQBrJMAaCbBGAqyRAGsk
wBoJsEYCrJEAayTAGgmwRgKskQBrJMAaCXBkkQDHmvpvjTNY4wzWOIM1zmCNM1jjDNY4gzXOYI0z
WOMM1jiDNc5gjTNY4wzWOIPnjDN4ttR/dy88+aAqkks6iuUJMlg8dvHJJ47POEiJy8dK+naHLCHf
MC0fBPhHLuH5JOAflrPt1TEmknv1kLxLu89f7s7O9o+5+ZrzTy5PP1/m4er69OqzOSfL+dlPh+m0
a85240nbNM3+z7A7mZqzlyevTnevmnE3dJ+Mu8Mi6F+NZ6d9d3bSvOp2J227++Tk5csXL09eji+n
sZ1OT19upmPJEvr9Cetqlrg5b92XT5DS6Xmz893s7FFn4Pu2ETgEt9xyIG7z6leXF1dXf764PP/0
/M2f355e7q+dfrp7uu7ehjWPoLurEvZhK2F3zkl4hLrYgfrwpCrZ4/bh/hLn1eXubP/vXj288uX9
iATiN8F7kvyjD8+V+gwJlJ+3i7edl3tKj+86UUB90zgQBKFCp1GFTqMKnUYVOo0qdBpfYM5QuESs
9U1VxDSqiOn8rZxVqmYaVc00qprp/K1MM7WsqYqYRhUxjSpiGlXENKqIaVQR0/nOloYssSprOv8v
S47qm0bVN42qbxpV3zSqvmlUfdOo+qZR9U2j6ptG1TeNqm8aa31TlTWNKmsaVdY0qqxpVFnTqLKm
UWVNo8qaRpU1jSprGlXWNKqsaVRZ06iyplFlTaPKmkaVNY0qaxpV1jSqrGmkrGmkrGmkrGmkrOk8
GJhqa1kOCp3GF4uVrhbqoOJppOJpfLGYqWu8BqVPI6VPI6VPI6VPo5c+pdBpfLFY6eRunxvc5bbo
yO3VvTnUyI9IxdNIxdNIxdNIxdNIxdNIxdP5dgi0BoN4DVSveDrU8JBIfdNIfdP4YrHkJYZ3cjz0
q7LNxh8noLW+qcqazpeZjnqoZOOPFvpa8XQgOEQVT6MqnkZVPI2qeBpV8TRuMG4nuluDQ2oN1Frx
dKDEZK14qkKnUYVO528rUvGYKp5GVTyNteKpCp1GFTqNmz9yp3dOnVF10fl/7wzjn+soietq4VHV
G42qNxpVbzSq3uh8i+ZFhUejCo/GWni0lhlVLdGoWqJRtUSjaolG1RKNtZaoSohGlRCNKiEaVUI0
qoRoVAnRqBKiUSVEo0qIRpUQnUGJEFRLNKqWaKSWaKSWaKSWaKSWaKSWaKSWaKSWaKSWaKSWaKSW
aKSWaKSWaKSWaKSWaPRaolQOjV45lIKhkYKh0QuGUic0Uic0Uic0Uic0Uic0Uic0ep1QrwrqxUCp
ARqpARo3i0jJmN9rcIiqgsaGpUChIrGWB1Ux0NhARYoYiY0Tk3CqKmisVUFVDDSqGGhs4I0Mbygq
JDaInVwhwCTyy0YVDI21YKjqhEbVCY2qExob5E+G/mudRRUMjSoYOl9WB1Q5NKpyaGxgkhq5UUuI
qnJoVOXQqMqhUZVDoyqHRlUO3d9ZGNYa2KFaovP/mm0VFZ3/17CrumhUddGo6qJR1UWjqotGVRed
b2GdqoH6qjcaVW90vlznQoykwqNRhUfnb+vMiKNUeDSq8GhU4dGowqNRhUdjg7epME81UF8VSOf/
WVgLxFIqlcB1FCeNFCeNFCeNFCeNzSLrSuLKQGOkgawrmSuBhtHQ20eKB1KuNFKuNFKuNFKuNFKu
NFKuNFKuNFKudH6gfwXmypnULY3ULY1et5RypZFypZFypZFypZFypfMrtjQYnwmolVfH6qWPqmQa
Vck0br3XgqSSplElTaNKmkaVNJ1/JLiqbRpV23S+PNIQeFU7nf+v7/ol/9eXildV/zSq/un8rbCo
EGpUIdT5cqJRQYlpVRp1vlxBintrjVRVRN1/W33mtTSqKqJGVUSNtSKqCqFGFUKNKoQaVQg1qhBq
VCHU+XGa71oRdax+91gLodb6pyp7GlX2NKrsaVTZ0/kW5qoGnasQaqyFUMfq0o4qhBpVCDXWQqiq
fxpV/zTW+qcqexpV9jSq7GlU2dOosqdRZU8jZU8jZU/n1/VccVwDV1oaHQ3/sf9mpDFxO9RgE18F
GsZXfiXSSDSg6Vq0j9KokdKokdKokdKokdKokdKokdKokdKo8wN5V+W6kdp+FEudr2SuAH4C6gSe
yZ/jtztmh0qD8qmh/qJuwtpaGbVWhoXE636rreWyax1VsR9VU8V1KpYaKZb6Kx5Q62//mv81Lqqa
GttaLluspaqpsVZNrTVSa2nUFv6JrGJ1L9bWGsN/5HItjSuOamuN4f/h21okXqylYqmxFktVjdT5
Rxp8FUuNLaxV9y5trTH8GZdrXfVz/q8jKWZT+dSo8qmxlk9ta43hC26poy7WamuN4Uu+rcWVa7Xt
WmP4Hd/WqRGzqaBqrAVV21pt+39rAduRcslj89yG1e87TzD3jKq9dSGgomukomukouv+x4mqwHUh
oLRrpLRr9NKuFHKN7SJj695sZAPmpV3bhf+TwwDYxEsnvx2EE8+ZuGvyrwA/UcV5AvMEZq8WPoF5
AvNE8eYJJk3+QKraTyCs3N7V0//1cKT32kevnhathyO9x/WEdD0/Xw9H/pxv60lH8b8KwkYVhI0q
CBtVEDZ29XDkv3Mniw8JAhCtdaNXK8OO7Pe6Wke5Vk2ulWHrOfl6OBL+Tw6+oq4H5v9UL9cNYlfL
J9dasS/5tp66rZVhtSKoIGzsatVk8b8KwsYOtq8bNtWBjbUO7MiGpEPYchi+1lGuBWHrkcqar0L8
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
kXo963MPafWQVo9u10NjPTTWo8n1EFsPsfUQWw+x9RBbD7H1EFsPsfUI32bZrGYWWNcVIkIh+mqM
+ItsoiIi0pWP6Ou8r/zIQePH5hIWeZHRVIxXGAI6ubhB43HhkpBoCZlSR6yBRJtFkCWknovsSjYN
FNVAP80ibiJv998YrzD2jZG7jGEx/7G/gh8nfuNQk3/lSqfLXLcOuLkBoem2CaODrmL60Jn/mAE3
XmEMnTFf5vLdv3ILgt4eABYAFgAWWGQCq0RgSQmsCQHwAe4OsFWALwJr3b6R7mnE2fz0/e2Z55Ta
qGtUYEELdDAsHTR6YfTC6IXRC6MXRi+MXhi9MHpRRzVAEgGSCJBNYDUOEHaA9QJkHCDjAMMGuDLA
lQEeDHBlgE8DXBmgwwA9Byg8QPwB4g8slYGFMbAwBpbBwDIYWPQCi16A0QKEHSD+APEHiD/A3QF+
DyxEgaUpsJIE1pbAuhFYSQLSM6CYBRSzgGIWUMwCpB5QzAKKWUAxCyhmAcUsoJgFFLOAYmYwiMEg
BoMYDGIwiMEgBoMYDGIwiMEgBoMYDGLoAAapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6Ru
kLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB
6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gapG6RukLpB6gap
G6RukLpB6gap20LqBTwFPHX71sIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUt
XNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQ
wgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIF
LVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c0MIFLVzQwgUtXNDCBS1c
0MIF7cIFBTwFPAU8BTwFPAU8BTyFjbOxTTa2ycY22dgmG9tkY9tubNuNbbu5c4Vtu7FtN7btxrbd
fVfGtt0dQhE8ETwRPBE80e0S4IngieCJ4IngieCJrhuzlTZ20MYO2thBGztoYwdt7OiNHb2xozd2
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
5oGYB2IeWdfIL4+UhRONbididovhieBHCsWJvTr6LS9hK0b280jwI+1xJwrOyZ/x5tB0eGJLR7bL
rXgnf5jrgMlvscmjX7DtxrYb2+6mum4sO/szbPtMcTvz4ZmDa+woYycYB3f2W+wNtwudaeM3s8eM
/WPsn9nf4oQ0doKxpTO7zthSY0sTW5HY0sRJkgjebeFmdvjMDncrROebM/t55tRKBJ8INRFPYnOS
f9C/wwN0n36J7XKlz+hQ2a7EdrnSZ2QrMr+T+Vb2WxyCzNHJxJypaBip1fJp7GpNn8+Z2gSf2OS7
zmKdm1Lu9s4cSeZpRw5O707dE3UrTikTW+HE6EqfkbU7DU4E5tQ0+Xf8YUItJJO4yOspm/sd7Uzs
cFfxOA3OxDyzw50cfM7P7EzX47hGxTUorjoxVuFU6ZN/5lgY+8e8Lg6KcQSdBn0az2zg7OAJwwjM
ydNnpnmlXkXRIpWfojQrGiX/Yin2z7Cby0qVSu1fsLgo2LB6GLB6GP6Dd8vTWEYMWEYMWEYMWEYM
WEYMWEYMfyhvJnYndbl/5N/sw0QNY1kED1hqDFhqDFhqDFhqDNinDv/DVzgJC/kPWHMM/8vioq/D
mmPAmmM4592issOaY8CaY8CaY8CaY8CaY8CaY/gb3+RYUGv8Ff+mhi6xv8tKfMByZMByZMByZMBy
ZMByZPg7XyljgXXJgHXJcPuUKbTDcaXQ3tdp012sl47ltOn+JrSPN9sVq7ndt77bfm7vH/zAIO8Q
4STvi+b67evXm+sjMFveU/rnO9kEv3/oizsGjNxXXurvixR5vTm7+Of15e3mZHt19frVu49CRR7A
lPohxqMPMku9A4E9GcbHsOXHkPnTD8LDbP8/6w53Tvb0vb0nHrSvkKuromZV1KyKmlVRsypqVkXN
qqhZFTWromZV1KyKmlVRsypqVkXNqqhZFTV7UNQcQVjUPZ6v7uPgZXV/Xt2fV/fn1f15dX9e3Z9X
9+fV/Xl1f17dn1f359X9eXV/Xt2fV/fn1f35SN2fjzEC6+EsQJ/PLvEhCdFPllbdbi5+uDv2k3z9
OHONP9K++5Dmck8J9dDmsd8RNHY7Mzbn2wl4RxvUvU75Y+j0p4vz/NRcbZ9jdmzEvLcpf9dgud9r
qXqxeXX2buuX8fXNz+Pp6elRctiHWqveg13dKwruM8Qvv2/r1uDxd6T3R+jkniSC/MEA/mDiRm7y
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
huSyhuSyhuSyhuSyVtHIv+yLkWXWkFPWkErWkEHWkEHWkEHWkEHWkEHWkEHWkC/WkC/WkCbWmCbW
mCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWmCbWPE1szbSsddmYG/PFGvPFbm/x
OwOhDoTq9vaZVQzEPBDzQMwDMQ/EPBDzQIPeTNvdsnmvdvb2kwOjce7EPhzYroFvFcpDUlhDLlgL
/inaRJctM7LDWmDl2J8a0sQa0sQassNu76KJSBNrSBNrSBNrSBNrSBNrSBNrSBO7fRN9gnyxhnyx
hnyxhnyx24fQX0gca0gca0gca0gca0gca0gcu30FPYsMsobEsYbEsYbEsYbEsYbEsYbEsYbEsYZ8
sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sYZ8sVtQGGUkjjUkjrUA2kB6VkN6Vgv0YCnb
buRpNeZpNeZpNeZpNeZpNeZptbBzXClbdSZsNSZsNaZnNaZnNWZlNWZlNWZlNSZjNSZjNSZjNSZj
NSZjNSZjNSZjNaZeNWZcNWZcNWZctbAzqp9Y+0BgA4ENfovABgIbCKxMdyRaNSRaNSRaNeRXNeRX
NeRXNeRXNeRXNeRXNeRXNaRVNaRVNaRVNaRVNaRVNaRVNaRVNaRVNaRVtUhD98nptFSNqYy0qtvi
AgVzGmlVLXJOl/038qsa0qoa0qoa0qoa0qoa0qpapA/JTMZVds6R4qLsmyOlRNkII7+qIa2qIa2q
Ia2qIa2qRcoE7CEN+VUN+VUN+VW3dzHSSLRqSLRqSLS6vYvhR8ZVQ8ZVQ8ZVQ8ZVQ8ZVQ8ZVY8ZV
Y8ZVY8ZVY8ZVY8ZVizsCKFtVpl41pl41pl41pl41pl41pl7dvu7PZF5MvChDRkpgDlZjxlVjxlVj
olVjolVjWlVjNlVjNlVjNlVjNlVjNlVj7lRjylRjglRjglSLO4+Rsseuyw++geSnhpynhlSnVlMG
zhQ+Zf+NnKdWk9+XPTaSnxqSn1pJdVpzz4vEpobEpobEpobEpobEpobEpoY0pstueeR5DjaCVhKb
NtwPIrHp9m90JDKcGjKcGhKbGhKbGhKbGhKbbl9BlyPDqSHDqZUMp03Z7xkSmxqylxqyl27vYnCQ
xtSQxtSQxtSQxtSQvdSQvdRK9tKGG0RkLzVkLzVkLzVkLzVkLzVkLzVkLzVkLzVkLzVkLzVkL91+
lecnZbuIfKZW84Cs7BOZ2NSY2NQ8sWnDHSETmxoTmxoTmxoTmxoTmxoTm1q905WMPCwqe2OmOjWm
OrV6dwxcdonMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrMeWrM
eWrMeWrMeWrIeWrIeWrIeWrIeWrIeWrIcGrIcGpIbGpIbGpIbGrIZ2rIZ2rIZ2rIZ2oND79Kdt+m
7I4NGU6tZDhtuFdGYlND9lJrSBJl54w0poY0poY0poY0pobspYbspYbspds3qXso+2jkM93+jc5t
SCRlS4wMp4YMp4YMp4YMp4YMp9bwzNioPyjbYOQ8NeQ83RaX7gXZIPmpIfnp9i4PKssOEelQDelQ
DelQDelQDVlQDVlQt69wzpWNakNVi1HTldjfZX+JlKmGlKmGlKmGTKmGTKnW7I6cEzWUZffJ3KnW
7GgM5pbGJKrGJKrGJKrbZ7yk40XPi4EXIy+MF4kXrrb1D/p3qGpJHIREvpH8g2XukvyYetWYcdWY
cdWanc4yEcZA8IUOmXrVmHrVmHrVmHrVmHrVmHrVmHrVmHrVmHrVmHrV2qLVLDrNoistasyixCza
TdBhS+VL8XlEDlZDDlZDDlZDDlZDDlZrf3vsqZBeHJttzWoXsdpFrHYRq13Eahex2kWsdhGrXcRq
F7HaRax2EatdxGoXsdpFrHYRR2YXccQBlVariNUqYrWKWK0iVquI1SpitYpYrSJWq4jVKmK1ilit
IlariNUqYrWKeGariOMKrPQIw4bzfYfKOYCJx/kRRya5WT59vo3Y8bM3N5u3F1cn56/Obm42Nz+7
3vz97eX15uLk6s22lrNXJ19eXlxsXj9dCJKHQXtgrJG7xc3aRjs5Pa2OLZzXh7Du2v5PmfkgcKMh
cKMhcKMhcOP2DJKH0YmHw2DJhpiO27/BGxHc0RDc0Uoox5bh8o1H/WDWhgiOhgiOhgiOhgiOViI4
toyM15IzI4Lj9m+e4xbjnpbGPQjuaIjpaIjpuL0LHorgjmbUC2QexBarHkR5NER53BaX81isBRDu
0RDucXu3nM5iwYwoj4bgjoaYjoaYjoaYjoaYjts32aflOBNRHrd/UzuTqTkqx5kIAGmI+2iI+2iI
+2gI92hGBVvmaXex5EEASEMASEMASEMASGMASGMASGMASGMASGMASGMASGMASGMASGMASGPcR2Pc
R2PcR2PcR2PcR2PcR2PcR2O4R2O4R2O4R2OUR2OUR2OUR2OUR2OUR2OUR2OUR2OUR2OUR2OUR2OU
R2OUR2OURysrijL/iszFpLMy5crcQnBHQ3BHQ3BHQyhHQyhHQwRHQwRHQwRHQ+BGQ+BGQ+BGS6SW
TK1EOZtFKEdDKMdtcYEC+kEER0ukn2JVhcCNhsCNhsCNhsCNhsCNhsCNhniN2zepkiiHsYkkMVHB
NVGfVI5WEdzRENPRENPREmgD6RktUXk2cf6XE1YkbLRELVo5PkXmRkPmRkskknJuihSOhhSOhhSO
hhSOhhSOhsyNhsyN2zepuypHlsjluP27DPM7/l3GG0TC7I7G7I7G7I7G7I6WdsqzcsTHNI/GNI+W
dsqzYiTEfI/GfI/GfI/bZyaW+Af9Lb9VJh/ph4kfjYkft9/hWM7+DMEPHIiZwzqzgYXGmBzSmBzS
mBzSmBzSmBxy+7p/2XhB8APBDwQ/EHwhtuxfQZ8WVUWZ+mWqlzld1AbICWnICWnICbn9AMCX5JAt
z+uQE9KQCtKQAdKQAdKQAdKQAdKQAdIy6XAmPy5HbkgFaZl0WI7SkBPSkBPSMumwnFUhOaQhOaQh
OaQhOaQhOaQhOaRl0uHMyVCOrDLpsJxVIW/k9u/SLSA/5I005I005I005I005I1chHYxxEACSUMC
SUMCSUMCSUMCSUMCSUO6SEO6SEOWSEOWSEOWSENySENySENySGNySGNySGNySGNySGMqSPMMkB2P
y5gB0pgB0pgB0pgB0pgB0pgB0pj40Zj40Zj40Zj40Zj40Zj40Zj40Zj40Zj40Zj40Zj40Zj40Zj4
0Zj40Zj40Zj40Zj40Zj40Zj40Zjv0QobKtyn8JHCKgo3KGfpSPNoSPO47SqgRr5HQ5pHQ5rH7V00
BfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfkeDfke
DfkeDfkeDWkeDWket0jR18j3aEjzaEjzuL2LAUC+R0OaR0Oax+1djAryPRryPRryPRryPRryPRqy
OxqSOhpyOW4/gNFEUsft3xhUZHc0ZHc0ZHc0Znc0JnU0JnU0JnU05nLcfmrkhfFWy4uOtxJLel4M
vJV5MfGWf3BmiX/Zv5N54W/N5a1yKNfxUI4ZILclbE7RC3c8g2NOSGMqSGMqSGMqSGMqSGMqyO3r
/gzbVaiFGSCNiR+NiR+NiR+N+R6N+R6N+R6tcNViWlcYZOGLhR0iqaMhl6Mhl6Mhl6Mhl6PNJJJy
TIikjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoak
joakjoakjoakjoakjoakjoakjoakjoakjoakjoakjoYUjoYUjobMjYbMjYb0jNtmY7yQp9GQp9Fm
kkQ5G0XCRkPCRivpGTuaCSE9ozErozErozErozErozEro807Nl/OUJmM0TwZY8dzVCZjNCZjNCZj
NOZgNOZgNOZgNOZgtPmDyc23BkIdCLVEle94KsvUi8aMi8aMi9tnWNdAzGVyM/WiMfWiMdGiMdGi
Mb/i9juEOviFk+j88AAlxvSMy3fKeTDyNCbkaUzI05iQpzEhT2M6ZdU4OU4lPSNyMCbkYNzexcIS
yRgTkjEmJGPc3kU3lqyMyMGYkIMxIQdjQg7GhByMCTkYt2/WvADXRFbG7d/odaRnTEjPmJCeMSE9
Y0J6xoT0jAnpGRPSMyakZ0xIz5iQnjGV9IzIypiQlTEhK2NCVsaErIwJWRkTsjImZGVMyMqYkJUx
IStjQlbGhKyMCVkZE7IyJmRlTMjKmJCVMSErY0JWxsSsjIlZGROzMiZmZdx2BtlqOf5mnsZ0uqOo
ciDOhI2JCRvT6U6klLMVZm5MzNyYmLkxMXNj8syNzNOYTncUha3x9oJvudxIfL1sRTqmHGDCxsSE
jYkJGxMTNiYmbExM2Lh9nRO0HNx4CkdP2NiVo5zE9IyJ6RnT6Y7qMrt3cDxsVyGbyj8HoCU9I7Iy
bos5HMV7q/JPA31J2NjxIAcJGxMSNiYkbExI2JiQsDFVFESZzS0HOSWFY0nY2NGUqyRsRJ7GhDyN
27sFKWgMCRsTEjamkrAReRoT8jSm6s980xuHxsCKb/u3N4b9P5VeAtUVAz/Y9SXY9SXY9SXY9W1f
wbjAwC/BwC8VA79izgebvQSbvQSbvQSbvQSbvVRs9mCql2Cql2Cql2Cql2Cql2Cql2Cql2Cql2Cq
l2CqtwWFiQCbvQSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbvUSbveQ2
e7TQS26hR8O8RMO85IZ5tMdLtMdLtMdLtMdLtMdLtMdLbo/n1ndudEdbu0Rbu1TtRMpEUVkOcmB9
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
VKYUq48+qkiVS0XlUlG5VFQuFZVLRV3lRGVbUdlWVLYVlUtF5VJRuVTUjVVUq5GoK6WoK6WoG6uo
G6uonC4qp4vK6aIytlh/VK2Oi7KtqFwqKg+KynKicpio/CMqu4jKHaIyg6iboqjcISp3iMoMojKD
qKucqHugqFueqNwh6h4o6h4oKv+Iyj9i/xEO7VPlH1F3SVEZSlSGEnUtFXXbFHXbFJUH1cphal1c
1bq4qnVxVeviqj79qJZeC6Q/auVStXKpWrlUrYurWs+Dal1t1crYauVStXKpWrlUrVyqDh99VFur
S6daeVCtPKhWllMry6mV5dTKcmplObWynFpZTq1rqVoXRrUujGrlMLUujGplObUujOrmo2q1tbow
qpVL1bowqpVt1cq2amVbtbKtWtlWrWyrVi5VK5eqdXNWK9uqu4+q1cYpH6t1lVMrH6uVj9XKx2pl
W7WyrVq5VK1MqVYeVCsPqpUH1brKaZQHNcqDGmU5jbKcRllOoxymUf7RKLtolDs0yh0aXX804aNX
1AdEab/RBUmjzKBRZtDogqRR7tDoWU6jO61G+Uej/KNR/tEo/2h0t9YoQ2mUoTS6hmmUwzT1Rzi0
x5QHNcpQGmUojTKURhlK03zkzaS1KP9odGPV6Maqec9hjiON7f69HZ/Oq/mpMyw/vmUPzu17hJ6I
Tx2b+2GZAA8XiUlcUY8gpPOj82Lutc3f66V6n/hZq0fq6pG6eqSuHqmrR+rqkbp6pK4eqatH6uqR
unqkrh6pq0fq6pG6eqSuHqmrR+rqkbp6pK4eqatH6uqRunqkrh6pq0fq6pH6DB6p36tlfX1+tU0i
9bNXmy/Ozt+dfP3i5Kur683Z659t3p6ffHW9/fnq+uT9Y5uT9wqwzfX11fXNyZdnr++oYntgnp9P
hYx/hEb18YlCDqxXfbwO+rt77ub2vr32LQ32j1EN/Unl731SGXxfXOM76p8/7L7bqxc/e3F2s2nr
o0g3+IisK6+u/nly/u781T1zDH8vxR98QJ4+dvleZ9G+0wqebL55szm//cGkn8eRVetBnfcDU+/m
GUB8ghfcJ1/RGmNijTGxxphYY0ysMSbWGBNrjIk1xsQaY2KNMbHGmFhjTKwxJtYYE2uMiTXGxBpj
Yo0xscaYWGNMrDEm1hgTa4yJNcbEGmNijTHxDDEmnsku5cmzpIsy/D6avCfQ7d41/bJA2Xz9YnNx
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
1RemVl+YWn1havWFqdXTpVZPl1o9XWp1bKnVsaVWx5ZaHVtqdWyp1bGlVseWWv1YavVjqdWPpVY/
llr9WGr1Y6nVj6VWP5Za3VZqdVtZChSYmgWqH8tSoNX2Wq3aCaofS61uK7U6pdTqlFKrD0qtLie1
upzU6lBSq3dIrd4htXqH1OodshRELai1oNWCXgsUh9rGqDNIrc4gtfp+1OrqUaurR61+G7X6bdTq
lVGrV0atThi1OmEsBVqLmuOpz8VSoNXWH1WrbVEOoy4WtbpY1OpiUauLRa0OFLU6UNTqHlGre8RS
oLUoh1F/iaVAW6scRh0oanWgqNWBolZ/iaVAa1F2od4QtXpD1OoNUatrQ62uDbW6NtTq2lCra8NS
oNUquxjUPk+dH5YCBSZ7hEadHxr1dWjUk6FRx4VGHRcadVxo1E+hUT+FpSBqgVYrDKVRP4VG/RQa
9VNo1E+hUT+FRv0UGvVTaNRPoVG3hKVAcUTFEfUbUdsS9aNRP1rrR2ttXK2dXGtra21tra2tFWmt
SGtFWivSRpE2irRRpI0ibRRpo0gbRdoo0kaRNoq0VaStIm0VWKvAWgXWKrBWgbUKrFVgnQLrFFin
Xdgp0k6BdQqsU2C91tLrR3v9aK8f7bUtg7Zl0FoGbcug1Q7a64NCl5VSo94QS0GnBb0W6DeUj6mv
Q6O+DktBowWtFiiOSnEoH1Nfh0Z9HRr1dVgKFIfysSoojvARDu2PqP0RFVhUYFFxKKdTb4hGvSEa
dX5o1PmhUeeHRp0fGnV+aNT5YSlQHMqD1JOhUU+GRj0ZGvVkaKpWe0wZijouNOq40KjjQqOOC406
LjTqp9Con0KjfgqN+ik06pawFCiOTnH0ikM5jBpaN2po3aihdaOG1o06PzRqed2o5XWjlteNWl43
anndqOV1o5bXjTpQNOpA0ahtdqO22Y2aYjdqit2o5XWjlteNelQ0aordqOV1o5bXjRpaN2po3ahd
daN21Y1aTTdqNd2o1XSjRtKNGkk3aiTdqJF0oybQjZpAN2oC3agJdKMm0I2aQDdqAt2oA0WjJtBN
UMamFs9LgbZFGZtaPDdq8dyoxXOjFs+NWjw3avHcqMVzoxbPjVo8N2rx3KjFc6MWz41aPDdq4Nyo
gXOjBs6NGjg3auDcqIFzowbOjRo4N0HZpxo4N2rg3KiBc6MGzo2aLzdqvtyo+XKj5suNWis3aq3c
qLVyo9bKjZoeN2p63KhhcaNmw02UY6hGLXwbtfBt1MK3UQvfRi18G7XwbdTCt1EL30YtfBu18F0K
ei1QpLr8UpPfRk1+GzX5bdRct1Hr3EaNcRs1xm3UGLdR29tGbW+Xgo+q1cbpNlKNcRs1tW3UsrZR
y9pGLWsbtaxt1LK2UUPaRu1mG7WbbdRutlG72UbtZhu1m22ichi1m10KdBiUoaghbaOGtI0a0jZq
SNuoIW2jhrQNDGkfqMXyiJC1iphanWpqlTm1yota5UWt8qJWeVGrvKhVPNQqHmoVD7X6v9QqHmoV
D7WKh1rFQ63Mv1bmX6t3S63SoFZpsBRoLarpUO+WWr1bapUGtUqDWqVBrcy/VuZfK/Ov1RGlVjeT
Wt1MapUGtbqZ1OpmUqu8qMNHfsKq2FCJUqubSa1uJrW6mSwFjRa0WtBrgeJQ1YcKoVpFTK0iplYR
U6uIqVXE1CpRapUotfqM1OozUqvPSK1CqFafkVpdRGqVSrVKpVqlUq1SqVYhVKt7R63OG7WKmFol
Sq0SpVaJUqtEqdU1o1YRU6uIqVXE1CpiahUgtQqQWgVIrQKkVgFSqwCpVYDUKkBqlRe1Ol7U6nhR
q59FrX4WS4HiUC6ljhd1VKaknhhLgfaHsi311VgKFIdqXKJqXKIyNnXvWAoUqXK6qIxN3Ttq9eao
1ZtjKai0IGhB1IJaCxotkNaqe0et3hxLgdaiGlt171gKWi3otECbr3xMHUBqde+o1TVjKdBX4kev
KFJlOerNUas3R63eHLU6bywF2mPKpWrlUrXyoFoXRrUyJXUAqdXfo1Z/j6VW/aiyHPUIqdW9YynQ
/tBVTq0MRd07lgLtD2UXtbIL9Qip1SOkVo+QWj1CavUIqdUjZCnQapXUa13l1Er7tdK+epXU6lVS
q1dJrV4ly/Q41YKgBbUWtFrQaYFUq24mS0GlBVqtcgf1O6nVzWQp+Khaba0yg0aZQaOrHPVMWQq0
Wl3UNLqoaXRRo94tS4Hi0FWO+r/U6t1Sq3dLrd4tS4HWohxG/V9q9X9ZCrT5aiSiDjG1OsTU6hBT
q0NMrQ4xS4ECUy7VKJdSD5laPWSWAgWmS6dGGVujjK1RxqZuN0uBAlPWp445S4ECU9annjq1euos
BYpDeWGjvFA9dWr11KnVU6dWT51aPXVq9dSp1VOnVk+dWj11avXUWQoUqS6u1HVnKVBgymDVU6dW
T51aPXVqdcyp1TFnKai0IGhB1IJWC6TaVvlpq/y0VX7aKvtU151aPXVq9dRZCrQW5Zb/f/b+rcfO
I0nzPb9K3eSgbyJFdzfzw0WikJUH9ADVjcKu3thzJwQZSynW5mnIUGbq248HqdThFymJlEhRvccb
jQTLRC639a6Ix953mT1/695L6eUJvTw7YB7KZ1c+u/Kp/Se0/+yAF9lbOP1AoR9oB8xUCdYgFBqE
QvtPaP8J7T+h/WcHPFaB7QqsBqEd8AKppzqGQoNQ6AeKrnzqB9oBPwbVUoNQaBAKDUKhHyj0A4V+
oB0wj3HvRX1z6pg+nNBlE7psQpdN6LIJXTahyyZ02eyAeahS+nBCH07owwl9OKEPJ/ThhD6c0IcT
+nBCH07owwltN6HtJrTdhLab0HYTmmpCU01oqtkBj1X6hjeK2m5Cl00MlW6odC5H2gFPUcfclrQD
nuJt4PA2cKhSbksKtyWF25LCbUnhtqRwW1K4LSlcjhRuOgoXG4V7jMI9RuEeo3BLUbilKNxStAMe
qwa5tihcWxRuKdoB8/AGzS1F4ZaicEtRuKUo3FIUbinaARNT6dxSFG4pCrcUhVuKdsDE1EL3GIVr
i8K1RTtwz96ks0LZerOl6L2axX7CP/lna98uTx9ebm4uN1ePnj+7vVvxdrfy7fFnL6+fXr7e+vbq
9vrV57998eW/Pr753VjXWW8u8+qO6bn/Z1yuVr15ePXo+vKozsvIz+blw2bQH82b6543V/VRXq4i
Lp9dPXz44OHVw/lwzVjX1w/LetvL9h9f3n7+/Nl/vrbXveMVf6d/+jauvlefPHx+8+XV5e8vnr/a
V+Nvj5/dPP/b1RvD31eHvvoRz+H37yn87X+9+lX89P3wEsX3Ytf85og3beH3/da/b4Hih/g5/sGt
ku929KOXz1+9+vT5y8d/efzs0xfXL3fs+i+XX2DF5Hv4iX8LN+svsqbzhxy3b5fdL6C+v4KfmR/+
MH4tH8NPUZKPnfjxax+/9vFrH7/28Wsfv/bxax+/9vFrH7/28Wsfv/bxax+/9vFrH7/28Wsfv/bx
ax+/9vFrH7/28Wsfv/bxax+/9kfwa/9ad58eQ/gxhB9D+DGEH0P4MYQfQ/gxhB9D+DGEH0P4MYQf
Q/gxhB9D+DGEH0P4MYQfQ/gxhB9D+DGEH0P4MYQfQ/gxhH9AQ/jH3H367jbhn2Xg/WU8xh/WBfrW
ftWPYo58P9n9iD3yxcvnO+FX+49XT/fP3pOr+sn1zc2f7g7598evbi/PLi/f/17ct2vppi6s1IWV
urBSF1bqwkpdWKkLawfCgHk416ctK7VlpbasHTAPx/im4y/TMT6NW6lxK/VppT6tHQgDaaAbuHfK
NMDb16eV+rR2wBd1/GU5/qJxKzVupcat1Li1A/eONXUnZpYzecsRmuWAjE6uHfAU52G0du2A78WZ
PK1dqbUrtXal1q5cjuDp9Uq9XqmTawc81vEXrV074LHOw2j+Sq1dqbUrtXal1q7U2rUDXmQlRydX
6uTK5fic1q7UybUDHuv4nNau1MmVGrdS41Zq3EqNW7nu6ce6d+x3323XuLUDzUAYSAPdwCTAA1zX
uLUDnlJ80XLvRX0v1fdSfdFq6tVTqi/aTL2ZevOU5inNU3g86xq3uj6tri2ra8vqmq66pquu6arr
sep6rLoeq66lqmup6lqqupaqrqWqa5jaAY/tHts9tntKv3eKn+3w7Q+PHV7kYR7DPIZvf5jYMLFh
YtPrMU1smsf0lOWbW77o8jWW72X5XpapKyiFW5YdqAaagTBAHkX90EHVdVDtgC9a7r1oN8Al1EHV
NUx1/VG9KBdFddDKtAPmoTpoduqanXpRLnQ/db1NXW9T19vU9Tb1olyU9HqoDpqdumanrrep623a
AU/xd19vU9fb1PU2da1MXStT18rUtTLtgO/F31t9SV1fUteX1LUhdV1HXddR13XUNRl1TUZdk1HX
ZNQ1GXVNRjtgYoqBrqOu66hrMupaiHbAF1UM9BR1DUK9+ousQahr/9mBNNANmJh3Bpp7uuaeHRgG
TN1f9eqvun6g7ix1d5a66wfq+oG6s9TdWeruLHV3lro7S9116nRHp7uj093R6R3wRbupKwaOTncn
pbuT0t1J6a4Ppzsp3Z2U7jp1uqPT3dHp7uj0DniRlQtnqXfAPNQPh6u7s9TdWeruLHV3lro7Ot2b
v/uOTncnpbuT0t1J6e6k9A4MA7w5J6W79p+u/ac7Ot0dne6OTndHp7uj0137T3eWujtLvQNmqig5
S92dpe46hrqz1N1J6R3wFFXK0emuQahrEOoahHbAdxvmoUo5ft21EHXnsbvz2N157B0wMXXM4equ
Qag7S90dne46dbqD0d056B3wRb0hcTB6B0xMhXHsuTv23B177o49d8eeu2PP3aHmHfBYJacpOU2F
cYa5O8PcnWHuzjB3Z5i7M8w7wAfl/HF3/ngHpgFfw9/98Ffd+eMd8Fh/1cNfdUeWuyPLO+AF8pbF
oebuUHN3qLk71LwDvn3FwKHm7lDzDpiHYuBQc3eGeQd80bz3Gr4Xf9XDX/XwlsWx5x0wdcUgvGVx
Dro7B92dg+7OQe+AeSgooaA4Ot0dne6OTu+AiSkoDkZ356B34N5r+ObUDweju4PRPe7JxevHlZ/Y
xfqa35nKcirLqSynspz6VVK/SircqYElVfLU0ZJKeyrtqbSn0p5Ke2pgSQ0sqdanWp9qfar1qaMl
Ff9s97zjfrWt5yWtF2m9SKvBDgwD04CnaEgPDel6XlLPS+p5SWtOWnPSmpPWnLTm7IB5CPcJ22vW
nLTmpDUnrTlpzUlrTlpz0pqT1py05qRGmrQIpUVoB8xUjoZVKa1KaVVKvTc7YB562DXjpIUsLWRp
IUsLWVrI0rqVYRPPQpb6d9LKlla2tG6ldSutW2mZSstUWqbSqpQaetIylTp80rqVOnxSQ09ayFJD
T1rZ0sqWWn7SypZWttTykzp8UodPaujZgWKgGmgGhgFPUfpS2dKdswO+aLn3olwx7TqpXSe166R2
nR0IA2aq9GnoSQ09qaEnNfSkhp7U0JMaenbATNXCVPr0AKUeoNTykzp8dsBjFTYtP6nlJ7X8pJaf
1PKTGnpSQ88OmIdKp8MnNfSkhp7U0JPadXbAYx1X0L+T+ndSu05q10ntOjvg9VD60ntLDT2poSc1
9KSGntTQk9p1UrtOatdJ7TqpXSd156RmnNSMswMeqxbqzkndOTvg2/dGUbtOatdJ7TqpXWcHwkAa
6AaGgWnATFVcLT+p5Se1/OyAeajJXU3WFJR6gFLLT2r5SS0/qeUndfikDp/U4ZM6fFKHT2roSQ09
qaEnNfSkhp7U0LMDJuatZFdxdfikDp/U4ZM6fFKHT+rwSR0+O2AeKq6Wnx0wUxVXD1DqAdoBE3Me
TA/QDpiHEqwpKDUF7YCJqcm6hFKXUOoS2gEzVZO7mtzVZJ1GqdNoVxMz9Xm/ewerOWkHzFTV1r60
A2aqautnSv1MqZ8p9TOlfqbUz5Tal1L7UmpfSu1LqX0ptS+l9qXUvpS6lVK3UupW2gETU7V1K+2A
eaja2pd2wMSUcQ1OqcEpdSvtgMcq40MZ18+U+plSP9O+yfF6qOs6nlLHU+p42gEzVde1QO2Aianr
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
YK0LWOsC1rqAtS5grQtY6wLWuoC1LmCty1Pr8tS6PLUdMA+VTsBaF7DW5al1eWpdnlqXp9bFp3Xx
aV18Whef1sWndfFpXXxaF5/WhaN14Whd9FkXfdblmHU5Zl2OWZdj1uWYdTlmXY5Zl2PW5Zh1sWVd
SlmXQdZlkO2AL6p1QihZF0rWhZJ1oWRdKFkXStaFku0fIDNVHIdeCjlmXY5Zl2PW5Zh1OWZdjlmX
Y9blmHU5Zl2OWRdb1sWW7YCJKY5yzLocsy7HrMsx62LLutiyHTAxbwOHfgxJZ13SWZd01gWb7YB5
qJaCzXbAY5VPwWZdsFkXbNYFm+2AiSmfos+6pLMu6axLOtsBj1Uth+Io+mwHPFZxlIXWRZ91SWc7
4CneKAo264LNdsA3p3zKMdsB363yOb3JE1vWxZZ1sWVdbFmfqqUcsx3wWNVSsFkXbLYD3YCZqpai
z7pgsy7YrAs22wGPVemmwjYVNtFnXfRZl3S2Ax6rjskx63LMdsD3okoJNutiy/pUg+SYdTlmXY7Z
DpiHD6tyzLocs337YR6KkhyzLsesyzHrYsu62LIutqyLLetiy7rYsj69Y5P+1aV/delfXfpXl/7V
pX916V9d+leX/tWlf3XpX136V5f+tQMm5n2hsK8u7KsL+9oBjl3e9YkD6+LAdqAZCANpoBsYBqYB
M1Ucl+K4FMelOMoY2wEzVRyFju2AmXrnKIWsSyHrUsi6FLIdMDHlUyxZF0vWxZJ1sWRdLNkOmJh3
jkuBlWS2Ayam4oo266LNdsDElGDRZl20WRdt1kWbddFm+zHKPBRpWWdd1tkOmJh3jsLPdsDEVG1p
aF0aWpeG1oWfdVlnXbTZDvga3hcuJViSWZdktgO+qHoqyWwHTF35lGTWJZl1SWZdktkOeMo944Dt
JMFlQ3DZEFw2BJftgH6FB/eO1Vlhf+mB3fgHduOFnw3hZztgprakHtiSEo82xKONB7bnH9ieF6C2
A2bq2JVEtSFRbQfG++6VfXf/4Id11L3FgsKftg7xbb1y75LAaQaeZuBpBp5m4GkGnmbgaQaeZuBp
Bp5m4GkGnmbgaQaeZuBpBp5m4GkGnmbgaQaeZuBpBp5m4GkGnmbgaQaeZuBHaAZ+TCjr9/foLndI
z1f/6Ms9eX79Y0jNt9+FeHiVh1d5eJWHV3l4lYdXeXiVh1d5eJWHV3l4lYdXeXiVh1d5eJWHV3l4
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
E1NPpQzugMeqp2IHi9jBImVwB3z76qnYwSJ2sIgdLGIHi9jBInawiB0sYgeL2MEidrCIHSzLG2c5
hEUOYZFDWOQQFrGDRexgETtYpQxWoYJV/l+V7leF+VVhflV23w5MA55STax6bPU1qq+B0lVBfFXM
XhWzV8Xs7YDHNo8Njw2PDd9LmEf4oumLpq+Rfgzpi6ZvLj2le0o39e6x3R+Ybh7dPIYvOnzR4YsO
X3Tce1Hf3PCTG35yw7c/TWya2DSxaWLTxKaJTRObJjZNbPm5LDNdZrrMdJnYMjHVQe5elbu3A81A
GhgGpgGPLZ6i5IjI2wFPUVCE6FUhelWIXhWiV4XoVSF6VWZelZlXZeZVmXlVZl6VmVdl5lWZeVVm
XpWZV2XmVZl5VWZelZlXZeZVmXk7YB7hsSpdUemE6FUhejvgBVILi1ooVa9K1atS9WpRC4XoVSF6
O+Cx3evRzaObRzeP4QVST+XuVbl7Ve7eDniK0idmbwd8UXWsKEpC9KoQvSpErwrRq0L0qhC9KkSv
CtHbgTCQBrqBYeDesVxCMXtVzF4Vs1fF7FWpelWIXpWZV2XmVYl4Vd5dlXdX5d3Vqmzpr6naaap2
mh0wdTWoKjnaaap2mh3wzalB+muq/pqqv6bqr6n6a3bAPNQg/TU7YGLej1VFqSpKWnL2J2liqpQe
nR0wU2VLj07Vo1P16FQ9OlWPTtWjU994dH5Zf9hpfp3m12l+nebXaX6d5tdpfp3m12l+nebXaX6d
5tdpfp3m12l+nebXaX6d5tdpfp3m12l+nebXaX6d5tdpfp3m1wdsfn1Mf9jLy6vnX7x8dHn1yV3w
8+uXzy6vXv32v179lH/28vLi+cvbH/zHP6Gb9xP+yesU797/J/s/Xr94cf3i8atPXj16+fjF7d3l
fPHy+c781f7j1dN95Z5c1btO4Yv9ym+u39Wjl89fvbp6/vLxXx4/u3p1uf1/P7u9vPzr9ZPX1/TD
tCp/+IJ+30/I6/d4+/nl6u93f7p69eWz2+u/f/Li+uXrN/cmePP80RdPL89uX33y5v9+en37+V34
9mb/5Nw+vv3yqt69rx/8UfnhNH9NCX6oT/1f/tv/fP7s8uO/T99//uWvr9/j8xeXZ1d/e/zs5vnf
fuTH6ZvXe3V5er2vxKNXn1yePrzc3Fxurh4939k9u319bR9/9vL66X4XTy53l/GTV7fXrz7/7Ysv
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
hx39b7269h22fn+oC/2D7/brn6Bf4v3+PF1830n8yM/ex78gb6fG7ymVt2PI33XeuEnyQU3uepO7
3uSu333p/92A3PUmd/3u+2gDzUAYSAPdgHn4GCZmvYlZb2LW7x66DUwDHuujXPNRTu763Z24AY/1
QU0ye5PM3iSzN8nsTcz6/n+e4lNX8xuo5mOYIPYmiL3JXW9y15vc9SZ3vTWfusSs74DH+hgmd73J
XW9y15vc9SZ3vcld3wEvkI9yzUc5Ue07YKY+yslu3wEz9dlOdnuT3d5ktzfZ7U12e5PdvgMmNu4l
5iX0cVB2e5Pd3mS374B52AQQ5t6EuTdR7U0Q+w54iuLYFEdB7E0Q+w40A2EgDQwD04B5+J1/+C1W
KJ/C3Jsw9ybMvQlzb8LcmzD3Jru9SWZvktmbZPYmiL0JYm+C2Jsg9iaIvQlib2LWm5j1JlW9CVFv
QtSbEPUmRL0JUW8i0puI9CYRvUlEb9LMm/DyJqu8ySpvssqb4PEmRbwJDW9Cw5vQ8CY0vAkNb0LD
m9DwJjS8CQ1vQsOb0PAmNLwJDW9Cw5vQ8CY0vAkNbyLBm8DvJt+7yfdu8r2bOO8mzrsJ626yuZts
7iabuwnaboK2m6DtJmi7CdpugraboO0maLsJ2m5ytZtc7SZXu8nVbnK1m1ztJle7ydVucrWbXO0m
V7tJzW5Ss5uA6ybgugm4bvKsmzzrJs+6ybNu8qybPOsmz7rJs27yrJs86ybPusmzbvKsm/jqJr66
ia9u4qub+OomvnoHTMz7sez3EvMSKo4Sr5vE6ybxukm8bhKvm4DrJuC6ybNu8qybPOsmvrpJq27S
qpss6iZ6uome3gFfdN17Ud+Lt1+yqJss6iaLusmibrKomyzqJnq6CZZugqWbYOkmWLrJkd4B35xK
J0d6BzxW6etKn6TpHTAPpU/09A6YqdLXlT7h1DtgprYZpVU3adVNWnWTVt2kVTdp1U1adZNW3aRV
N2nVO2CmSrD46h0wUyW4K8FdxRVwvQMmpsAKuG4CrveTqMcqsAKum4DrJuC6CbjeARNTYCVeN4nX
+xHZTBVYEdhNwPUOmId6KuB6P4h7rHoqAruJwG4isJsI7Cbxugm4bt05DonXTeJ1k3jdBFzvgNdD
TZZ43SRe70AxUA00A2FgGvBYH3glXjeJ103i9Q54rDesQ5GWib0DZqqMC8luQrJ3wEyV8aGMi9Fu
YrSbGO0mNbtJzW5Ss5uQ7B3wAqnJUrObkOwmJLsJyW5CsnfAYxVYqdlNanYTkr0D5qGeSs1uwztY
PbBND2zTA9v0wO6AiSmwmmJ3wMQUWF2yTZfsDpipeqptdgfMw/tTXbJNl2zTJdt0ye6AL+rdpy7Z
pku26ZLdAfNQHPXRNn20TZds0yXbdMk2XbJNl2zTFNt0uDYdrk2Ha9Ph2nS4Nh2uO+CxaqGW16bl
tb2xvH6kBcqn+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n+XWa
X6f5dZpfp/l1ml+n+XWaX++/+fUx/eisM748fXi5ubncXD16/uz2boHxHaD78Wcvr59evt5p/Or2
+tXnv33x5b8+vvndWNdZby7zKmqt+3/G5WrVm4dXj64vj+q8jPxsXj5sBv3RvLnueXNVH+XlKuLy
2dXDhw8eXj2cD9eMdX39sKy37S7+x5e3nz9/9p+v7cXv6Nt8p3/67ebka47548udV/L5sw/aBv3O
SR+Wyv4t/PtP2uH9IX4M33Kh99sc/RqV/ukbVPqn+9rs2PVfLj99ZfmH+Jn/Fbzdt2PCNxnXO6A6
e/8n9HoHVGfv/6RgNynYTQp2k4LdpGDvgJl6hzi9Q5ST3cRi74CJ+ZA+fUiXk93kZO+Ax3rLKCe7
yclucrKbnOwmFruJxW5isZtY7B0wD28Zp8/kcrJ3wAvkPaTg7CY4ewdMzHtISdpNcHYTnN0EZzfB
2U1wdhOc3QRnN8HZTXB2E5zdBGc3wdlNcHabPrVL0t4BE/M+VLR2E629A+bhjalo7SZJewe8Hj6k
y9pusrabrO22vO1cPpML396BNNANDAMe642peO4mnruJ527SuJs07iaNewfu5cHPqXjuJp67iefe
ARNTk5eaLMC7CfBuArx3wEzVZBHfTcT3DpipIi3zewdMTJEWAt5kfjeZ3ztgHor0UpOlgjep4E0q
eJMK3qSC74DHqslSwZtU8CYVvEkFb1LBm1TwJhV8B7xAarLc8CY3vMkNb3LDm9zwJiZ8B0xMTV5q
siDxJje8yQ1vUsGbVPAm83sHfFG/BZX53WR+N5nfO+AlvKeWPMaHzO8Q8R0ivkPEd4j4DhHfIeI7
RHzvgImhpztgYsXEiokVEysmVkysmFgxseoVq2ZazbSaaTXTaqbVTKuZVhNr5tHMo5lHM49mHs1j
mxeomUd4gcLEwsTCxMI8wusRJhYmFiaWJpYmliaWJpZesTTTNNM00zTTNNNupt1Mu5l2M+1m2k2s
e+zw2OGLDt/t8EWH73Z4yvSU6XuZpj49ZXrK9JpOj10eu7ymy2OXxy6PXR6rwAoBDyHgO1ANNANh
IA10A8MAmQoSD7nhISY8pIKHVPCQCh5SwUMqeAgBDyHgIQR8B3z7iqNU8JAKHlLBQyp4SAUPqeAh
FXwHvECqpZjwEBMeYsJDTHiICd8BE1M+i/IpSDwEiYcg8R0wMaVPbniICQ8x4VFUOrnhO+DbV+kE
iYcg8RAkvgP+wHQzVRwli4dk8ZAsHpLFQ7J4SBYPyeIhWXwHzFSBLdPEFNiiwMoeD9njO2AeKq4w
8hBGvgPmoeLKHg9R4yFqPESNh6jxEDUeosZD1PgOpIFuYBiYBkxMxRVGHsLId6AZMDEFVjp5SCe/
+y7egC/q3acw8hBGvgPmocBKJw/p5CGdPISRhzDyEEYewshDGHlUFVcYeQgjD2HkIYw8hJHvgImp
uMLId8AL5O1oVWClk+/AvVN8+yquuPIQVx7iykNceYgr3wETUz7FlYe48hBXvgPmoXxWxVGgeQg0
D3HlIa58BzxFcayKY1Ucq+JYFUctjzvg9VhmqnzqgQw9kKHlMbQ8hpbH0OEYOhx34N4p0wBvX8vj
DjQD+b4NqP+sx3d7+fvt1ZPLXy9Prr4V/Pxy9fDm8dedtrs/P7t8cfvy+snV7fOrZ188fXh5efXZ
8ydPnv/trv/6etv1k3c7+Gta9lV5fd6b//vrI58+v/niyeWTVy8ujx5/9nif9nqE4EfO+SiY4w9x
Kf/lv/3P588uP6lp+9Ov67scetqnp3162qenfXrap6d9etqnp3162qenfXrap6d9etqnp3162qen
fXrap6d9etqnp3162qenfXrap6d9etqnp336EdqnvyIL89v15R5e31y9+ePV1y26D7Y0+n1m+Ja+
zp/enfzBC/5LLwf/VWz6/lVuq/5RtnWIbg7RzSG6OUQ3h+jmEN28AyqEz4XN50JpzyHLOWQ5h+jm
EN28Ax7rY2DzLkXa8w54gbxLEf8c4p9D/HOIfw7xzztgpt62yIMOedAhDzrkQe+AiXnbIiA6BESH
gOgQEB0CokNAdAiIDgHRISA6BESHgOgQEB0CokNAdMiD3gET815IQHQIiA4B0SEgOgREh4DoEBAd
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
8bU74LEqrjzblGeb8mxTnm3Ks015tinPNuXZ7oCJqcnybFOebcqzTXm2Kc82xdem+NoUX5via1N8
bYqv3QHzUILF1+6AiSnBVQmWeJsSb1PAbb4B3L41+vEu+Pn1y2eXV6/eN/Lxp254/KfJvby8eP7y
9hegUv6zMz8uHPSHk/z1pHdao6c1elqjpzV6WqOnNXpao6c1elqjpzV6WqOnNXpao6c1elqjpzV6
WqOnNXpao6c1elqjpzV6WqOnNXpao6c1+hFaox/JPfh1m+z/8z/+/b/vBP6PN4v+vtXUu7k8uf7y
ty++/Nenr37X9gPt9yXKC/z96ZO7v/fV4sCr28dPL8+/uL16/ted3eOby6t3Wvf45bPb679/8uL6
5au7K3EXyyePH376+NnD5zdfPiivX+tDLnN8m/P/5b/9z+fPLj/+jh4/u728/Oz67tLe/bPfPr75
QKn/k4M+8hZDOr+3l7/fXj3Zr/Dk6lvBzy9XD28ef93/vfvzs8sXty/3YbfPr5598fThzuCz50+e
PP/bXdO4Xl3+/uLy6PZy88F/Cj5o4m/740Mql/2qNzeXm6tHz/fHvY+9S+PxZy+vn16+zuTV7fWr
z+9+gx/f/G6s66w3l3l1t3B6/8+4XK168/Dq0fXlUZ2XkZ/Ny4fNoD+aN9c9b67qo7xcRVw+u3r4
8MHDq4fz4Zqxrq8flvW2n+J/fHn7+fNn//n6p/UdBz/e6Z9+3w/Ch7j6bzk28TZHP3r5/NWrT5+/
fPyXx88+3eq1Y9d/ubxDUfgFPupfwdt9O8h0upI7XcmdbuBON3CnG7h3wNsUn3vc0Z3u6E53dKc7
utMd3emO7h0wUx+E3OKdbvFOt3jvgJn6IORa73Std7rWO13rna71Ttd6p2u907Xe6VrvdK13utZ7
B8zUJyP3fO8Ambr4O138nS7+3oFmIAykgW5gGLiXGJew+XTV/ArM5eHp8vAdMFO/ExPbnmLbU2x7
SmlPKe0ppT2ltKeU9h3wivn8JbY9pbSnlPaU0p5S2lMoe8pgT5HrKWE9JaynhPWUsJ4C1XfAY30Q
Epee0tFTGHrKPk/Z5yn7PEWdp2TzHfCK9XvH+l6UT8nmKcg8BZmnIPOUW55yy1NMeYop3wGPVQub
StdUOrnlKbc85Zan3PKUW74D5qHSSTbfATP1y37Z5yn7PGWfp+zzlH2ess9T9vkODAMmptLJPk/J
5inZPCWbp2TzlGyegsxTkHnKLd8Bj633XtQ353dAQshT5njKHE+Z4ylRPEMNEg+e4sFTPHhKA98B
U/frGvHgKR48xYOnePAUD57iwVM8eIoHT2ngKfw7hX+n8O8dMA9vA4V/p/DvHfB6KGzCv1PWd8r6
TtHeKdo7RXunaO8U7Z2SvFNOd8rYTpHaKUE7JWinBO2UoL0DzUAaGAamAfNQUCRopwTtFJidArNT
YHaKw94BT1E/xGGnOOwUh53isFMc9g74XhQUYdcp7DplW6ds6x3wzXkfJNs6ZVunbOuUXJ2Sq1Ny
dUquTkHVKag6BVWnoOr9FzzWOyVB1SmGegf85NQPMdQphjrFUKdM6RQhnSKkU4R0SoxOAdEpIDoF
RKeA6BQQnQKiU0B0CohOAdEpIDrlQaf45xT/nOKfU9pzynJOwcwphznlMKfY5RS7nGKXU+xyil1O
scspdjmlLKeU5ZShnDKUU4ZyylBOGcopQzlFJqfI5B3weqgwMpRTZHKKTE6RyTvg9VBhurc9QpVT
hnLKUE4ZyilDOWUo74CJqUEylFOGcspQThnKO+Cx3uXIUE4ZyilDOWUopwzllKGcIpNTQnJKSN4B
j1XYusImQzllKKcM5ZShnDKUU2RyikxOkcnZFUcZyikyOUUmp0DkFIicApF3NSkGqoEwkAa6gWGA
PMQdp7jjlG6c0o1TunFKN07pxindeAe8HuqpuOMUd5zijlPccYo7TnHHKd04ZRen7OIUVZyiilNU
8Q54imopqjhFFaeo4hRVnKKKd8DElE/ZxSm7OGUXp+zilF2csotTdnHKLt4BM/WeTphxCjNOYcYp
zDiFGacw4xRmnMKMU5hxCjPOoQRrj03tsak9NrXHpvbY1B6b2mNTe2xqj03tsak9NrXHpvbY1B6b
2mN3wExVbf2yqV829cumftnUL5v6ZfONX/YjbVg9za/T/DrNr9P8Os2v0/w6za/T/DrNr9P8Os2v
0/w6za/T/DrNr9P8Os2v0/w6za/T/DrNr9P8Os2v0/w6za/T/Hr/za9f9YbVlF+b8mtTfu0OePEs
RgJtd4CLJ+E2JdzuQDXQDISBNNANDAPTgJlav6b1SyhuCsXdATO1oEnJTSm5KSU3peSmlNwdMFMf
EMTmptjcFJubYnNTbG6KzU2xuSk2N8XmptjcFJubYnNTbG6KzU2xuSk2N8XmptjcFJubYnNTbG6K
zU2xuSk2dwfM1LIpRzenZXNaNiXtpqTdlLSbknZT0m5K2k1JuylpNyXtpqTdlLSbknZT0u4OmKll
U/Ruit5N0bs5LZuyeFMWb8riTVm8O2Cmlk3hvCmcN4Xz5rRsSutNab0prTel9aa03h0wU8um+N4U
35vie1N87w6YqTVKwG/K8015vjtgYpYkib8p8Tcl/qbE35T4uwPDwDRgHtaXZTlZVg8RwCkCOEUA
57JYyAROmcA7YB4WC5nAKRN4B0zM2iAkOIUEp5DgFBK8A14gS4GQ4BQSnEKCU0jwDpiYyi9GeAdM
TF0XI5xihFOM8A6Yh7ouV3gHzENdX+q65OGUPJySh1PQcAoaTkHDO2AeqrYo4hRFnJKHU/JwSh7e
ARNTpEURpyjilDycgoZT0HAKGk5BwyloOAUN74B5KMGSh1PycEoeTsnDKXk4JQ+n5OEdMFMUt0sN
7lKDu9TgLjW4S/ztEn+7PN8uz7dL6+2yeLss3i56dwc8pXlKeEqYeph6mEeYR3hseGyaKXLRpeR2
KbldSm6Xktul5O6AH3b37XeP7Z7SfY3hawzfy/BFhy86TH14xYbHTi/hNI9pHtM8pnlM85hewmli
08SWiS0/ueWxy2OXxy6P9fdWoG0XV9ul03bptF06bZdO26XTdum0OxAGugHzKL6Xah6KgTDaLoy2
C6Ptwmh3wMSqiVUvUDVTJac0M21m2sy0mWkz02amCptA2y7QtpcwU6VPwm2XcNsl3HYJt13CbZdw
2yXcdgm3XcJtl3DbJdx2Cbddwm2XcNsl3HYJt13CbZdw2yXcdgm3XcJtl3DbJdx2Cbddwu0OmGk3
U0Va5G0XebsDZqpqy8DtMnC7DNwuA3cHzFRdF4rbheJ2obhdKG4XituF4u6AmSr0UnK7lNwuJbdL
ye1ScruU3C4lt0vJ7UJxd4A8hOLuQDFQDYSBNNANDAPmYfWQktul5HYpuV1KbpeSuwMea7EQm7sD
vn2LhRzdLke3y9HtcnS7HN0uNreLze1ic3fAxCwFYnO72NwuNreLze1ic3fAxCwFgnW7YN0uWLcL
1u2Cdbtg3V5VfsG6XbBuF6zbBet2wbpdsG4XrLsDJqbQV4VeV1PX1dR1NXVdTV1XU9fV1HU1dV1N
XVdT19XUdTV1XU39jYnpl/WHnebXaX6d5tdpfp3m12l+nebXaX6d5tdpfp3m12l+nebXaX6d5tdp
fp3m12l+nebXaX6d5tdpfp3m12l+nebXaX59wObXx/SHff8KxRcvnz+6vLrbHHn1dL/+k6v6ejXj
X15e3z5+/uzqb49vP7+622b2X9d/vX7zr66u/3K3bvHuiOsnj189/eTR9bOH+z3931evPr9+ebn5
2/OX//fl5Yfed/jLv5l324H43aWcb1qUv/2vVz/h395ent791cuP/+tv1qLeBXf+z/bF+KmHvrr9
wX/5Ez7A78/x5eXF85fv/bxf7T/5wf2tX/+o/PDuwbdZ+vouaxT/6cf/S6XwfT+4H/cSfP1r91Ev
w9e/Gx84i7dD7Xbhs134bBc+24XPduGzXfhsFz7bhc92WbNd1myXNdtlzXZZs13WbJc120XLdtGy
XbRsFy3bJcl2SbJdcGwXHNsFx3bBsV1wbBcc2wXHdsGxXXBsFxzbBcfugIn5wCEntjcfOOTEdrGw
XSxsFwvbxcJ2sbC9+TjRfJwQHNsFx3bBsTtgHj5ONB8nmk8PkmR3wDx8ehAt20XLdtGyO2BicS8x
r5iPE83HiebjhHjaLp52B8zUx4nm44QA2x0wU58vJNrugIn5vVHz+ULEbRdg25tPDxJtu0TbHTAP
nx5E3HYRtzvgBVKTZd72piYLwe1CcLsQ3C4EdwdMTJEWk9vF5HYxuV1MbheT28Xkdqm4XSpul4rb
2z2R9lshIbhdCG4XgtuF4HaZt13m7Q5MA+ahagvB3QETU7XF5HYxuV1MbheTuwMm5tdEoYyHmiwV
t0vF7aFIi8ntYnJ3wHerSMvN7XJzd8BMVW3Juj2U8VC1Q9UWxrsDJqZqh5osjLcL4+3CeLsw3i6M
twvj7cJ4uzDeLoy3C+Ptwnh3wEz9zicUaXG9XVxvF9fbxfXugIkp0uJ6u7jeLq53B8xDkQ5FWqBv
F+jbQ5EW6NsF+naBvl2g7w6YmJocanIowaEEh1+7CwXeAY9VgkMJFhvcxQZ3scFdbHAXG7wDYSAN
dAPDwDRgpoq0YOEuWHgHzFSRljS8A2aqSKc336lqCyfuwom7LOIui3gHPFZdF07chRPvgMeq66mu
iy/eATNV1+UZ74CZqusCjruA4x0wU4VewHEXcLwDJubduAjkLgK5i0DuIpB3wMRU7VS1JR53icc7
4Isq0qlIpyItJLkLSd4BE/NeW2pyl5rcpSbvgJmq2nKVd8DEVG1By13Q8g6YmDKeyngq46mMpzIu
rLkLa+7Cmruw5i6suQtr7sKau7DmLqx5B8xUoZfe3KU370AYSAPDwDTgsaq2wOcu8LkLfN6BbsBj
lWCBz13gcxf43AU+74CJqdrynbt85y7fuct37vKdu2zmHfBFFUdhzV1YcxfW3EUxd8nLXfJyl7zc
JS93Qcs74A+M4ihouQta3gHzUBwFLXe5yl2ucu/qmBjlHfDNeTsqRrmLUe5ilLvU5C41uUtN7kKS
u5DkLiS5C0nuQpJ3wDwUJanJO+DbV5TkKne5yl2uch/efcpV7nKVu1zlLka5i1HeAY9VlOQq74B5
eCspaLkLWu6Clrug5S5ouQta7oKWu6DlHTBTdUzycpe83CUvd8nLO2Cm3n0OtXCohcKau7DmHTBT
7z6lN3fpzTtgpt59inPu4py7OOcuzrmLc+7inLs45y7OuYtz7uKcuzjnLs65i3Pu4py7OOcuzrm/
wTl/pD2Tp/l1ml+n+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n
+XWaX6f5dZpfp/l1ml/vv/n1q94z2V2v2l2v2l2v2l2v2l2v2l2v2l2e2l2e2l2e2l2e2l2e2l2e
2t2V2t2V2l2N2t2E2t2E2t2E2t2E2l182l1a2l1a2l1a2l1a2l1a2oeVRUhyF5LchSR3IcldSHIX
ktyFJHchyV1IcpeJ3GUidxHIXQRyF4HcRSB3EchdBHIXgdxFIHeJx13icRdw3AUcd3nGXZ5xl2fc
5Rl3ecZdnnGXZ9zlGXd5xl2ecZdn3OUZd3nGXZ5xl2fc5Rl3ecZdfHEXX9zFF3fhxF0WcZdF3EUP
d0nDXdJwlzTcJQ13wcJdjnCXI9zlCHexwV1scBf52wX6dvm9XX5vF9fbpfN2Ubtd1G4XpNvl5nap
uF0qbpdX2+XVdnm1O9AMhIE00A0MA9MAH5RE2x0wMdVhqQ4SbbtE2y7Atguw7QJsd8Bj/d2XV9vF
03bxtF08bRdP26XR7oDH+nsrWnYHfA3vs+TEdjmxXSxsFwvbZbzu5yVfwy/1RLp2ka5dpGsX6bof
wnwv/pqKdO3yWbt81i6fdT/ZeYq/t9JXu7DVLkp1B+79je++uf24WAw0A2EgDXQDnkLN3gGP5Zdw
SE7dAY8tHlvuHbsIVPOo5lHNo3o9qolVE6vmUc2jeWzzlOaLNt8tv6ZDxut+0Pe9hKeE7yU8JTwl
fC/pNU3fXJpHmkeaR/r208TSd5sm1k2sm1g3sW5i3cS6iXUvUDexbmLDxIaJDRMbJjZMbJjY8IoN
Mx1mOsx0muk002mm00ynmU4znSY2TWyZxzKPZR7LPJZ5LPNY5nFPLXkoGoXbniGNdgeagTCQBrqB
YYDEBNgOAbZDgO0QYDsE2O6Aiam4pdzLwwuk4kq0HQJshwDbIcB2CLAdAmyHANshwHYIsB0CbIcA
2yHAdgiwHQJshwDbIcB2yKsd8mqHeNohnnaIpx3SaIc02iGNdkijHdJohzTaIY12SKMd0miHNNoh
jXZIox3SaIfw2SF8dgifHcJnh/DZIWt2yJodsmaHrNkhWnaIlh2iZYdo2SFadoiWHaJlh2jZIVp2
iJYdomWHaNkhWnaIlh2iZYdo2SFadoiWHaJlh2jZIVp2iJYdYmGHWNghFnYHmoEwkAa6gWFgGjAx
Rboq0lWRliQ7JMnugJkq0qJlhyTZIUl2SJIdkmSHJNkhSXbIid0Bj1WC5cQOObFDTuwOeKwSLDh2
yIkdUmCHFNghBXZIgR1SYIcU2CEFdkiB3QEvkBIsFnaIhR1iYYdY2CEFdgh9HUJfh4zXIeN1BzzF
+2QZr0PG65DxOmS8DhmvQ8brkPE6ZLzugImpp3qFhl6hoVdo6BXaARNTTzUPDc1DO+AHpZ7qJhq6
iYZuoqFXaGgNGjqBdoAX1Qm0A81AGEgDH3HP5Gl+nebXaX6d5tdpfp3m12l+nebXaX6d5tdpfp3m
12l+nebXaX6d5tdpfp3m12l+nebXaX6d5tdpfp3m12l+nebX+29+fUx/2E/cQPjrXgr4Pvaz/fLr
Kj/g5r1f2Zv51gq/y9PrZ7ePH929m7/fXj25/HXn8a3gPv7hzeOry5PL033yJ3d/fnb54vbl9ZOr
2+dXr77YP+77p+PuLbz84tmH3mD6/pN9tw2lX590efrwcnNzubl69Hx/YPuou6Mff/by+unl69Nf
3V6/+vy3L77818c3v+uP5s11z5ur+igvVxGXz64ePnzw8OrhfLhmrOvrh2V92AzGus56c5lXse+h
9v+My9WqNw+vHl1fHtV5GfnZvLztJ/cfX95+/vzZf77+iXxH9Xinf/p9H/6HuPo/vCrynY5+9PL5
q1efPn/5+C+Pn336Yv9aPrvdv7bvvFvzg37Uv4K3+71rRL+1ifPZ5eV//1//498/vb55/uJOE7/a
yvnLrZb98VzeQkG+74P9uhJcldcX9iuN/8eFffL8L3ef6KvLo9+1/9f+XMtbfmg/8rLX+y0++vTB
g7hL/z3sNx2ihIco4SFKeIgSHqKEh+TgITl4B7yX84mz+cQpW3iIEh6ihIfU3yH1d0j9HVJ/h9Tf
IeR3CPndAa+Yz4IyfYdM3yHTd8j0HSJ8hwjfIcJ3SOwdEnuHgN4hoHcI6B0CeoeA3iGgdwjo3QET
8+FQYu8Q0LsDJubDoQjfIcJ3iPAdInyHCN8hwneI8B0ifIcI3yHCd4jwHSJ8hwjfHTBTnxZl+g6Z
vkOm75DpO2T6DhG+Q4TvENA7BPQOAb1DQO8Iv44T0DsE9A4BvUNA7w6kgWHgXh58LgJ6h4DeIaB3
COgdAnqHgN4hoHcI6N0BM/X7uVAtRfgOEb47YKZ+Pxd2VcKuihjgIfV3SP0dUn+H1N8h9XcI+R1C
foeQ3yHkd4Tf4Mn0HTJ9h0zfIcJ3BzxW1ZbpO2T6Dpm+Q6bvkOk7ZPoOmb5Dpu+Q6Ttk+g6ZvkOm
75DpO0T4DhG+Q4TvDpiHqi3Cd4jwHSJ8h8TeIX53iN/dAU9RYOXxDnm8Qx7vkMe7A34MCqyA3hEq
rsTeIbF3B8zUPrYI3yHCd4jwHXFPpP2OT4TvEOE7RPgOEb5DYu+Q2DsE9A55vEMe75DHO+TxDnm8
Qx7vkMc75PEOebxDHu+Qx7sDJqbiCugd8niH+N0hfneI3x3Sdoe03SFtd0jbHdJ2h7TdIW13SNsd
0naHtN0hbXcHzNQbZ/G7Q/zuEL87xO8O8btD/O4QvzvE7+6AmarJqSbL490BT/E+WR7vkMc75PEO
ebxDHu+Qxzvk8Q55vEMe75DHO+Tx7oCZeuMsoHcI6B0Ceoc83iGPd4jfHeJ3d8BjFWnxu0P87hC/
O8TvDvG7Q/zuEL87xO8O8btD/O4Qvzu6Ii2Pd8jj3YFmIA10A8PANGBiqraA3h0wD1VbYu+Q2LsD
JqZqi/AdInyHCN8hwneI8B0Se3fAxNT1rq4L+R1CfoeQ3yHkdwj53QETU9e7ut7VdUHBQ1DwEBQ8
BAUPQcFDUPAOeMXU9a6Md2VctvCQLTxkCw/ZwjtgYsp4905atvCQLbwDvoYS3FVcQcFDUPAOeMXU
U7nAO+Apyqeg4CEoeAe8QN4FixIeooSHKOEhSniIEh6ihIco4SFKeIgSHqKEhyjhIUp4iBIeooR3
oBioBpqBNMCxkoOH5OAhOXhIDh6Sg4fk4CEoeAgKHoKCh6DgISh4CAoecoGHXOAhF3jIBR5ygYdc
4CEXeMgFHnKBh1zgIRd4yAUecoGHXOAhF3jIBR5ygYdc4CEGeIgBHmKAhxjgIQZ4iAEeUn+H1N8h
9XdI/R1Sf4fU36GpeOghHnqIhx7ioYd4B8zD+2RdxkOX8dBlPHQZD13GQ5fxDpipqj1UbW3HO2Bi
yrg+5KEPef8F81DGhzI+lHGdykOn8tCpPHQqjzdO5Y+03/Q0v07z6zS/TvPrNL9O8+s0v07z6zS/
TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0v07z6/03vz6mf/21+ezOZvb3
uz9dfdc/91Xw5vmjL+68Z68+efN/P72+/fwufHuzz759fPvlVbs77QPa+t5Pgm/rFv5R7PWQpjyk
KQ9pykN48hCePIQnD1nJQ1byDlQDzUA3MAzwUyoaeYhGHqKRh2jkHQgDacDELK7Ck4fw5DEtrtKU
hzTlIU15SFMe0pSHNOUhPHkITx7Ck4fw5CE8eQhPHsKTh/DkITx5CE/eATO1uEpT3gETs7iKV94B
E7O4ylveARPzYWVabSUyD4nMQyLzDpiY3zlJZB4Smce0uEpkHhKZd8ALZHGdFtdpcZXqvAMmZnGV
+7wDZmq1FQS9A2ZqtZ1W22lxnT5FTautMOkhTHoHTMzyK256B0zMejytx9N6LKF6B0xMXZ8+NE2F
fir0857Q+9AkB3vIwR5ysIcc7CEHe8jBHnKwhxzsIQd7yMHeNzBmarFY1oZlbZCUPSRl74CJWRtE
Z+8KbWLWBlnaQ5b2DpippUC49hCuvQMmZm2Qtj2kbQ9p2zvgFbMUiN/eAROzFAjo3gETsxQslV+E
9w6Yh8q/VH6p30Pq95D6vQMm5nOWGPAdMDFLgaDwfQdnYtYGUeI7YGLWBtniQ7b4kC0+ZIsPUeJD
lPgOmIfKv1R+6eND+vgOmIfKv1R+ceQ7YGIqv8DyHTAxlX/Ne4n5Uar8S+Vf3uIvS8GyFCxLwbIU
SFIf90jqi1KwnwEeGCgGqoFmIAykgW5gGJgGzLSYaTHTYqbFxIp5FPMo5lHMo5pHNY9qHtUrVk2s
esWqmVYzrWZazbSZaTPTZqbNTJuZNjNtZtrMtJlpM9Mw0zDTMNMw0zDTMNMw0zDTMNMw0zTTNNM0
0zTTNNM00zTTNNM00zTTbqbdTLuZdjPtZtrNtJtpN9Nupt1Mh5kOMx1mOsx0mOkw02Gmw0yHmQ4z
nWY6zXSa6TTTaabTTKeZTjOdZjrNdJnpMtNlpstMl5kuM11musx0makVSDr9DhQD1UAzEAbSQDcw
DEwDZmoFkl8/5ddP+fVTfv2UXz/l1++AmVqjBNpPgfZToP0OmKk1SsL9lHA/JdxPCfdTwv2UcD8l
3E8J91PC/ZRwPyXcTwn3U8L9lHC/A2ZqjRJ5vwNmao2SgT9l4O+AmVqjhOJPofhTKP4Uij+F4k+h
+FMo/hSKP4XiT6H4Uyj+FIq/A2ZqjZKSP6XkTyn5U0r+DpipNUps/hSbP8Xmz2KNkqM/5ehPOfpT
jv6Uoz/l6E85+lOO/pSjP+XoTzn6U47+lKM/5ehPOfpTjv6Uoz/l6E85+lOO/pSjP+Xo74CZWqOK
NapYo4o1qlijpPVPaf1TWv8OVAPNQBhIA93AMDANmKk1Snz/FN8/xffPN/j+j7Tz9TS/TvPrNL9O
8+s0v07z6zS/TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0v07z6zS/TvPr
/Te/Prpn7tsrQb98dXt5evXq9vr2cnX97Obq0fWL64ePnzy+fXx5s9by2fVfH//l+vb5y6vnD//r
8uj2k28Cj5/dXP5+ufnQi/E+RLpv66f7iTty/9lCv7v//Kvarvu9mb7po/4Klvm+9/2/P7Ys9513
MP6Mxb1vt4v4A2X0Az+gv5Z0vv4p/AUT+jm/8z9K7N3yb13yiaT6RFJ9Iqk+kVSfSKpPJNUnkuoT
SfWJpPpEUn0iqT6RVJ9Iqk8k1SeS6hNJ9Ymk+kRSfSKpPpFUn0iqTyTVJ5LqE0n1iaT6RFJ9Iqk+
kVSfSKpPJNUnkuoTSfWJpPpEUn0iqT6RVJ9Iqk8k1SeS6hNJ9Ymk+kRSfSKpPpFUn0iqTyTVJ5Lq
A0j1AaT6AFJ9AKk+gFQfQKoPINUHkOrzRvV5o/p4UX28qD5eVB8vqo8X1aeJ6sND9eGh+vBQfVao
3udX7/Or9/nV2/q67r0o76V5W9+8rW/e1jdv65u39c3b+uZtvXzzKd98yjef8s2nfPMp33yKM98B
376aLN98B8xDCW5KcFOCmxLclOCmBItVn0LTp9D0HTAPBVas+hSrPsWqz6bANgVW8PqUsz7lrO+A
eSifctannPUdMA/lU/D6DpiY8ilWfYpVn2LVp1j1KVZ9BzxFLRSrPsWqT6HpU2j6FJo+haZPoelT
aPoUmj6Fpk+h6VNo+hSaPoWmT6HpU2j6FJo+haZPoelTaPoOmKlftUhR3wEzVYKbEix4fQpen4LX
p+D1HSBTSexTEvuUxD4lsU9J7FMS+w50A8PANGCmyrho9imafYpmn6LZp2j2KZp9imafotmnaPYp
mn2KZp+i2ado9imafYpmn6LZp2j2KZp9imafotmnaPYdMA+VXzT7FM0+RbPvgImp/MLbp6z2Kat9
B0xM5ZfVvgPmodDLap+y2qes9imrfcpqn7Lap6z2KZp9imafotmnJPYd8BTvccN7XEnsUxL7lMS+
A759ZVw0+5TEPiWxT0nsUxL7lMQ+JbFPSexTEvuUxD4lsU+h6VNo+pSAPiWgTwnoOxAG0sC9U6YB
UpeRPmWkT5HoUyT6lIA+U9kSZ74DvqiylfXei/rmvD8VeD4Fnk+B5ztgYqqUfPMp33xKL5+yyads
8imbfMomn7LJp+TxKXl8yhWfYsR3wCvmraSg8R3wFPVD0PgUND4FjU8x4lNq+JQaPqWGT6nhU2r4
lBo+hYRPIeEzvVGUGj6lhk+p4VNq+A6Yh4IiNXxKDZ9Sw6dM8CkTfMrznuK7pyzuKYt7yuKeXbkQ
zj2Fc0/R21P09pS0PeVoTznaU472DoQBj633TvHNKRdytKdQ7B3wvagOUrKnDOwp8nqKvJ4ir3fA
F1Ud5FdP+dVTfvWUXz3lV+/AvWO9hOqHQOsd8FjloisXMrB3wDwUlO4dipTsHfACKShSsqeU7B3w
WPVDSvaUkj2FYk8Z2FMG9pSBPWVgTxnYUwb2lIE9ZWBPkddT5PUUeT1FXk+R11Pk9RR5PUVeT5HX
OzAMTAPmoWwJxZ5CsacM7CkDewe6AfPwAU8G9pSBvQO+fXVM5PUUeT0lXE8J11PC9ZRwPSVcTwnX
8w3h+mM3aH/pLvf7aMK+H4bvz+gV/5oSPH3O0+c8fc7T5zx9ztPnPH3O0+c8fc7T5zx9ztPnPH3O
0+c8fc7T5zx9ztPnPH3O0+c8fc7T5zx9ztPnPH3O0+f8CH3Oj+6yfnV5ev3s9vGju0be32+vnlz+
enly9a3g55erhzePry5PLnetuU/u/vzs8sXty+snV7fPr159sQ/94tldplcvv3h2dfn7i8uj2w9v
tv6AWb+3HabT1czTTczTTczTTczTTczTTczTTczTTczTTczTTcw7YB7eHLt4ebpWeQc8xfI3LH8u
Xp4uXp7uWZ7uWZ7uWZ6uVZ6uVZ6uVZ6uVZ6uVZ6uVZ6uVZ6uVZ5uUZ5uUZ4uTZ7D8ucW5R3welgP
Xas8Xau8AyZmxXTP8nTP8nTP8hxWTBnmU4b5lGE+ZZhPkeVTZPkUWT5Flk+R5TsQBtJANzAM3EuM
CyTlfEo5n1LOp5TzKeV8SjmfQs2nUPMp1HwKNZ9CzadQ8ynUfMownzLMpwzzKbJ8iiyfIsunyPIp
snyKLJ8iy6fI8imyfIosnyLLd8BMbYbJMJ8yzKcM8ynDfMownzLMpwzzKcN8yjCfMsynDPMpw3zK
MN8BE1PGp6ot1HwKNZ9CzadQ8ynUfAo1nzLMpwzzKcN8yjCfMsynDPMpw3zKMJ8iy3fAxBR6GeZT
hvmUYT5lmE8Z5lOG+ZRhPmWYTxnmU4b5lGE+ZZjvgJkq9ELNp1DzKdR8CjWfQs2nDPMpw3yKLJ8i
y6fI8imyfEoonxLKp4TyKV18yg6fosKnZPAdMDEFVjL4FPM9xXxPMd9TiPcU4j2FeE8h3jvge1Ec
pXrvgHkojmK+p5jvKeZ7ivmeYr6nmO8p5nuK+Z5ivqeY7x0wU8VRzPeU6j2lek+p3lOq95TqPaV6
T6ne+xfK66H0CfGeQrynEO8pxHsK8Z5CvHfA66EWSvWeQrynEO8pxHsK8Z5CvKdE7imRe0rknhK5
p0TuKYB7rnuyxVc8S972Eq+9xGsv8dpLmvaSpr2kaS9p2kua9pKmvaRpL2naS5r2kqa9hGcv4dlL
ePaSlb1kZS9Z2UtW9pKVvWRlL1nZS1b2kpW9ZGUvWdlLVvaSlb1kZS9Z2UtW9pKVvWRlL1nZS1b2
kpW9ZGUvWdlLVvaSlb1kZS9Z2UtW9pKVvWRlL1nZS1b2kpW9ZGUvWdlLVvaSlb1kZS9Z2UtW9pKV
vWRlL1nZS1b2kpW9ZGUvWdlLVvaSlb1kZS9Z2UtW9pKVvWRlL1nZS1b2Eo29RGMv0dhLNPYSjb1E
Yy9J2Evw9RJ8vQRfL8HXS/D1Eny9BF8vwddL8PUSfL0EXy/B10vw9RJ8vQRfL8HXS/D1Eny95Fwv
OddLrPUSa73EWi+x1kus9RJrvcRaL7HWS6z1Emu9xFovsdZLrPUSa73EWi+x1kus9RJrvcRaL6HV
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
5mGBlU6+pJMv6eRLGPkOmIf1VDr5DpiY9VRc+Q6YmPVUfvmSX77kly/55Ut++ZJfvuSXL/nlS375
kl++5JcvceVLXPkSV74DJqZqD1VboPkOkJiE8yXhfEk4XxLOl4TzJeF8SThfEs6XhPMl4XxJOF8S
zpeE8yXhfEk4XxLOd8BMlXGR50vk+RJ5vkSeLwnnO2BiyvhUxkWe74B5qOsy0JcM9CUDfclAXzLQ
lwz0JQN9yUBfIs+XyPMl8nyJPF8iz5fI8yXyfIk8XyLPl8jzJfJ8SThfEs6XhPMl4XxJOF8SznfA
PKwNIs+XyPMl8nyJPF8iz5fI8x0wU4uFDPQlA33JQF8y0JcM9CUDfclA3wEztXoIRV9C0ZdQ9CUD
fclAXzLQlwz0JQN9yUBfMtCXDPQlA33JQF8y0JcM9CXyfIk8XyLPl8jzHSAxGehLBvoOVAPNQBhI
A93AMGBi1oZlbViWgmUpWJYCweo7YB6WAtHra1kKZLHvgFfM2rCsDdLal7T2Ja19B8zUYrEsFsti
IfF9SXxfEt93wEwtFjLhl0z4JRN+yYRfMuGXTPglE37JhF8y4ZdM+CUTfsmEXyLglwj4JfF9CXhf
At6XgPcl4H0ta4PE9yXxfUl8XxLfl8T3JfF9SXzfATO1NsiE3wEztTbIhF8y4ZdM+CUTfsmEXzLh
l0z4JRN+B0zM2iAkfgmJXzLhd8DELAXLUiBGfomRX2Lklxj5HfCKWQrEyC8w8vHgwXdLwV2gGKgG
moEwkAa6gUmgmEcxj2IexTyKeRTzKObx3VJwF7iXmFesmmk102qm1cSqiVUTqyZWTayaWDOxZmLN
xJqXsJlpM9Nmps1Mm5k2Mw0zDTMNMw0zDTMNMw0zDTMNMw0zTTNNM00zTTNNM00zTTNNM00zTTPt
ZtrNtJtpN9Nupt1Mu5l2M+1m2s10mOkw02Gmw0yHmQ4zHWY6zHSY6TDTaabTTKeZTjOdZjrNdJrp
NNNpptNMl5kuM11musx0meky02Wmy0yXmVpwigWnWHCKBadYcIoFp1hwigUHev1dYBowU0tSsSQV
S1KxJL3h23+kRaKn+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n+XWaX6f5dZpfp/l1ml+n
+XWaX6f5dZpfp/l1ml+n+XWaX++/+fXRXXHvaQvlb6+ffflOdrnfP/vyv++//o6Oufed7dta6d59
5+r/rjtQv74077xK9Pby99urJ5e/Xp5cfSu4D3t48/jrHYt3f352+eL25fWTq7+93Al/tbj0Q7os
30+G7+i6fL3AcF/u/bE9f/ZBW9zfOenDrmP81t7Hn7+U8U4C1WZvwos34cWb8OJNePEmvHgTXrwJ
Z539XcAq4l158a68eFdevCsv3pUX78qLd+XFu/LiXXnxrrx4V168Ky/elRfvyot35cW78uJdefGu
vHhXXrwrL96VF+/Ki3flxbvy4l158a68eFdevCsv3pUX78qLd+XFu/LiXXnxrrx4V168Ky/elRfv
yot35cW78uJNePGeu3iLXbzFLt5iF2+xi7fYxVvs4i128Ra7eItdvIEu3i8X75eL98vF++Xi/XKZ
9471c/F+uXi/XLxfLt4vF++Xi/fLxfvl4v1y8X65eL9cvV+u3h5Xb4+rt8fV2+Pq7XH19rh6e1y9
Pa7eHldvj6u3x9Xb4+o3NtViUS0W1WJRLRbV2lCtDdXaUK0N1dpQrQ3V2lCtDbXeS8xLaCmoKn9V
+avKX1X+qvJXlb+q/FXlryp/Vfmryl9V/qryV5W/qvxV5a8qf1X5q0JfFfqq0FeFvir0VaGvCn1V
6KtCXxX6qtBXhb4q9NWvX6rKX/36pVoKql+/VGtDtTZUa0O1FFRLQbUUVEtBtRRUv22pfttSLRbV
b1uq1aNaParFolosqqWgWgqqpaBaCqqloFoKqqWgrnt5eIEsBc1vSpqloFkKmqWgWQqayt9U/qby
N5W/qfxN5W8qf1P5m8rfVP6m8jeVv/mY0CwFzVLQLAXNUtAsBc1S0CwFzVLQLAXNUtB8TGjWhuZj
QrNYNItFs1g0i0WzWDSLRbNYNItFs1g0i0WzWDSLRbNYNItFs1g0i0WzWDSLRfMxoVk9mtWjWT2a
1aNZPZrVo1k9mtWjWT2axaJZLJrFolksmsWiWRuataFZG5q1ofmY0KwNzdrQrA3N2tCsDc3a0KwN
zdrQrA3N2tCsDc0ni2axaBaL5oNEs3o0q0ezejSrR7N6NKtHs3o0q0ezejSrR/ggEZaTsJyE5SQs
J2E5CZ8swnISlpOwnITlJCwnYTkJy0lYTsJyEpaTsJyE5SQsJ2E5CctJWE7CchKWk7CchOUkLCdh
OQnLSVhOwnISlpOweoTVI6weYfUIq0dYCsJSEJaCsBSEpSAsBWEpCEtBWArCUhCWgrAUhKUgLAVh
KQhLQVgKwlIQPkiEtSGsDWFtCGtDWBvCB4mwWITFIiwWYbEIHyTC6hEWi7BYhMUirA1hbQhrQ1gb
wtoQ1oawNoS1IawN4bdOYbEIi0VYLMJiERaLsFiExSIsFmGxCItFWCzSYpEWi7RYpMUiLRZpsUiL
RfowklaPtHqk1SOtHmn1SKtHWj3S6pFWj7R6pNUjrR5p9UirR1o90uqRVo+0eqTVI60eafVIq0da
PdLqkVaPtHqkDyNpOUnLSVpO0nKSlpP0YSR9GHnD1v84SxlP8+s0v07z6zS/TvPrNL9O8+s0v07z
6zS/TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0v07z6zS/TvPrNL9O8+s0vz5A8+tj2k9/rEVWZUPU
B9/gef70p9/86c/f+i/fPLH8OX/z5373hz8++M2f/vj6767f/Nt8/Yc//uYP7e4Pf/j9b/5Uv/nX
5Ruw2J/3X/n2f1lfy9t+3T88eP26+6/k65fbJ9V/RPpXf/hT/+ZfN54ra/CN0Q58rcl/br/5c3zr
v6BwNeAJ1vgGifSn3391Nf5c7l7nW3/l65/pHf7965f/Y/vNn9pX/2j/9bs/1K/+05t/lN+Acf80
fvPn9fpfx92f7/71vgpv/jDvLvCbi/qn+c2/Ht+oyB///Jvfv87qj+M3/5bf/JX5zWPM/sf/9voS
7mP++CarP3910t1/+iar9uCbFbp3H+PrrP74b1+92/3T8IdvvQPJgvUeYkeGSPvW18P73fzbm3e2
f1D+8PoPD37z59d/2B/3H8q3/tE3v4g7j38b3/ovEp3KN7f3+x3+2x+/9V8ksNVvDPp/7L/5ffvW
f/lm2/fd1fn964NffxRv/vCtT7FF//on6w//9tXf/ePrn9C7f93ufgXu/tGDuzf35g//1v7xSb85
Ie4+t7t/Vf7xiezXKV/9Zv3hj1+94O/nP37u/vDVz9KbX7G7S/Xgm3RGhQA3KNj7ofPrS7ZP/Oon
88+/+fOfvvVXvoHE/fn33/493Y+fX1eEP/7pq3d7D2v8hz/f/f9//JeyH5a+e+/yOvLgu5HgW5yS
fIFdOk9yO3Dvn9B1LhlgGUtv9zR8eNsI7bA0vk68CzQDYSAN3HvRYWAaWAS+W8HvAsWAmVYzrWZa
zbSaaTXTaqbVTJuZNjNtZtrMtJlpM9Nmps1Mm5k2Mw0zDTMNMw0zDTMNM733IxVmGmYaZppmmmaa
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
fXcMfv/lb/3wOTH37cDdG//9Pz6p+Z1x+G9m3r+ecN8/J+s7E+5vXq9/cy/3zU/oP8bWvx5O/+4s
eg2e40tMljDcDSjHB3Pc/GDj6Ps6Wv/sH93F8snjh58+fvbs8vK//6//8e+f7vMuj//y7Oqzl9d/
eXp5dvvjvayf805+uB/1i7+VH87ro2b0A520j5fUaZ+d9tlpn5322WmfnfbZaZ+d9tlpn5322Wmf
nfbZaZ+d9tlpn5322WmfnfbZaZ+d9tlpn5322WmfnfbZu7bPPr476/L0+tnt40d3faC/3149ufz1
8uTqW8HPL1cPbx5fXZ5c7jonn9z9+dnli9uX10+u/vby+sWLy83V5e8vLo9uLzevj323My9PH15u
bvZrPHr+7Pbu9e/Oe/zZy+unl6+PfHV7/erz37748l8f3/xurOusN5d5FbXW/T/jcrXqzcOrR9eX
R3VeRn42Lx/K4/WTk+6P5s11z5ur+igvVxGXz64ePnzw8OrhfLj2bcz19cOy3jbp//jy9vPnz/7z
0cvHL27f0TP2Tv+Urtx7/iH5l//2P58/u7xLW/CD/sT8cHvxnY5+9PL5q1efPn/5+C+Pn3364vrl
jl3/5fLOXdAP+rP2K3i737zV/R/3D8j1i8evPnn15avby9Or/XZuL1f7B3R/Ri+uHz5+8vj28eXN
D9mz678+/sv17fOXV88f/tf+cfrk68Bvr599+asyh/7s6Yf3e2F+8DN/n0f9zAmEt5uM+EUTfp3s
3z9/+a2EHz97dadmV59frm8uL1/d/e599vjJ7eXlp8/2b8fv/s9Xl5dXv//L/mX4sNr8E5P6lV3a
HxuxKAFd9y4wDEwDiwBslYCreheoBpqBMJAGzLSYaTHTYqbVTKuZVjOtZlrNtJppNdNqptVMq5k2
M21m2sy0mWkz02amzUybmTYzbWYaZhpmGmYaZhpmGmYaZhpmGmYaZppmmmaaZppmmmaaZppmmmaa
Zppm2s20m2k3026m3Uy7mXYz7WbazbSb6TDTYabDTIeZDjMdZjrMdJjpMNNhplJ9H0wznWY6zXSa
6TRTacIPpplOM51musx0mekyUx+KHywzXWa6zHSZ6TJT2CpRYKvsQDFQDTQDYSANSGi2RhVrVLFG
FWtUsUYVa1SxRhVrVLFGFWtUsUYVa1SxRhVrVLFGFWtUsUYVa1SxRhVrVLFGFWtUsUYVa1SxRhVr
VLFGFWtUsUaVdo/PPe4Buw2YqTWqWKOKNapYo4o1qlijijWqWKOKNapYo4o1qlijijWqWKOKNapY
o4o1qlijijWqWKOKNapYo4o1qlijijWqWKOKNapYo4o1qlijijWqWKOKNapYo4o1qlijijWqWKOK
NapYo4o1qlijijWqWKOKNapYo8o94r01qlijijWqWKOKNapYo4o1qlijijWqWKOKNapYo4o1qlqj
qjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1
qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapa
o6o1qlqjqjWqWqOqNapao6o1qlqjqjWqWqOqNapao6o1qlqj3NuxA2ZqjarWqGqNqtaoao2q1qhq
jarWqGqNqtaoao2q1qhqjarWqGqNqtaoao2q1qhqjarWqGqNqtaoao2q1qhqjarWqGqNqtaoao2q
1qhqjarWqGqNqtaoao2q1qhqjWrWqGaNataoZo1q1qhmjWrWqGaNataoZo1q1qhmjXIfTbiPJtxH
E+6jCffRhPtown004T6acB9NuI/G4Yq7gJlao9xHE+6jCffRhPtown004T6acB9NuI8m3EcT7qMJ
99GE+2jCfTThPppwH024j+beYqRwH024jybcRxPuown30YT7aMJ9NOE+mnAfTbiPJtxHE+6jCffR
hPtown004T6acB9NuI8m3EcT7qMJ99GE+2jCfTThPppwH024jybcRxPuown30YT7aMJ9NOE+mnAf
TbiPJtxHE+6jCffRhPto4t4GL/fRhPtown004T6acB9N3Nsc5j6acB9NuI8m3EcT7qMJ99GE+2jC
fTThPppwH024jybcRxPuown30YT7aMJ9NOE+mnAfTcSPrJZ8qx2RdzjmLp95GJgG5ES7IaC7IaC7
IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7
IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7
IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7
IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7IaC7
IaC7IaC7IaC7IaC7IcDRztbdENDdENDdENDdENDdENDdEDDcEDDcEDDcEDDcEDDcEDDcYjOsUcMa
NaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWs
UcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHD
GjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1
rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxRwxo1rFHDGjWsUcMaNaxR
wxo1rVHTGjWtUdMaNa1R0xo1rVHTGjWtUdMaNa1R0xo1rVHTGjWtUdMaNa1R0xo1rVHTGjWtUdMa
Na1R0xo1rVHTGjWtUdMaNa1R0xo1rVHTGuUq8TatUdMaNa1R0xo1rVHTGjWtUdMaNa1R0xo1rVHT
GjWtUfeWoE9r1LRGTWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9S0Rk1r1LRG
TWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9S0Rk1r
1LRGTWvUtEZNa9S0Rk1r1LRGTWvUtEZNa9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9Sy
Ri1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYt
a9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvU
skYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJG
LWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLWvUskYta9SyRi1r1LJGLbtYD+xiPbCL9cAu
1gO7WA/sYj34kS7WL+xxPK6v4/o6rq/j+jqur+P6Oq6v4/o6rq/j+jqur+P6Oq6v4/o6rq/j+jqu
r+P6Oq6v4/o6rq/j+jqur+P6Oq6v4/r6CK6vj8Rn/tE22bGVHVvZsZUdW9mxlR1b2bGVHVvZsZUd
W9mxlR1b2bGVHVvZsZUdW9mxlR1b2bGVHVvZsZUdW9mxlR1b2bGVHVvZB7SVffQ1pu9zbdnfnr/8
vy8vf2Sb6Xe9b//X63/y6iOu+PtW0m+xXfP7F/C97z2IP7zu75dc9PetK/QTr82H2RT5a1uI+E7X
6UOd/vbX+PfPvnzz2/fxf/l+1R/Sqy+f3V7//ZMX1y9f3QnyXSyfPH746eNnz/a1+1//498/fXp9
+/nb7HD+cetuOM4XjvOF43zhOF84zheO84XjfOE4XzjOF47zheN84ThfOM4XjvOF43zhOF84zheO
84XjfOE4XzjOF47zheN84ThfOM4XjvOF43zhOF84zheO84XjfOE4XzjOF47zheN84ThfOM4XjvOF
43zhOF84zheO84XjfOE4XzjOF47zheN84ThfOM4XjvOF43zhOF84zheO84XjfOE4XzjOF47zheN8
4ThfOM4XjvOF43zhOF84zheO84XjfOE4XzjOF47zheN84ThfOM4XjvOF43zhOF84zheO84XjfOE4
XzjOF47zheN84ThfOM4XjvOF43zhOF84zheO84XjfOE4XzjOFz6npM8p6XNK+pySPqekzynpyHla
o9IaldaotEalNSqtUWmNSmtUWqPSGpXWqLRGpTUqrVFpjUprVFqj0hqV1qi0RqU1Kq1RaY1Ka1Ra
o9IaldaotEalNSqtUWmNSmtUWqPSGpXWqLRGpTUqrVFpjUprVFqj0hqV1qi0RqU1Kq1RaY1Ka1Ra
o9IaldaotEalNSqtUWmNSmtUWqPSGpXWqLRGpTUqrVFpjUprVFqj0hqV1qi0RqU1Kq1RaY1Ka1Ra
o9IaldaotEalNSqtUWmNSmtUWqPSGpXWqLRGpTUqrVFpjUprVFqj0hqV1qi0RqU1Kq1R3RrVrVHd
GtWtUd0a1a1RznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez
3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93h
bHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3
ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjb
Hc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3O
doez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaH
s93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd
4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFs
dzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc4
2x3Odoez3eFsdzjbHc52h7Pd4Wx3ONsdznaHs93hbHc42x3Odoez3eFsd8xfBer27fy74dx5OHce
zp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6d
h3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz
5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh
3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5
OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3
Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7O
nYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2H
c+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn
4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+HceTh3Hs6dh3Pn4dx5OHcezp2Hc+fh3Hk4dx7OnYdz5+Hc
eTh3Hs6dh3Pn4dx5OHeezp2nc+fp3Hk6d57OnecDalS6LiRdF5KuC0nXhaTrQtJ1Iem6kHRdSLou
JF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk60LSdSHpupB0XUi6LiRdF5KuC0nXhaTr
QtJ1Iem6kHRdSLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk60LSdSHpupB0XUi6
LiRdF5KuC0nXhaTrQtJ1Iem6kHRdSLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk
60LSdSHpupB0XUi6LiRdF5KuC0nXhaTrQtJ1Iem6kHRdSLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1I
ui4kXReSrgtJ14Wk60LSdSHpupB0XUi6LiRdF5KuC0nXhaTrQtJ1Iem6kHRdSLouJF0Xkq4LSdeF
pOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk60LSdSHpupB0XUi6LiRdF5KuC0nXhaTrQtJ1Iem6kHRd
SLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk60LSdSHpupB0XUi6LiRdF5KuC0nX
haTrQtJ1Iem6kHRdSLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ14Wk60LSdSHpupB0
XUi6LiRdF5KuC0nXhaTrQtJ1Iem6kHRdSLouJF0Xkq4LSdeFpOtC0nUh6bqQdF1Iui4kXReSrgtJ
14Wk60LSdSHpupB0XUi6LiRdF5KuC0nXhaTrQtJ1Iem6kKzvv1f2XZ/dO/jO3sK4+g77I48J7ZjQ
jgntmNCOCe2Y0I4J7ZjQjgntmNCOCe2Y0I4J7ZjQjgntmNCOCe2Y0I4J7ZjQjgntmNCOCe2Y0I4J
7ZjQ3rsJ7Ve/P/L4z47/7PjPjv/s+M+O/+z4z47/7PjPjv/s+M+O/+z4z47/7PjPjv/s+M+O/+z4
z47/7PjPjv/s+M+O/+z4z47/7P37zz7m/sj//1yD+F+vftreuDcNxR+8PN/7b+/+84//y3f/PH7p
jY2/ID/0vX/8H/9S/KA99Osfrx/8fXgHT+nbtcl/4Kf1l03kJ8nDL5PF220i/TAfzfv9Dfg1au2P
Dmqkc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87h
p3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz
+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jp
HH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+
OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqH
n87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O
4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGn
c/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P4
6Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+Okc
fjqHn87hp3P46Rx+OoefzuGnc/jpHH46h5/O4adz+OkcfjqHn9Ma5cB7OvCeDrynA+/pwHs68J4O
vKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDryn
A+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv
6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nA
ezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs6
8J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCe
DrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68
pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD
7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/p
wHs68J4OvKcD7+nAezrwng68pwPv6cB7OvCeDrynA+/pwHs68J4OvKcD7+nAezrwng68pwPv6cB7
OvDeHXjvDrx3B967A+/dgff+4EdAwa+7WH///OW3moePn716cXl0e/X55frm8vLVb198+a+fPX5y
e3n56bPrp5ff/Z+vLi+vfv+Xy7PbX27v5td44KyW2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthq
ia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomt
lthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbY
aomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJ
rZbYaomtlthqia2W2GqJrZbYaomtlthqia2W2GqJrZbY6mNg8zGw+RjYfAxsPgY2HwObj4HNGtWs
Uc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHN
GtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrV
rFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axR
zRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a1axRzRrVrFHNGtWsUc0a
1axRYY0Ka1RYo8IaFdaosEa5ZiVds5KuWUnXrKRrVtI1K+malXTNSrpmJV2zkq5ZSdespGtW0jUr
6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6ZiVds5KuWUnXrKRrVtI1K+malXTNSrpmJV2z
kq5ZSdespGtW0jUr6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6ZiVds5KuWUnXrKRrVtI1
K+malXTNSrpmJV2zkq5ZSdespGtW0jUr6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6ZiVd
s5KuWUnXrKRrVtI1K+malXTNSrpmJV2zkq5ZSdespGtW0jUr6ZqVdM1KumYlXbOSrllJ16yka1bS
NSvpmpV0zUq6ZiVds5KuWUnXrKRrVtI1K+malXTNSrpmJV2zkq5ZSdespGtW0jUr6ZqVdM1KumYl
XbOSrllJ16yka1bSNSvpmpV0zUq6ZiVds5KuWUnXrKRrVtI1K+malXTNSrpmJV2zkq5ZSdespGtW
0jUr6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6ZiVds5KuWUnXrKRrVtI1K+malXTNSrpm
JV2zkq5ZSdespGtW0jUr6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6ZiVds5KuWUnXrKRr
VtI1K+malXTNSrpmJV2zkq5ZSdespGtW0jUr6ZqVdM1KumYlXbOSrllJ16yka1bSNSvpmpV0zUq6
ZiVds5KuWUnXrKRrVtI1K+malezvtHfzP768/fz5s/989PLxi9sP6sn8iQ28X5mj7u23hJ424GkD
njbgaQOeNuBpA5424GkDnjbgaQOeNuBpA5424GkDnjbgaQOeNuBpA5424GkDnjbgaQOeNuBpA542
4GkDvv824K9+S+iBTx745IFPHvjkgU8e+OSBTx745IFPHvjkgU8e+OSBTx745IFPHvjkgU8e+OSB
Tx745IFPHvjkgU8e+OSBTx745PuHT37MLaFvltv9/9i7m55KrysLwH8lw0xIcu7HWucMet6DTkY9
t4C6tonKUIJKK/n3ASexokcKqXIo22qdiWW9ZcyCAtbeVdrPvXx3ff/x7vbldfH+/PHq/eX/Lu+v
/unht5erm3d3V5f3l+8u9x9/+/LvH64fr795vP7w7d//69uH+4/Xd/eXx+/f75d8YcW3zvqrX//h
4f7y2Z+py3c3l3fvLu++/7+9vKeX93z39eP1d5cf3vnTx+unb1+uC+/e/VfX9fnw7jKvTofD4fkf
vVytw7ubq9vry+1hXnr+el6+bILcznfXOb+7OtyeL1en0+Xrq5ub391c3cyb52/2dX19M9YXOdx8
89c7fH99/82frr+5fNbX2udH/rdXls/fv/Ebuj6YPvAHy/AHy/AHy/AHy/AHy/AHCyPl8wOTDpMO
kw6THkx6MOnBpAeTHkx6MOnBpAeTHkx6MOnRpEeTHk16NOnRpEeTHk16NOnRpEeTnkx6MunJpCeT
nkx6MunJpCeTnkx6MunZpGeTnk16NunZpGeTnk16NunZpGeTxqQxaUwak8akMWlMGpPGpDFpTVqT
1qQ1aU1ak9akNWlNWpNOk06TTpNOk06TTpNOk06TTpNOky6TLpMuky6TLpMuky6TLpMukzpSDkfK
4Ug5HCmHI+VwpBz8scfzg/igPpg+MKkdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw07athRw44adtSwo4YdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw07athRw44adtSwo4YdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KhhRw07athRw44adtSwo4YdNeyoYUcNO2rYUcOOGnbUsKOGHTXsqGFHDTtq2FHDjhp2
1LCjhh017KiDHXWwow521MGOOthRBztKrSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mqjVRK0majVRq4laTdRqolYT
tZqo1UStJmo1UauJWk3UaqJWE7WaqNVErSZqNVGriVpN1GqiVhO1mpw+5bUL/+0RZDRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30biJxk00bqJxE42baNxE4yYaN9G4icZNNG6icRONm2jcROMmGjfRuInGTTRuonETjZto
3ETjJho30bhJ7CgxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkIiYTMZmIyURMJmIyEZOJmEzEZCImEzGZiMlETCZi
MhGTiZhMxGQiJhMxmYjJREwmYjIRk4mYTMRkMj/rJQM/6WTwn87l/nL/8frPv/1w/fj0ckn58uz8
/u7mq7v7+8vjf//v7//nq+/f4vT2Z4s/zZv8q+PIL3Ge+OqrIX7eu759fHh6+urh8e6bu/uvnn9z
np/9457v02jXL3ZO+AnnoG/1Of+Ug8xf3Of8s76hPueTua8t97Xlvrbc15b72nJfW+5ry31tua8t
97Xlvrbc15b72nJfW+5ry31tua8t97Xlvrbc15b72nJfW+5ry31tua8t97Xlz3Bt+Yt/Tct9zrnP
Ofc55z7n3Oec+5xzn3Puc859zrnPOfc55z7n3Oec+5xzn3Puc859zrnPOfc55z7n3Oec+5xzn3Pu
c859zrnPOd/+nPPnfE3Lx8vTw58eb1/u/p4ffnv9eH95enq8fHh4/PibPz79mDd+9c1+mkPPf3mB
97e/EPx/+IG9/PKr+X74O9HXf8NfPaH8EiekX+4r9PWP+Bf3sb56OfrD1+3rJ66fc276apif+B77
R/0Ovd1H++qn/u/fWT91lP/g2/Tt0nzirfF0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpY
TRer6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZou
VtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaym
i9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer
6WI1Xaymi9V0sZouVtPFarpYTRer6WI1Xaymi9V0sZouVtPFarpYTRer6WK1XKyWi9VysVouVsvF
avmHf8uOWnbUsqOWHbXsqGVHLTtq2VHLjlp21LKjlh217KhlRy07atlRy45adtSyo5YdteyoZUct
O2rZUcuOWnbUsqOWHbXsqGVHLTtq2VHLjlp21LKjlh217KhlRy07atlRy45adtSyo5YdteyoZUct
O2rZUcuOWnbUsqOWHbXsqGVHLTtq2VHLjlp21LKjlh217KhlRy07atlRy45adtSyo5YdteyoZUct
O2rZUcuOWnbUsqOWHbXsqGVHLTtq2VHLjlp21LKjlh217KhlRy07atlRy45adtSyo5YdteyoRUf1
d3TU84Phg4MPjj44+eDsg/igPpg+MOkw6TDpMOkw6TDpMOkw6TDpMOkw6cGkB5MeTHow6cGkB5Me
THow6cGkB5MeTXo06dGkR5MeTXo06dGkR5MeTXo06cmkJ5OeTHoy6cmkJ5OeTHoy6cmkJ5OeTXo2
6dmkZ5OeTXo26dmkZ5OeTXo2aUwak8akMWlMGpPGpDFpTBqT1qQ1aU1ak9akNWlNWpPWpDXpNOk0
6TTpNOk06TTpNOk06TTpNOky6TLpMuky6TLpMuky6TLpMqkdpdlUzaZqNlWzqZpN1WyqZlM1m6rZ
VM2majZVs6maTdVsqmZTNZuq2VTNpmo2VbOpmk3VbKpmUzWbqtlUzaZqNlWzqZpN1WyqZlM1m6rZ
VM2majZVs6maTdVsqmZTNZuq2VTNpmo2VbOpmk3VbKpmUzWbqtlUzaZqNlWzqZpN1WyqZlM1m6rZ
VM2majZVs6maTdVsqmZTNZuq2VTNpmo2VbOpmk3VbKpmUzWbqtlUzaZqNlWzqZpN1WyqZlM1m6rZ
VM2majZVs6maTdVsqmZTNZuq2VTNpmo2VbOpmk3VbKpmUzWbqtlUzaZqNlWzqZpN1WyqZlM1m6rZ
1MObvLJrlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeqrSU5WeqvRUpacqPVXpqUpPVXqq0lOVnqr0VKWnKj1V6alK
T1V6qtJTlZ6q9FSlpyo9VempSk9VeurJjpJUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpkkqVVKqkUiWVKqlUSaVK
KlVSqZJKlVSqpFIllSqpVEmlSipVUqmSSpVUqqRSJZUqqVRJpUoqVVKpeftXdv1PTvL21de++tpX
X/vqa1997auvffW1r7721de++tpXX/vqa1997auvffW1r7721de++tpXX/vqa1997auvffW1r772
1de++voZrr5+8a8wuc/K9lnZPivbZ2X7rGyfle2zsn1Wts/K9lnZPivbZ2X7rGyfle2zsn1Wts/K
9lnZPivbZ2X7rGyfle2zsn1Wts/K9lnZ25+V/ZyvMPkGL6f34fHh48Ptw/vv3+OXuXd765S/+vUf
Hu4vP/LVDd/6lSY/7aLv+WslfvHUB9MHfhE7vsTxJY4vcXyJ40scX+L4EseXOL7E8SWOL3F8ieNL
HF/i+BLHlzi+xPElji9xfInjSxxf4vgSx5c4vsTxJY4vcXyJ40scX+L4EseXOL7E8SWOL3F8ieNL
HF/i+BLHlzi+xPElji9xfInjSxxf4vgSx5c4vsTxJY4vcXyJ40scX+L4EseXOL7E8SWOL3F8ieNL
HF/i+BLHlzi+xPElji9xfInjSxxf4vgSx5c4vsTxJY4vcXyJ40scX+L4EseXOL7E8SWOL3F8ieNL
HF/i+BLHlzi+xPGlji91fKnjSx1f6vhSV+zaUbWjakfVjqodVTuqdlTtqNpRtaNqR9WOqh1VO6p2
VO2o2lG1o2pH1Y6qHVU7qnZU7ajaUbWjakfVjqodVTuqdlTtqNpRtaNqR9WOqh1VO6p2VO2o2lG1
o2pH1Y6qHVU7qnZU7ajaUbWjakfVjqodVTuqdlTtqNpRtaNqR9WOqh1VO6p2VO2o2lG1o2pH1Y6q
HVU7qnZU7ajaUbWjakfVjqodVTuqdlTtqNpRtaNqR9WOqh1VO6p2VO2o2lG1o2pH1Y6qHVU7atpR
046adtS0o6YdNe0oZZQqo1QZpcooVUapMkqVUaqMUmWUKqNUGaXKKFVGqTJKlVGqjFJllCqjVBml
yihVRqkySpVRqoxSZZQqo1QZpcooVUapMkqVUaqMUmWUKqNUGaXKKFVGqTJK/8re3fTWdRxIAP0r
s5wNLef2bXXVYjDbLJLBAJO9QFLPNgcSJVBEYP/7oZLACQ5gWYIl2wP0RhAuRb7HD7wqsVHnKqMs
ZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcoo
SxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYy
ylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSl
jLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxll
KaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJG
WcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKU
UZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMsZZSljLKUUZYyylJGWcooSxllKaMs
ZZSljLKUUaKMEmWUKKNEGSXKKPn68wuYP33E9nB5++bh8YMHbT+eDf7UGd1Pnap+7rPED54ifu7j
wB+XixGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmwjQRpokwTYRpIkwTYZoI00SYJsI0EaaJME2EaSJME2GaCNNE
mCbCNBGmiTBNhGkiTBNhmgjTRJgmhxmlABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTBRgogATBZgowEQBJgowUYCJ
AkwUYKIAEwWYKMBEASYKMFGAiQJMFGCiABMFmCjARAEmCjBRgIkCTM6fOQ7852zv3Q/3j9ffP3t7
/fDu/Zbx/bX56u7mxd39/eXhj3/5859e/O09nv/MfPBfPuDl9fX9493t+wO/7x+vXl3+enl19S8X
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
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcSqKU1Gc
iuJUFKeiOBXFqShORXEqilNRnIriVBSnojgVxakoTkVxKopTUZyK4lQUp6I4FcWpKE5FcXr8zCnW
r7wP3Kuvvfraq6+9+tqrr7362quvvfraq6+9+tqrr7362quvvfraq6+9+tqrr7362quvvfraq6+9
+tqrr7362quvvfr6DVZfv/97BO5Z2Z6V7VnZnpXtWdmele1Z2Z6V7VnZnpXtWdmele1Z2Z6V7VnZ
npXtWdmele1Z2Z6V7VnZnpXtWdmele1Z2Z6VffZZ2W9/j8DL6+v7x7vbd88ur28uL19eXl7dvrl/
vNw/Pnv87nJ1983D9evL1eXV5fX7S+8er99999XbH/7z7uV/PL/Ny+vn8+XVcTsvV+d5+ebq5ubr
m6ub3Dz9R7zX1zd/6Jd9BqvX83h5ydV5HMfTH+ty1ePlzdXt9eX2yGXNb3L52BHef//w+N2b+/+5
fbh7+/iJ+71PelduZvdFv/ofvhndJz307cObd+9evHm4+/bu/sXb64ena9ffXj753n1f9Fv9O/h0
//mpPr3x+u3b67d37569++Hd4+X11dOn83i5evr5eHrSb69v7l7dPd69v3/g06PfX//17tvrxzcP
V29u/vdy+/T4/3hqX3/9h6++f//xvuC9Jj/zM/23f/+vN/eXz3D3wqdXyOe+ZC4vxAu+dFvaD0v7
YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPS
fljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2w
tB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/
LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSfljaD0v7YWk/LO2Hpf2wtB+W9sPSflja
D0v7sLQPS/uwtA9L+7C0D3+xNMyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1
zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1
zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1
zKhhRg0zaphRw4waZtQwo4YZNcyoYUYNM2qYUcOMGmbUMKOGGTXMqGFGDTNqmFHDjBpm1DCjhhk1
zKhhRg0zaphRw4waZtRpRp1m1GlGnWbUaUadZpQeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpA1QOqHlD1gKoHVD2g
6gFVD6h6QNUDqh5Q9YCqB1Q9oOoBVQ+oekDVA6oeUPWAqgdUPaDqAVUPqHpAff4xdy/8+9niD/eP
198/e3v98O79kf37a/PV3c2Lu/v7y8Mf//LnP73423usrz77Sd7HTV2rZFQloyoZVcmoSkZVMqqS
UZWMqmRUJaMqGVXJqEpGVTKqklGVjKpkVCWjKhlVyahKRlUyqpJRlYyqZFQloyoZVcmoSkZVMqqS
Uf+PvX9rbitX8rzhr9I31THPBctcQB6Ai4od5TpMzzN92G/vmXcONw6KWra5LYlqkiqX+9M/oEjJ
0o+WxdMiKRsRO3bZaS4gF4CFBDL/+U8yGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUyGWUy
GWUyGWUyGWUyGWUyGeVEG0XKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzK
oEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzK
oEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzK
oEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzKoEzK
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
NoqAinEFKQ+KyiWlK0uKJ0cGNhrjXsjARmNcMBZXBNCDMYgiwOszOlAEK79gL9wMjN++8cRm3AyM
i87gRSoC9kLDxxhEwxhEEUAxRgeKwClIFLANHuCdd1PnzDEGUQTUg3bO6YpxIHGKoKGAitE0MtJR
BFSMW47TEjptlPM85rRRzvMYoyXljshGeSVm+KTcIvkIl5Tz+MXQR7l48uW4xpxrzLnGnJuS8yzl
K6uQu5Rzl3LuUs5dyrlLOXcp5y7l3KUSwmtFAD0ST1uJiy5xjSVaMYZgmsT1wYhLEWDEGIJpGIIp
AvbCDSXx/MHwScPwScPwScPwScPwSRFQMRrPxGWZ6DJhCKZhCKZhxKUI2C1XMuMpDUMfDQMbDQMb
RaAUYIAyd6lMG5W5HDI3lEwblbnDZK6gTM8EQx9FQE25xhgLaRgLaRguKAL2wlHP3D9yXhGwUX63
K9GBjNNFYIpDYIpDYEZDYEZDYMghMIFhjnOmIEMQ2As2g8DoQGBqwRwyRgG7xfqYA6AooOpCTZW9
KHtR9qLUVDmESj2U3Rp7MY66s43EbhO7TRzTzF4yG80rj2DEGi6phkuqgdcp0Is/DzhQgPEg2D7Q
zx+IrZ97iChgL5GPcEnRix8IYQ90yQe65ANB7vMDOwVs9NYCnUzGas36qllfNeurZn3VrK+a9VWz
vmrWV836qllfNeurZn3VrK+a9VWzvmrWV836qllfNeurZn3VrK+a9VWzvmrWV836qllfR8j6OnLN
kJpVVrPKalZZzSqrWWU1q6xmldWssppVVrPKalZZzSqrWWU1q6xmldWssppVVrPKalZZzSqrWWU1
q6xmldWssppVVrPKjpBVdsRi9V+qZryImu27pOOT3c3/ed2yeXzycv7Ttouypi+klOpXy1LfT+TX
S9OuUct6+zJ096HWSKx6EQQI8opAKHi8bcWITSnS8x3p+S6CDEHDNrDlFIFQ4BAEthH4SOAjkY/E
lV9QUxxqioCPCB9R9gKzVgR8W6Xqym6NbRhH3diGUTGnYs5eEJCJ9FpHouojfdKRPukiYKPww0Ri
5osgUKAUYBqImY/0WkdC5KNwOdCfHOk+jnQOF0FDAdvAwSjS9Rvp+o10/Ua6fqMYHzH+wqkYrjxF
QD2c88LtguD1SPB6EVCxxHfJVCyv/ALvQtdv+aCEAqXAKGCjkY1ybglNLwL2ws2AWPUiwJgqdwfF
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
WRVACZsoAvbC5UBfn9K1p3TcqfM8RgKlInAK2AaXA8mPlORHShyFkvxI6Q1UUvwr3YO64OvvoGjq
2mmPXVYE3Y8SnZbhfVgotb0YfOpdjAfnvYW25+3sPhPz4nTyMLeImG6Uuhn78oJyMDerDrr2dK+R
DbxIL55N2sHl9NXZp1nbu2iv3s3e9/7jpr0pL9Ur/zaYte8+/ThtJ3+Mhu3H8eRDO/lxPiKdZjzv
otImWdA1ul6j6zW6XqPrNbpeo+s1ul6j6zW6XqPrNbpeo+s1ul6j6zW6XqPrNbpeo+s1ul6j6zW6
XqPrNbpeo+s1ul6j60eIrp96gdLK11r5Witfa+VrrXytla+18rVWvtbK11r5Witfa+VrrXytla+1
8rVWvtbK11r5Witfa+VrrXytla+18rVWvtbK11r5WvfP13rMAqXLhLXr0fW8o+HFeNr2rifj68G7
wWw0vuqdDYYfPg4m5wdImltPh3WzA3cq9Lh59czDMOvumBS83zzNHdKXT0PHB7mrn65mgz9fXQ8m
0/kSnMv0YnT25vZ3jXa4+Nfuft11P7ocvCuDfXZx0/54ffXuL+Wran+aTUbDDxftfzkP/083r/Fc
r6cy2wf5sNdc+9NHw5FF4m75w93tiV3vVCcyEs/bhWWHvUWPU/wdrfbetxfX5Vc/Tm/OOhveXTQ6
1uB/ac+b//Ma479U7PNrTdrheHK+VGz+b10Y990PFF9+5cv5T9vtnl5gm07gTLItR8j6x77jv+Oh
d8+tx5SsL9flm+6dj6bXg3Jz6PAYszFHzkZn/k1YSL64rXz9+LHG6ev5Te1ZRo5y2eN1kDf7hjf7
Bk4aJ8DEmTjmjbIN5T1VqYfxF7zqN85GedVveNVvnIrx7s9cMyeexJl85gSYFAEHKFEP+g+YwOaB
F/nAi3yAI7AI+Ai9NoSPeKCTJgQ+goiPE0/izDVzppY5M8mcmWTOTDJnJpkzk8yZSeaEoBQB9VCq
TncSQSoejIoZFaPDiSCVIqDqTk25CkOiYvRAEYLihKA4IShOCIozo82Z0ebMaHPmqzkRJ0XAbsPK
I4kCvlykYlx0xKR4pKuQEBRnEpwzCc6ZBOdErRQBe7EVAYeQ21bkgmGanDPnzZmv5oSxONPTnLgW
Z3paEbBbbkqRmxKRL858NSfQxZnA5kS+OJEvRYABEq5T4ToVbmxCo0XkizNvrgigukS2gVCUEyzj
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
BUoBFcM+nei4LgKqHqlppKaRmkZqGqlppKaRmkZqGqlppKZCTYWaCjUVairUVKipUFOhpkJNhZoq
NVVqqtRUqalSU6WmSk2Vmio1VWpq1NSoqVFTo6ZGTY2aGjU1amrU1KipU1Onpk5NnZo6NXVq6tTU
qalTU6emiZomapqoaaKmiZomapqoaaKmiZomapqpaaammZpmapqpaaamK9tnpqaZmuKanJj/mJj/
mBjXKYJIgVCgFBgFTkGigJrSFDCclBhOSqQvTaQvLQJq2lDThpo21LShprRRDW0USVKLgJrSRpE1
NZE1NZE1NZE1NTENNTHelsiamhiAS2RNTWRNTUxlTUxlTWRNTWRNTQzzJbKmJsb9EllTE9NhE9Nh
E1lTE/NjE1lTE1lTEzNoEzNoE1lTE1lTE1lTE1lTE1lTE9NyE8Oeiaypiaypiaypiaypiaypiayp
iaypiaypiaypiaypiaypiaypiaypiaypiaypiVnJiaypiXHhxDTlRNbURNbURNbUxNhyYmw5kTU1
kTU1MTs6kTU1MT6dyJqayJqamGGdyJqamHKdmHKdyJqayJqayJpaBNSUNqqhjWpoo5jYnRiNT6Ri
LYJIgVCgFBgFTkGigJrSRhEEkAgCSAQBJIIAioCa0kYxwTwxwbwIqCltVKCNIvYgEXtQBNSUNopZ
64lwhSKgprRRZLNNZLNNRDgkIhyKgJrSRgXaKKbTJ6IkEvPrE/PrE/Pri4Ca0kYRaZGItEhEWiQi
LRKT9hOT9hO5exOz+BOz+BOz+BPZfYuAmtJGBdooEgInMgEkgkSKgJrSRgWaJJIHJKJGElEjiXn+
iVn8iVn8iUn7KXCjD9w+mZJfBNSUuyVZhlPkXkhsSmJaf2JafyJYpQjYBvcPglWKIFLANvipM62/
CPgLflFRVwRUnSuI6JXELP4iwKgTipKYgV8EHFMuB+boJ+bop8ijApP2i4CDzKMCMTJFQE15VCCK
pgioKY8KxNkUATXlUSFyrZNNIBGrk8j+nMj+XATUlEcF4n0SGQkSCaMTEUFFIBQoBUaBU5AooKb8
CMmMUATUlEcF4WcqPCoQiJQIREoEIiUCkRKBSImEDIl82YlQpSKgpjwqCI8KwqMC4U6JpA5FwEe4
oZDlIREhlQiISsIdRmgaSQyRSAxRBHxbmkZyfydiqBIhU4lMEYkYqkTqiEQy8ETIVCIxRCJkKpEp
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
DnOL2VnuuvO9tVmu74X9LFP1+vcHTXwOaP12d/ktN93X+ujbWW7en10pr9PFg2+qtPn7Lytf0W93
38ji/PP6dl5/++3m7rPoP/5ifv38CS/vOL/e/eZ3Xrnmf8iPPq/5zf+XR5/X3EremcvFVvDb3X3j
N/nzVu30Xx99b0uzs5LjvPwOVxJ3lx/m7/r+gWNj+VU2gCrfSvqPJQKKkkaRuNEU05IgWHkEaUuN
ClyTjcXPob/f7y5qX/b0NRFY+LkgUiAUKAUrjToFiYIMweP4zFzQUEBNAzUN1DRQ00BNAzUN1DRQ
00hNIzWN1DRS00hNIzWN1DRS00hNIzUVairUVKipUFOhpkJNV5aUUFOhpkJNlZoqNVVqqtRUqalS
U6WmSk2Vmio1NWpq1NSoqVFTo6ZGTY2aGjU1amrU1KmpU1Onpk5NnZo6NXVq6tTUqalT00RNEzVN
1DRR00RNEzVN1DRR00RNEzXN1DRT00xNMzXN1DRT00xNMzXN1DRDU2S5NDzYzgWBgkiBUKAUGAVO
QaKAmjbUtKGmtFFCGyW0UUIbJbRRQhsltFFCGyW3NqrWmTtO2sDalbu2Ao93U3jqACpVqGmFmlao
aYWaVqhphZpWqGmFmlaoaYWaVqhphZpWqGmFmlaoaYWaVqhphZpWqGmFmh4Zanq6hSgqTLTCRCtM
tMJEK0y0wkQrTLTCRCtMtMJEK0y0wkQrTLTCRCtMtMJEK0y0wkS3gIl+65zSa2Iip49GYM5gvy1d
6x5Zlb8VnOwGL3xqoFmgeQ+6TBZP9haPTvF3qNt7315cl1/9OL05624ed9Do8ON3StvLDgv679Pn
X3U+IGU2LgdXs9Fw+qq9PGvPy4fQG46vZu3V7NWcCX70djK4bHvtRTvngy/9D6bvf7z+9JfR+U+e
BxrO29STEEL5P297OZyf9YaDdhhS6/o2tc9o8Lb0NH11OZi9v/2/PwaTUVGmdz6+Obto57N5M/zw
48fx27fdvokN0/nA9LwXhtr2RNq3vbOz/lnvLJ3lJHkwOGvyuvP/10+z9+Orvw0no+tZFwkSO/R2
v+rWHvanluH8qTLik/bidtWVz3A6Lc99upgvyieb7LV/XrfDssluaPGwQ9zMRhfdfZEH+CieGtUt
uh5OxtPpm/Fk9G509eZ6MCmywbtNCkcc4Ms5pdd9ZkkdZNt9znQVK7BmRYxtT3OrozBph+PJ+VKP
+b91fqpb9+03qXux3nsddJLL/58P5lvg2adZe6fEq7NJGa/e8H07/DDdsArKPsZ+S6XWmIotj1CH
vmMc48i27oLvtODPPnX5duf6yx/L/XcyOL8bslF7yM93tznf8qPfdOfdfLC2qWy06cfXxcs/B71a
OswSAzKJAZnEgExiQCYxIJMYkEkMyCQGZBghi4kBmcSATGJAJjEgkxiQSQzIJAZkEgMyiQGZxIBM
YkAmMSCTGJBZifElBmQSAzKJAZnEgExiQCYxIJMYkEkMyCQGZBIDMokBmcSATGL8JTH+khh/SYy/
JMZfEuMvifGXxPhLshXFOISMvyTGXxLjL4nxl8T4S2L8JTH+khh/SYy/JMZfEuMvieGWxHBLYrgl
MdySGG5JDLckhlsSwy2J4ZbEcEtiuCUx3JIYbkkMtySGWxKjK4nRlczoSmZ0JTO6khldyYyuZEZX
MqMrmdGVzOhKZnQlM7qSGV3JjK5kRlcyoyuZ0ZXM6EpmdCUzupIZXclEAGQiADIRAJkIgEyDk2lw
Mg1OpsHJNDiZBifT4GQanEyDk2lwMg1OpsHJNDiZBifT4GQanEyDk2lwMg1OpsHJNDiZBifT4GQa
nEyDk2lwMg1OpsHJNDiZBifT4GQanEyDk2lwMg1OJgIg0wJlWqBMC5RpgTItUKYFyrRAmRYo0wJl
WqBMC5RpgTItUKYFyrRAmRYo0wJlWqBMC5RpgTItUCYCINMkZZqkTJOUaZIyTVKmSco0SZkmKdMk
ZZqkTJOUaZIyTVKmSco0SZkIgEwblWGjpA8bVQSBgkiBUKAUGAVOQaKAijVUDCapCKhpQ00batpQ
04aaNtS0oaaBigXqEahHoB6BegTqEahHWNGDIxapWOSIRWoaqWmkppGaRmoaqWmkppGaCjUVairU
VKipUFOhpkJNhZoKNRVqqtRUqalSU6UeSj2Ueij1UOph1MOoh1EP44gZR8yoqVFTo6ZGTY2aOjV1
aurU1KmpU1Onpk5NnZo6NXVqSuhtP1HTRE0TNU3UNFFTQn77iZomKpapWKZimYpl6pGpR6YemXpk
jhiNRUNj0eBCUwSBgkiBUKAUECRN69HQejS0Hg2tR0Pr0dB6NLQeDa1HQ+vR0Ho0tB4NrUfTUFOa
kyZQU9qXhvaloX1paF8a2peG9qWhOWloPRpaj4bWo6H1aGg9mrgCgPcVRDwFVIzWo6H1aGg9GlqP
hsaiobFoaBsa2oaGtqGhbWhoGxqlHsoRo/VoaD0aWo+G1qOh9WhoPRpaj4bWo6H1aGg9GlqPhtaj
ofVoaD0aWo+G1qOh9WhoPRpaj4bWo6H1aGg9GlqPhtajofVoaD0aWo+G1qOh9WhoPRpaj2YlYYTW
o0nUlOakoTlpaE4ampOG+WQN7UtD+9LQvjS0Lw3tS0P7EmhfAu1LoH0JtC+B9iXQvgTal0D7Emhf
Au1LoH0JtC+B9iXQvgTal0D7EmhfAu1LoH0JtC+B9iXQvgTal0D7EmhfAu1LoH0JtC+B95dAgxN4
fwm0QIEWKNACBVqgQAsUaIHCrQXaMorV/+kz7Jt4dPohhX5IoR9S6IcU+iGFfkihH1LohxT6IYV+
SKEfUuiHFLodhW5HodtR6HYUuh2FbkemsRUBFaPbUeh2FLodhW5HodtR6HYUuh2Fbkeh21HodhS6
HYVuR6HbUeh2FLodhW5HodtR6HYUuh2Fbkeh21HodhS6HYVuR6HbUeh2FLodhW5HodtR6HYUuh2F
bkeh21HodhS6HYVuR6HbUeh2FLodhW5HodtR6HYUuh2Fbkeh21HodhS6HYVuR6HbUeh2FLodhW5H
odtR6HYUuh2FbkdhaEwZGlOGxpShMWVoTBkaU4bGlKExZWhMGRpThsaUoTFlaEwZGlOGxpShMWVo
TBkaU4bGlKExZWhMGRpTmiSlSVKaJKVJUpokpUlSmiSlSVKaJKVJUpokpUlSmiRlaExpo5Q2Smmj
lDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2
SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkpp
o5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOUNkppo5Q2SmmjlDZKaaOMNspoo4w2ymijjDbKaKOM
Nspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbK
aKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymij
jDbKaKOMNspoo4w2ymijjDbKaKOMNspoo4w2ymijjDbKaJKMJslokowmyWiSjCbJaJKMJslokowm
yWiSjCbJaJKMJslokowmyWiSjCbJaJKMJslokowmyWiSjCbJaJKMJslokki4VQTUlCbJaJKMJslo
kowmyWmSnCbJaZKcJslpkpwmyWmSnCbJaZKcJslpkpwmyWmSnCbJaZKcJslpkpwmyWmSnCbJaZKc
JslpkpwmyWmSnCbJaZKcJslpkpwWyGmBnBbIaYGcFshpgZwWyGmBPK4oxiGkBXJaIKcFclogpwVy
WiCnBXJaIKcFclogpwVyWiCnBXJaIKcFclogpwVyWiCnBXJaIKcFclogpwVyWiCnBXLekpwmyWmS
nCbJaZKcJslpkpwmyWmSnCbJaZKcJslpkpwmyWmSnCbJaZKcJslpkpwmyWmSnCbJaZKcJslpkpwm
yWmSnCbJaZKcJslpkpwmyWmSnCbJaZISTVKiSUo0SYkmKdEkJZqkRJOUaJISTVKiSUo0SYkmKdEk
JZqkRJOUaJISTVKiSUo0SYkmKdEkJZqkRJOUbk3SyeSA1qyvmvVVs75q1lfN+qpZXzXrq2Z91ayv
mvVVs75q1lfN+qpZXzXrq2Z91ayvmvVVs75q1lfN+qpZXzXrq2Z91ayvmvV1hKyvI1bp2IB4sYt6
FWtz+Z4E2e6JkHeuNVibsHXWtMKaVljTCmtaYU0rrGmFNa2wphXWtMKaVljTCmtaYU0rrGmFNa2w
phXWtMKaVljTCmtaYU0rrGmFNa2wphXWtMKaVniEtMIjhkm3rYN4uFLl20Zg1y4R/XYy+DC7eQF1
EzcoaXigYoZ712irSVu3LOy66nddefj5/g8+Accrd75jQey1wA1dVJHddlt6NnNbArGagVjNQKxm
IFYzEKsZiNUMRPoHgjcDwZuBSP9ANGcgmjMQzRmI5gxEcwaiOQPRnIFozkA0ZyCaMxDNGYjmDERz
BqI5A9GcgWjOQDRnIJozEM0ZiOYMRHMGojkD0ZyBaM5ANGcgmjMQzRmI5gxEcwaiOQPRnIFozkA0
ZyCaMxDNGYjmDERzBqI5A9GcgWjOQDRnIJozEM0ZiOYMRHMGojkD0ZyBaM5ANGcgmjMQzRmI5oxE
c0aiOSPRnJFozkg0ZySaMxLNGYnmjERzRqI5I9GckWjOSDRnJJozEs0ZieaMRHNGojkj0ZyRaM5I
NGckmjMSzRmJ5oxEc0aiOSPRnJFozkjwZiR4MxK8GQnejARvRoI3I8GbkeDNyPSBSJMUaZIiTVKk
SYo0SZEmKdIkRZqkSJMUaZIiTVKkSYo0SZEmKdIkRZqkSJMUaZIiTVKkSYo0SZEmKdIkRZqkSJMU
aZIiTVKkSYo0SZEmKdIkRZqkSJMUaZIiTVKkSYo0SZEmKdIkRZqkSJMUaZIiTVKkBYq0QJEWKNIC
RVqgSAsUaYEiLVCkwYk0OJEGJ9LgRBqcSIMTaXAiDU6kwREaHKHBERococERGhyhwREaHKHBERoc
ocERGhyhwREaHKHBERococERGhyhwREaHKHBERocwpCFMGQhDFkIQxbCkIUwZCEMWQhDFsKQhTBk
IQxZCEMWwpCLgJrSAhGXLMQlC3HJQlyyEJcsxCULcclCXLIQlyzEJQtxyUJcshCXLMQlC3HJQlyy
EJcsxCULcclCXLIQlyzEJQtxyUJcshCXLMQlC3HJQlyyEJcsxCULcclCXLIQlyzEJQtxyUJcshCX
LMQlC3HJQlyyEJcsxCULcclCXLIQlyzEJQtxyUJcshCXLMQlC3HJQlyyEJcsxCULcclCXLIQlyzE
JQtxyUJcshCGLIQhC2HIQhiyEIYshCELYchCGLIQhiyEIQthyEIYshCGLIQhC2HIQhiyEIYshCEL
YchCGLIQhiyEIQthyEIYshCGLIQhC2HIQhiyEIYshCELYchCGLIQhiyEIQthyEIYshCGLIQhC2HI
QhiyEIYshCELYchC1LEQdSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtRx0LU
sRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQ
dSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUs
RB0LUcdC1LEQdSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtRx0LUsRB1LEQd
C1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtRx0LUsRB1LEQdC1HHQtSxEHUsRB0LUcdC1LEQdSxEHQtR
x0LUsSxAxocLfN3n4grRzEI0sxDNLEQzC9HMQjSzEM0sRDML0cxCNLMQzSxEMwvRzEI0sxDNLEQz
C9HMQjSzEM0sRDML0cxFQE1p+whvFsKbhfBmIbxZCG8WwpuF8GYhvFkIbxbCm4XwZiG8WQhvFsKb
hfBmIbxZCG8WwpuF8GYhvFkIbxbCm4XwZiG8WYhmFqKZhWhmIZpZiGYWopmFaGYhmlmIZhaimYVo
ZiGaWYhmFqKZhWhmIZpZiGYWopmFaGYhmlmIZhaimYVoZiGaWYhmFqKZhWhmIZpZiGYWopmFaGYh
mlmIZhaimYVoZiGaWYhmLgJqSlNHeLMQ3iyENwvhzUJ4sxDeLIQ3C+HNQnizEN4shDcL4c1CeLMQ
3iyENwvhzUJ4sxDeLIQ3C+HNQnizEN4shDcL4c1CeLMQ3iyENwvhzUJ4sxDeLIQ3C+HNQnizEN4s
hDcL4c1CeLMQ3iyENwvhzUJ4sxDeLIQ3C+HNQnizEN4shDcL4c1CeLMQ3iyENwvhzUJ4sxDeLIQ3
C+HNQnizEN4shDcL4c1CeLMQ3iyENwvhzUJ4sxDeLIQ3C+HNQnizEN4shDcL4c1CeLMQ3iyENwvh
zUJ4sxDeLIQ3C+HNQnizEN4shDcL4c1CeLMQ3iyENwvhzUJ4sxDeLIQ3C+HNkmijWJVEWJVEWJVE
WJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVEWJVE
WJVEWJVEWJVEWIREWIREWIREWIREWIREWIREWIREWIREWISkCDiENEmsSiKsSiKsSiKsSiKsSiKs
SiKsSiKsSiKsSiKsSiIsQiIsQiIsQiIsQiIsQiIsQiIsQiIsQiIsQlIEHEJaIFYlEVYlEVYlEVYl
EVYlEVYlEVYlEVYlEVYlEVYlEVYlEVYlEVYlEVYlKQJqSgvEMiXCMiXCMiXCMiXCMiXCMiXCMiXC
MiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXC
MiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCMiXCqiTCqiTCqiTCqiTCqiTCqiTCqiTCqiTCqiTC
qiTCqiTCqiTCqiTCqiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTC
IiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTC
IiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTCIiTKIiRF0FAQKIgU
CAVKgVHgFCQKqGlDTRtq2lDThpo21LShpg01bahpQ00DFQtULFCxQMUCFQtULFCxQMXCimIcwkhN
IzWN1DRS00hNIzWN1DRS00hNIzUVairUVKipUFOhpkJNhZoKNRVqemuBOkybXIve9pRy1abvB+fj
j73z8eWr6cV4NiwtvGt7w5vpbHzZXrSX7dVsuv+02Z3ykg+YYLx1uuT+8m+3TnrcKWNz3VWxbl7u
5gt6T5nVe/ogVxfCpB2OJ/PM/bvJOS7H+FpDuWMi7u5jeeASyl0lvz/z5W1Oen6Isf/KKvjSWj7Q
hzX/1atpezm4mo2G01ft5Vl7ft6WPW58NSu7zKvZ+7Y3ejsZXLa95cZTNBhM3/94/ekvo/OfPA80
nLepNy/GUP7P214O52e94aAdhtS6vk3tumvrr59m78dXfxtORtez9b7OHZW3YTofmJ73wlDbnkj7
tnd21j/rnaWzctHJg8FZk7tTfvMt+QVY7e0//XUt3nrf2AGW9VNvskXXw8l4On0znozeja7eXA8m
RTZ41+7KMvK8jT6pMV/nazylMa9guwq2q2C7CrarYLsKtqtguwq2q2C7CrarYLsKtqtguwq2q2C7
CrarYLsKtqtguwq2q2C7CrarYLsKtqtguwq2OwLY7jiFL56NklUu9srFXrnYKxd75WKvXOyVi71y
sVcu9srFXrnYKxd75WKvXOyVi71ysVcu9srFXrnYKxd75WKvXOyVi71ysVcu9srF3iEX+xHLwz+b
R1ZOaowwKiOMygijMsKojDAqI4zKCKMywqiMMCpjoUZNjZoaNTVqatTUqKlRU6OmRk2NmjoVcyrm
VMypmFMxp2JOxZyKORVLHMJETRM1TdQ0UdNETRM1TdQ0UdNETTM1zdQ0U9NMTTM1zdQ0U9NMTTM1
JXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKkIXKk
IXKkaagpoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQN
oSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNoSQNkSONUDFaoIYWqKEFamiBGlqghhaooQVqaIEa
WqCGFqihBWpogRpaoIYWqKEFamiBGlqghhaooQVqaIEap6Y0SQ1NUkOT1NAkNTRJDU1SQ5PU0CQ1
NEkNTVJDk9TQJDU0SQ1NUkOT1NAkNTRJDU1SQ5PU0CQ1NEkNTVJDk9TQJDU0SQ1NUkOT1NAkNTRJ
gSYp0CQFmqRAkxRokgJNUqBJCjRJgSYp0CQFmqRAkxRokgJNUqBJCjRJgSYp0CQFmqRAkxRokgJN
UqBJCjRJgSYp0CQFmqRAkxRokgJNUqBJCjRJgRYo0AIFWqBACxRogQi1U0LtlFA7JdROCbVTQu2U
UDsl1E4JtVNC7ZRQOyXUTgm1U0LtlFA7JdROCbVTQu2UUDsl1E4JtVNC7ZRQOyXUTgm1U0LtlFA7
JbJOiaxTIuuUyDolsk6JrFMi65TIOiWyTomsUyLrlMg6JbJOiaxTIuuUyDolsk6JrFMi65TIOiWy
TomsUyLrlMg6JbJOiaxTIuuUyDolsk6JrFMi65TIOiWQTgmkUwLplEA6JZBOCaRTAumUQDolkE4J
pFMC6ZRAOiWQTgmkUwLplEA6JZBOCaRTAumUQDolkE4JpFMC6ZRAOiWQTgmkUwLplEA6JZCuCKgp
DQ6RdUpknRJZp0TWKZF1SmSdElmnRNYpkXVKZJ0SWadE1imRdUpknRJZp0TWKZF1SiCdEkinBNIp
gXRKIJ0SSKcE0imBdEognRJIpwTSKYF0SiCdEkinBNIpgXRKIJ0SSKcE0imBdEognRJIpwTSKYF0
SiCdEjenxM0pcXNK3JwSN6fEzSlxc0VAxWhwCKRTAumUQDolkE4JpFMC6ZRAOo00OETWKZF1SmSd
ElmnRNYpkXVKZJ0SWadE1imRdUpknRJZp0TWKZF1SmSdElmnRNYpkXVKZJ0SWadE1imRdUpknRJZ
p0TWKZF1SmSdElmnRNYpkXVKZJ0SWadE1imRdUpknRJZp0TWKZF1SmSdElmnRNYpkXVKZJ0SWadE
1imRdUpknRJZp0TWKZF1SmSdElmnRNYpkXVKZJ0SWadE1imRdUpknRJZp0TWKZF1SmSdElmnRNbp
Alm3ZRTrPs9LicdT4vGUeDwlHk+Jx1Pi8ZR4PCUeT4nHU+LxlHg8JR5PicdT4vGUeDwlHk+Jx1Pi
8ZR4PCUeT4nHU+LxlHg8JR5PicdT4vGUeDwlHk+Jx1Pi8ZR4PCUeT4nHU+LxlHg8JR5PicdT4vGU
eLwioKa0bAToKQF6SoCeEqCnBOgpAXpKgJ4SoKcE6CkBekqAnhKgpwToKQF6SoCeEqCnBOgpAXpK
gJ4SoKcE6CkBekqAnhKgpwToKQF6SoCeEqCnBOgpAXpKgJ4SoKcE6CkBekqAnhKgpwToKQF6SoCe
EqCnBOgpAXqqtGxE7CkRe0rEnhKxp0TsKRF7SsSeErGnROwpEXtKxJ4SsadE7CkRe0rEnhKxp0Ts
KRF7SsSeErGnROwpEXtKxJ4SsadE7CkRe0rEnhKxp0TsKRF7SsSeErGnROwpEXtKxJ4SsadE7CkR
e0rEnhKgpwToKQF6SoCeEqCnBOgpAXpKgJ4SoKcE6CkBekqAnhKgpwToKfF4SjyeEo+nxOMp8XhK
PJ4Sj6fE4ynxeEo8nhKPp8TjKfF4SjyeEo+nxOMp8XhKPJ4Sj6fE4ynxeEo8nhKPp8TjKfF4Sjye
Eo+nxOMp8XhKPJ4Sj6fE4ynxeEo8nhKPp8TjKfF4SjyeEo+nxOMp8XhKPJ4Sj6fE4ynxeEo8XhFQ
U1og0qoradWVtOpKWnUlrbqSVl1Jq66kVVfSqitp1ZW06kpadSWtupJWXUmrrqRVV9KqK2nVlbTq
Slp1Ja26klZdyaKuZFFXsqgrWdSVLOpKFnUli7qSRV1Jmq4kTVeSpitJ05Wk6UrSdCVpupI0XUma
riRNV5KmK0nTlaTpStJ0JWl6EVBTGhyyqCtJ05Wk6UrSdCVpupI0XUmariRNV5KmK0nTlaTpStJ0
JWm6kjRdSZquJE1XkqYrOdKVHOlKjnQlR7qSI13Jka7kSFdypCs50pUc6UqOdCVHupIjXcmRruRI
V3KkKznSlRzpSo50JUe6kiNdyZGu5EhXcqQrOdKVHOlKjnQlR7qSI13Jka7kSFdypCs50pUc6UqO
dCVHupIjXUmJrqREV1KiKynRlZToSkp0JSW6khJdSYmupERXUqIrKdGVlOhKSnQlJbqSEl1Jia6k
RFdSoisp0ZWU6EpKdCUlupISXUmJrqREV1KiKynRlZToSkp0JSW6khJdSYmupERXUqIrKdGVlOhK
SnQlJbqSEl1Jia6kRFdSoisp0ZWU6EpKdCUDupIBXcmArmRAVzKgKxnQlQzoSgZ0JQO6kgFdyYCu
ZEBXMqArGdCVDOhKBnQlA7qSAV1JeK4kPFcSnisJz5WE50rCcyXhuZLwXEl4riQ8VxKeKwnPlYTn
SsJzJeG5kvBcSXiuJDxXEp4rCc+VhOdKwnMl4bmS8FxJeK4kPFcSnisJz5WE50rCcyXhuZLwvAio
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
REIbkdBGJLQRCW1EQhuR0EYktBEJbURCG5HQRiS0EQltREIbkdBGJLQRCW1EQhuR0EYktBEJbURC
G5HQRiS0EQltREIbkdBGJLQRCW1EQpvQJLF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+
hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hbF+hSltFAta
GAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaGAtaFAE1pY1ihQtjhQtjhQtjQQtj
QQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtj
QQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtjQQtj
QQtjQQtjQQtjQQtj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj/Qpj
/Qpj/Qpj/Qpj/Qpj/Qpj/YoioKa0QCxoYSxoYSxoYSxoYSxoYSxoYSxoUQTU1E+h2ub6nLU1Xlbj
ZTVeVuNlNV5W42U1XlbjZTVeVuNlNV5W42U1XlbjZTVeVuNlNV5W42U1XlbjZTVeVuNlNV5W42U1
XlbjZfuPl51oZcfKjVi5ESs3YuVGrNyIlRuxciNWbsTKjVi5ESs3YuVGrNyIlRuxciNWbsTKjVi5
ESs3YuVGrNyIlRuxciNWbsTKjVi5ETvkRjxiZce346vZ9NXlYPb+9v/+GExGg6tZ7+1k8GF2M/nx
4/jt224S2Nbo+Klhmf/+8uLVpC1Nj8ZX01fD6bQ3nX26mA/Vlxrbb2HEaTv5YzRsP44nH9p527Pr
g1aN21CrvZWRc961nXdt513bedd23rWdd23nXdt513betYvAKaCmiZpmapqpaaammZpmapqpaaam
mZpmaoqTjvPy7bx8Oy/fzsu38/LtvHw7L9/Oy7fz8u28fDsv387Lt/Py7bx8Oy/fzsu38/LtvHw7
L9/Oy7fz8u28fDsv387Lt/Py7bx8Oy/fzsu38/LtvHw7L9/Oy3cRUNNITSM1jdQ0UtNITSM1jdRU
qKlQU6GmQk2Fmgo1FWoq1FSomFIxpWJKxZSKKRVTKqZUTKmYcgiVmho1NWpq1NSoqVFTo6ZGTY2a
GjU1aurU1KmpU1Onpk5NnZo6NXVqSpPEy7fz8u28fDsv387Lt/Py7bx8Oy/fzsu38/LtvHw7L9/O
y7fz8u28fDsv387Lt/Py7bx8Oy/fzsu38/LtvHw7L9/Oy7fz8u28fDsv387Lt/Py7bx8Oy/fzsu3
8/LtvHw7L9/Oy7fz8l0E1JQmibdx523ceRt33sadt3Hnbdx5G3fexp23cedt3Hkbd97Gnbdx523c
eRt33sadt3Hnbdx5G3fexp23cedt3Hkbd97Gnbdx523ceRt33sadt3Hnbdx5G3fexp23cedt3Hkb
d97Gnbdx523ceRt33sadt3Hnbdx5G3fexp23cedt3Hkbd97Gnbdx523ceRt33sadt3HnbdwDbRQ5
VJwcKk4OFSeHipNDxcmh4uRQcXKoODlUnBwqTg4VJ4eKk0PFyaHi5FBxcqg4OVScHCpODhUnh4qT
Q8XJoeLkUHFyqDg5VJwcKk4OFSeHipNDxcmh4uRQcXKoODlUnBwqTg4VJ4eKk0PFyaHi5FBxcqg4
OVScHCpODhUnh4qTQ8XJoeLkUHFyqDg5VJwcKk4OFSeHipNDxcmh4uRQcXKoODlUnBwqTg4VJ4eK
k0PFyaHi5FBxcqg4OVScHCpODhUnh4qTQ8XJoeLkUHFyqDg5VJwcKk4OFSeHipNDxcmh4uRQcXKo
ODlUnBwqTg4VJ4eKk0PFyaHi5FBxcqg4OVScHCpODhUnh4qTQ8XJoeLkUHFyqDg5VJwcKk4OFSeH
ipNDxcmh4uRQcXKoODlUnBwqTg4VJ4eKk0PFyaHi5FBxcqg4OVScHCpFQE1po0iq4iRVcZKqOElV
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
VKd4o/1oQfzXZ2U+Cw8SR18HP3ACcfRnY6uV96PyflTej8r7UXk/Ku9H5f2ovB+V96PyflTej8r7
UXk/Ku9H5f2ovB+V96PyflTej8r7UXk/Ku9H5f2ovB+V96PyfnTI+3Gc2OpO+ZbPBiMPERLdtOJ3
r/3zuh3O2vMOC3PvptO6ZbnXTk19P5i05/eZqUevRk519leGXAicEwLnhMA5IXBOCJwTAueEwDkh
cE4InBMC54TAOSFwTgicEwLnhMA5IXBOCJwTAueEwDkhcE54dFMe3ZRHN+XRTXl0Ux7dlEc35dFN
eXRTHt2URzfl0U15dFMe3ZRHN+XRTXl0Ux7dlEc35dFNeXRTHt2URzfl0U15dFMe3ZRHN+XRTXl0
Ux7dlEc35dFNeXRTHt2URzfl0U15dFMe3ZRHN+XRTXl0Ux7dlEc35dFNeXRTHt2URzfl0U15dFMe
3ZRHN+XRTXl0Ux7dlCc15UlNeVJTntSUJzXlSU15UlOe1JQnNeVJTXlSU57UlCc15UlNeVJTntSU
BzPlwUx5MFMezJQHMyUsTgmLU0K3lRZIaYGUFkhpgZQWSGmBlBZIaYGUFkhpgZQWSGmBlBZIaYGU
FkhpgZQWSGmBlBZIaYGUFshogYwWyGiBjBbIaIGMBsdocIwGx2hwjAbHaHCMBsdocIwGx2hwjAbH
aHCMBsdocIwGx2hwjAbHaHCMBsdocIwGx2hwjAbHaHCMBsdocIwGx2hwjAbHaHCMBsdocIwGx2hw
jAbHaF+M9sVoX4z2xWhfjPbFaF+M9sVoX4z2xWhfjK4Bo8ExGhyjwTEaHKPBMRoco8ExGhyjwTEa
HKPBMRoco8ExGhyjwTEaHKNrwGiBjBbIaIGMFshogYwWiFBVJ1TVCVV1QlWdUFUnVNUJVXVCVZ1Q
VSdU1QlVdUJVnVBVJ1TVCVV1QlWdUFUnVNUJVXVCVZ1QVSdU1QlVdUJVnVBVJ1TVCVV1QlWdUFUn
VNUJVXVCVZ1QVSdU1QlVdUJVnVBVJ1TVCVV1QlWdUFUnVNUJVXVCVZ1QVSdU1QlVdUJVnVBVJ1TV
CVV1QlWdUFUnVNUJVXVCVZ1QVSdU1QlVdUJVnVBVJ1TVCVV1QlWdUFUnVNUJVXVCVZ1QVScy1YlM
dQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUC
UZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGd
QFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBU
JxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ
1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJ
RHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUJxDVCUR1
AlGdQFQnENUJRHUCUZ1AVCcQ1QlEdQJRnUBUXwBRdy1D7oSv/n/s/VtzXFe25Xl+lXzJtKwHhLDu
cz4cO5bd/ZBtVl1WVtVt2W8yiIQknKBIFgAqQvnpCyAVuvyCJByAuwNkbLPMOBEukT79tsdea43x
H0v76tK+urSvLu2rS/vq0r66tK8u7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r66tK8u7atL
++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r66tK8u7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq
0r66tK8u7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r66tK8u7atL++rSvrq0ry7tq0v76tK+
urSvLu2rS/vq0r66tK8u7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r66tK8u7atL++rSvrq0
ry7tq0v76tK+urSvLu2rS/vq0r66tK8u7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r66tK8u
7atL++rSvrq0ry7tq0v76tK+urSvLu2rS/vq0r4a2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2po
Xw3tq6F9NbSvhvbV0L4a2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2poXw3tq6F9NbSvhvbV0L4a
2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2poXw3tq6F9NbSv
hvbV0L4a2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2poXw3tq6F9NbSvhvbV0L4a2ldD+2poXw3t
q3G6nHQ56XLS5aThpOGk4aThpOGk4aThpOGk4aThpOmk6aTppOmk6aTppOmk6aTppGqU3RVhd0XY
XRF2V4TdFWF3RdhdEXZXhN0VYXdF2F0RdleE3RVhd0XYXRF2V4TdFWF3RdhdEXZXhN0VYXdF2F0R
dleE3RVhd0XYXRF2V4TdFWF3RdhdEXZXhN0VYXdF2F0RdleE3RVhd0XYXRF2V4TdFWF3RdhdEXZX
hN0VYXdF2F0RdlfcPOCkapRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhm
EZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGW
WYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmE
ZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUW
YZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZ
RVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVY
ZhGWWYRlFmGZRVhmEZZZhGUWYZlFWGYRllmEZRZhmUVYZhGWWYRlFmGZRdRdTrE+meDbf8Ds2C2S
n31lO2TVdgePbid920nfdtK3nfRtJ33bSd920red9G0nfdtJ33bSt530bSd920nfdtK3nfRtJ33b
Sd920red9G0nfdtJ33bSt530bSd920nf/k/6nrjUcaM6blTHjeq4UR03quNGddyojhvVcaM6blTH
jeq4UR03quNGddyojhvVcaM6blTHjeq4UR03quNGddyojhvVcaM6blTHJ6A6Ps0p2fsTst/L9W4f
/PHs8uYvv/rLf1wd8Y9dnr99c3l9uD/8bGOBOxYdPpv04qc+9E82MT60tG+3w917j/PZ8OUjnvO3
7+AzfObDfgQHaOnc8bp1Z/715o5IZ4SeuKonruqJq3riqp64qieu6omreuKqnriqJ67qiat64qqe
uKonrumJa3rimp64pieu6YlreuKanrimJ67piWt64pqeuKYnrumJa3rimp64pieu6YlreuKanrim
J67piWt64pqeuKYnrumJa3rimp64pieu6YlreuKanrimJ67piWt64pqeuKYnrumJa3rimp64pieu
6YlreuKaFrimBa5pgWta4JoWuKYFrmmBa1rgmha4pgWuaYFrWuCaFrimBa5pgWta4JoWuKYFrmmB
a1rgmha4pgWuaYFrWuCaFrimBa5pgWta4JoWuKYFrmmBa1rgmha4pgWuaYFrWuCaFrimBa5pgWta
4JoWuKZNuylJTUlqSlJTkpqS1JSkpiQ1JakpSU1JakpSU5KaktSUpKYkdSWpK0ldSepKUleSupLU
laSuJHUlqStJXUnqSlJXkrqS1JWkriR1JakrSV1J6kpSV5K6ktSVpK4kdSWpK0ldSepKUleSupLU
laSuJHUlqStJXUnqSlJXkrqS1JWkriR1JakrSV2bdlejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWo
rkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWo
rkZpVQ6tyqFVObQqh1bl0KocWpVDq3JoVQ6tyqFVObQqh1bl0KocWpVDq3JoVQ6tyqFVObQqh1bl
0KocWpVDq3JoVQ6tyqFVObQqh1bl0KocWpVDq3JoVQ6tyqFVObQqh1bl0KocWpVDq3JoVQ6tyqFV
ObQqh1bl0KocOpNDZ3LoTA6dyaEzOXQmh87k0JkcOpNDZ3LoTA6dyaEzOXQmh87k0JkcOpNDZ3Lo
TA6dyaEzOXQmh87k0JkcOpNDZ3LoTL55wEmVJK3KoVU5tCqHVuXQqhxalUOrcmhVDq3KoVU5tCqH
VuXQqhxalUOrcgwlSe9y6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y
6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y6F2+eWD4wPKB8AEHU4H0
Lofe5dC7HHqXQ+9y6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y6F0Ovcuhdzn0Lofe5dC7HHqXQ+9y6F0O
vcuhdzn0Lofe5dC7HHqXQ+9y6F2+ecBJlSTNzKGZOTQzh2bm0MwcmplDM3NoZg7NzKGZOfQuh97l
0LscepdD73LoXQ69y6F3OfQuh97l0LscepdD73LoXQ69y6FVObQqh1bl0KocWpVDq3JoVQ6tyqFV
ObQqh1bl0KocWpVDq3JoVQ6tyqFVObQqh1bl+GBVfuAp1m/51NDgHBqcQ4NzaHAODc6hwTk0OIcG
59DgHBqcQ4NzaHAODc6hwTk0OIcG59DgHBqcQ4NzaHAODc6hwTk0OIcG59DgHBqcQ4NzaHAODc6h
wTk0OIcG59DgHBqcQ4NzaHAODc6hwTk0OIcG59DgHBqcQ4NzaHAODc6hwTk0OIcG59DgHBqcQ4Nz
aHAODc6hwTk0OIcG55sHnFTd0vF884CTqltaoEMLdGiBDi3QoQU6tECHFujQAh1aoEMLdGiBDi3Q
oQU6tECHFujQAh1aoEMLdGiBDi3QoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPH
c+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ
8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5
dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4
Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6
nkPHc+h4Dh3PoeM5dDyHjufQ8Rw6nkPHc+h4Dh3PEWqUPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0V
YU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFP
RdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XY
UxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR
9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZU
hD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9FWFPRdhTEfZUhD0VYU9F2FMR9lSEPRVhT0XYUxH2VIQ9
FWFPRdhTkfZUpD0VaU9F2lOR9lSkPRVpT0XaU5H2VKQ9FWlPRdpTkfZUpD0VaU9F2lOR9lSkPRVp
T0XaU5H2VKQ9FWlPRdpTkfZUpD0VaU9F2lOR9lSkPRVpT0XaU5H2VKQ9FWlPRdpTkfZUpD0VaU9F
2lOR9lSkPRVpT0XaU5H2VKQ9FWlPRdpTkfZUpD0VaU9F2lOR9lSkPRVpT0XaU5H2VKQ9FWlPRdpT
kfZUpD0VaU9F2lOR9lSkPRVpT0XaU5H2VKQ9FWlPRdpTkfZUpD0VaU9F2lOR9lSkPRVpT0XaU5H2
VKQ9FWlPRdpTkfZUpD0VaU9F2lOR9lSkPRX5oafi2SQQt9TXlvraUl9b6mtLfW2pry31taW+ttTX
lvraUl9b6mtLfW2pry31taW+ttTXlvraUl9b6mtLfW2pry31taW+ttTXlvp6gtTXc2893FJlW6ps
S5VtqbItVbalyrZU2ZYq21JlW6psS5VtqbItVbalyrZU2ZYq21JlW6psS5VtqbItVbalyrZU2ZYq
21JlW6ps/6myJ2w9/Gwt2rvXL88vX/1yM8HJr5Vmf3l5/vLixdn1nxrSDpNw28dk/+m//m9vXp/v
8C7QwXbIl/Wxp9p1ziOXTR6x/PHOPOPNT8XfcPobTn/D6W84/Q2nv+H0N5z+hr17K969Fe/eindv
xbu34t1b8e6tePdWvHsr3r0V796Kd2/Fu7fi3Vvx7q1491a8eyvevRXv3op3b8W7t+LdW/HurXj3
Vrx7K969Fe/eindvxbu34t1b8e6tePdWvHsr3r0V796Kd2/Fu7fi3Vvx7q1491a8eyvevRXv3op3
b8W7t+LdW/HurXj3Vrx7K969Fe/eindvxbu34t1b8e6tePdWvHsr3r0V796Kd2/Fu7fi3Vvx7q14
91a8eyvevRXv3op3b8W7t+LdW/HurXj3Vrx7K969Fe/eindvxbu34t1b8e6tePdWvHsr3r0V796K
d2/Fu7fi3Vvx7q1491a8eyvevRXv3ko6qRpV1KiiRhU1qqhRRY0qalRRo4oaVdWoqkZVNaqqUVWN
qmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWN
qmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWN
qmpUVaOqklSVpKokVSWpKklVSapKUlWSqpJUlaSqJFUlqSpJVUmqSlJVkqqSVJWkqiRVJakqSVVJ
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
mO0Ws91itlvMdovZbjHbLWa7xWy3mO0Wsz1gzPaJa0Pvf5j4ZB6C3atOt7Tultbd0rpbWndL625p
3S2tu6V1t7Tultbd0rpbWndL625p3S2tu6V1t7Tultbd0rpbWndL625p3S2tu6V1t7Tultbdf1r3
CatOb/+tb67Ofzp7fX3x4uqb85++O3/58vzlyYs3r6/PX19/c/3j+cnF95dnP52fnL86/+n2oavr
s6sf//L2l3+/ePlv80W8PJvj5Ul9Mc5Pej///uS7706/O/kuvrv9HZ+dfVfysBOsPBv15Xmc9Frr
zX+s85OsL787eXF2/qLG+Rrfx/muqcb//ZfrH9+8/j9fXF68vb5ntPZef/S388kjvPuf+m494Klf
XL65uvr2zeXFDxevv317dnnz2NkP5/c4jj3CR/0MXu7xEuxHY2X/x9XDydi/p2jD++/w/ju8/w7v
v8P77/D+O73/Tu+/8/3992E+iS/tXXhC6Xl3+eqbs3/82k4+/M5O/n77Z//y98NVTd/1rDu3Y//6
i3l78fb2bXrx6s3V+cnbyzdvz354n1S/fVP+dnb58i9X55c/X7w4/827cv326ggF4Q8e676v/7dL
yHe/XP/hOnJ5M/HJix/PX/z16onegUcMdrjm8WNe5O/6pj/w9R2mIv2RVI7Hv9aP/Q0He5GfeLLD
vrqb/3/7yMuz67Ob53rz+ul5I5+/CPzp3XL4g7xVe73s7PDav8TrzNWf3vNbK/fjNefud2BnDMzF
64vri7NXB9SXB43yqE/6GVxxn+ZT3ye/6IE/pGN/KkdmfD2dqfuRnK7nM8nekXk7XhHPX16c/fpn
PvyPD//9dkfj+4sfbm5xz17/cH7y09t+cvbzyc8XL8/fnHx3cX15dn1+x8Xxwxfjw4/25MOv9or/
zTtx8uP5q7c3/9Zfrt5995wIdo95EU903ftdZh75+e6qOE+6/fr0W9CP2MXdy63Znp5xV/zkJ79V
764vXu37p3uP7/HVF66j99Wox/66D6lXx5ntrm/iM53un761TzLnE6wK/zXObh6/CH7EtuNRDtG+
kDPDL3U1fKiP/3ndlB/nDvug7+Wfr89v+4cJby7FLfpfb34X5fT0v//Pk/Lix5PZT//e4/SknX7/
9uqknP71+8uTm5/Axfc3f2D/G6mfkKBHDfh0GrX7Yunml/angPdTH485z67rqUd9bH+5+QPP8Nt0
O9bTfYc+OfrNpM/7l3r/AZ/+l7rrLtUTH+o+cLpH/4p3+Uif4Fe861hP9/36RAfAPw5J9l6AcFf5
wB+f+NHlA3886jnEwu0LOIV49Hb9/SX5gYf6h7tKPe58YM9vwOfNBl/h8fNjteHrXo8e9015Vlez
o/l7ntrddfCt4Uc+6R5sT9tOydP8yu+zJ3PcpfxDJtpV+Q5um9ubx+3hG8hX788eb78l5f0G7of/
/dsG7qs3P9zuHF+dv/i38l8uXv5b3XFz+I6/9uzql9cvvj09nbeD33sf6b3X/E/3SN+dvfjr+5uk
j8ECn97p+DTbW/d8m3b4VTx8Qf7g/bR7rsH+XAD3HO5sH39q/4wicru/4mdk63jkx3QoO8dTOUGO
6X7988/xPleYQ9v+HriaPo4H8H7DPd2exUNuvo708e99on8xB8S/us/g2YV1H3ZT9zWlvA79Tvwr
nFHcoyD5I3s2O8Vz71gg/PFSfPDV2v5SevfLCO+wULrrfdhPEvfl+fXZzZO8PPnu3fff324pHfwt
33GHZqfB7udi/+Xmov/3b26u/le3X/7bx8ari+++ff/vlXXAV7rz0++88XR1fnlyffHThwOh87PL
b89evfr2p7PLm+/K2etf7vVS/tvrX/77zb9+j+/9Dk/+lUSkd3il+9ycOvRK/+iL5scuYb9U+M8D
dtye5LZmIw1tpKFndEz5ePrEs9qcfR7IprvuI59mX+tRU91zq/H67NXFi2cR+f99ksfcuV5/sIM+
4E9+wE8dLAj/8WF/uv1Xz7/0X+Zx/sgXcmX77Mrmty/Z5yVwh+XQwXa1P/Orer5D31cS9jPxIxVg
z0PccYV5yrfiwYcPO+10HFWl9zze40+471qIP3ej3t3OucfuNOy8O3Po3Y6v5bBkF6bpo77Tu90b
f/nf7Aet8O65P/5066L////nf/3vN0/8f5z/X+9u/sEf3qOXN6uBX273C366+rd2evOvf2JA/oK/
//Tq9t+7/PA/b3+O52/eXZ+8+fnmq3rx8nw/fsx/uqQfzNV63zGeVKI21s0XDDvf/BPP1j9x143F
A04a/8cHm/z+Dq0edbD6J2/+LaDmGFfUjz7pE973fDGndg+PCB4H+HuY7fIdlsBxcDf8EX8oO7/e
h7k1HvTru+sm9qvrjbjrdu8hF9nL8xdvLl++d8N++GdfdzT60VsH917S7PaWH0dpvoSE1fM7tTzw
KeIuH9wDT5/2fcXfx1lE/OXhCvvwo7qdzs02avWzPhCKZ3GyEQc82TjG0+/jjCkeafH+cHB/fIf3
78/7eIP37+aDbSts2wrbtsKe8VbY7vr7317/8mEvbO9bYUfaYPkq9pLus5K9e2H0HAAAj0qYfHTV
8BT0P5//PmCP3/fjjtQ2eCDuwXvZ3xV7cEQb5L2j30/hBDmCreIel5AdbnTzaWNM+RWlf+53sTxq
DmhPxpPDb8fvZQ/3C+332GNe+f6bt8cJHD2/TeXHTLTnk9R/nQ3hIzhAH3zR+qK8dk/oDHjkJ3yU
oNBzsw0eZS/tcTtZX3SM9hnspW3J1q8o2XpPR89XXu76INPRAc+S9vo89/OlP7oEY5fSoafc/Hps
4cUnNjHOz67e3bz9B2OOPEGQ9a4dH1/y44K8u57xP8hbsKVqn7GrJJ+FNyCfw+F8Pq1B4fGfxNXh
34Av96zMC+ZXYfr7Aj+we/UD7KdE8asoRNm6OffSOLGft/EBa8wfL66ub1aYL37t33o29cfM9agz
s0fm6P94if5a/fD3kqH7LAKOJIh/+LocnvD48efb42LxCSN/nxjjWZ1ZP9qLerxRj02L+8j3cref
8tEstvdFKH8JeLn7/ZYedEXbaVPm4Xt99/3efPGwwH0I5YPKJP/pc93nx3LPK/tTGGk/Osaxflhf
/BbBPexwH/n+HOW+4rNPu8ebpKPt7R7bNbm32+fdviz7vN/4SqszHvtKP/3nD3sF/szTHuyl/tPX
8vWb19+e//3mr7xZ1r839j4Fg//TQ3wlLP7PfNRfnyx++tM8+g7Rx0f5CreJHvie3/s3eazvwT3X
WI89R3nMbf89fsk7L8ZfvXnz9nnkXf4wyX4jVU9VpbzfFuWvkl+wl1Pzx5wnHPI4/WBz3es6+jR7
yHfO8ky/9r9dpy9uPqnL789ePMC2dRx/zr3MYV9DfOKZVM3uYaRPfL8OfbZ58Bvv59u0u+9X8H+c
/+3y4vrmb/tPvyKI/9PbmzuZP073P86/+3//v/7X//3s8urDMvv6zR//6c1fefHyVf3m1cV3//jv
97mm3feP7+cN//izfu7+9SNf8r0L2yF2TnY3K/z0w28K/h5lfXMXe/by5PznuwPxDzVE/Po/z169
evO379+9enX14vL8/PWzEKj9e4nv+OSP9XP/1FX7HuUvj/we7aANT9xus68v8WFe6bH34O575dvD
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
y7Zg2RYs24JlW7BsC5ZtwbItWLYFy7Zg2RYs24JlW7BsC5ZtwbItWLYFy7Zg2RYs24JlW7BsC5Y9
QbDsyQ7KPpTcPqAz/tcq+sM1qj1yqF370z7U2/3y+vrs79+8Pbu8uv3bbx8bry6++/b68uLFX385
PXwb/S7Pv+sr+kSp+dmrVwd8GXc86a6z/7li+G1/31F48vNJqfHXk1ZP/1776Unt37+9Oom/fn95
8tPZ64vvb/6Vv/zH1ZvXx2iAvudIT1Kl/P4r9d3lm7/d/CiuPvyX2wLC26LGmz/yzT9KGG8eOntx
+ebmV/XyzYt3t8WNV9/8x9nPZ1cvLi/eXp/cfJq3PYWXv9w+/w+3//hmuJ/e3nyMN//ioX8QR5h+
16/k/WtMD1fpfPWnb1L23vZfPLnrJfNAjaCHvMoeaORn2px6xCLde7XiPo8v8a9/8uTDH73if/NC
Tn48f/X25t/6y9W77w723j1mouf0zt5puRpmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaY
qRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZ
ZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZq
hpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZ
mmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZph
pmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZm
mKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpip
GWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlm
aoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqG
mZphpmaYqRlmaoaZmmGmZpipGWZqhpmaYaZmmKkZZmqGmZphpmaYqRlmaoaZmmGmZpipGWZqhpma
YaZmdDXK6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6Moyu
DKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyj
K8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD
6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jK
MLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6
MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKM
rgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4M
oyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMr
w+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8Po
yjC6MoyuDKMrw+jKMLoyjK4MoyvD6MowujKMrgyjK8PoyjC6MoyujPmYRtrfCduhmTg0E4dm4tBM
HJqJQzNxaCYOzcShmTg0E4dm4tBMHJqJQzNxaCYOzcShmTg0E4dm4tBMHJqJQzNxaCYOzcShmTg0
E4dm4tBMHJqJQzNxaCYOzcShmTg0E4dm4tBMHJqJQzNxaCYOzcShmTg0E4dm4tBMHJqJQzNxaCYO
zcShmTg0E4dm4tBMHJqJQzNxaCYOzcShmTg0E4dm4tBMHJqJQzNxaCYOzcShmTg0E4dm4tBMnJqJ
UzNxaiZOzcSpmTg1E6dm4tRMnJqJUzNxaiZOzcSpmTg1E6dm4tRMnJqJUzNxaiZOzcSpmTg1E6dm
4tRMnJqJUzNxaiZOzcSpmTg1E6dm4jTwkmpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGp
RqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUa
lWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpUqlGpRqUalWpU
qlGpRqWrr1NXX6euvk5dfZ26+jp19XXq6uvU1depq69TV1+nrr5OXX2duvo6dfV16urr1NXXqauv
U1dfp66+Tl19nbr6OnX1derq69TV16mrr1NXX6euvk5dfZ26+jp19XXq6uvU1depO4Q2FQ2bioZN
RcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo2FQ0bCoaNhUNm4qGTUXDpqJhU9GwqWjY
VDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo2FQ0bCoaNhUNm4qG
TUXDpqJhU9GwqWjYVDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo
2FQ0bCoaNhUNm4qGTUXDpqJhU9GwqWjYVDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNGwqGjYVDZuK
hk1Fw6aiYVPRsKlo2FQ0bCoaNhUNm4qGTUXDpqJhU9GwqWjYVDRsKho2FQ2bioZNRcOmomFT0bCp
aNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo2FQ0bCoaNhUNm4qGTUXDpqJhU9GwqWjYVDRsKho2FQ2b
ioZNRcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo2FQ0bCoaNhUNm4qGTUXDpqJhU9Gw
qWjYVDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPRsKlo2FQ0bCoaNhUN
m4qGTUXDpqJhU9GwqWjYVDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNGwqGjYVDZuKhk1Fw6aiYVPR
sKlo2FQ0bCoaNhUNm4qGTUXDpqJhU9GwqWjYVDRsKho2FQ2bioZNRcOmomFT0bCpaNhUNOqX1ki7
nZdt52Xbedl2Xradl23nZdt52XZetp2Xbedl23nZdl62nZdt52Xbedl2Xradl23nZdt52XZetp2X
bedl23nZdl62nZdt52V7Py/7AhppNzzihkfc8IgbHnHDI254xA2PuOERNzzihkfc8IgbHnHDI254
xA2PuOERNzzihkfc8IgbHnHDI254xA2PuOERNzzihkfcPx7xaRtpP9aK+uHg7LP1aw8sbPzkU16f
/3T7r54/8EkPU7b3mWmv9v5kz/aPfLZA97evyuerGXdp3d3tUHeX3sMnmuKIz3/HT+hpx7g6widx
vMLY59Xw+Zl39o5i6EP+vB7z1A+pfv7Lzb/yLDqobwd5kubph34hn8Pv5llp/JE19DHy9RT9xvsY
/AgV44dU7ef3tj/3N/z95N+/uf1Lfzq7/vH9f/x8dnlx8z6e3LwzVyc3w118f3JxIxAXL/7ytzff
f3+YH9u9RvjkZfzmT968p5fnr95/elffvLh5166uf3l1e+fy+b92x37sBxdH33wdzl/+1ht9qEb3
/c33n/7r/3bzFdpDr/U0mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk
3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40
mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3
TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03m
TZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2T
edNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nT
ZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502Te
NJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZ
N03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN
5k2TedNk3jSZN03mTZN502TeNJk3TeZNk3nTZN40mTdN5k2TedNk3jSZN03mTZN5s6pRBuCmAbhp
AG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBu
GoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqA
mwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG
4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCm
AbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4
aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkA
bhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4a
gJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCb
BuCmAbhpAG4agJsG4KYBuGkAbhqAmwbgpgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbhqAmwbg
pgG4aQBuGoCbBuCmAbhpAG4agJsG4KYBuGkAbva99FqPaSRhGkmYRhKmkYRpJGEaSZhGEqaRhGkk
YRpJmEYSppGEaSRhGkmYRhKmkYRpJGEaSZhGEqaRhGkkYRpJmEYSppGEaSRhGkmYRhKmkYRpJGEa
SZhGEqaRhGkkYRpJmEYSppGEaSRhGkmYRhKmkYRpJGEaSZhGEqaRhGkkYRpJmEYSppGEaSRhGkmY
RhKmkYRpJGEaSZhGEqaRhGkkYRpJmEYSppGEaSRhGkmYRhKmkYRpJGEaSZhGEqaRhGUkYRlJWEYS
lpGEZSRhGUlYRhKWkYRlJGEZSVhGEpaRhGUkYRlJWEYSlpGEZSRhGUlYRhKWkYRlJGEZSVhGEpaR
hGUkYRlJWEYSlpGEZSRhGUlYRhKWsbmlRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNC
jQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjbLvbNh3Nuw7G/adDfvOhn1nw76zYd/ZsO9s2Hc2
7Dsb9p0N+86GfWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9Z8O+s2Hf2bDvbNh3Nuw7G/adDfvOhn1n
w76zYd/ZsO9s2Hc27Dsb9p0N+86GfWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9Z8O+s2Hf2bDvbNh3
Nuw7G/adDfvOhn1nw76zYd/ZsO9s2Hc27Dsb9p0N+86GfWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9
Z8O+s2Hf2bDvbNh3Nuw7G/adDfvOhn1nw76zYd/ZsO9s2Hc27Dsb9p0N+86GfWfDvrNh39mw72zY
dzbsOxv2nQ37zoZ9Z8O+s2Hf2bDvbNh3Nuw7G/adDfvOhn1nw76zYd/ZsO9s2Hc27Dsb9p0N+86G
fWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9Z8O+s2Hf2bDvbNh3Nuw7G/adDfvOhn1nw76zYd/ZsO9s
2Hc27Dsb9p0N+86GfWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9Z8O+s2Hf2bDvbNh3Nuw7G/adDfvO
hn1nw76zYd/ZsO9s2Hc27Dsb9p0N+86GfWfDvrNh39mw72zYdzbsOxv2nQ37zoZ9Z8O+s2Hf2bTv
bNp3Nu07m/adTfvOpn1n076zad/ZtO9s2nc27Tub9p1N+86mfWfTvrNp39m072zadzbtO5v2nU37
zqZ9Z9O+s2nf2bTvbNp3Nu07m/adTfvOpn1n076zefpl9Fpvqa8t9bWlvrbU15b62lJfW+prS31t
qa8t9bWlvrbU15b62lJfW+prS31tqa8t9bWlvrbU15b62lJfW+prS31tqa8t9XXA1Nfz7bXegmVb
sGwLlm3Bsi1YtgXLtmDZFizbgmVbsGwLlm3Bsi1YtgXLtmDZFizbgmVbsGwLlm3Bsi1YtgXLtmDZ
FizbgmVbsOyAwbKn7bXeqciznd4WeZbTv35/efLT2euL7z901755/YTlop+c6Ul6Rt9dnV+eXF/8
9L7s7vzs6t3l+bfnf39x/vZ9F94fWg2//fAvHbCH7kGj7Fo597EG2x/Prg75cj7zjLtO/YCCyqt3
b287O38tqjy5/vHs+uTt+eXt33x1cv3m7ckfiipv/t/bN2/fvb3jXfhkFfRvvc43f+ivF9e/9jo/
6z7zj4+8w+fB33qcz+T5FZd+va2/j2zC3V+L5mGKY4803+8/kb2U1F6eX7+7fH3y89mrm3Hef5yH
1aBjTL7rxf++dxNPXJrOJE9yN/PwLt+T87+/PX9xff7ygF+ufU23v5rdrgm7a8LumrC7JuyuCbtr
wu6asLsm7K4Ju2vC7pqwuybsrgm7a8LumrC7JuyuCbtrwu6asLsm7K4Ju2vC7pqwuybsrgm7a8Lu
mrC7JuyuCbtrwu6asLsm7K4Ju2vC7pqwuybsrgm7a8LumrC7JuyuCbtrwu6asLsm7K4Ju2vC7pqw
uybsrgm7a8LumrC7JuyuCbtrwu6asLsm7K4Ju2vC7pqwuybsrgm7a8LumrC7JuyuCbtrwu6asLt7
S8O9peHe0nBvabi3NNxbGu4tDfeWhntLw72l4d7ScG9puLc03Fsa7i0N95aGe0vDvaXh3tJwb2m4
tzTcWxruLQ33loZ7S8O9peHe0nBvabi3NNxbGu4tDfeWhkGhoUYNNWqoUUONGmrUUKOGGjXUqKFG
DTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFG
DTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFG
DTVqqFFDjRpq1FCjhho11KihRg01aqhRQ42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOmGjXVqKlG
TTVqqlFTjZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWqqUVONMo8zzeNM8zjTPM40
jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8z
zeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83j
TPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zz
ONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjT
PM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzO
NI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSP
M83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN
40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM
8zjTPM40jzPN40zzONM8zjSPM83jTPM40zzONI8zzeNM8zjTPM40jzPN40zzONM8zjSPM83jTPM4
0zzONI8zzeNM8zjTPM40jzPN40zzODP2UrM7TfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTP
NMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTF
M03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN
8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFM
UzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM8
0xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMU
zzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80
xTNN8UxTPNMUzzTFM03xTFM80xTPNMUzTfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMUz
TfFMUzzTFM80xTNN8UxTPNMUzzTFM03xTFM80xTPNMWzTPEsUzzLFM8yxbNM8SxTPMsUzzLFs0zx
LFM8yxTPMsWzTPEsUzzLFM8yxbNM8SxTPMsUzzLFs0zxLFM8yxTPMsWzTPEsUzzLFM8yxbNM8SxT
PMsUzzptTtqctDlpc9LmpM1Jm5M2J21O2p20O2l30u6k3Um7k3Yn7U7anbQ76XDS4aTDSYeTDicd
TjqcdDjpcNLhpNNJp5NOJ51OOp10Oul00umk00mnky4nXU66nHQ56XLS5aTLSZeTLiddThpOGk4a
ThpOGk4aThpOGk4aThpOmk6aTppOmk6aTppOmk6aTppOqkZZv7SsX1rWLy3rl5b1S8v6pWX90rJ+
aVm/tKxfWtYvLeuXlvVLy/qlZf3Ssn5pWb+0rF9a1i8t65eW9UvL+qVl/dKyfmlZv7SsX1rWLy3r
l5b1S8v6pWX90rJ+aVm/tKxfWtYvLeuXlvVLy/qlZf3Ssn5pWb+0rF9a1i8t65eW9UvL+qVl/dKy
fmlZv7SsX1rWLy3rl5b1S8v6pWX90rJ+aVm/tKxfWtYvLeuXlvVLy/qlZf3Ssn5pWb+0rF9a1i8t
65eW9UvL+qVl/dKyfmlZv7SsX1rWLy3rl5b1S8v6pWX90rJ+aVm/tKxfWtYvLeuXlvVLy/qlZf3S
sn5pWb+0rF9a1i8t65eW9UvL+qVl/dKyfmlZv7SsX1rWLy3rl5b1S8v6pWX90rJ+aVm/tKxfWtYv
LeuXlvVLy/qlZf3Ssn5pWb+0rF9a1i8t65eW9UvL+qVl/dKyfmlZv7SsX1rWLy3rl5b1S8v6pWX9
0rJ+aVm/tKxfWtYvrfosanYflbB9YKr3qV/ZZ4d7ZJ73QTSCz2byHvrS/zjJ76/l5t++jZDv5934
It6Hh365PwqYuOONfP7vBgiAD8nj22ByeZ/+/zWJ/I/0/9nVL69ffHt6um4HOsS35DOwi32//Mf+
sB866qcIEPd56+8Dmtjiu1t8d4vvbvHdLb67xXe3+O4W393iu1t8d4vvbvHdLb67xXe3+O4W393i
u1t8d4vvbvHdLb67xXe3+O4W393iu1t89wniu19AX/qWEN4SwltCeEsIbwnhLSG8JYS3hPCWEN4S
wltCeEsIbwnhLSG8JYS3hPCWEN4SwltCeEsIbwnhLSG8JYS3hPCWEN4SwvtPCD9tX/pR0r0Pzg8+
IlJ3sLrij9VHfzhq3Pfb9smnuz7/6fZfPT9ct/JnnvrqObQyP4fu5zu/t7tUjN8nWvqJ79xTDvGH
b+KxxnhYvPc4b8bVEUZ4aNv8Lk3v9dAd2ocaedfu40/Wnf9wdvnd2Q+3ddOvXp2/uP2b/3Iz3MWL
m+/2H0vOnwPB4lEX9iNfOB/7ft8nGP+IC8OBq90fMf9znvzYX8S9SMCBbiY/ho+4Or++46LxT/yR
f8BDPk4MeRbInTv5EzfrGhdcbrVVt9qqW23VrbbqVlt1q6261VbdaqtutVW32qpbbdWttupWW3Wr
rbrVVt1qq261Vbfaqltt1a226lZbdaututVW3WqrbrVVt9qqW23VrbbqVlt1q6261VbdaqtutVW3
2qpbbdWttupWW3WrrbrVVt1qq261Vbfaqltt1a226lZbdaututVW3WqrbrVVt9qqW23VrbbqVlt1
q6261VbdaqtutVW32qpbbdWttupWW3WrrbrVVt1qq261Vbfaqlttza225lZbc6utudXW3GprbrU1
t9qaW23NrbbmVltzq6251dbcamtutTW32ppbbc2ttuZWW3OrrbnV1txqa261Nbfamlttza225lZb
c6utudXW3GprbrU1t9qax0FNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXUqKZGNTWqqVFNjWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2N
ampUU6OaGtXVqK5GdTWqq1FdjepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N
6mpUV6O6GtXVqK5GdTWqq1FdjepqVFejuholx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyW
HL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/
JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXH
b8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J
8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFb
cvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8
lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYc
vyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8l
x2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/Jcdv
yfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nxW3L8lhy/JcdvyfFbcvyWHL8lx2/J8Vty/JYcvyXHb8nx
W3L81txLffyS/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/
Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3p
f0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L
+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rf
kv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+
t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek
/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t
6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/
S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v6
35L+t6T/Lel/S/rfkv63pP8t6X9L+t+S/rek/y3pf0v635L+t6T/Lel/K9QoIXtLyN4SsreE7C0h
e0vI3hKyt4TsLSF7S8jeErK3hOwtIXtLyN4SsreE7C0he0vI3hKyt4TsLSF7S8jeErK3hOwtIXtL
yN4SsreE7C0he0vI3hKyt4TsLSF7S8jeErK3hOwtIXtLyN4SsreE7C0he0vI3hKyt4TsLSF7S8je
ErK3hOwtIXtLyN4SsreE7C0he0vI3hKyt4TsLSF7S8jeErK3hOwtIXtLyN4SsreE7C0he0vI3hKy
t4TsLSF7S8jeErK3hOwtIXtLyN4SsreE7C0he0vI3hKyt4TsLSF7S8jeErK3hOwtIXtLyN4SsreE
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
COYIwRwhmCMEc4RgjhDMEYI5QjBHCOYIwRwhmCMEc4RgjhDMEYI5QjBHCOYIwRwhmCMEc4RgjhDM
EYI5QjBHCOYIwRwhmCMEc4RgjhDMEYI5QjBHCOYIwRwhmCMEc4RgjhDMEYI5QjBHCOYIwRwhmCME
c4RgjhDMEYI5QjBHCOYIwRwhmCMEc4RgjhDMEYI5QjBHCOYIwRwhmCMEc4RgjhDMEYI5QjBHCOYI
wRwhmCMEc0S/o0fts7as347eP+/b28XLtZtl7Zhn+M/Pi/jQg9s7qZYhjSWksYQ0lpDGEtJYQhpL
SGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDG
EtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWk
sYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJ
aSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJY
QhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0
lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwh
jSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpL
SGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDG
EtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGMJaSwhjSWksYQ0lpDGEtJYQhpLSGOJqUZZox3W
aIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miH
NdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXa
YY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGN
dlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZY
ox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd
1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZo
hzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc1
2mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdph
jXZYox3WaIc12mGNdlijHdZohzXaYY12WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaYY12
WKMd1miHNdphjXZYox3WaIc12mGNdlijHdZohzXaEY85hPw1pXrgI8jnQHZ5lq/yjs/mt3josY6I
H8PEefQUBwW8nJT904cOTqX5dejnl+3dvfNxOx3fTse30/HtdHw7Hd9Ox7fT8e10fDsd307Ht9Px
7XR8Ox3fTse30/HtdHw7Hd9Ox7fT8e10fDsd307Ht9Px7XR8Ox3fTsf3fzr+ZJ2Pdx6UbSzbjWW7
sWw3lu3Gst1YthvLdmPZbizbjWW7sWw3lu3Gst1YthvLdmPZbizbjWW7sWw3lu3Gst1YthvLdmPZ
bizbjWV7QJbtkx2Ufah1/Vgr8m328HDRvc8+5a4d6QfL/31ITf77F9p9fuwi+P22cf/jS3APuPIB
vwLHzoD+Gj09ZGz44e/6Q3HWu6Ck26FzwocaedeL1RF/kEe+1NwdRg7XXeG6K1x3heuucN0VrrvC
dVe47grXXeG6K1x3heuucN0VrrvCdVe47grXXeG6K1x3heuucN0VrrvCdVe47grXXeG6K1x3heuu
cN0VrrvCdVe47grXXeG6K1x3heuucN0VrrvCdVe47grXXeG6K1x3heuucN0VrrvCdVe47grXXeG6
K1x3heuucN0VrrvCdVe47grXXeG6K1x3heuucN0VrrvCdVe47grXXeG6K1x3heuudN2VrrvSdVe6
7krXXem6K113peuudN2VrrvSdVe67krXXem6K113peuudN2VrrvSdVe67krXXem6K113peuudN2V
rrvSdVe67krXXem6K113pXuDqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUal
GpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVq
VKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKpRqUalGpVqVKJR
NxJ16gPFB6oPNB/oPjB8YPrA8oHwASctTlqctDhpcdLipMVJi5MWJy1OWpy0Oml10uqk1Umrk1Yn
rU5anbQ6aXXS5qTNSZuTNidtTtqctDlpc9LmpM1Ju5N2J+1O2p20O2l30u6k3Um7k3YnHU46nHQ4
6XDS4aTDSYeTDicdTjqcdDrpdNLppNNJp5NOJ51OOp10Oul00uWky0mXky4nXU66nHQ56XLS5aTL
ScNJw0nDScNJw0nDScNJw0nDScNJ00nTSdNJ00nTSdNJ00nTSdNJ1Si96qlXPfWqp1711KueetVT
r3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp171
1KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlX
PfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rq
VU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711Kue
etVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWq
p1711KueetVTr3rqVU+96qlXPfWqp1711KueetVTr3rqVU+96qlXPfWqZ70D1b33M+8d0c0HOpG8
+yzyzlR06uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz91
86du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP
3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5
Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du
/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fyp
mz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/
6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTN
n7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz91
86du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP3fypmz9186du/tTNn7r5Uzd/6uZP
3fypmz9186du/tTNn7r5s6tR1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxp
DUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1L
WsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rD
ktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LW
sKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCk
NSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUs
aQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkN
S1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUta
w5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS
1rCkNSxpDUtaw5LWsKQ1LGkNS1rDktawpDUsaQ1LWsOS1rCkNSxpDUtaw5LWsKQ1LGkNS85jn9g9
y7O6e9R9bgm7LWG3Jey2hN2WsNsSdlvCbkvYbQm7LWG3Jey2hN2WsNsSdlvCbkvYbQm7LWG3Jey2
hN2WsNsSdlvCbkvYbQm7LWG394TdF1D3uQXbtmDbFmzbgm1bsG0Ltm3Bti3YtgXbtmDbFmzbgm1b
sG0Ltm3Bti3YtgXbtmDbFmzbgm1bsG0Ltm3Bti3YtgXbtmDb/oNtT1v3udfuwqvb3Nuby4sfLl6f
fH959sPtv3dHld+nC0CvL2+e9eL7i/PL/bcBPrpA8ODv2A5Ngp/vT+Xte1Qz4WebAo9daHh8QOsu
7+8jSjoP+cw7HYTfLJ3+fHN8+0Dzge4DwwemDywfCB9IHvjzzfHtA8UHnLQ7aXfS7qTdSbuTdift
TjqcdDjpcNLhpMNJh5MOJx1OOpx0OOl00umk00mnk04nnU46nXQ66XTS6aTLSZeTLiddTrqcdDnp
ctLlpMtJl5OGk4aThpOGk4aThpOGk4aThpOGk6aTppOmk6aTppOmk6aTppOmkyaT4nS+faD4QPWB
5gPdB4YPTB9YPhA+4KTFSYuTFictTlqctDhpcdLipMVJi5NWJ61OWp20Oml10uqk1Umrk1YnrU7a
nLQ5qRpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpq
VFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpq
VFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapq
VFWjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFNjWpq
VFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFNjWpq
VFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFNjWpq
VFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFNjWpq
VFOjmhrV1KimRjU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1Fdjepq
VFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkb1Owivu3FPc2rxmlq8phavqcVravGaWrymFq+p
xWtq8ZpavKYWr6nFa2rxmlq8phavqcVravGaWrymFq+pxWtq8ZpavKYWr6nFa2rxmlq8phavqcVr
avGaWrymFq+pxWtq8ZpavKYWr6nFa2rxmlq8phavqcVravGaWrymFq+pxWtq8ZpavKYWr6nFa2rx
mlq8phavqcVravGaWrymFq+pxWtq8ZpavKYWr6nFa2rxmlq8phavqcVravGaWrymFq+pxWtp8Vpa
vJYWr6XFa2nxWlq8lhavpcVrafFaWryWFq+lxWtp8VpavJYWr6XFa2nxWlq8lhavpcVrafFaWryW
Fq+lxWtp8VpavJYWr6XFa2nxWlq8lhavpQ15qVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5Ya
tdSopUYtNWqpUUuNWmrUUqOWGrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5Ya
tdSopUYtNWqpUUuNWmrUUqOWGrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5Ya
tdSopUYtNWqpUUuNWmrUUqNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1
KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKNCjQo1KtSoUKPsj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I
+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj
0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+
iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0
PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i
7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2P
SPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7
I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS
/oi0PyLtj0j7I9L+iLQ/Iu2PSPsj0v6ItD8i7Y9I+yPS/ohMT7FOPcU69RTr1FOsU0+xTj3FOvUU
69RTrFNPsU49xTr1FOvUU6xTT7FOPcU69RTr1FOsU0+xTj3FOvUU69RTrFNPsU49xTr1FOvUU6xT
T7FOPcU69RTr1FOsU0+xTj3FOvUU69RTrNP99xR+vZG8o5c2Hjyx+YgE4J0JxOf0CrY04ZYm3NKE
W5pwSxNuacItTbilCbc04ZYm3NKEW5pwSxNuacItTbilCbc04ZYm3NKEW5pwSxNuacItTbilCbc0
4ZYmfII04TPA6l6d/3T2+vrixdU35z99d/7y5fnLkxdvXl+fv77+5vbk7uL7y9uTuPNX57cncN98
+J/fXp29fvndm79/e/bq1Zu/fXv95u23fzjBa/tH4d55rrflK7d85Zav3PKVW75yy1du+cotX7nl
K7d85Zav3PKVW75yy1du+cotX7nlK7d85Zav3PKVW75yy1du+cotX7nlK7d85QHzlU92rvfnAshD
ne19NgF4qCfd03nmTz/89tz/yB+efHd2dX7y7vLVAQ8u9zPbrgWZB49inpRDv1dHmP4ZB1kfFY5+
YCD7i6g5/cIuMb+/yBdnNy/r7Q+HSo4/yVvyUFjA3ensrmOz69jsOja7js2uY7Pr2Ow6NruOza5j
s+vY7Do2u47NrmOz69jsOja7js2uY7Pr2Ow6NruOza5js+vY7Do2u47NrmOz69jsOja7js2uY7Pr
2Ow6NruOza5js+vY7Do2u47NrmOz69jsOja7js2uY7Pr2Ow6NruOza5js+vY7Do2u47NrmOz69js
Oja7js2uY7Pr2Ow6NruOza5js+vY7Do2u47NrmOz69jsOja7js2uY7Pr2Ow6Nrsru+HKbriyG67s
hiu74cpuuLIbruyGK7vhym64shuu7IYru+HKbriyG67shiu74cpuuLIbruyGK7vhym64shuu7IYr
u+HKbriyG67shiu74cpuuLIbruyGqYKhRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOG
GjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOG
GjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOG
GjXUqKFGDTVqqFFDjZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOm
GjXVqKlGTTVqqlFTjZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOm
GjXVqKlGTTVqqlFTjZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOm
GjXVqKlGTTVqqlFTjZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOm
GjXVqKlGTTVqqlFTjZpq1FSjpho11ailRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOW
GrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlRS40KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCj
Qo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjQo0KNSrUqFCjYpeu158vrt6dvTr5
+eL8b7eHlt/847+cvH5zcnl+dfE/z0/Of749bX7z+uTNz+eX379687ebf/Di7NWLZ2Q0+KcTykcd
M97pYDjIeeLhDQP1gJ/YY79HO5hCjmitqM/dWnEPRvh2Cr2dQm+n0Nsp9HYKvZ1Cb6fQ2yn0dgq9
nUJvp9DbKfR2Cr2dQm+n0Nsp9HYKvZ1Cb6fQ2yn0dgq9nUJvp9DbKfR2Cr2dQu/9FPppGeF3Abdv
p/TtUzhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTO
UDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD
4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxTOUDhD4QyFMxXOVDhT4UyFMxXOVDhT4UyF
MxXOVDhT4UyFMxXOVDhT4UyFMxXOVDhT4UyFMxXOVDhT4UyFMxXOVDhT4UyFMxXOVDhT4UwXd6lG
pRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqV
alSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqValSq
UalGpRqValSqUalGpRqValSqUalGpRqValSqUalGpRqVapSguCIorgiKK4LiiqC4IiiuCIorguKK
oLgiKK4IiiuC4oqguCIorgiKK4LiiqC4IiiuCIorguKKoLgiKK4IiiuC4oqguCIorgiKK4LiiqC4
IiiuCIorguLKaXPS5qTNSZuTNidtTtqctDlpc9LupN1Ju5N2J+1O2p20O2l30u6k3UmHkw4nHU46
nHQ46XDS4aTDSYeTDiedTjqddDrpdNLppNNJp5NOJ51OOp10Oely0uWky0mXky4nXU66nHQ56XLS
cNJw0nDScNJw0nDScNJw0nDScNJ00nTSdNJ00nTSdNJ00nTSdFI1qqhRRY0qalRRo4oaVdSookYV
NaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYV
NaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYV
NaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV1KiiRhU1qqhRRY0qalRRo4oaVdSookYV
NaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV1KiiRhU1qqhRRY0qalRRo6oaVdWoqkZV
NaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhpV1aiqRlU1qqpRVY2qalRVo6oaVdWoqkZV
NaqqUVWNqmpUvSOqeci22e3wazv82g6/tsOv7fBrO/zaDr+2w6/t8Gs7/NoOv7bDr+3wazv82g6/
tsOv7fBrO/zaDr+2w6/t8Gs7/NoOv7bDr+3wazv8OsDh19MmxB5QP3j17u170uWvD1//eHZ98vb8
8vZvvjq5fvP25A+sx5v/9/bN23dvnxqZuqdX8Ex7Lb9/c4vY/Ons+sf3//Hz2eXFzSQnN3/31cnV
+eXF93/525vvvz8QufXql9fXZ3//5u3Z5S0M9P0AJ7f/4/z0AC2zDyxH/Syp9dtfvw77rlf97Ru6
28fzqe/W7R+5eZsvz1+9/1JcffPi6uaPXf/y6h/v9kf+vvs2Td/xEe7AqN3rZ7lDS+6D+1Yfy+vd
97twJ0j4D1/PJ3lNj6z8Pehsu/k8igSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSr
IsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLB
qkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapI
sCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAq
EqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKs
igSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoE
qyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsi
wapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGq
SLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiw
KhKsigSrIsGqSLAqEqyKBKsiwapIsCoSrIoEqyLBqkiwKhKsigSrIsGqSLAqEqyKBKsiwapIsCqh
RumXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77o
ly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv
+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rl
i375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt+
+aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmi
X77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++
6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiX
L/rli375ol++6Jcv+uWLfvmiX77oly/65Yt++aJfvuiXL/rli375ol++6Jcv+uWLfvmiX77oly/6
5Yt++aJfvuqXr/rlq375ql++6pev+uWrfvmqX77ql6/65at++apfvuqXr/rlq375ql++6pev+uWr
fvmqX77ql6/65at++apfvuqXr/rlq375ql++6pev+uWrfvl6uksf7Z19lqWqbFVlqypbVdmqylZV
tqqyVZWtqmxVZasqW1XZqspWVbaqslWVrapsVWWrKltV2arKVlW2qrJVla2qbFVlqypbVdmqylZV
tqqyVZWtqmxVZasqW1XZqspWVbaqslWVrapsVWWrKltV2arKVlW2qrJVla2qbFVlqypbVdmqylZV
tqqyVZWtqmxVZasqW1XZqspWVbaqslWVrapsVWWrKlt19dVcfTVXX83VV3P11Vx9NVdfzdVXc/XV
XH01V1/N1Vdz9dVcfTVXX83VV3P11Vx9NVdfzdVXc/XVXH01V1/N1Vdz9dVcfTVXX83VV3P11Vx9
NVdfzdVXc/XV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFN
jWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFN
jWpqVFOjmhrV1KimRjU1qqlRTY1qalRTo5oa1dSopkY1NaqpUU2NampUU6OaGtXUqKZGNTWqqVFd
jepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1Fd
jepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1Fd
jepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1Fd
jepqVFejuhrV1aiuRnU1qqtRXY3qalRXo7oa1dWorkZ1NaqrUV2N6mpUV6O6GtXVqK5GdTWqq1Fd
jepqVFejuho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFD
jRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFD
jRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFD
jRpq1FCjhho11KihRg01aqhRQ40aatRQo4YaNdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFD
jRpq1FCjhho11KihRg01aqhRU42aatRUo6YaNdWoqUZNNWqqUVONmmrUVKOmGjXVqKlGTTVqqlFT
jZpq1FSjpho11aipRk01aqpRU42aatRUo6YaNdWoqUZNNWruH9X7qNzpd5dv/nZ1fnn14b9cvP7h
5DZle/NHvvlHgvbmobMXl2+urk5evnnx7jZ1e/XN7+nab9+9fvXm7OW3L8+uz759d/nq0BHlg8y7
QzLzTh7ydsK4nTBuJ4zbCeN2wridMG4njNsJ43bCuJ0wbieM2wnjdsK4nTBuJ4zbCeN2wridMG4n
jNsJ43bCuJ0wbieM2wnjdsK4nTAe8ITxyXjIuxeHbkDJDSi5ASU3oOQGlNyAkhtQcgNKbkDJDSi5
ASU3oOQGlNyAkhtQcgNKbkDJDSi5ASU3oOQGlNyAkhtQcgNKbkDJDSi5f6Dk0xaH3r+E8dgVgY9J
7N23VXCnGsVD1uw9foDdy1R/+uG3FtN/BBVPvju7Oj95d/nq5Pzvb89fXJ+/fDbdn0/WTLnn9/KA
JZyHqa/99rtfvn13dX757dmL64ufPzz0t4vrH9+8u/7w+A83E7y7PD9g8PZBP+ODBHUP/tt/wqmf
wddnhx/Hg36Tv38gL85uPoK3Pzyf68wDL4cPvjz901vxqDLs3a97h7vi7fsnc3Kowus7k/s3d4Te
qjZvVZu3qs1b1eatavNWtXmr2rxV7d6qdm+qu5N2J+1O2p20O2l30u6k3UmHkw4nHU46nHQ46XDS
4aTDSYeTDiedTjqddDrpdNLppNNJp5NOJ51OOp10Oely0uWky0mXky4nXU66nHQ56XLScNJw0nDS
cNJw0nDScNJw0nDScNJ00nTSdNJ00nTSdNJ00nTSdFI3KYqbFMVNiuImRXGTorhJUdykKG5SFDcp
ipsUxU2K4iZFcZOiuElR3KQoblIUNymKmxTFTYriJkVxk6K4SVHcpChuUhQ3KYqbFMVNiuImRXGT
orhJUdykKG5SlOakalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV
1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV
1KiiRhU1qqhRRY0qalRRo4oaVdSookYVNaqoUUWNKmpUUaOKGlXUqKJGFTWqqFFFjSpqVFGjihpV
1KiqRlU1qqpRVY2qalRVo6oaVdWoqkZVNaqqUVWNqmpUVaOqGlXVqKpGVTWqqlFVjapqVFWjqhpV
1aiqRlU1qqpRVY2qalRVo6oaVdUoCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhV
AlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJa
lYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWA
ViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYl
oFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBV
CWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQlo
VQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUC
WpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqV
gFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBW
JaBVCWhVAlqVgFYloFUJaFUCWpWAViWgVQloVQJalYBWJaBVCWhVAlqVgFYloFUJaFUCWpWAVvv+
2eC7JfGrqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpa
q6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui
1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1Kmqtilqrotaq
qLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1
KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpq
rYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2K
Wqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1Kmqtilqr
otaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LW
qqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqo
tSpqrYpaq6LWqqi1KmqtilqrotaqqLUqaq2KWqui1qqotSpqrYpaq1ONkmhWJZpViWZVolmVaFYl
mlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpV
iWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlm
VaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWi
WZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmV
aFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhW
JZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWa
VYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJ
ZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZV
olmVaFYlmlWJZlWiWZVoViWaVYlmVaJZlWhWJZpViWZVolmVaFYlmlWJZlWiWZVoViWaVYlmVaJZ
lWhWJZpViWZVolmVaFYlmlWJZjXuOPjaS6r7SZOVBwwcfzKt3p5bJPgZfwSHLRn+NdL4zJLHj+5i
vuurt9da5S2cuYUzt3DmFs7cwplbOHMLZ27hzC2cuYUzt3DmFs7cwplbOHMLZ27hzC2cuYUzt3Dm
Fs7cwplbOHMLZ27hzC2cuYUz9x/O/AJqlbcw5xbm3MKcW5hzC3NuYc4tzLmFObcw5xbm3MKcW5hz
C3NuYc4tzLmFObcw5xbm3MKcW5hzC3NuYc4tzLmFObcw5xbm3H+Y82lrlW+jaD+9+uby/NX7bNzV
Ny+urk6urn959Y+c2s9nlxdnr69Prs5e3/yD88uL7w9dufvzxdW7s1cnP1+c/+02rvrNP/7LyeX5
2cuTq4v/eX7y4uzd1fnVyauzX968uz5gePPR785ee0L/nPq8evf2/dvz68PXP55dn7w9v7z9m69O
rt+8Pfk98Xjya9Tz5DbqefJr1PPk+7Ob9+KuD/G3t+JBn8oBO4SPUsz8mMrZfX4+X3xYeM/95u0x
pfFPUeX+2D71Q7/g4/2kjv/WPujKdZiv9f5H2dHpEq5+w9VvuPoNV7/h6jdc/Yar33D1G65+w9Vv
uPoNV7/h6jdc/Yar33D1G65+w9VvuPoNV7/h6jdc/Yar33D1G65+w9VvuPoNV7/h6jdc/Yar33D1
G65+w9VvuPoNV7/h6jdc/Yar33D1G65+w9VvuPoNV7/h6jdc/Yar33D1G65+w9VvuPoNV7/h6jdc
/Yar33D1G65+w9VvuPoNV7/h6jdc/Yar33D1G65+w9VvuPoNV7/p6jdd/aar33T1m65+09VvuvpN
V7/p6jdd/aar33T1m65+09VvuvpNV7/p6jdd/aar33T1m65+09VvuvpNV7/p6jdd/aar33T1m65+
09VvuvpNd2hTjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1
KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWo
VKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoVKNSjUo1KtWoRKPaKRp180DxgeoD
zQe6DwwfmD6wfCB8wEmLkxYnLU5anLQ4aXHS4qTFSYuTFietTlqdtDppddLqpNVJq5NWJ61OWp20
OWlz0uakzUmbkzYnbU7anLQ5aXPS7qTdSbuTdiftTtqdtDtpd9LupN1Jh5MOJx1OOpx0OOlw0uGk
w0mHkw4nnU46nXQ66XTS6aTTSaeTTiedTjqddDnpctLlpMtJl5MuJ11Oupx0Oely0nDScNJw0nDS
cNJw0nDScNJw0nDSdNJ00nTSdNJ00nTSdNJ00nRSNUq0VhOt1URrNdFaTbRWE63VRGs10VpNtFYT
rdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63V
RGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEazXRWk20VhOt1URr
NdFaTbRWE63VRGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEazXR
Wk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpN
tFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRW
E63VRGs10VpNtFYTrdVEazXRWk20VhOt1URrNdFaTbRWE63VRGs10VpNtFYTrdVEa7V6B7Z8N7Bx
E8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI
1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUE
cjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1
gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFc
TSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0g
VxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcT
yNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jV
BHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRy
NYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWB
XE0gVxPI1QRyNYFcTSBXE8jVBHI1gVxNIFcTyNUEcjWBXK2rUXKvmtyrJveqyb1qcq+a3Ksm96rJ
vWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1q
cq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKv
mtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rc
qyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm
96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveq
yb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9
anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpy
r5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a
3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyrJveqyb1qcq+a3Ksm96rJvWpyr5rcqyb3qsm9anKvmtyr
Jveqyb1qcq+a3Ksm96rNO06xjpOG23/56tVtIPTN5cUPF68PmKU+6Mh7LVDdzhm3c8btnHE7Z9zO
Gbdzxu2ccTtn3M4Zt3PG7ZxxO2fczhm3c8btnHE7Z9zOGbdzxu2ccTtn3M4Zt3PG7ZxxO2fczhm3
c8b9nzN+CQWqG1Zyw0puWMkNK7lhJTes5IaV3LCSG1Zyw0puWMkNK7lhJTes5IaV3LCSG1Zyw0pu
WMkNK7lhJTes5IaV3LCSG1Zyw0ruHSv5tAWqO1Uw/vTD7/2LP/3wlxdvfnr76vz6/EAFqo9vhfzu
5q3867c/vXl59urqpOxaEfrot2LXttSr68vzs5+uvrltzTv77tX5yT8e+OHs8ruzH85vnvHVq/MX
t4HB/b/FR64RvfuTuU/28b7v3K6fyFGqI49d6blr7+3F6398aPfpJX5cN+qhgrQH6er9WLnp65sn
vvni37zcsxfX55c3b+f355c3F+Pzq0e9b7sVrX5R7979f1v3KW3+3Jf3MPXNXA3v9bV41PXogFeJ
47ZRP6xN+RHC/Ig23B2bjw813PvB3tdqX1/89L5U+fzs6t3ljaC+/959e3PL95ez17/ccc3ZTwf4
R0V8tx/yQT7x+95o3ONC8N9e//Lfb/7EwfgXD/19//aG7viV2PV6czdTYrp9Nt0+m26fTbfPpttn
0+2z6fbZdPtsun023T6bbp9Nt8+m22fT7bPp9tl0+2y6fTbdPptun023z6bbZ9Pts+n22XT7bLp9
Nt0+m26fTbfPpttn0+2z6fbZdPtsun023T6bbp9Nt8+m22fT7bPp9tl0+2y6fTbdPptun023z6bb
Z9Pts+n22XT7bLp9Nt0+m26fTbfPpttn0+2z6fbZdPtsun023T6bbp9Nt8+m22fT7bPp9tl0+2y6
fTbdPptun023z5bbZ8vts+X22XL7bLl9ttw+W26fLbfPlttny+2z5fbZcvtsuX223D5bbp8tt8+W
22fL7bPl9tly+2y5fbbcPltuny23z5bbZ8vts+X22XL7bLl9ttw+W26fLY94lhq11KilRi01aqlR
S41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOWGrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlR
S41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOWGrXUqKVGLTVqqVFLjVpq1FKjlhq11KilRi01aqlR
S41aatRSo5YatdSopUYtNWqpUUuNWmrUUqOWGrXUqKVGLTUq1KhQo0KNCjUq1KhQo0KNCjUq1KhQ
o0KNCjUq1KhQo0KNCjUq1KhQo0KNCjUq1KhQo0KNCjUq1KhQo0KNCjUq1KhQo0KNCjXKyFEzctSM
HDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1
I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNH
zchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83I
UTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEz
ctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LU
jBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1Iwc
NSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUj
R83IUTNy1IwcNSNHzchRM3LUjBw1I0fNyFEzctSMHDUjR83IUTNy1IwcNSNHzchRM3LUjBw1I0fd
yFE3ctSNHHUjR93IUTdy1I0cdSNH3chRN3LUjRx1I0fdyFE3ctSNHHUjR93IUTdy1I0cdSNH3chR
N3LUjRx1I0fdyFE3ctSNHHUjR93IUTdy1I0c9dPnw66/EyvRjUN141DdOFQ3DtWNQ3XjUN04VDcO
1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWN
Q3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN1
41DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ
3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04
VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3
DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7V
jUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1D
deNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3Xj
UN04VDcO1Y1DdeNQ3ThUNw7VjUN141DdOFQ3DtWNQ3XjUN04VDcO1Y1DdeNQ3ThUNw7VjUN141Dd
OFQ3DtWNQ3XjUN04VK9qlD1W3R6rbo9Vt8eq22PV7bHq9lh1e6y6PVbdHqtuj1W3x6rbY9Xtser2
WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W3R6rbo9Vt8eq22PV7bHq9lh1e6y6PVbdHqtu
j1W3x6rbY9Xtser2WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W3R6rbo9Vt8eq22PV7bHq
9lh1e6y6PVbdHqtuj1W3x6rbY9Xtser2WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W3R6r
bo9Vt8eq22PV7bHq9lh1e6y6PVbdHqtuj1W3x6rbY9Xtser2WHV7rLo9Vt0eq26PVbfHqttj1e2x
6vZYdXusuj1W3R6rbo9Vt8eq22PV7bHq9lh1e6y6PVbdHqtuj1W3x6rbY9Xtser2WHV7rLo9Vt0e
q26PVbfHqttj1e2x6vZYdXusuj1W3R6rbo9Vt8eq22PV7bHq9lh1e6y6PVbdHqtuj1W3x6rbY9Xt
ser2WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W3R6rbo9Vt8eq22PV7bHq9lh1e6y6PVbd
Hqtuj1W3x6rbY9Xtser2WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W3R6rbo9Vt8eq22PV
7bHq9lh1e6y6PVbdHqtuj1W3x6rbY9Xtser2WHV7rLo9Vt0eq26PVbfHqttj1e2x6vZYdXusuj1W
3R6rbo9Vt8eq22PV7bHq9lj1fsdZ2WPi/LslAp9PrO+5pFv3EyM9YOLxkFnhx/yxQ+Xd78SCHDPg
fF+sxb4/1yeLsd73jXokEOAROfDPDLVjFvd4P8YdPgFoKn/8S07eXV+8Otzl8cA/6K+Cm/FILdnr
5eTe3J2H//DvfGFH+fnf8as43pt+PCjR/UgmJy/Prs/2PcdjfiX3+3Ye7wO8Lxrk9o+e/mXVcrpK
HzVqH3E6nhOD5V6wm72ATXa6mjzs+3usl3pnIdVG2dgoGxtlY6NsbJSNjbKxUTY2ysZG2dgoGxtl
Y6NsbJSNjbKxUTY2ysZG2dgoGxtlY6NsbJSNjbKxUTY2ysZG2dgoGwekbDxZIVU/7f9pjwenT9PY
8CROnvu+pPaX/3j7w7+/vnlfXvx4/m83b93pXKvV24vdzSVy5SMOMzcMyoZB2TAoGwZlw6BsGJQN
g7JhUDYMyoZB2TAoGwZlw6BsGJQNg7JhUDYMyoZB2TAoGwZlw6BsGJQNg7JhUDYMyoZBOSAG5ckO
M499Dvi47O99TkNvs7Dl/QHi24u35/92fXnx4q+vzv/ry/K//JffTxRLxIrTm4VH3iySo+R+Os2f
HYRhL9SXPadqH431ObmZ//rkzdvz11cnvzJ99s5KeSwL4vS0nNQ7xrof6Ogex+NfjLPgkV/Pp/5R
Heqb/HwgTA/+ij7wMvw039x9wF9+/8E/P8TL+9f2GTjJezLJ+c83T3Xy5vXJ7d9/8ubn88vvX735
2+04b28+ygPSqPYw2H/6r//bm9fnd78HdxIObu7KvF10o6C7UdDdKOhuFHQ3CrobBd2Ngu5GQXej
oLtR0N0o6G4UdDcKuhsF3Y2C7kZBd6Ogu1HQ3SjobhR0Nwq6GwXdjYLuRkF3o6C7UdDdKOhuFHQ3
CrobBd2Ngu5GQXejoLtR0N0o6G4UdDcKuhsF3Y2C7kZBd6Ogu1HQ3SjobhR0Nwq6GwXdjYLuRkF3
o6C7UdDdKOhuFHQ3CrobBd2Ngu5GQXejoLtR0N0o6G4UdDcKuhsF3Y2C7kZBd6Ogu1HQ3SgYbhQM
NwqGGwXDjYLhRsFwo2C4UTDcKBhuFAw3CoYbBcONguFGwXCjYLhRMNwoGG4UDDcKhhsFw42C4UbB
cKNguFEw3CgYbhQMNwqGGwXDjYLhRsFwo2C4UTDczB5q1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKFGDTVqqFFDjRpq1FCjhho11KihRg01aqhRQ40aatRQo4Ya
NdSooUYNNWqoUUONGmrUUKOGGjXUqKlGTTVqqlFTjZpq1FSjpho11aipRk01aqpRU42aatRUo6Ya
NdWoqUZNNWqqUVONmmrUVKOmGjXVqKlGTTVqqlFTjZpq1FSjpho11ShJcV1SXJcU1yXFdUlxXVJc
lxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU
1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNcl
xXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1
SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlx
XVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1S
XJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyX
FNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTX
JcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXF
dUlxXVJclxTXJcV1SXFdUlyXFNclxXVJcV1SXJcU1yXFdUlxXVJclxTXJcV1SXFdUlyXFNclxXVJ
cV1SXJcU1yXFdUlxXVJclxTX445upCOD9+8O0Uuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lok
uy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsu
ya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7Lsmu
S7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy
65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS
7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6
JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7
LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7Jrkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7J
rkuy65LsuiS7LsmuS7Lrkuy6JLsuya5LsuuS7Lokuy7JbkiyG5LshiS7IcluSLIbkuyGJLshyW5I
shuS7IYkuyHJbkiyG5LshiS7IcluSLIbkuyGJLshyW5IshuS7IYkuyHJbkiyG5LshiS7IcluSLIb
kuyGJLtx2py0OWlz0uakzUmbkzYnbU7anLQ7aXfS7qTdSbuTdiftTtqdtDtpd9LhpMNJh5MOJx1O
Opx0OOlw0uGkw0mnk04nnU46nXQ66XTS6aTTSaeTTiddTrqcdDnpctLlpMtJl5MuJ11Oupw0nDSc
NJw0nDScNJw0nDScNJw0nDSdNJ00nTSdNJ00nTSdNJ00nVSNEkY2hJENYWRDGNkQRjaEkQ1hZEMY
2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQ
RjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2
hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSR
DWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1h
ZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRDGNkQRjaEkQ1hZEMY2RBGNoSRDWFkQxjZEEY2hJENYWRD
GNkQRjaEkY0PMLJnBnP+VF7r21+zjQc5ifr+zW0O7qez6x/f/8fPZ5cXZ6+vT67OXl+dXJ1fXnz/
l7+9+f77p658Pmbj8R5ic7uFIvfehb7f8Xb4Oj75jLt9ez815u0f+enVzefw6n0E9OqbF1c3f+z6
l1fvc88f/ftOzv/+9vzF9fnLw2XyP5csrgcK5N8+fvb64qdf34ff/uttePr81R/+9/Uvb2++r2cv
Xrz76d2Hd+3k7fnlydvLNzf/5/qXvQbz7/u27BBWfcx1ZK/v0Q6z7l4fvoVrt3DtFq7dwrVbuHYL
127h2i1cu4Vrt3DtFq7dwrVbuHYL127h2i1cu4Vrt3DtFq7dwrVbuHYL127h2i1cu4Vrt3Dt/sO1
T0bcv0c19Zaq3VK1W6p2S9VuqdotVbulardU7Zaq3VK1W6p2S9VuqdotVbulardU7Zaq3VK1W6p2
S9VuqdotVbulardU7ZaqvX+q9snOgfZVevjvl+e3//D85bOtZfxtwqcKYO7a2/y3N5d/Pb+8V2jx
f7z/I1ePyFvfnbQ+Ytf2fVqu//BuHSbLuJ9y3Y9mMD/7vj04i32QnOiz7AI/5mvcX8/yp74Kz+e1
PuYyQeL39p98sBjs+yKxV9zEvV/XXUnmfwSXT15dXF0f5ne+12z1A78PB77+f+7L9PRvyxfyDXz/
Pw/CQXk6cstDAQP+LJ/+S/Tgn//97o32/UU+9lfmOfBv7rwrOfIV+dF3Iic3r+xmRfP2/PXVya+3
ITuySB57LfoiL95PSUf6bfX6zDFJu815iK2A4yCWjvI57PHSvr9lyycuFs9s1bL7W7e72vy31798
2GA5xMbFUb4Fx2tqOsLtzH9c3f1ad6eUvbi8eHu9f0LYb+/DQybZYSPrEESwdsC34SCj7vo+7fDd
esIdzGP9Jo687/tU+6ZfKFzz2Fue7V9oy7MdcBl+/FE/fyB2IyNvXr367uzy6uTF2c0F5Nd72wNe
2h80ygEl7pFr3COr3HO6yW4PuMm+ffjb2we+/fDAty9enZ9dfvvT2eVfD/lO32uEXb9sD1TIR+1k
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
x8jVMXJ1jFwdI1fHyNUxcnWMXB0jV7fILZOvfLq2P9YTw1bHsNUxbHUMWx3DVsew1TFsdQxbHcNW
x7DVMWx1DFsdw1bHsNUxbHUMWx3DVsew1TFsdQxbHcNWx7DVMWx1DFsdw9bEsDUxbE0MWxPD1sSw
NTFsTQxbE8PWxLA1MWxNEqtKYlUxik0Sq0piVUmsKua2SWJVMcZNjHETY9zEGDcxxk2McRNj3MQY
NzHGTYxxE2PcpLGqmOqGqP7om2uI6vQ8h3fwwT+MFcaENzHhTUx4ExPexIQ3MeFNTHgTE97cE77d
EyuJqW5iqpuY6iamuompbmKqm5jqJqa6ialuYqqbmOomprqJqW5iqpuY6iamuompbmKqm5jqJn42
DN3imOomprqJHWkTO9ImZruJ2W5itpuY7SZmu4nZbmK2m5jtJma7IUc6BqOJ2W5ithtDX45VxWw3
MdtNzHYTs920bI92xmJipBtSHiPdxEi3MdJtjHQ7uzfH363tVfGX8niziDd1vGnizVhNjHIbo9zG
KLcxy2yMFRtjxcZYsTFWbIwVG2PFxlix8Ttm40ffxo++1fTl+JfjR9/Gj76NH30bP/o2fvRt/Ojb
+NG38aNv40ffxo++jd0aGz/6Nn70bfzo2/jRt/Gjb+NH38aPvo0ffRu7NTZ2a2z8Dtj4HbDxO2Dj
d8DG70Ayi1+C5XZC2yltZ7StaDun7YK2NW0b2iZ9CelLSF9C+hLSl5C+hPQlpC8hfQnpS0hfSvpS
0peSvpT0paQvJT0p6UlJT0p6MtKTkZ6M9GSkJyM9GV2vjPRlpC8jfTGLkoSel4Sej4Sej4Sej4Se
j4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4Sej4SejyQlffS8JPS8JPS8
JPS8JPS8JPS8JPS8JPS8JPS8JPS8JPS8JPS8JPS8JPy8KNKnSJ8ifYr0KdKnSJ8ifYr0KdKnSF9O
+nLSl5O+nPTlpC8nfTnpy0lfTvpy0leQvoL0FaSvIH0F6StIX0H6CtJXkL6C9GnSp0mfJn2a9GnS
p0mfJn2a9GnSp0mfIX2G9BnSZ0ifIX2G9BnSZ0ifIX2G9FnSZ0mfJX2W9FnSZ0mfJX2W9FnSR/5F
Sv5FSv5FSv5FSv5FSvYiJf8iJfuRkv1IyX6kZD9Ssh8p2Y+U7EdK9iMl+5GS/UjJfqRkP1KyHynZ
j5TsR0r2IyX7kZL9SMl+pGQ/UrIfKdmPlOxHSvYjJfuRkv1IyX6kZD9Ssh8p2Y+U7EdK9iMl+5GS
/UjJfqRkP1KyHynZj5TsR0r2IyX7kZL9SMl+pGQ/UrIfKdmPlOxHSvYjJfuRkv1IyX6kZD9Ssh8p
2Y+U7EdK9iMl+5GS/UjJfqRkP9I7+7Fjn/Hs918t8Xz/W7F0ejLpwaTnkh5LeirpoaRnkh5JeiLp
gaTnkR5HehrpYaRnkR5FehLpQaTnkB5DegrpIaRnkB5BegLpAaTnjx4/evro4bt/9pK7QEzayOIP
a1/Bwcu0Wi30KsR5vPw3v/8OuRTwKI6W/75f/lt1tWSh36Us7layN/dfN/dxoL8uFysll2ufxudD
1pqMNdlqmOrykX+r06np35/o3+rE/7b89/fP/PsX/fvf8t8Py3834TJ97t/qMi7o3yn9W+27CJeE
/72jfx+W/27DUi4B0YngRGwiNBGZCEzEJcISUYmglMY+bRq7tGns0aaxQ5vG/mwaP3tp7M2msTOb
xr5sGruyaezJprEjm8Z+bBq7sWnsxaaxE5vGPmwau7Bp7MGmsQObxv5rGr8Pafw+pPH7kMbvQxq7
rmnsuaax45rGfmsau61p7LWmsdOaxj5rGrusWeyxZrHDmsX+aha7q1nsrWaxs5rFvmoWu6pZ7Klm
saOaxX5qFrupWeylZrGTmsU+aha7qFnsoWaxg5rF/mkWu6dZ7J1msXOaxb5pFrumWeyZZrFjmsV+
aRa7pVnslWax5c9iy5/Fpj6LTX0Wm/osNvVZbOqz2NRnsanPYtuexbY9i217Ftv2LLbtWWzbs9i2
Z7FtzxTJiK9GbNuz2LZnsW3PYtuexbY9i217FtM7i+mdxfTOYnpnMb2zmN5ZTO8spncW0zuL6Z3F
9M5iemcxvbOY3llM7yymdxbTO4vpncX0zmJ6ZzG9s5jeWUzvLKZ3FtM7i+mdxfTOYnpnMb2zmN5Z
TO8spncW0zuL6Z3F9M5iemcxvbOY3llM7yymdxbTO4vpncX0zmJ6q5jeKqa3iumtYnqrmN4qpreK
6a1iequY3iqmt4rprWJ6q5jeKqa3iumtYnqrmN4qpreK6a1iequY3iqmt4rprWJ6q5jeKqa3iumt
YnqrmN4qpreK6a3idpuKYa5imKsY5iqGuYphrmKYqxjmKm63qZjtKma7itmuYrarmO0qZruK2a5i
tquY7Spmu4rZrmK2q5jtKma7itmuYrarmO0qZruK2a5itquY7Spmu4rZrmK2q5jtKma7itmuYrar
mO0qZruK2a5itquY7Spmu4rZrmK2q5jtKma7itmuYrarmO0qZruK2a5itquY7Spmu4rZrmK2q5jt
Kma7itmuYrarmO0qZruK2a5itquY7Spmu4rZrmK25zHb85jtecz2PGZ7HrM9j9mex2zPY7bnMdvz
mO15zPY8Znsesz2P2Z7HbM9jtucx2/OY7XnM9jxmex6zPY/Znsdsz2O25zHb85jtecz2PGZ7HrM9
j9mex2zPY7bnMdvzmO15zPY8Znsesz2P2Z7HbM9jtucx2/OY7XnM9jxmex6zPY/Znsdsz2O25zHb
85jtecz2PGZ7HrM9j9mex2zPY7bnMdvzmO15zPY8Znsesz2P2Z7HbM9jtucx2/OY7XnM9jxmex6z
PY/Znsdsz2O25zHb85jtecz2PGZ7HrM9j9mex2zPY7bnMdvzmO15zPY8Znsesz2P2Z7HbM9jtucx
2/OY7XnM9jxmex7DPI9hnscwz2N65zG985jeRUzvIqZ3EdO7iHFdxLguYlwXMa6LGNdFjOsixnUR
47qIcV3EuC5iXBcxrosY10WM6yLmcxHzuYj5XMR8LmI+FzGfi5jPRcznIuZzEfO5iIFcxEAuYiAX
MZCLGMhFDOQiBnIRA7nISEZ8cWIgFzGQixjIxR2BRzPAdhrfOI1vnMY3TuMbp/GN0/jGaXzjNL5x
Gt84jW+cxjdO4xun8Y3T+MZpfOM0vnEa3ziNb5zGN07jG6fxjdP4xml84zS+cRrfOI1vnMY3TuMb
p/GNX/D4xkPOGLdBBfJfLq9/WlxvVVn4P3d/crN5v/h2MrYpET+NDp1Gh06jQ6fRodPo0Gl06DQ6
dBodOo0OnUaHTqNDp9Gh0+jQaXToNDp0Gh06jQ6dRodOo0On0aHT6NBpdOg0OnQaHTqNDv3NjQ49
ZP/bjrPX7joF7R5T3z7T2Wu7mLf18/Oa7jGh7EEk7fjMdThvbFdT+nZ+AfqZwLn/CcLX+sX7eRo7
1LDpRMLfnJ6cQVjnMxrfiVj96jc3i/P5xe3p8c03i/NXi5OTxcnR8eVSzsXtN7dvF0enr6/n54uj
xdnifLVLNl/eLH//1eWvL68ur95d3bx8uzi7Wl6f7LAzL/MF2yZDop9L8bmnqZ+jdZnosjkByosP
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
f4nDQcC766s3WP3FA1T76wS+W1rjZ1Twb2zXYDPfoIMSjl2ezvDPZ49GoWcQ7saanR/iQ12owUqt
rnkVWzt899rkV+SrY7FKj0yUGeJN1HugqfdSU++lpt4CTb0FmnoHNPUGaOoN0NQboBX/HkXjKJqv
KZqvKZqvKZqvKZqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqvKVqv
KVqvKVqvKVqvKVqvKVqvKVqvqTdVU/ReU/ReU/ReU/ReU/ReU/ReU7ReU7ReU7ReU7ReU7ReU7Re
U7ReU7ReU7ReU7ReU7ReU7ReU7TezO5nF/2qqtY/UPTFnLYNbdMPU5jdUJjdUJjdUJjdUJjdUJjd
UJjdUJjdUJjdUJjdUJjdUJjdUJjdUJjdULeroW5XQ92uhrpdDXW7Gup2NdTtagichsBpCJyGumUN
dcsa6pY1BFpDoDXULWsIvIa6ZQ2B2BCIDYHYULesoW5ZQ92yhsBtCNyGumUNgdwQyA2B2xC4DXXD
GgK5IZAbArkhkBsCuSGQGwK5IZAbArkhkBsCuSFwGwK3IXAbArchcBsCtyFwGwK30ayHrheB2xC4
DYHbELgNgdsQuA11uxoCuSGQGwK5IZAbArkhkBsCuSGQGwK3IXAbArchcFvqZrXUzWqpm9VSN6sl
vlviu6VuVkvdrJb4b4n/lvhvif+W+G+J/5b4b4n/lvhvif+W+G+J/5b4b4n/lvhvif+W+G+J/5b4
b4n/lvhvif+W+G+J/5b4b4n/lvhvif+W+G+J/5b4b4n/lvhvif+W+G+J/5b4b4n/lvhvif+W+G+J
/5b4b4n/lvhvyZG3ZA8s2QNL9sBSWo4l+2DJPliyD5bsgyX7YMk+WLIPluyDbe3D0rHLow9IGHn4
lgyFJUNhyVBYMhSWDIUlQ2HJUFgyFJYMhSVDYclQWDIUlgyFJUNhyVBYMhSWDIUlQ2HJUFgyFJYM
hSVDYclQWDIUlgyFJY/fkuGwZDgsGQ4bG46l3WhHdCc/y+J6/dOMvq1oO6ftgrY1bRvaJjWxmVhu
J7Sd0jbpS0hfQvoS0peQvoT0JaQvJX0p6UtJX0r6UtKXkr6U9KWkLyV9KenLSF9G+jLSl5G+jPRl
pC8jfRnpy0hfRvoU6VOkT5E+RfoU6VOkT5E+RfoU6VOkLyd9OenLSV9O+nLSl5O+nPTlpC8nfTnp
K0hfQfoK0leQvoL0FaSvIH0F6StIX0H6NOnTpE+TPk36NOnTpE+TPk36NOnTpM+QPkP6DOkzpM+Q
PkP6DOkzpM+QPkP6LOmzpM+SPkv6LOmzpM+SPkv6LOkja5HEzYzldkLbKW1ntK1oO6ftgrY1bRva
Jn1kPxKyHwnZj4TsR0L2IyH7kZD9SMh+JGQ/ErIfCdmPhOxHQvYjIfuRkP1IyH4kZD8Ssh8J2Y+E
7EdC9iMh+5GQ/UjIfiRkPxKyHwnZj4TsR0L2IyH7kZD9SMh+JGQ/ErIfCdmPhOxHQvYjIfuRkP1I
yH4kZD8Ssh8J2Y+E7EdC9iMh+5GQ/UjIfiRkPxKyHwnZj4TsR0L2IyH7kZD9SMh+JGQ/ErIfCdmP
hOxHQvYjIfuRkP1IyH4kZD8Ssh8J2Y+E7EdC9iMh+5GQ/UjIfiRkPxKyHwnZj4TsR0L2IyH7kZD9
SMh+JGQ/ErIfCdmPhOwHlaeyVJ7KUnkqS+WpLJWnslSeylJ5KkvlqWxK9iMl+5GS/UjJfqRkP1Ky
H1TfylJ9K5uS/UjJfqRkP1KyHynZDyoXY6lcjKVyMZbKxVgqF2OpXIylcjGWysVYKhdjqVyMpXIs
lsqxWCrHYqkci6VyLJbKsVgqx2KpHIulciyWyrFYKsdiqRyLpXIslsqxWCrHYqkci6VyLJbKsVgq
x2KpHIulciyWyrEst0kf8ZLKs1gpzzJcRzzq7lmqA2OpDoylOjCW6sBYqgNjqQ6MpTowlurAWKoD
Y6kOjKU6MJbqwFiqA2OpDoylOjCW6sBYqgNjqQ6MpTowlurAWKoDY6kOjKU6MJbqwFiqA2OpDoyl
OjCW6sBYqgNjqQ6MpTowlurAWKoDY6kOjKU6MJbqwFiqA2OpDoylOjCW6sBYqgNjqQ6MpTowlurA
WKoDY6kOjKU6MJbqwFiqA2OpDoylOjCW6sBYqgNjqQ6MpTowlurAWKoDY6kOjKU6MJbqwFiqA2Op
DoylOjCW6sBYqgNjqQ6MpTowlurAWKoDY6kOjKU6MJbqwFiqA2OpDoylOjCW6sBYqgNjqQ6MpTow
lurAWKoDY6kOjKU6MMtt0keGSpGhojoxlurEWKoTs9wmfWSoqG6MpboxlurGWKobY6lujKW6MZbq
xliqG2OpboylujGW6sZYRfaD6shYqhtjqU6MpToxlurEWKoTY6lOjKU6McttOj7ZB6obYxXZA0X2
gMrFWEX8V8R/RfynMjGWysRYKhNjqSyMpbIwlsrCWCoDY6kMjKUyMJbKwFgqA2OpDIylMjCWyr5Y
KvtiqeyLpbIvlsq+WCr7Yqnsi6UyL5bKvFgq82KpzIulMi+WyrxYKvNiqayLpbIulsq6WCrrYqms
i6WyLpbKulgq42KpjIulMi6WyrhYKuNiqYyLpTIulsq4WCrjYqmMi6UyLstt0kc8zonHOfE4Jx7n
xOOceJwTj6lsiaWyJZbKliy36XzofczpfczpfaSyJ5bKniy36Xzo/SzI/6IyIpbKiNj7MiKN/aqp
1z6gB5fqg1iqD2KpPoil+iCW6oNYqg9iqT6IpfogluqDWKoPYqk+iKX6IJbqg1iqD2KpPoil+iCW
6oNYqg9iqT6IpfogluqDWKoPYqk+iKX6IJbqg1iq/2Gp/oel+h+W6n9Yqv9hqf6Hpfoflup/WKrv
Yam+h6X6Hpbqe1iq72Gpvoel+h6W6ntYqt9hqX6Hpfodlup1WKrXYak+h6X6HJbqc1iqz2GpPoel
+hyW6nNYqs9hqT6HpfoclupzWKrPYak+h6X6HJbqc1iqz2GpPoel+hyW6mtYqq9hqb6Gpfoalupr
WKqvYam+hqX6Gpbqa1iqr2Gpvoal+hqW6mtYqq9hqb6GpfoaluprWKqvYam+hqX6Gpbqa1iqr2E1
8VQTTzXxVBNPNfFUE0818ZRGTFgaMbHcpuNna4k/Tbb+AR2YQEpDKZbbdGACKQ2tsDS0YrlNwgik
mkBKQzEsDcWwmjwAGpphaWiGpaEZloZmWBqasdwmfQRaGrphaeiGpaEbloZuWBq6YWnohqWhG5aG
blgaumFp6IaloRuWhm5YGrphaeiGpaEbloZuWBq6YWnohqWhG5aGblgaumFp6IaloRuWhm5YGrph
aeiGpaEbloZuLLdJH4GdhnJYGsphaSiHvR/KsXrR0vUP6MBEbM3EJleRxmhYQ66ioaadIeIbIj4N
5bA0lGO5XdC2pm1D26SPiE9DPSwN9bA01MPSUA9LQz0sDfWwNNTD0lAPS0M9LA31sDTUw9JQD0tD
PSwN9bA01MPSUA9LQz0sDfWwNNTD0lAPS0M9LA31sDTUw9JQD0tDPSwN9bA01MPSUA9LQz0sDfWw
NNTD0lAPS0M9LA31sDTUw9JQD0tDPSwN9bA01MPSUA9LQz0sDfVYbpM+Mgw09MPS0I/lNukjw0BD
QSwNBbE0FMTSUBBLQ0EsDQWxNBTE0lAQS0NBLA0FWW6TPjIMNDTE0tAQS0NDLA0NsTQ0xNLQEEtD
QywNDbE0NMTS0BBLQ0MsDQ2xNDTE0tAQS0NDLA0NsTQ0xNLQEEtDQywNDbE0NMTS0BBLQ0MsDQ1Z
bpM+sh80VMTSUBFLQ0UsDRWxNFTE0lARS0NFLA0VsTRUxNJQEUtDRSwNFbE0VMTSUBFLQ0UsDRWx
NFTE0lARS0NFLA0VsTRUxNJQEUtDRSwNFbE0VMTSUBFLQ0UsDRWxNFTE0lARS0NFLA0VsTRUxNJQ
EUtDRSwNFbE0VMTSUBFLQ0UsDRWxNFTE0lARS0NFLA0VsTRUxNJQEUtDRSwNFbE0VMTSUBFLQ0Us
DRWxNFTE0lARK0NFDlkkaqdqAR3WRdqlOMcYz+OzxRIOUsnhfHFyOj8SRbIh60eLi5PL1ze314v5
+dHpxfv52enJXR3NHgth7aZl0+JTn7+M1eXxu7uKHW8Wt+0lvRl7ebK3i7OrxfWBKpM9cskOUpMs
uhijLHazdRk+qv44kilpSdU2N3tK/5rSv6b0ryn9a0r/mtK/pvSvKf1rSv+a0r+m9K8p/WtK/5rS
v6b0ryn9a0r/mtK/pvSvKf1rSv+a0r+m9K8p/WtK/5rSv6b0ryn9a0r/mtK/pvSv5HBT4j7Zgz/N
pDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLN
pDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpDLNpPIbmEnlQN32ny8H8/WPN7uWBXl3e3r29J8/
XoSm+6IaTxeq+OH0fHG2vLTfHC+/cHv97vi2j1Imw/zJPjf2saI6Pd3Ux0sTPVL4Zrd6ML3V8dmt
slIPJ/F0wZzwlj6TC7vH27tB/ZGBX7D7P1srlfLYX32/+OX69HZpBn53vfj53XLX767mt2/Xf+g/
i1d/qr79bn59s7he3dXby/VPlz+5PFL6zdnpK6z38zruVA1oRwvVj63oqbRYR6e/7Y3ctIDPN5cX
x/OL48VZj3WEuq46t+slHa3NfuBKRXzYo/jbowWaNjMk3aGgd1VdlDLsVNvDr+1h1W1Nhf2L6D1c
i/D16dnZF1JIb5uL+/A12PQiP1kojbIbLGU3WMpusJTdYCm7wVJ2g6XsBkvZDZayGyxlN1jKbrCU
3WApu8FSdoO11Iy2FHakJAdLSQ6WkhwsJTlYSnKwlORgKcnBUpKDpSQHS0kOlpIcLCU5WEpysJTk
YCnJIUlTSzuyOBC23BFHulY7Et7BvxEHu1Y7FO/I77NM6iz6xNJXUz5+9skOFpSxoIwFZSwoWxPk
y+gTviBx18NqB0tWrFCxQsUKFStUrDCOqK12FLyDlSpWqlhpzkpzVpqTUqqFttqheYfhHXRYxRdI
8QVSfIEUn5zik6MiQasdBe/QvOOT3yClOd+XnO9Lzvcl5/uSs/T8E+mG/8Twn5hP/oSV2hnvSHhH
yjv45CyfnOWTs6zUslLLSi0ppWpAqx0J70h5R8Y7FO/IeUfBOzTvMLyDlTL7CmZfwewrmH0Fs69I
WGnCShNWmrBSpmTBlCxSVpqy0pSVpqw0ZaUpK01ZacpKU1bK+C4Y3wXju2B8F4zvgt/9gt/9gt/9
gt/9gt/9gilVMKUKptRavaW1fayNAVEwIAoGRMHgLhjcBYO7YHBTLabVDr6KOSvNWWnOSnNWmrPS
gpUWrLRgpQUrLVhpwUoLVlqw0oKVFqxUs1LNSjUr1axUs1LNSjUr1axUs1LNSg0rNayUHT2qDLXa
wUoNK2WrVLBVKtgq3deHKtVXy9fnbuUPsvjhbpF/pb1s/yd8bfn/u5V/hc+rVLbL8LnUfysVfrZK
7laKuWz/ce3wmq2CZqug2SpotgqarYJmq6DZKmi2CpqtgmaroNkqaLYKmq2CZqug2SpotgqarYJm
q6DZKmi2CpqtgmaroNkqaLYKmq2CZqug2SpotgqarYJmq6DZKmi2CpqtgmaroNkqaLYKmq2CZqug
2SpodiI1O5GabYRmG6HZRmi2EZpthGYbodkkaDYJmk2CZpOg2SRoNgmaTYJmk6DZJGg2CZpNgmaT
oNkkaDYJmk2CZpOg2SRoNgmaTYJmk6DZJGg2CZpNgmaToNkkaDYJmk2CZpOg2SRoNgmaTYJmk6DZ
JGg2CZpNgmaToNkkaG6oaG6oaG6oaG6oaG6oaG6oaG6oaG6oaG6oaG6oaG6oGG6oGG6oGG6oGG6o
GDZJhk2SYZNk2CQZNkmGTZJhk2TYJBk2SYZNkmGTZNgkGTZJhk2SYZNk2CQZNkmGTZJhk2TYJBk2
SYZNkmGTZNgkGTZJhk2SYZN0P5T6aefmq7IKKy78RfjgL7IIPs0/wpdq/GyTY0XhI/nD8qtGy543
+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
oKeCngp6KuipoKeCngp6KuipoKeCngp6KuipoKeCngp6auipoaeGnhp6auipoaeGnhp6auipoaeG
nhp6auipoaeGnhp6GuhpoKeBngZ6GuhpoKeBngZ6GuhpoKeBngZ6GuhpoKcRPfVXSmSEcwhnEPQH
9UF7UF7/QRZ/lMWfZPFnWfxFFt/K4q+y+Jss/i6L72TxD1l8L4t/yuIHWfxLFv+WxX9k8V9Z/E8W
L4L83GHFY6XCSpD9MmwHNNaCxlrQWAsaa0FjLWisBY21oLEWNNaCxlrQWAsaa0FjLWisBY21oLEW
NNaCxlrQWAsaa0FjLWisBY21oLEWNNaCxvpjkK9xphpnqnGmGjczoLEGGmugsQYaa6CxBhproLEG
GmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhpr
oLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6Cx
BhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYa
a6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQYaa6CxBhproLEGGmugsQ5oNECjkXMwcgZG9BtR
b+rw3UYWf5DFH2XxJ1n8WRZ/kcW3svirLP4mi7/L4jtZ/EMW38vin7L4QRb/ksW/ZfEfWfxXFv+T
xYsgP3dY8VipsBJkvwzbRTjTuSxeyeJYFieyWMjitSzeyOKtLE5l8aMsfpLFmSzOZXEhi0tZXMni
Z1lcy+JGFreyeCeL97L4RRa/yuKDLD4G+RpnqnGmGmeqcTMFjQZoNECjARoN0GiARgM0GqDRAI0G
aDRAowEaDdBogEYDNBqg0QCNBmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0G
aDRAowEaDdBogEYDNBqg0QCNBmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0G
aDRAowEaDdBogEYDNBqg0QCNBmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0G
aDRAowEaDdBogEYDNBqg0QCNBmg0QKMBGg3QaFo0NkBj+JvwF+H74dv4rihvBI2NoLERNDaCxkbQ
2AgaG0FjI2hsBI2NoLERNDaCxkbQ2AgaG0FjI2hsBI2NoLERNDYvgvyAxgZobIDGBmhsXobtgMZG
0NgIGhtBYyNobASNjaCxETQ2gsZG0NgIGhtBYyNobASNjaCxETQ2gsZG0NgIGhtBYyNobASNjaCx
ETQ2gsbmwxeZtbBh5KSV+9+/fvvHpaLvJWS0pv5kcTb/sKrnen7z+2y2/PpnlNMP/Hp+tvoeQlC3
p+eLpaajy/eL6+vTk8XNnkGd2e9Xr19oigWfO3jcwd8O3nbwtYOnXUpTrJSmWClNsVKaYqU0xUpp
ipXSFCulKVZKU6yUplgpTbFSmmKlNMVKaYqV0hQrpSlWSlOslKZYKU2xUppiJZpiJZpiJZpiJZpi
5cuwHZpipTTFSmmKldIUK6UpVkpTrJSmWClNsVKaYqU0xUppipXSFCulKVZKU6yUplgpTbFSmmKl
NMVKaYqV0hQrpSlWSlOslKZYKU2xUppipTTFyo9BvsaZapypxpmGpliJpliJpliJpliJpliJpliJ
pliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJ
pliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJ
pliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJ
pliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJ
pliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJpliJKJUDGsMzF5648LyFpy08a+FJc4JG
J2h0gkYnaHSCRidodIJGJ2h0gkYnaHSCRidodIJGJ2h0gkYnaHSCRidodIJG9yLID2h0QKMDGh3Q
6F6G7YBGJ2h0gkYnaHSCRidodIJGJ2h0gkYnaHSCRidodIJGJ2h0gkYnaHSCRidodIJGJ2h0gkYn
aHSCRidodIJGJ2h0H4N8jTPVOFONM9W4mQGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
Rgc0OqDRAY0OaHRAowMaHdDogEYHNDqg0QGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
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
p4KeGnpq6Kmhp4aeGnpq6Kmhp4aeGnpq6Kmhp4aeGnpq6Kmhp4aeBnoa6Gmgp4GeBnoa6Gmgp4Ge
Bnoa6Gmgp4GeBnoa6AloVECjkr9R8hdKvq/k2yp8V5QrQaMSNCpBoxI0KkGjEjQqQaMSNCpBoxI0
KkGjEjQqQaMSNCpBoxI0KkGjEjQqQaN6EeQHNCqgUQGNCmhUL8N2QKMSNCpBoxI0KkGjEjQqQaMS
NCpBoxI0KkGjEjQqQaMSNCpBoxI0KkGjEjQqQaMSNCpBoxI0KkGjEjQqQaMSNKqPQb7GmWqcqcaZ
atzMgEYFNCqgUQGNCmhUQKMCGhXQqIBGBTQqoFEBjQpoVECjAhoV0KiARgU0KqBRAY0KaFRAowIa
FdCogEYFNCqgUQGNCmhUQKMCGhXQqIBGBTQqoFEBjQpoVECjAhoV0KiARgU0KqBRAY0KaFRAowIa
FdCogEYFNCqgUQGNCmhUQKMCGhXQqIBGBTQqoFEBjQpoVECjAhoV0KiARgU0KqBRAY0KaFRAowIa
FdCogEYFNCqgUQGNCmhUQKMCGhXQqIBGBTQqoFEBjQpoVECjAhoV0KiARgU0KqBRAY0KaFRAYw40
5vI3gTSBM4EygTG5KM8FjbmgMRc05oLGXNCYCxpzQWMuaMwFjbmgMRc05oLGXNCYCxpzQWMuaMwF
jbmgMRc05i+CfAgGGnOgMQca85dhO6AxFzTmgsZc0JgLGnNBYy5ozAWNuaAxFzTmgsZc0JgLGnNB
Yy5ozAWNuaAxFzTmgsZc0JgLGnNBYy5ozAWNuaAxFzTmH4N8jTPVOFONM9W4mQGNOdCYA4050JgD
jTnQmAONOdCYA4050JgDjTnQmAONOdCYA4050JgDjTnQmAONOdCYA4050JgDjTnQmAONOdCYA405
0JgDjTnQmAONOdCYA4050JgDjTnQmAONOdCYA4050JgDjTnQmAONOdCYA4050JgDjTnQmAONOdCY
A4050LhcyXeMRcx+/5VpPobyVBqVrDQqWWlUstIo1hVK3zUofdeg9F2D0ncNSt81KH3XoPRdg9J3
DUrfNSh916D0XYPSdw1K3zUofdeg9F2D0ncNSt81KH3XoPRdg9J3DUrfNSh916D0XYPSdw1K3zUo
fdeg9F2D0ncNSt81KH3XoPRdg9J3DUrfNSh916D0XYPSdw1K3zUofdeg9F2D0ncNSt81KH3XoPRd
g9J3DUrfNSh916D0XYPSdw1K3zUofdeg9F2D0ncNSt81KH3XoPRdg9J3DUrfNSh916D0XYPSdw1K
3zUofdeg9F2D0ncNSt81KH3XoPRdg9J3DUrfNSh916D0XYPSdw1K3zUofdeg9F2D0ncNSt81KH3X
oPRdg9J3DUrfNSh916D0XYPSdw1K3zUofdeg9F2D0ncNSt81KH3XoPRdg9J3DUrfNTCsMxjWmRBi
JnyYCR1mwoZZ+K5wYSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaGdSaG
dSaGdSaGdSaGdSaGdfYiyA+GdQbDOoNhncGwzl6G7WBYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JY
Z2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZ2JYZx+DfI0z
1ThTjTPVuJnBsM5gWGcwrDMY1hkM6wyGdQbDOoNhncGwzmBYZzCsMxjWGQzrDIZ1BsM6g2GdwbDO
YFhnMKwzGNYZDOsMhnUGwzqDYZ3BsM5gWGcwrDMY1hkM6wyGdQbDOoNhncGwzmBYZzCsMxjWGQzr
DIZ1BsM6g2GdwbDOYFhnMKwzGNYZDOsMhnUGwzqDYZ3BsM5gWGcwrDMY1hnaHDO0OWZoc8zQ5pih
zTFDm2OGNscMbY4Z2hwztDlmaHPM0OaYoc0xQ5tjhjbHDG2OGdocM7Q5ZmhzzNDmmKHNMUObY4Y2
xwxtjhnaHDO0OWZoc8zQ5pihzTFDm2OGNscMbY4Z2hwztDlmaHPM0OaYoc0xQ5tjhjbHDG2OGdoc
M6AxARoT+ZtE/iKR7yfy7SR8V5QngsZE0JgIGhNBYyJoTASNiaAxETQmgsZE0JgIGhNBYyJoTASN
iaAxETQmgsZE0JgIGpMXQX5AYwI0JkBjAjQmL8N2QGMiaEwEjYmgMRE0JoLGRNCYCBoTQWMiaEwE
jYmgMRE0JoLGRNCYCBoTQWMiaEwEjYmgMRE0JoLGRNCYCBoTQWMiaEw+BvkaZ6pxphpnqnEzAxoT
oDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6Ax
ARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEa
E6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOg
MQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEBGhOgMQEaE6AxARoToDEB
GhOgMQUa09DxF7r9Qqdf6PIL3w3dj4LGVNCYChpTQWMqaEwFjamgMRU0poLGVNCYChpTQWMqaEwF
jamgMRU0poLGVNCYChrTF0F+jn7KHP2UOfopAxrTl2E7oDEVNKaCxlTQmAoaU0FjKmhMBY2poDEV
NKaCxlTQmAoaU0FjKmhMBY2poDEVNKaCxlTQmAoaU0FjKmhMBY2poDEVNKYfg3yNM9U4U40z1biZ
JfqDS/QHl+gPLtEfXKI/uER/cIn+4BL9wSX6g0v0B5c4eomjlzh62R4d/dMO/dMOehz0OOhx0OOg
x0GPgx5nRjEsf6o71XEdi3ykJYu30DXl40z5OFM+zpSPM+XjTPk4Uz7OlI8z5eNM+ThTPs6UjzPl
40z5OFM+zpSP02k+zkhnfJ/yfaZ8nynfZ8r3mfJ9pnyfKd9nyveZ8n2mfJ8p32fK95nyfaZ8nynf
Z8r32SHfZwxzxO9e3Ozy4u6oz6Gu8qdS+5yHcJqVdueMo72L+PZUl7iTAsNbFRXevz709eLm6vLi
ZnGU3JVoG2sZ64dk9jdH5khKc27xrDyvq9BPHc1P+T2qMtVdzA7WcQXmPQo/b16Mc4S5u6N4/p77
DN4HplM3FaIPUU9zm+vyWylnvuW7c6hinV3cuv2qUg9RPbW/OrZjr+r/zKY/fMgrHnyiqz5lHqRU
dfdyR6O0g1DJ1fXl8rxuHpwXeoyhncf0DjEf0t3G2en56e2YAw73AoeNOqTPI+qQjjTqMLUpRzZZ
6gFmMxs84HTPit941Okx0/IlhZ4O31re8JE7aLNwm9diDM36wVqS2968A0WqNpQ59GRmv4Xw6c4g
PXB7Nu2k2T1QjCB9Xo3v9Nk0vtOdGt9fbkB3P7fobrboI5EqG7K+vN4ny6swv7g9ulksfuqxybiN
gv5ag49L2axpN26bM3ywdZs7uxl0nrpBwynZ1gJ2pqDDMIt6HtEgtX006LHaSDkyfnNk/ObI+M2R
8Zsj4zdHxm+OjN8cGb85Mn5zZPzmyPjNkfGbI+M3R8ZvjozfHBm/OTJ+c2T85sj4zZHxmyPjN0fG
b46M3xwZvzkyfnNk/ObI+M2R8Zsj4zdHxm+OjN8cGb85Mn5zZPzmyPjNkfGbI+M3R8ZvjozfHBm/
OTJ+C2T8FvI3hfxFId8v5NtF+K4oLyTjt5CM30IyfgvJ+C0k47eQjN9CMn4LyfgtJOO3kIzfQjJ+
C8n4LSTjt5CM30IyfgvJ+C0k47eQjN9CMn6LF0F+yPgtkPFbIOO3QMZv8TJsh4zfQjJ+C8n4LSTj
t5CM30IyfgvJ+C0k47eQjN9CMn4LyfgtJOO3kIzfQjJ+C8n4LSTjt5CM30IyfgvJ+C0k47eQjN9C
Mn4LyfgtJOO3kIzfQjJ+i49BvsaZapypxplq3MyQ8Vsg47dAxm+BjN8CGb8FMn4LZPwWyPgtkPFb
IOO3QMZvgYzfAhm/BTJ+C2T8Fsj4LZDxWyDjt0DGb4GM3wIZvwUyfgtk/BYYDFFgMESBwRAFBkMU
GAxRYDBEgcEQBQZDFBgMUWAwRIHBEAUGQxQYDFFgMESBwRAFBkMUGAxRYDBEgcEQBQZDFBgMUWAw
RIHBEAUGQxQYDFFgMESBwRAFBkMUGAxRYDBEATQWQGMBNBZAYwE0FkBjATQWQGMBNBZAYwE0FkBj
ATQWQGMBNBZAYwE0FkBjATQWQGMBNBZAYwE0FkBjATQWQGMBNBZAYwE0FkBjATQWQGMBNBZAYwE0
FkBjATQWQGMBNBZAYwE0aqBRy9+E9y+8feHdC2+eFuVa0KgFjVrQqAWNWtCoBY1a0KgFjVrQqAWN
WtCoBY1a0KgFjVrQqAWNWtCoBY1a0KhfBPkBjRpo1ECjBhr1y7Ad0KgFjVrQqAWNWtCoBY1a0KgF
jVrQqAWNWtCoBY1a0KgFjVrQqAWNWtCoBY1a0KgFjVrQqAWNWtCoBY1a0KgFjfpjkI9bAzRqoFED
jRpo1ECjBho10KiBRg00aqBRA40aaNRAowYaNdCogUYNNGqgUQONGmjUQKMGGjXQqIFGDTRqoFED
jRpo1ECjBho10KiBRg00aqBRA40aaNRAowYaNdCogUYNNGqgUQONGmjUQKMGGjXQqIFGDTRqoFED
jRpo1ECjBho10KiBRg00aqBRA40aaNRAowYaNdCogUYNNGqgUQONGmjUQKMGGjXQqIFGDTRqoFED
jRpo1ECjBho10KiBRg00aqBRA40aaNRAowYaNdCogUYNNGqgUQONGmjUQKMGGjXQqIFGDTQaoNHI
3xj5CyPfN/JtE74ryo2g0QgajaDRCBqNoNEIGo2g0QgajaDRCBqNoNEIGo2g0QgajaDRCBqNoNEI
Go2g0bwI8gMaDdBogEYDNJqXYTug0QgajaDRCBqNoNEIGo2g0QgajaDRCBqNoNEIGo2g0QgajaDR
CBqNoNEIGo2g0QgajaDRCBqNoNEIGo2g0QgazccgX+NMNc5U40w1bmZAowEaDdBogEYDNBqg0QCN
Bmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0GaDRAowEaDdBogEYDNBqg0QCN
Bmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0GaDRAowEaDdBogEYDNBqg0QCN
Bmg0QKMBGg3QaIBGAzQaoNEAjQZoNECjARoN0GiARgM0GqDRAI0GaDRAowEaDdBogEYDNBqg0QCN
Bmg0QONyJd0qqHil7gJGXy9Xuu/0eqRM0kopLliDC9bggjW4YA0uWIML1uCCNbhgDS5YgwvW4IIF
dluw28rfWPkLK9+38m0bviuX1gq7rbDbCrutsNsKu62w2wq7rbDbCrutsNsKu62w2wq7rbDbCrut
sNsKu62w2wq77YsgP7Dbgt0W7LZgt30ZtgO7rbDbCrutsNsKu62w2wq7rbDbCrutsNsKu62w2wq7
rbDbCrutsNsKu62w2wq7rbDbCrutsNsKu62w2wq7rbDbfgzyNc5U40w1zlTjZgZ2W7Dbgt0W7LZg
twW7LdhtwW4Ldluw24LdFuy2YLcFuy3YbcFuC3ZbsNuC3RbstmC3Bbst2G3Bbgt2W7Dbgt0W7LZg
twW7LdhtwW4Ldluw24LdFuy2YLcFuy3YbcFuC3ZbsNuC3RbstmC3Bbst2G3Bbgt2W7Dbgt0W7LZg
twW7LdhtwW4Ldluw24LdFuy2YLcFuy3YbcFuC3ZbsNuC3RbstmC3Bbst2G3Bbgt2W7Dbgt0W7LZg
twW7LdhtwW4Ldlu4tRZotECjBRot0GiBRgs0WqDRAo0WaLRAowUaLdBYAo3hHQhvQHj+w9Mfnv3w
5JeCxlLQWAoaS0FjKWgsBY2loLEUNJaCxlLQWAoaS0FjKWgsBY2loLEUNJaCxlLQWAoayxdBfkBj
CTSWQGMJNJYvw3ZAYyloLAWNpaCxFDSWgsZS0FgKGktBYyloLAWNpaCxFDSWgsZS0FgKGktBYylo
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
BY21oLEWNNaCxlrQWAsaa0FjLWisBY21oLEWNNaCxlrQWAsaa0FjLWisBY21oLH+GORrnKnGmWqc
qcbNDGisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyB
xhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYa
aKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmis
gcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHGGmisgcYaaKyBxhporIHG
GmisgcYaaKyBxgZoDH8T/iJ8P3wb3xXljaCxETQ2gsZG0NgIGhtBYyNobASNjaCxETQ2gsZG0NgI
GhtBYyNobASNjaCxETQ2gsbmRZAf0NgAjQ3Q2ACNzcuwHdDYCBobQWMjaGwEjY2gsRE0NoLGRtDY
CBobQWMjaGwEjc15PyGUKSQxhSSmkMQUkphCElNIYgpJTCGJKSQxhSSmkMQUkphCElNIYgpJTCGJ
R0MSB8wQfeY5kTv9JU/cPaap4keSIrlV/m3X030PP6/pIFeipzzGYQT2Ptl9p1dyjwTW7lQ+WUmg
EWe4EWe4EWe4EWe4EWe4EWe4EWe4EWe4EWe4EWe4EWe4EWe4+RgMloZt07BtGrZNw3wHZ7iBM9zA
GW7gDDdwhhs4ww2c4QbOcANnuIEz3MAZbuAMN3CGGzjDDZzhBs5wA2e4gTPcwBlu4Aw3cIYbOMMN
nOEGznADZ7iBM9zAGW7gDDdwhhs4ww2c4QbOcANnuIEz3MAZbuAMN3CGGzjDDZzhBs5wA2e4gTPc
wBlu4Aw3cIYbOMMNnOEGznADZ7iBM9zAGW7gDDdwhhs4ww2c4QbOcANnuIEz3MAZbuAMN3CGGzjD
DZzhBs5wA2e4gTPcwBlu4Aw3cIYbOMMNnOEGznADZ7iBM9zAGW7gDDdwhhs4ww2c4QbOcANnuIEz
3MAZbuAMN3CGGzjDDZzhBs5wA2e4gTPcwBlu4Aw3cIab4AyXs+AMl7NSFk4WXhaVLMJ3G1n8QRZ/
lMWfZPFnWfxFFt/K4q+y+Jss/i6L72TxD1l8L4t/yuIHWfxLFv+WxX9k8V9Z/E8WL4L83GHFY6XC
SpD9MmwX4Uznsngli2NZnMhiIYvXsngji7eyOJXFj7L4SRZnsjiXxYUsLmVxJYufZXEtixtZ3Mri
nSzey+IXWfwqiw+y+Bjka5ypxplqnKnGzRQ0rlZSrGRYUVjJsVJgRWPFYMVipcQKjl7i6CWOXrZH
Dw9IQONqBXoc9DjocdDjoMdBj4MeBz0Oehz0OOhx0OOgx0GPgx4PPR56PPR46PHQ46HHQ4+HHg89
Hno89Hjo8dDjocdDj4eeCnoq6Kmgp4KeCnoq6Kmgp4KeCnoq6Kmgp4KeCnoq6Kmgp4KeGnpq6Kmh
p4aeGnpq6Kmhp4aeGnpq6Kmhp4aeGnpq6Kmhp4aeBnoa6Gmgp4GeBnoa6Gmgp4GeBnoa6Gmgp4Ge
Bnoa6BE0miSg0SSlLJwsvCwqWYTvNrL4gyz+KIs/yeLPsviLLL6VxV9l8TdZ/F0W38niH7L4Xhb/
lMUPsviXLP4ti//I4r+y+J8sXgT5ucOKx0qFlSD7ZdguwpnOZfFKFseyOJHFQhavZfFGFm9lcSqL
H2XxkyzOZHEuiwtZXMriShY/y+JaFjeyuJXFO1m8l8UvsvhVFh9k8THI1zhTjTPVOFONmyloXK2k
WMmworCSY6XAisaKwYrFSokVHL3E0UscvWyPHh6QgMbVCvQ46HHQ46DHQY+DHgc9Dnoc9DjocdDj
oMdBj4MeBz0eejz0eOjx0OOhx0OPhx4PPR56PPR46PHQ46HHQ4+HHg89FfRU0FNBTwU9FfRU0FNB
TwU9FfRU0FNBTwU9FfRU0FNBTwU9NfTU0FNDTw09NfTU0FNDTw09NfTU0FNDTw09NfTU0FNDTw09
DfQ00NNATwM9DfQ00NNATwM9DfQ00NNATwM9DfQ00BPQmAKNqfxNKn+RyvdT+XYavivKU0FjKmhM
BY2poDEVNKaCxlTQmAoaU0FjKmhMBY2poDEVNKaCxlTQmAoaU0FjKmhMBY3piyA/oDEFGlOgMQUa
05dhO6AxFTSmgsZU0JgKGlNBYypoTAWNqaAxFTSmgsZU0JgKGlNBYypoTAWNqaAxFTSmgsZU0JgK
GlNBYypoTAWNqaAxFTSmH4N8jTPVOFONM9W4mQGNKdCYAo0p0JgCjSnQmAKNKdCYAo0p0JgCjcsV
P2wC2xSomAIVU6BiClRMgYopUDEFKqZAxRSomAIVU6BiClRMgYopUDEFKqZAxSOBipEWPvxwMT8/
Pb45vjy/ul7c3FxyAbBPv3D0an5zevxEJcSnjvt0vbGbxa179/r1cu3i3dlZ94UX+6rVuNcF3WYW
1K6v7qaFIx8Z3Ll60PF2le3bFQAI05/C9Kcw/SlMfwrTn8L0pzD9KUx/CtOfwvSnMP0pTH8K05/C
9Kcw/SlMfwrTn8L0pzD9KUx/CtOfwvSnMP0pTH8K05/C9Kcw/SlMfwrTn8L0pzD9KUx/CtOfwvSn
MP0pTH8K05/C9Kcw/SlMfwrTn8L0pzD9KUx/CtOfwvSnMP0pTH8K05/C9Kcw/SlMfwrTn8L0pzD9
KUx/CtOfwvSnMP0pTH8K05/C9Kcw/SlMfwrTn8L0pzD9KUx/CtOfwvSnMP0pTH8K05/C9Kcw/SlM
fwrTn8L0pzD9GUx/Jn+TyV9k8v1Mvp2F74ryTEx/JqY/E9OfienPxPRnYvozMf2ZmP5MTH8mpj8T
05+J6c/E9Gdi+jMx/ZmY/kxMfyamPxPTn70I8oPpz2D6M5j+DKY/exm2g+nPxPRnYvozMf2ZmP5M
TH8mpj8T05+J6c/E9Gdi+jMx/ZmY/kxMfyamPxPTn4npz8T0Z2L6MzH9mZj+TEx/JqY/E9OfienP
xPRnH4N8jTPVOFONM9W4mcH0ZzD9GUx/BtOfwfRnMP0ZTH8G05/B9Gcw/RlMf4ZWUQY0ZkBjBjRm
QGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBj
BjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0
ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQGMGNGZA
YwY0ZkBjBjRmQGMGNGZAYwY0ZkBjBjRmQKMCGpX8jZK/UPJ9Jd9W4buiXAkalaBRCRqVoFEJGpWg
UQkalaBRCRqVoFEJGpWgUQkalaBRCRqVoFEJGpWgUQka1YsgP6BRAY0KaFRAo3oZtgMalaBRCRqV
oFEJGpWgUQkalaBRCRqVoFEJGpWgUQkalaBRCRqVoFEJGpWgUQkalaBRCRqVoFEJGpWgUQkalaBR
fQzyNc5U40w1zlTjZgY0KqBRAY0KaFRAowIaFdCogEYFNCqgUQGNCmhUQKMCGhXQqIBGBTQqoFEB
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
Ao0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKN
JdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQ
WAKNJdBYAo0l0FgCjSXQWAKNJdBYAo0l0FgCjSXQWAKNDmgMz1x44sLzFp628KyFJ80JGp2g0Qka
naDRCRqdoNEJGp2g0QkanaDRCRqdoNEJGp2g0QkanaDRCRqdoNEJGt2LID+g0QGNDmh0QKN7GbYD
Gp2g0QkanaDRCRqdoNEJGp2g0QkanaDRCRqdoNEJGp2g0QkanaDRCRqdoNEJGp2g0QkanaDRCRqd
oNEJGp2g0X0M8jXOVONMNc5U42YGNDqg0QGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
Rgc0OqDRAY0OaHRAowMaHdDogEYHNDqg0QGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
Rgc0OqDRAY0OaHRAowMaHdDogEYHNDqg0QGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
Rgc0OqDRAY0OaHRAowMaHdDogEYHNDqg0QGNDmh0QKMDGh3Q6IBGBzQ6oNEBjQ5odECjAxod0OiA
Rgc0OqDRAY0OaHRAowMaPdAY7nG4w+H++mr4IplT6GIKXUyhiyl0MYUuptDFFLqYQhdT6GIKXUyh
iyl0MYUuptDFFLqYQhcbhy4OmJF3vjg5nR9JvohsyPrR9eL88v1izwlu38xPLyh3ZLVro8lzB86D
2uRCdDQx7dNXpecSn7vm7u2aQnefeHnz7qqPowyfALdpLmk/1da6PfpDt6fXIz/1gpyeXr8+Pbv9
pK5du78vgGzy9m4jbt/ZpFfjv4PNDxbfi8vsxWX24jJ7cZm9uMxeXGYvLrMXl9mLy+zFZfbiMntx
mb24zF5cZi8usxeX2YvL7MVl9uIy+xfBrAWX2cNl9nCZPVxm/zJsB5fZi8vsxWX24jJ7cZm9uMxe
XGYvLrMXl9mLy+zFZfbiMntxmb24zF5cZi8usxeX2YvL7MVl9uIye3GZvbjMXlxmLy6zF5fZi8vs
Pwb5GmeqcaYaZ6ph5IPL7OEye7jMHi6zh8vs4TJ7uMweLrOHy+zhMnu4zB4us4fL7OEye7jMHi6z
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
8JiXwmNeCo95KTzmpfCYl8JjXgqPeSk85qXwmJfCY14Kj3kpPOal8JiXwmNeCo95KTzmpfCYl8Jj
XgqPeSk85qXwmJfCY14Kj3kpPOal8JiXwmNeCo95KTzmpfCYl8JjXgqPeSk85qXwmJfCY14Kj3kp
POal8JiXwmNeCo95KTzmpfCYl8JjXgqPeSk85qXwmJfCY14Kj3kpPOal8JiXwmNeitUK9NTQU0NP
DT019NTQU0NPDT019NTQ00BPAz0N9DTQ00BPAz0N9DTQ00BPAz0N9DTQ00BPAz2CxnT5a1mR5UXy
VeaiHSnvyHiH4h057yh4h+YdhndY2qFnvIOValaqWalmpZqValaqWalmpZqVGlZqWKlhpYaVGlZq
WKlhpYaVGlZqWKllpZaVWlZqWallpZaVWlZqWallpZaUFrMZ70h4R8o7Mt6heEfOOwreoXmH4R2s
NGGlCStNWGnCShNWmrDShJUmrDRhpQkrTVlpykpTVpqy0pSVpqw0ZaUpK01ZacpKM1aasdKMlWas
NGOlGSvNWGnGSjNWmrFSxUoVK1WsVLFSxUoVK1WsVLFSxUoVK81Zac5Kc1aas9KcleasNGelOSvN
WWnOSgtWyjaqYBtVsI0q2EYVbKMKtlEF26iCbVTBNqpgG1WwjSrYRhVsowq2UQXbqIJtVME2qmAb
VbCNKthGFWyjCrZRBduogm1UwTaqYBtVsI0q2EYVbKMKtlEF26iCbVTBNqpgG1WwjSrYRhVsowq2
UQXbKM02SrON0myjNNsozTZKs43SbKM02yjNNkqzjdJsozTbKM02SrON0myjNNsozTZKs43SbKM0
2yjNNkqzjdJsozTbKM02SrON0myjNNsozTZKs43SbKM02yjNNkqzjdJso3Rro5om2s3y2DBpNkya
DZNmw6TvDNPgNYqncN0UrpvCdVO4bgrXTeG6KVw3heumcN0UrpvCdVO4bgrXTeG6KVw3heumcN0U
rpvCdZ8L1x1mWNH3i1+uT1cTtv8ulNj93dX89u16uul/Fq/+VH373fz6ZnG9yni8vVz/dPmTpydn
6Tdnp6+wvmOy99N/1iZV/njzzdvF2dXieqvE8qW2YUb07H51hslmH+2ffJpxG93pHZJtnxyD1s8o
mAMp2icdvHNd0es2BkEPv4yDK9uxYH/3YziHG1u5xzwFW0+FsHt1+88lsu84QLXHKQ72Gl3wZnHb
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
FMBrUACxgUhhgyKBDQQYGxRJbFB4rUHhuwbF6RoUxWtQGJNB0Q8GBQUYtLf/oNgAg6i9g6i8A6zI
ATLkAPQ7gPkOQLcDyPEAljwAIQ8ECBsUcntQDORBgZEHRTgeFBF5UASwQfHRBiibA7zMAVrnAIlz
gLs4QFkcgJ8HsOsB7HpgrR1Yhgdm+4H5cWDGHISYD1orBo3oYWeV/4Bn8rLGFxbaPmilGiDSDBAr
B0KwDQRVG7DWDyAmw5YmTVY17hB54PDidscOStYOYsvOpswxsSdRkahJNCRaEvYa7+mHCql/D6BG
A1DQsNX7ack83B+pUKJCiQolKpSoUKJCiQolKpSokGCaMdGTGEgEEpFEIkEDJeqTqU+mPnxdW7LG
BPXJ1CdTn0x9sjXQkR1X9ml+4tN5GdQ3U99MfTP1zdQ3U99MfQv1LdS3UN9CfQvPKtS3UN9CfQvt
V6hPoT6F+hTqU6iPdTDYzoMouYNNUXsbVjf0I86UQgkOW29Oe5P3fJpr6npDiMsBS5Cf6TgjyxT5
22MxMLf77W67Wea0zSJnX+8WOfVuu8zpukVOW+1eyqkWOd12v8jpt8uS+6Z5KWfxrN1mWZ/dplrm
HF5skXP4t8ipdvtlTr+o8+6lNtzVL5VTVy9d09aLnGZZ8r5avvu+ahZfp9osn3W4qVrmVIu3qA4N
tMxpltfs60UNq6pePr1q25dyFt+iqreL73W4afmsbllOfchb5LTVZplT94ucfvmV637Zqs2mfiln
Wedmt2zD5qVR0OyXrdrU/bKcdtl/mnbZe5tu2apNtxw7Tdcv2qfpty/l7OuXcpbP6pct3/TLOreb
dvdSzuKudrtf3rXtFm/R7pa995CzLHlXNy/lLN6r3S/fq923i6/TVstR0Fbdom+09XLstM1m/1LO
8r2aflly+9Kbdstyus1yhuyqzeIturZ6KWdZ8kGQbZc5yxmy65fjq39pBuj3+0U5/Uujsq+bRZ37
ZtHyo2Fts8ipNttlzmJePeTs94ucercsuW5euqbfLXKaXbfI6V7K6TfVMmfxLartbjEuDjnN4i0O
97XLnG5R5229eSlnMSNV20XY6e2hdRbzarXrlk/f9Yv5uTpM0N0yZ/l1DlPm4ln7ZY8acxbP2nfb
5V3d8lsccqqXcpZP73fbl3IW5Rw6y2aZs5ABqmq/GIOHnPqlnG55V9Uv6lN11Us5y29xuOmlnOVX
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
jR5QXR2VpDovG/v+asjj+6tsY//PhWnekRCKrxbbr+Byfnrt5h1y1b28djg3NsCJu9cVcu14eTq9
RMe0N6zMBfurXoFF8hKsfG+xHF/Ytz81SeyMPT3fbH05S3tUdaVgujM13yxxqUsz3bxdRc78K1+m
9PCq9nly4/6je0fXdcm/L2i/iDeoyPl/89eAxvfuPjh68PCcN7Tb1VdhJnjTlaO6sHCuf/9BLmof
PX2dt7FBnLgRV8a5L+rTNzIMUvv0n0tUp//4GGC7+opuZX7OL3U1kItpqjpX3OIkQ+cEE8x/zM52
59vsV6uZzkZtr84l8OuVpqlWV4eYXF02gvMWFToNivOORl45Z7z1jFGNE06CZ9SxXrX0nKkN63U6
x6nH7One5BS4wZOnh65y495hleYKu+nMVcMrYh+9IHyzOit8s7oY/OiV/eCSxOnTmrIvZ1V6K03y
TKbwVwriFzGTvrwe3D9Mfzd+Pu/IDLvmHYnMMGuOC4ORmnPc67c+CUDyBpNd/U7N93/fGueE2NUr
YveOvNnloFPNG0Y3+9sJ/zx9Jy4BhmwuY5uJ2Rx/sWDhKbCrk9b5hDLH7upFv3lHfKwvFnGpzwWA
uygAq37XYgudDYRYXyXmVX01mVdnSaRozn9P0TMC3954Fj/zZrrsVXzxnCcv5orDonRt++IROvZH
3Hv487ihy5OjW/+7+3/v3v7f7Qmr/5pibzx5/uDW9c2mOxeXgfrK2KRfPOnWw/v3Hz749817Nx78
+qJm/3f3waNnT69t/vdfw/ZfYfuvXTwkPtbPv+LuRWL3vR2nvRKfc7wlMV74cDzYNf/a7ff77b/2
YXbYzw/rfnf8sJkfNpv9scNtd+xwd6yopjp+cb2ZH7ZbDof9v0ImEUkkEoX3rcmxu+wKu1WX7d/T
z/v6+UA/H+rnI/2oAfef6OdT/XymHzXe/gv9fKmfr/TztX6+0c+3+vlOP/oI+x/086PVtOb9al6r
5rVqq/Z1O242StzQz0393NLPbf0c6ecn/fysnzv6uaufX/Tzq37u6ee+fh7o56F+HunnN/081s8T
/zzbza6ef67tptosjreL493ieL84rhbHy/KbxXG7OO4Wx/3x43pRv3pRv3pRv3pRv3pRv3pRv3pR
v3pRv3pRv3pRv2ZRv2ZRv2ZRv2ZRv2ZRv2ZRv2ZRv2ZRv2ZRv2ZRv3ZRv3ZRv3ZRv3ZRv3ZRv3ZR
v3ZRv3ZRv3ZRv3ZRv25Rv25Rv25Rv25Rv25Rv25Rv25Rv25Rv25Rv25Rv35Rv35Rv35Rv35Rv35R
v35Rv35Rv35Rv35Rv/54/babzeJ4uzjeLY73i2PqM2w1921ZeYaaREOiJdEdW7Q0A28zZyMJK/hf
wabBf2WtXrsPmf3t+COvUVcd77Fd5T1i2P0r9CQGEn4qkkgkMoliibghsSWxm55UHx/Lh+Pt4ni3
ON4vjqvFcb04bhbH7eK4Wxz3/m3+VfgIpSLB1yh8qNKR6En47cNUbrM//h7N/vh7ND5Gh92AtMFT
EyVmHpa9HokEHSBzV6aK2U9xcUYSyPSfxDXJn87FiYcmf8MdiT3l0FK593fqd9tjbX84bhfH3eK4
P3682yyOt4vj3eJ4vziuFsf14nhRv92ifrtF/XaL+u0X9dsv6rdf1G+/qN9+Ub/9on77Rf32i/rt
F/XbL+pXLepXLepXLepXLepXLepXLepXLepXLep3XK7o99vd4ni/OK4Wx/XiuFkct4vjbnG8eP6i
P+0X/Wm/+F77xffaL77XfvG99ovvtV98r/3iey30hX6/+F77apqF/9DPn/r5y2bSlom4ZSJubSJ+
pp+n+nmiH4mmuxeC6mG60ow1JjpLaBiPiWIJzQJjDteULae4RvPLeKomZ08ic6olx6/xp+/I2ZAI
nKrI8Wsop3Bx4hGZqhZ/C7994JRXjMWoZcEayBn2JHYkaN2BZW6weVPqyU46xk46xk46xk46xk46
xk46xk46xk46xk6aw056xE5axU46xk4ax076x07ayO53/TxnjWeODkzfgYk4MPu71heY64OLCMz1
gXk8sK6EijftSCAGDHS6wW9nYQi+GG5IbGdy1FJR2fabapnRLTK2m2XGdpmxW2YsCz0+b4wZ7SJj
t6zYflnofiHD9dWyHtVLVywfWy1frl6+XL28olm+S7MstF1e0S7L6JZP6ZZV75ZV75e39MtbFjLy
brMQcneT1nDoBpX1Bzv23rqb3bBbiPGHjGqZMQnO0ra3mtK2GjNbjaCtJr+tBsvWBovmzK1G3tbG
kw0JDdXtT8jQ9OcBiTcyJ0TGhWEoh0RDoiXBkIkMmejlzF9nv9CbDxnVMqNeZjTLjHaZ0S0z+kXG
Qn0ewadlxm6Zsaxps6xps6xps6xps6xps6xps6xpu6xpu6xpu6xpu6xpu6xpu6xpu6xpu6xpu6xp
u6xpt6xpt6xpt6xpt6xpt6xpt6xpt6xpt6xpt6xpt6xpv6xpv6xpv6zpcmDulwNz3y9r2i9r2i9r
upxA9gst+yC9bpYZ22XGbpmxX2ZUy4x6mdEsM9plRrfMWNZ0u6zpdlnT7bKm22VNt8uabpc13S5r
ul3WdLus6XZZ092yprtlTXfLmu6WNd0ta7pb1nS3rOluWdPdsqa7ZU33y5rulzXdL2u6X9Z0v6zp
flnTanlLtbyleumW5ctVy6rXy6rXy6rXy6q/WAreaRrUaelpV5g68EqT0vZ/p4+47DvL5btaLt/V
cvmulst3tVy+q+XyXS2X72q5fFfL5btaLt/Vcvmulst3tVy+q+XyXS2X72q5fFfL5btaLt/Vcvmu
lst3tVy+q+XyXS2X72q5fFfL5btaLt/Vcvmulst3tVy+q+XyXS2X72q5fFfL5btaLt/Vcvmulst3
tVy+q+XyXS2X72q5fFfL5btaLt/Vcvmulst3tVy+6+XyXS+X73q5fNfL5bteLt/1cvmul8t3vVy+
6+XyXS+X73q5fNfL5bteLt/1cvmul8t3vVy+6+XyXS+X73q5fNfL5bteLt/1cvmul8t3vVy+6+Xy
XS+X73q5fNfL5bteLt/1cvmul8t3vVy+6+XyXS+X73q5fNfVstBqWahDmsNe2NdeyuBeyuBeONpe
ONpequH+L7OUtBiZW4zMLUbmFrO6wUR70KE9eNEhUZHAvm5WnD1WnD1wyh4dc4+OuQdX2QM37YGb
9sBNh0TBco91J1CfQH0C9QnUJ7i9n/oE6hOoT6A+YZi1Z+uSy6EKbn3ApCP7/U42rJ0M/jsZ/Hcy
+O9k6d/Jtr/7CiuBGzRMMf5seuZ+KbUdNMnjHfSg9B3vbQdFaZmxmL8PatDxLnxQLraLjMVgOygX
yysW+nq1NHRXS8tmtTRNHvSAxRXbxUA56AHVMmNR9f2yjKWyWS2VvGo5oVfLoXSQCHaLjMXCcljf
Fg3ULZbzw0JTLzIWknC9bOR6aSuvl29bL6woh4xFdzjMPcfb4zBvLMpYogJ1vVjw63qxBNbNQgCq
m3Z5xWIZrdvFslG3ixar28VnqLvFKlF3C4yw7veLW/qFyNgs6STNkj/SLA3wzXbRps3CNLdtlkBC
0yyW86ZZ9NN2SUNot4t3aevFAGrrxddvm8X63jaLGb5tF+pXu2zkbr94/W65wHXNQmjomkXFumYh
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
0dMXJ6fPHtEaWyP4wIbm1pvCby8fD8rQq5NXq/Z+Sdvvvro4f3X8/fHVyfnZ0ZPjpz/+cnzx7LcT
dubk6XJyRS8vfjv14y6s/fvT9Ri1lctsatq2bTbQEY9XPdlTd/CTR/TopTpXlMsW45evn2ytsx5C
0X678vbfWE2B5TP5xAHwFU1Q8aQ93BK/R7dvB+6xLYJuN8lWD1y/e4/zfJ2ELW9BMbthMjb1+urk
9HLLLkF88GL59Pzi2aTR8W+3p/qjPfj57Wi7mTDOOyfDvdfr+nzeE8vYEAkPZ6Z3J+R2K2YPBN1i
9W2fqrtRdGCG0sfI+lzspI/1w+dlJj28N4qVtLGevPUnDsRGei89xUTagVQ/FAvpfvS8a4Y9Pz3/
5Toh7+L89LfPls9Onh5f7X6ef5SKEqfZwDz6aC/vUHN+GC0fnUNbk3Mf/Obu2n7Ycf4P99JdgI/b
91ps2DreQFsvLnfe0rVP7rCdd3IMbbjB9zex793ydz2/Hwn7CZbn26jf8c585yEredey7JN0bW5S
Qu1TE9qT23BzNDxMkDzk0w+W1vf2kG5AC3y4xrtX1+etKPk0vZ23avqn7ODcUAd8nj7NTXXeh966
F8/lh0koG3psR33Yj3/yASS8a+p8vzxbXhzv0Rv5IQKKm31jM/dD3byTeXtvAj40aXbkeZw/t5PG
Pip/49w3n7Sr8WHNfKTet/s0Wj26czmyM7mxESfY7kJom3G3bZf/PmbBesddYA9gVe9c9O/a4XT/
7z5U7j9Iqdmrc+ljRHyafqWPtfpTdik9vO2fpzdpA/32nhfuxYf03q+XKu0b1xX24zm639ffNVde
vj69Onl1ulyHye3Pg3Rraoo7aWMz+dZ9vpOZvRlqbj23duR1es+3d98nj8of9Z5e+6SdUxts8yP1
VD24Bz70nv1Ksr0krm59GmyE2W7Dibe9Rf/JA7veO333ALLaEC3bE8U7Br5tfGw2Jqc2p5ft1XF2
J4o+TS/anbrgU3apbbgjPk//2qY78TZv34vn7XakFDfcdmXhfnxyGyDlXVNq9Wd5dPXi4vz19y/2
55j7KBXFIbexOf3Rvt7JdH4YFR+dQztyvKlv7q7tj8rRpnrpk02+3EA7H40j8d5tfdfz+5Ez+3GX
3Tr3cCPeqrvyxuLqOkw5vdvkv3t+epNi4t4OuA2I5F07u+728Y82eq/OrVtR8mk6tW7V9E/ZmbWh
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
iB3ZbacjSSz936ofuw13ZLU4lPXLlBRLa0eyifv7AGTTbSi5z3w6HNkktBx2fx2ebLpJ1IZ6cIuy
afXy7hA7sttOR25RNh3O+i0Rs93KpupgZFO1FV5bH8zMrotHYKczuz6YmV1vYWY/PX/55OTs+Ork
/Ow7/vW7xeJQ+PiHqCsrYDcr4ENjsP9VcW/qNjQX24NeKW3Rgva+UtqDXint572f+EZ3cb3Tdrrn
Py8vLk6eLS8PZW/xnKAD5RkHtDX5p7S7eD72j2F/8ftQvIMdxu9A1r06cX7/oewyvk7RY+jCT3Cn
8fUhKJK89NLn0kvXJCzPnp4/m8BEp8vvj5++PXr55OjH84vl8dmXy9dPj368mP78eHF0fdvy6Prp
a2jR5dHLk8unW1S+NkDY4SVX3a5R352cPVu+2bIWeKf+/dy0vw1Mvm3qVDsj747z9ZHQuzap90Xx
NbVPz1++PD/78snp8dmPFFQ8OXu1EiLVV1/U/Rd10w3mi8Z9UXuc2uzULPLTKj+t89MmP23z0y4/
7fPTIT/NqTI5VTanyuZU2Zwqm1Nlc6psTpXNqbI5VTanymZU9YtFflrlp3V+2uSnbX7a5ad9fjrk
pyY/zamqcqqqnKoqp6rKqapyqqqcqiqnqsqpqnKqqpyqOqeqzqmqc6rqnKo6p6rOqapzquqcqjqn
qs6panKqmpyqJqeqyalqcqqanKomp6rJqWpyqpqcqjanqs2panOq2pyqNqeqzalqc6ranKo2p6rN
qepyqrqcqi6nqsup6nKqupyqLqeqy6nqcqq6nKo+p6rPqepzqvqcqj6nqs+p6nOq+pyqPqeqz6ka
cqqGnKohp2rIqRpyqoacqiGnasipynl7n/P2Puftfc7b+5y39zlv73Pe3ue8vc95e5/z9j7n7X3O
2/uct/c5b+9z3t7nvL3PeXuf8/Y+5+19ztv7nLf3OW8fct4+5Lx9yHn7kPP2IeftQ87bh5y3Dzlv
H3LePuS8fch5+5Az8yFn5kPOzIecmQ85Mx9yZj7kzHzImfmQc+8h595Dzr2HnHsPOfcecu495Nx7
yDnwkLPcIWe5Q85yh0a9Km9RznKHnOUOOcsdcpY75Cx3yFnukLPcIWe5Q85yh5zlDjnLHXKWO+Qs
d8hZ7pCz3CFnuUPOcoec5Q45yx1yljvkLHfIWe6Qs9whZ7lDznKHnOUOOcsdcpY75Cx3yFnukLPc
IWe5Q85yh5zlDjnLHXKWO+Qsd8hZ7pCz3CFnuUPOcoec5Q45yx1yljvkLHfIWe6Qs9whZ7lDznKH
nOUOOcsdcpY75Cx3yFnukLPcIWe5Q85yh5zlDjnLHXKWO+Qs1+Qs1+Qs1+Qs1+Qs1+Qs1+Qs1+Qs
1+Qs1+Qs1+Qs1+Qs1+TqtMk5sMk5sMk5sMk5sMk5sMk5sMk5sMk5sMnVaZMzZJMzZJMzZJMzZJMz
ZJMzZJMzZJOr0yZXp02uTpumuv36NYq3q/nMa/CdD+YU5nze5Hze5Hze5Hze5Hze5Hze5Hze5Hze
zHxeruSU5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd5Lzd
5Lzd5Lzd5HPDqCHOebvJebvJebvJebvJebvJebvJebvJebvJebvJebvJebvJebvJebtR6nTOGE3O
203O241RN+dU5bzd5Lzd5Lzd5LzdCG/PLubE5CzdKMpzlm5ylm5zlm5zlm6FpY/VF2O7dr3Nb+vy
0z4/HfJTk5/m9OTM3ObM3ObM3ObczOaMxeaMxeaMxeaMxeaMxeaMxeaMxearzOaT3+aT3w7q5vzN
+eS3+eS3+eS3+eS3+eS3+eS3+eS3+eS3+eS3+eS3uWJj88lv88lv88lv88lv88lv88lv88lv88lv
c8XG5oqNzVeBzVeBzVeBzVeBzVdBtciXweq8Uue1Om/UeavOO3Xeq/NBnRt1ruirFH2Voq9S9FWK
vkrRVyn6KkVfpeirFH2Voq9W9NWKvlrRVyv6akVfreipFT21oqdW9DSKnkbR0yh6rj2H9/TbL776
YrXW5F2KFEWJIkTRkTswq1zjqnJrusqt6SrXsqqcGVY5M6xyZljlzLDKmWGVM8MqZ4ZVrmVVuTVd
5dZ0lWtcVa5xVbnGVeUaV5VrXFWucVW5xlXlGleVa1xVrnFVucZV5RpXJRrXSgh6OfA4CNPBQKfm
C5/4esQNKc6vEvY+dvMNcXrD+J5/001R/fta/fvL6t9f3/HvX+rff1f/jt/z7+nq31L9O1H/zlb/
zt/x77X695b/UaPrvO/rvO/rvO/rvO/rXNutc223zuVwnWu7da7t1rm2W+fabp1ru3Wu7da5tlvn
Ar8WgT/aL8Z67XpOQC7b61y217lsr3PZXueyvc5le53L9jqX7XUu2+tctte5bK9z2V7nsr3OZXud
y/Y6l+11LtvrXLbXuWyvc+ld59K7zqV3nUvvJhfeTS67m1x0N7nkbnLB3eRyuMnFcJNL4SYXwk0u
c5tc5Da5xG1ygdvk8rbJxW2TS8smF5ZN7h5octHZ5JKzyQVnk8ufJpc/TS5/mlz+NLn8aXL50+QS
psklTJNLmCaXME0uYZpcwjS5hGla9d28gbmEaXIJ0+QSpsklTJNLmCaXME0uYZqcyzU5l2tyPtbk
fKzJ+ViT87Em52NNzseanI81vfpu3hs5H2tyPtbkhkuTGy5Nbrg0OXNrcubW5MytyZlbkzO3Jmdu
Tc7cmpy5NTlza3Lm1uTMrcmZW5MztyZnbk3O3JqcuTU5c2ty5tbkzK3JmVuTGy5Nbrg0OetrctbX
5KyvyVlfm7O+Nmd9bc762pz1tTnra3OTpc0tljY3WNqcT7Y5n2xzPtnmfLLNbZU2Z5ttzjbbnG22
Odtsc7bZ5myzzY2UNrdR2txEaXMLpc1Zbpuz3DZnuW3Octuc5bY5y21z+6DN7YM2tw/anD+3OX9u
c/7c5vy5zflzm/PnNrcP2tw+aHPu3ebcu825d5tz7zbn3m3Ovduce7c5925z7t3m3LvNuXebc+82
595tzr3bnHu3Ofduc+7d5ty7zXXUNtdR25y3tzlvb3Pe3ua8vc15e5vz9jbn7W3O29uct7c5b29z
3t7mvL3NeXub8/Y25+1tztvbnLe3OW9vc97e5ry9zXl7m/P2Nuftbc7b25y3tzlvb3Pe3ua8vc15
e5vz9jbn7W3O29uct7c5b29z3t7mvL3NeXub8/Y25+1tztu7nLd3OW/vct7e5by9y3l7l/P2Luft
Xc7bu5y3dzlv73Le3uW8vct5e5fz9i7n7V3O27uct3c5b+9y3t7lvL3LeXuX8/Yu5+1dztu7nLd3
OW/vct7e5by9y3l7l/P2LuftXc7bu5y3dzlv73Le3uW8vct5e5fz9i7n7V3O27uct3c5b+9y3t7l
vL3LeXuX8/Yu5+1dztu7nLd3OW/vct7e5by9y3l7l/P2LuftXc7bu5y3dzlv73Le3uW8vct5e5fz
9i7n7V3O27uct3c5b+9y3t7lvL3LeXuX8/Yu5+1dztu7nLd3OW/vct7e5by9y3l7d83bDwbOXxyw
xQFbHLDFAVscsMUBWxywxQFbHLDFAVscsMUBWxywxQFbHLDFAVscsMUBWxywxQH7qTlg976/Rtmx
ouxYUXasKDtWlB0ryo4VZceKsmNF2bGi7FhRdqwoO1aUHSvKjhVlx4qyY0XZsaLsWFF2rCg7VpQd
K8qOFWXHih3uWHGQ+1gvvhIaVR8p/PRCAagXCkG9UBDqhcJQV2oOV2rOVmrOVmrOVmrOVmrOVmrO
VmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVmrOVrWiT83hSs3hSs1hjbTXUHuN
tddge42213B7jbfXgHuNuNeQe42516B7jbrXsHuNu9fAe42819B7jb3X4HuNvtfwe42/1wB8jcDX
EHyNwdcgfI3C1zB8jcOvekVfr+jrFX29oq9X9PWKvl7R1yv6ekVfr+gbFH2Dom9Q9A2KvkHRNyj6
BkXfoOgbFH2Dos8o+oyizyj6jKLPKPqMos8o+oyizyj6jKLPKvqsos8q+qyizyr6rKLPKvqsos8q
+pTOUyudp1Y6T610nlrpPLWSF7XSeWolP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2ol
P2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2ol
P2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2olP2ol
P1QiUaUyiSqVSlSpXKJKJRNVKpuoUulElconqlRCUaUyiiqVUlSpnKJKJRVVKquoUmlFVa3kR63k
R63kh8o3qlTCUaUyjiqVclSpnCOj+KlR/PQWvytvsPKzKH5rFL81it8axW/NGr9V//HPyrGrvOCK
XRrFLo1il0axR6PYo1Hsz9Tav61d2NqHrd3U2k+tHdWNorfRLvLmg92j3MiKmxjFLYziFkZxC6O4
hVHcwihuYRS3MIo7GMUdjOIORnEHo7iDUdzBKO5gFHcwijsYxR2M4g5GcQejuINR3MEo7mAUdzCK
OxjFHYziDkZxB6O4g1HcwSjuYBR3MIo7GMUdjOYOKiXRqJxEo5ISjcpKNCot0ai8RKMSE43KTDRr
qYl3/Y8DO60K9HTqvFfnKiij2IlKDjQqO3B1XqvzRp0rehR7URmDRqUMGpUzaBoVT1NpgkblCRqV
KGhUpuDqXLVXR8YUO1KphUblFhqVXGhUdqFR6YWm0UExHRVrdPBN0af4m0pBNCoH0agkRKOyEI1K
QzQqD9GoRESjMhGNSkU0KhfRqGREo7IRjUpHNCof0aiERKMyElfnij7FD+eUxW591SguqHIVjcpO
NCo90aj8RKMSFE1zIxKqeklxPZWkaFSWolFpikblKRqVqGhUpqJRqYpG5SoalaxoVLaiUemKRuUr
GpWwaFTGolEpi0blLBqVtGhU1qJRaYtG5S0albhoVOaiUamLRuUuGpW8aFT2olHpi0blLxqVwGhU
BqNRKYxG5TAalcRoVBajUWmMRuUxGpXIaFQmo1GpjEblMhqVzGhUNqNR6YxG5TMaldBoVEajUSmN
RuU0GpXUaFRWo1FpjUblNRqV2GhUZqNRqY1G5TYaldxoVHajUemNhvIbH1ih0qi0SKPyIo1KjDQq
M9Ko1EijciONSo40rYZcaMyFBl1o1MUN2IWiTwMvlGxRWZKm1TgMJVtUoqRRqZFG5UYalRxpVHak
UemRRiVEGpURaVRKpFE5kUYlRRqVFWlUWqRReZFGJUYalQppVC6kUdmPRqU/GpX/aFQCpFEZkEal
QBqVA2lUEqRRWZBGpUEaleloVKqjUbmORmU3GpXeaCS/8Y/rWB3VZsXpVSKjUZmMRqUyGpXLaFQy
o1HZjEalMxqVz2hUQqNRGY1GpTQaldNoVFKjUVmNRqU1GpXXaFRio1GZjUalNhqV22hUcqNR2Y1G
pTcald9oVIKjURmORqU4GpXjaFSSo1FZjkalORqV52hUoqNRmY5GpToaletoVLKjUfmMRiU0GpXR
aFRKo1E5jUYlNRqVmWi6Gwgy9X6NIdMgMo0iUzxNJd0ZlXVnVNqdUXl3RiXeGZV5Z1TqnekUT1FJ
bkZluRmV5mZUnptRiW5GZboZlepmVK6bUcluRmW7GZXuZlS+m1EJb0ZlvBmVXGZUdplR6WVG5ZcZ
lWBmVIaZUSlmRuWYGZVkZlSWmVFpZkblmRmVaGZUpplRqWZG5ZoZlWxmVLaZUelmRuWbGZVwZlTG
mVEpZ0blnBmVdGZU1plRaWdG5Z0ZlXhmVOaZUalnRuWeGZV8ZlT2mVHpZ0blnxmVgGZUBppRKWhG
5aAZlYRmVBaaUWloRuWhGZWIZlQmmlGpaEblohmVjGZUNppR6WhG5aMZlZBmVEaaUSlpRuWkmV7D
ZjVQViNlNVRWY2VvgGXV9zVcVuNllQ6nEtCMykAzKgXNqBw0o5LQjMpCMyoNzag8NKMS0YzKRDMq
Fc2oXDSjktGMykYzKh3NqHw0oxLSjMpIMyolzaicNKOS0kyv+a/SD1VemlGJaUZlphmVmmY0Hlgl
pxmVnWZUeppR+WlGJagZlaFmVE6aUWlnRuWdGZV4ZlSqmVG5ZkZllxmVXmZUfpkZFL9WKWVG5ZQZ
lVRmVFaZUWllRuWVrc7191V7FT9WiWhGpZ4ZlWxmVLaZUelmRuWbGZVhZlQimFGpX0blfhmV/GVU
9pdR6V9GZXgZleJlVI6XUUleRmV5GZXmZVQml1GpXEblghid0zFoxL+G/GvMvwb9a9S/hv3fwP0r
+jTyX/EvlddlVGKXUZldRqV2GZXbZVRyl1HpL0blcxmV0GVURpdRKV1G5XQZldRlVFaXUWldRuV1
GZXYZVRml9GpXTp7S6dv6QwtnaKlc7R0kpbOw9KJWDoTS6di6VwsnYyls7F0OpbOx9IJWTojS6dk
6ZwsnZSls7J0WpbOy9KJWTozS6Vmrc51toqiT+mTOulK51XpxCqdWaVTq3RulU6uMkpfNK3+vmq/
4p8620qnW+l8K51wpTOudMqVzrnSWVY6zUrnWelEK51ppVOtdK6VTrbS2VY63UrnW+kMK51ipXOs
dJKVzrLSaVY6z0onWulMqxupVjrXSidb6WwrxW+N4rc3Eq50xtWNlCtFn+K/OutKp13pvCuj+K9R
/FfnYOkkLJ2FpdOwVB6WUYlYRmViGav4s1X8WaVkGZWTZVRSllFZWUalZRmVl2VUYpZRmVlGpWat
zhV91/z9MWx+X7ItSrZFybYo2RYl26JkW5Rsi5JtUbItSrZFybYo2RYl26JkW5Rsi5JtUbItSrZF
ybYo2RYl26JkW5Rsi91nWxx8/YaSz1HyOUo+R8nnKPkcJZ+j5HOUfI6Sz1HyOUo+R8nnKPkcJZ+j
5HOUfI6Sz1HyOUo+R8nnKPkcJZ+j5HOUfI5HnM9x0BUzVjSqPlMyxyqZY5XMsUrmWCVzbK1LN6k+
UzLHKpljlcyxSuZYJXOskjlWyRxVD2l1ruhrdG0pRZ/ycVilc1slk6ySSaoAk1EVmIwqwWRUDSaj
ijAZVYXJqDJMq3NFn5JZVsksq2SWVTLLKplllcyySmZZJbOskllWySyrZJZVPg6rZJhVMswqGWaV
DFN1qVbnij4lw2yv64gp+pQMs0qGWWVDqEJYRlXCMqoUllG1sIwqhmVUNSyjymEZVQ/LqApYRpXA
MqoGllFFsIyqgmVUGSyj6mAZVQjLqEpYRpXCMlYXgtOV4HQpOF0LTskwVRDLWF0XTheG05XhbpSG
07XhFnP5N9fioFu/o1FPqMJwujKcLg2na8Pp4nCqOpyqg2VVHSyr6mBZVQfLqjpYVtXBsqoOllV1
sKyqg2VVHSyr6mBZVQfLqjpYVtXBsqoO1upc0Vcr+mpFX63oqxV9qmKeqotlVV0su2gUfY2ir1H0
NYq+RtGnSvSprMiV0qPoU1X6FqpM30LV6VuoQn2LVtHXKvpaRV+r6GsVfZ2ir1P0dYq+TtHX6cKJ
ir5O0dcp+jpFX6fo6xV9vaJPVS5c9Iq+XtHX68qOir5e0dcr+npFnyqVuFC1EheqWOJCVUtcqHKJ
C1UvcTHo0pOKPlUycaFqJi5U0cSFqpq4UGUTF6pu4kIVTlyoyokLVTpxYXRtTEWfqp64UOUTF6p+
4kIVUFyoCooLVUJxoWooLlQRxYWqoriwuninrt6pyneqeqJVbvWszht13qrzTp336nxQ50adK/pu
lBdV9Cn5obKkrcqStipL2qosaauypK3KkrYqS9qqLGmrsqStypK2Kkvaqixpq7KkrcqStipL2qos
aauypK3KkrYqS9qqLGmrsqStypK2Kkvaqixpq7KkrcqStipL2qosaauypK3KkrYqS9qqLGmrsqSt
ypK2Kkvaqixpq7KkrcqStipL2qosaauypK3KkrYqS9qqLGmrsqStypK2Kkvaqixpq7KkrcqStipL
2qosaauypK3KkrYqS9qqLGmrsqStypK2Kkvaqixpq7KkrcqStipL2qosaauypK3KkrYqS9qqLGmr
sqStypK2Kkvaqixpq7KkrcqStipL2qosaauypK3KkrYqS9qqLGmrsqStytqzKmvPqqw9q7L2rMra
syprz6qsPauy9qzKkrYqS9qqLGmrsqStypK2KkvaqrQ/q9L+rEr7syrtz6q0P6uypK1KA7Qqb8aq
vBmr8mZsoyteK/6r8kisyiOxKo/EqjwSq/JIrMojsSqPxKo8EqvySKzKI7Eqj8SqPBKr8khso/hR
o/iRyiixKqNkda7oU/xIZZhYlWFiVYaJVRkmVmWY2DnDZDRf+ICDiIPEB2GBgwoHNQ4aHLQ46HDQ
42DAgcGBxcGIA5ARPA5ATwA9AfRE0BNBTwQ9EfRE0BNBT+zXKqSrmdSqmaQw3lZhvK3CeFuF8bYK
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
yVHBlulCpy/0+sKgLxh9QfXkoJWnQStPg1aeBq08DVp5GrTyNGjladDK06CVp0ErT4NWngatPA1a
eRq08jRo5WnQytOgladBK0+DVp5UFGZ1QSsqg1ZUBq2oDFpRGbSiMmjJNGjJNGjJNGjJNGjJNGjJ
NGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJ
NGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJ
NGjJNGjJNGjJNGjJNGjJNGjJNGjJNGjJNGiZMWiZMWjJNGjJNGjJNGjJNGgbeNA28KBtYBVImi5o
Sq2m1CpKjWZbRrOtuSLvbQRiHPieMHzhrrGwqWckbjIs43z8Il1jamM7YV6ng/ELfw2BTe6LdI2p
jSuBSO+xX/jrm1dikSRjGhj1O9ETWPiSzF29JzVMD4FrV48TqaunCGUb4xcjEdYx3Db0kOYNY3xX
ZDjP0py+vvp/uiY1LKav1Nef9tfSfNWWRAeLL0ZSBgJ6IzBhK/lOgh6dqpel0cvS6GVp9LI0elka
vSyNXpZGL0ujl6XRy9LoZWn0sjR6WRq9LI1elkYvS6OXpdHL0uhlafSyNHpZGr0sjV6WRi9Lo5el
0cvS6GVp9LK0Wr2w9Y07+s9mSQUmbPWhdP3CFeWu4ad4JVlG70/Kb4uve15b/C0sqRUZAUo0Qes/
oIOvrowDPtGgn2terNSuOy3xVXvH9XVs9XKxerlYvVysXi5WL5cbDlOrl4vVy8Xq5WL1crF6uVi9
XKxeLlYvF6uXi9XLxerlYvVysTeWi5ZiVksxq6WY2lWhahZ5CG66UOkLtb7Q6AutvtDpC72+MOgL
Rl/QlFaa0kpTWmlKK01ppSmtNKWVprTSlFaa0kpTWmtKa01prSmtNaW1prTWlNaa0lpTWmtKa01p
oyltNKWNprTRlDaa0kZT2mhKG01poyltNKWtprTVlLaa0lZT2mpKW01pqyltNaWtprTVlF5bWg+s
8zG9Rrev0+3rdPs63b5Ot6/T7et0+zrdvk63r9cj0WtKe01pryntNaW9prTXlPaa0l5T2mtKB03p
oCkdNKWDpnTQlA6a0kFTOmhKB03poCk1mlKjKTWaUqMpNZpSoyk1mlKjKTWaUqMptZpSqym1mlKr
KbWaUqsptZpSqym1mlIt2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot
2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot
2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2Sot2dSGEdMF
TamWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWW
UZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZWWUZUWJ5UWJ5UWJ7Ue21qPba3H
ttZjW+uRq/XI1Xqgaj1QtR6XWg9DrYeh1n1a6z6tdZ/Wuk9r3ae17tNay/1ay/1ay/1ay/1ay/1a
D1StB6q+MVBa7mtsUqOxSY3GJq0uaEq13K+13K+13G+03G+03G+03G+03G+03G+03NcoqtWFQV8w
+oKmNJf7faemQ981+UKeLvT6wqAvGH3Bqgs3vpJPuulCrS80+kKrL2hKjabUaEqNptRoSq2m1GpK
rabUakqtptRqSq2m1GpKrabUKkrbxUJfqPSFWl9o9IVWX+j0hV5fGPQFoy9oSvWkaytNaaUprTSl
laa00pRWmtJKU1ppSitNaa0prTWltaa01pTWmtJaU1prSmtNaa0prTWljaa00ZQ2mtJGU9poShtN
aaMpbTSljaZUlM2xxR4u7bRvKh/UOGhwIPd0OOhxMODA4MDiYMQBvjV6HAQcRBwkPiBEx3QAehzo
caDHgR4HehzocaDHgR4HehzocaDHgR4HesjxjX4a9HgNerxE2k/PogkeTfBogkcTPJrg2/XXaN47
b30y3YpGejTSo5EejfRoJLne5TV65M3ayHs5QDd4dIPHsHi0iWIEeI3mja3wxulWtDqg1RQq4Hs7
zQM7zQM7zQM7zb86zZ06zZ06zZ06zZ06zZ06zZ06zZ26a+70aHaXL+DeAu4t4N4C7i3g3gLuLeDe
Au4t4N4C7i3g3gLuLeDeAu4t4N4C7i3g3gLuLeDeAu4t4N4C7i3g3geDew9+Z/YCHy7w4QIfLvDh
Ah8u8OECHy7w4QIfLvDhAh8u8OECHy7w4QIfLvDhAh8u8OECH942fHiv+wHf4yMnl+dHJxdHK8Pt
+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
eoVfSgWbQsYxSCbgJy+dfhcIJ9WBOMwYpgqzAjrH1Tzgmd+TPDrH1XM2OscVnePqydrzMjrH1TOx
595jhlzgsSxbcpeblzEWvgLC5QYHqkV4gXm5eX1F4G96yk133PTtTTW89U/c/n5If/El/lf9b1/u
/1uMbtInbrKf36Qi3LSyv4n1b9/gFjXYTfR/0/L99i2+VSveZEi/ieNv4vib1ug3UftNtvGbiPym
hfhN/H0Tf9+0/r6Jtm+i7Zto+/Zj3qjuuom/b+Lvm9bfN62/b6Lkmyj59nPuVP/eRMk3LbtvIuCb
lt038e5NvHsT797Euzfx7k28exPv3sS7N/HuDd69wbs3Vts36PYG3d6aboNsXfuVJ4UXhY3CoBAU
kgLd79kt/ZxJgbGSPLkp+QYl39gRJyHYfgXwG+A3oDY33+DmG9x8Y0VOPrEgn9j+FbXYfIVaNFvf
YOsbbH2DrW+w9Q1+uh2UkzxnAHUA1bySvGKAeYB5UOUBwgHC4Sf7dhAOEAYIA4QBwqANA2ABsKAN
AzwBngBPgCfAE+Cx2Jtg0nhAGPR7gTBdgHLMPcUAKFq1wJyX/wxxSk7vktO75PQuOb1LTu+S07vk
9C45vUtO75LTu+T0Ljm9S07vktO75PQuOb1LPnXvkk848snpvnK6r5zuK6f7yum+crqvnO4rp/vK
6b5yuq+c7iun+8rpvnK6r5zuK6f7yqfuvvKpxkO5eUqwhB8CZYkodIKizTtk54A7b+TKGJDo7RCE
pBcSdcH8Wv4KVaDoKY+3pDvcQe6OYsAUA+ZofDravVDUy7UweGMuMBuY8RwPBFgxco4rIJwgnCCc
IJw0+ATYdPNS0wnCCcIJwgnCCcIJwgnCCZ7pBwJsAWwBbAFsAWwBbNFiCzwLPAs8CzwLPAs8CzwL
PE3Pd/307uGAnHWz3XXjHRHtRrz33arLHZ7ulr3L+n8XPd9Fz3fR8130fBc937Uov4uV72Llu6z2
d5Hx/e94uBrlLla+i5XvYuW7WPkuVr5/l1vUfHfR8130fP8B36pN7+Lpu3j6/hnfqqHvWmffxdN3
8fRdPH0XT9/F0/efcad65q4t8fsvuKx+uv+S/9VddzH3Xcx9F3Pfxdx3Mff9t9wCEfVAu4vL77/j
cveWSP0uUr//B9+q7++w+x12v8Pud9j9DrvfWUzfm9T35yBsPZTvhBQcjOk7fH+H7+/w/R2+v7PO
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
j+23Ux0ozNxl0jIHmWfMHiaK5oT9gf4xQ92DbbkWvh3MnnJ7pn1Tzd809N6YnXqUvunXb/1b1e5N
RP4mIn8Tkb+JyN++pg/R9tvf6OMb+vimPsTNb+LmN3Hzm7j5Tdz8Jm5++0fQuM6NViT9JpJ+E0m/
fU8f4ua3H3BL10wk/SaSfvuMb9Uubz/Wh0j67Sd829X/qT5E0m8i6bef6UPc/CZufvsldzLoWl7f
ftX/t9i+/Rv/S3rfxN9v4u838feb+PtN/P32O25hRLacv4nR3/7AZQ2nN1H7G9T+BrW/Qe1vUPtb
U/teeFB4UnhR2CgMCkEhKRSFSQGpK16xfaAAsA1gG8A2gG1QVyH8BbANqObmAurmApg3hKQYS+Ur
1GJzgepsVGejOpurg6gUvxlMcz0DXvwCjYGLHn/Rwy+67dK/7Z98qW/RlDkukrGLZOwiGbtIxi6S
sYtk7CIZu0jGLpKxi2TsIhm7SMYukrGLZOzyj/qQRF0kURdJ1OV7oFFHXSRaF6m9F0nURRJ1kdp7
kSBd/pk71bMXqb0XCdJFgnSRIF0kSBcJ0kWCdJGSe5GSe5GSe5GQXCQkFwnJRUJy+ff/DDFKTu+P
0/vj9P44vT9O74/T++P0/ji9P07vj9P74/T+OL0/Tu+P0/vj9P44vT8+de+PTzheyelecrqXnO4l
p3vJ6V5yupec7iWne8npXnK6l5zuJad7yelecrqXnO4lp3vJ/6x7yScaT2RcpHdfJKUX6d0XCecF
4bwgnBeE84JwXhDOC8J5QTgvGDffWG++QZsXxPWCuv0GkV6Q2wtye2m53X/jV0wKPTSR2wtye0Fu
L8jtpeV2fw4yKR7ev0KSJ8A23rVRnc0/9m8GBTBvYN6M2b8B8wZmy6SIfVz102v/hww3pV8lk1c9
5qqHXEV3V4niVaJ4/Sp39i2Syatk8iqZvEomr5LJq2TyKpm8SiavksmrZPL6DzwV+miF4iopvX6n
L7d6cZW4XiWuV8S1185XietV4nqVuF4lrleJ61XiekVcF9TSuskVJmwV5fpT/tdQukqSr5LkqyT5
Kkm+SpKvkuSrJPkqSb5Kkq+S5Ksk+SpJvorurhKbq8TmKrG5SmyuiM0VsbkiNlfE5orYXBGbK2Jz
hdOuCMkVTrsiG1dk4wqnXRGJKyJxRSSux3pzQVOLd20g3BDRxds3oFo2rN0t8Gx+IMA2P9nPoRab
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
uFG4U3hQeFJ4UdgoDApBISkUhUmh64nQklh4kEZ4kD14kDR4kDR4kDR4kDR4kDR4kDR4kCJ4kCJ4
kCJ4kCJ4kCJ4kCJ4kBl4tBWwrXHtb9EuyFeca64417SNqT0trpgtlaJzKEXnUGbO/VuBV4rOoRSd
Qyk6h1J0DqXoHErROZSQc7/zSUG1VYrO/f+NAkMW5JIx5eocytU5lKtzKFfnUK7O/ZakoOZR9s6h
7J375a6lREtpPIfSeO7fqgWVz3Mon+dQPs+hfJ5D+TyH8nkO5fP8eGdb0q5Y0pThc/9fI0GpPvf/
NSCU83Mo5+dQzs+hnJ9DOT9HID9telPyz6Gcn0M5P/dvu58kSEr+OZT8cyj551Dyz6Hkn4Pkn4Pk
n4Pkn4Pkn4Pkn4Pkn4Pkn4Pkn4PknzsG/2ZQCApJoShMCt3aOANesbSRDnSQDnSQDnT/DW/fgLoB
dQPG5uf4xxsFEG4g3EC4gXAD4QbClqg2GrWRKBlr7Q7WLidt4WnDjhLyDSXkG4n8JGOcZ0mQlJBv
vyxQysw3lJBvKCHf/m2/SaKlzHxDmfmGMvMN5eEbysM3Ev5JaA54/9j/t90pEaS2OylF31CKvqEU
fUMp+oZS9A2l6NtvUV8pV99Qrr6REFGbppS0byhp38iffvKRJU6rwWk1OK0Gp9XgtBqcVoPTanBa
DU6rwWk1OK0Gp9XgtBqcVoPTavAXshp8qrESzkMD56GB89DAeWjgPDRwHho4Dw2chwbOQwPnoYHz
0MB5aOA8NHAeGjgPDfxFDw18ijEGPvz1H20cGlUp+Cn4Kfgp+CnZTMlmSjZTspmSzRQ5pUQyf4sB
RSM1JZsp2UzJZko2U7KZyGYim4lsJuSUiGQikolIJiKZiGQikgk5JZKYSGIiiYkkJpKYSGIiiYkk
JpKYSGIiiYkkJpKYSGIiiYkkJpKYrImuTBoJOSWSmCx8rghpS0wHISkMey2E7fPREUXaf6MkkiW6
KklifZU7MY3yZAx7vOLr/C/YJSEtCWlJSEtCWhLS+ja3NBzJZkk2S7JZks2SbJZksySbJdksyWZJ
NkuyWZLNkmyWZLP+mTd2zSWkJSEtjfLSKC+N8tIoL43y0igvjfLSKK/PeSpbDe32Uhr3hWW7PV1K
nFQa9/U7vtVIKglASQBKAlAIQCEAhQAU5HTF8HbF8FY44lyxt1XLxn7lwZUnhReFjcKgEBQYSdN3
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
MCUUMCUUMCUUJyUUJyUUJyUUHiUUHiUUHmV/p9pJcVJCcVJCcVJCcVJCUVFCUVFCUVH2O9WwCo8S
Co8SCo+yf6vWVpyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUUJyUeEq0
lPAklPAklPAklPAklPAklPAknsjPZDi0tUYpUKJToNwxxSgFSigFSjxRKdsGQy6UIBdKkAslyHwS
ZD4JEp4ECU/25yAkbQx5HmLTtg5SoOxXgiv+yleSAtIyfQXem8WVHj2IDblQ9t9MrlCdjepsVGej
OhvV2WiNlg1SoAQpUIIUKEEKlCAFSpACJUiBEqRAia5n17Lr2IvOngS6LkqBEi9Yrk0HyoUSyoUS
yoUSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwSynwS
ynwSynwSynwSynwSynwSL9TFNnEoBUooBUooBcr+rYaecqGEcqGEcqGEcqGEcqGEcqGEcqGEUqCE
UqCEUqCEUqCEUqCEUqDEi+HehpLXQSBtKiEpSpAUJUiKEiRFCZKixOsY98u/eVHYKAwKQSEpFIVJ
ofuZoUx2lCA7SpAdJciOEiRFCZKiBElRgqQoQVKUIClKkBQlSIoSJEUJkqIESVGCpCjRN29QzoJp
2hLUj9qQ2jYB9fP6acqXsn8rcEqcEkqcEkqcEkqcEkqcEkqcEhvz/WIOafPHxipLto1QKpX9/wYk
AVBOlVBOlVBOlVBOlVBOlf0WtYKSq4SSq4SSq4SSq4SSq4SSq4SSq4SSq4RyqoRyqoRSqYQyqIQy
qIQyqIQyqIQyqIQyqIQyqIQyqOxouukkAEqlEkqlEkqlEkqlEkqlEkql8nG9IHNLKKdKKKdKKKdK
KKdKkFMlyKkS5FQJcqoEOVWCnCpBTpUgp0qQUyXIqRLkVAlyqgQ5VYKcKkFOlSCDSpBBJUicEiRO
CRKnBPlSgnwpQb6Uvc4XCr4LhG16fmBdIpVKkEolSJyy/8avADNDGJEgX0q0kaaNMsNPeFBQW8mQ
Em1Gae+MBxYkJUUJJUUJJUUJJUUJJUUJJUXZb1FTKztKKBdKKM/J/m3D0cSvhCehhCf7t41SAqA8
J6E8J6H0JqH0JqH0JqGsJvud6kWlNwmlNwmlNwmlN9l/1JWUJCjPSSirSSh1SSh1SSh1yX7LpKB2
VTKTUDKTj5ejW1lComQm++U3ChonSm+y/6+OV56TUHqTUFaTUDKTUDKT/bc3CupupTfZ/9fAUp6T
UJ6TUJ6TUJ6TUHqTUHqTIL1JOL3JA3sK6U2C9CZBepP9Ny+uPCj4rhe/2bjiwqAQFJJCUZgUGGrt
//LA/4UUKEEKlCAFSpACJUiBEqRACVKgBClQghQoMQ4ZC8QgwLOBubnjgeWG7ChBdpQgO8r+m8UV
Ci11bVnqqrQBqV8W3N0moAcmoKApZN0JpUnZ/1dtlS8l4it/etSBUHKVUHKVUHKVUHKV/UWMuGQE
yLATyruy/69GVQKWUAKW6HQrDxxEAnmWySeUZSWUZSWUZSWUZSU6y8qD7BUP7DvKsrL/T2f1Cv7B
Cl4JWEJ5V0J5V/Zv1RdKwBKB8Bet3Ut3ZWIJZWLZL3ejazpQSpZQSpb92+4CMaQysYQSsITyroTy
roTyroTyrux30qbtFKFMLPv/TMEFPfSKXUlaQrlZQrlZQrlZQilZImDRYkj3cl1JWkJJWkJJWkJJ
WoIkLUGSliBJS5CkJUjSEiRpCZK0BElagiQtQW6WIDdLkJslyM0S5GYJcrMEuVmClCxBSpYgJUuQ
iSXIxBJkYgkysQSZWIJMLEEmliATS5CJJcjEEmRiCTKxBJlYou2SPf7acqdBFz3kemwpAUsoAUso
AUso3Uoo3Uooy0ooy0ooy0oouUoouUoouUok0lJMPW0pUbqVULqV/XJDkfwoy0ok8tOmEyVXCSVX
CSVXCSVXCSVXCSVXCeVU2e9k3mnTSCISExabkEYbHJSAJZR3JZR3JVKyoQNJkTDkZPz3yl9HlCKh
yl7566xS6KxSJELSK38dWgodWgodWgodWgodWgqdVQqdVdrvhKB6ra/TS/v/3c1/4P/ubwkJ55mC
80zBeabgPFPkwZC97udgU3CwKfJgyLYEcMIpOOEUnHDafzO54gf6Ln/Vgw/54ahTcNRpfw59ufwb
wG90xKJbFxVsGeM4VHAcKjgOFRyHCo5D7bf7yUEB8BvgN8BvgG9hKz9FbdoOTz30e6j3mG6znk5B
hU5BhU5B7Q8Q+D4O9WCtp1NQocNPoTNPoTNPoTNPoTNPoTNPUcjhYj7uBaAOP0Uhh70hr1NQoVNQ
UchhL/l0HCp0HCp0HCp0HCp0HCp0HCoKOVwMhl4VFnLYSz6dlNr/72aR+OmkVOikVOikVOikVOik
1EfS7tWWjkyFjkyFjkyFjkyFjkyFjkyFDkiFDkiFzkWFzkWFzkWFjkOFjkOFjkMFx6GC41DBcajg
OFRw+Cl85unJpjtnnoIzT8GZp+DMU3DmKTjzFBx1Co46BUedgqNOwVGn4KhTcNQpOOoUHHUKjjoF
R52Co07BUafgqFNw1Ck46hQcdQqOOgVHnYITTtHTUM8+PY/0VNGzQZvVdLApdLBpbyqh1gmn0MGm
0MGm/VtVRSecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiecQiec
QiecQiecQiecQiecQgebQgebdqRqa51wCh1sCh1s2r9VB+iEU+hgU+hg0/6tekUnnEInnEInnEIn
nEInnELnmULHmEKnl/YHqDd1jGn/X52q80yh80yh80zBeabgGFNwjCk4xhScXtofNSgEXz0oPPkq
ufKisPFVUZh85QcurvjJfk5R8F2r7+qt/Sdb+5x52q9QnTZJP1mgcgoqOPwUHH4KDj8Fh5+Cw0/7
7f4N9Wpp4cxTcNQpOOoUHHUKTjgFJ5yCE07Rs2rbz3qC7Hmxp0MdYwqdXgqdXgqdXgqdXoqFkPSK
WseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQseY
QseYQseYQseYQseYQseYQseYQseYQseYQseYQseYQoeWQoeWQmeVQmeVQgeS9mqrv3QyKXQyKRYi
0RYBHVEKHVGKPpD0xBagA0nBOaTgHFJwDik4hxScQ4p1TPNtLeD4Ufj40RNvDI4fBcePguNHwamj
4NRRcOooOHUU693g5q4NqBtQ+7DRE98ODhsFZ4yCM0b7b3jXBuYe3Bw2Cg4bBUeLgqNFwYmi/TlA
3VywiK5PPurAaT04rQen9eC0HpzWg9N6cFoPTuvBaT04rQen9eC0HpzWg9N6cFoP/sLWg0813sB5
fOA8PnAeHziPD5zHB87jA+fxgfP4wHl84Dw+cB4fOI8PnMcHzuMD5/GBv9DxgU8xzsDuXUBg1XxS
N0VYTUVYTUVYTUVYTUVYzQ8YQdQK2YFVFT01FT11/1bjVmFUU2FUU2FU929l0Ol4qoqemoqemoqe
moqemoqemoqeut95o6BBr3iq+/+aIRVYNRVYNRVYNRVYNRVYNRVYNRVYNRVYNRVYNRVYNRVYNTuw
quKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKppuKp
puKpJvFUk3iqSTzVJJ7q3hgYeDsYCBFW88Nh2+vwIIRaTUKt5ofDuN1eHsRcTWKuJjFXk5ir6Zir
RFjND4dtT5v0e4G7bMFObu9N0WcbfJJQq0mo1STUahJqNQm1moRa3W9ngLYLiYOvOtTqs81BSWDV
JLBqfjjsf0XzbsZDvVps3vw4Ae3Aqoqnul+mO9pW9OZHC32HWn1iA1Ko1VSo1VSo1VSo1VSo1XzD
JF5Ut11KOvhqh1p9EtiyQ60qwmoqwur+bSOVjCnUairUanaoVUVYTUVYzbfvcKcrp8oopun+vytD
+89uJUldhztVlNNUlNNUlNNUlNP9FvWLwp2mwp1mhzvt4KaKYJqKYJqKYJqKYJqKYJodwVSBS1OB
S1OBS1OBS1OBS1OBS1OBS1OBS1OBS1OBS3dQGgiKYJqKYJpEME0imCYRTJMIpkkE0ySCaRLBNIlg
mkQwTSKYJhFMkwimSQTTJIJpOoIp8UrT8UoJU5qEKU2HKSU6aRKdNIlOmkQnTaKTJtFJ09FJHYvU
IUiJPJpEHs23g1ImRvu2JSkWaV6YCmRZyg5KqhCkeWEUycCUFw8m4VQs0uxYpApBmgpBmhdkYyIb
MhvlBdqZDQEhkckoFaY0O0ypopOmopOmopPmBf6ZjP+O7qgwpakwpftlVUDxSlPxSvOCkLS/Rwcu
VbzSVLzSVLzSVLzSVLzSVLzSj3cumrXdQRTBdP9fva1Qpvv/anbFNE3FNE3FNE3FNE3FNE3FNN1v
YZ7q9beinKainO6Xuy8kSAp3mgp3un/bPSOJUrjTVLjTVLjTVLjTVLjTvLBHteinXn8r7un+PxPr
YrCsHiVIHSFRk5CoSUjUJCRqXg6u69QMhERNQqLm5eC6ztJAbNQkNmoSG/Ujlw6/3Q/0Xd21CCRB
UpMgqUmQ1CRI6v5AfwXmlkyipSbRUtPRUgmSmgRJTYKkJkFSkyCp+yuuFGifDagtqy8yKlw7S0bn
r3CtO09O57fobBadxOJL/KiTb0gyFVF1v/yi0EmTvsr//a6v8X+/tHMnSUQVdXX/tnPtSEQVfnW/
XBQalIRWAVn3yw1S0tuRWRWH9eO3vdPeAVkVhzUVhzU7DqvCr6bCr6bCr6bCr6bCr6bCr+6P6xws
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
8EzwTPBM8EzwTPBMumyCZ4JngmeCZ4FngWeBZ4FngWeBZ4FngWeBZ4FngWeBZ4FH2tZANfvYdEkb
9jB76wln//HkK7dq/tldfc7B8Z9ncPylzcH/9Ddf//JHAN/+7N9++/GL//r5Z7/+5W8//+Fnv/6v
P/rsZ9//w//xqz/8/37+67++fvj48/8G0P/mA37/85/td3yuL/7Lb376889++XF8/vLfP/v885/+
6LNf/x//8uv//hS4V+S//uDzX/7u1599/uv/+pOf/vo3v/z8D//1Nz/57L90+b/89Be/+ezzH3//
h5/tEvGDn/7i+7/56S9/8X/2t//nhw/3PzbG/x4Z/F+F7v/z//3GL3/x2X+/NY7G3S/+5Puf/+Kz
X+/t+Kfc9vlnv/rl57/5f7z5z+y8+P8M8781/v5X9cH/O3H5b/XAXxTdH5H9CROGvv/fKB//c5j+
N0vF/ztw/+dPf/Gjz37/v0/G/sfb6fNPQGb/zDPD/2BX/S/k1HfD8X9igvjvTmJ/MWR/YUz/wwP/
LwD2v6ttDxbfg8X3YPE9WHwPFt+Dxfdg8T1YfA8W34PF92Dxza7NXhgUgkJSKArgCfAkeBI8CZ4E
T4InwZPgSfAkeBI8CZ4ET4InwZPgSfAUeAo8BZ4CT4GnwFPgKfAUeAo8BZ4CT4GnwFPgKfBM8Ezw
TPBM8EzwTPBM8EzwTPBM8EzwTPBM8EzwTPBM8CzwLPAs8PRiJrAzBXamwM4U2JkCO1OwPgnsTIGd
CSvwXhgUgkJSKAqTwupCD/VgqAdDPRjqwVAPhnow1IOhHgz1YKgHQz0Y6sFQx/y2F8AT4EnwJHgS
PAmeBE+CJ8GT4EnwJHgSPAmeBE+CJ8GT4CnwFHgKPAWeAk+Bp8BT4CnwFHgKPAWeAk+Bp8BT4Jng
meCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngWeBZ4Fng8VBf4Fng6XX7DSm4IQU3pOCGFNyQ
ghtSgKl4L7wobBQGhaCQFIrCpLC60FJwQwpuSMENKbghBTek4IYU3JCCG1JwQwpuSMENKbghBTek
4IYU3JCCG1LAvuZgB2YvgCfBk+BJ8CR4EjwJngRPgifBk+BJ8CR4CjwFngJPgafAU+Ap8BR4CjwF
ngJPgafAU+Ap8BR4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngWeBZ4FngWeBZ4Fngs
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
kK8S5KsE+frnPM69rW5KtK8S7atE+/pjfqQhWyXj17/icg2ghP0qYb9K2K8S9quE/Sphv0rYrxL2
q4T9KmG/StivMvmsEu2r9MtVEn2VWrlKrVwltleJ7RWxvSK2V0w+KyafFZPPiiRekcQrkpgDAuED
AitGoPX276TfxTimXwr/pN/eaQwaRTTI3RW5uyJ3V+Tu67bhJ+Dt+kl6ccIkiZcq6U4C/vSP6XLJ
3RW5S3Rc+MDCitxdcQ+tiNsVcbtiKFpLyoaPOayIW4qcXQ062Bifxuw0OtiA2oDagNroTjNUODSB
0YDaDAOozb9hCryEJeA7mAPMAeYAc4CZ1cLrgxcGs7s520yMKF3NfmYxMxWidL3p0FRnYrPHp/sr
gJlaTCQJsARYMu/dDwShCSCh507fE6ge8HvoeLvH0MD8Cj/n/jFQO0pVh5474DvgO+C7wfsrwHfA
d4a3g7mDuRszDxxgHmAeYB5gHmAeYB4gHMAYfiDzPgA2ADYANgA2ADaY9wmeCZ4JngmeCZ4Jngme
CZ4Jngke+xDvMQThBOH0vPsKUHEm+inlEyr/T/1Vfp36bfmzvsUtMG1HnuKl+zYu9HJ8/TZ/oyfh
s5Nw3WSG2SRTN8nUDZmKW08ydZNM3bQ53iRKN4nSTaJ0+yPuLH+ZZOommbr96VefceWJ+3jiPp64
jyfu44n7eOI+nriPJ+7jift44j6euI8n7uOJ+3jiPp64jyfu49ca9/E15k55gkqeoJInqOQJKnmC
Sp6gkieo5AkqeYJKnqCSJ6jkCSp5gkqeoJInqOQJKvlvCCr5CnOHhHWbXaJwRxTuiMIdUbgjCndE
4V6iMJYvzHKDryRNvHrveF12ZOKO12VnC7qzBd0RfDuCby/BF0iBsBTYEYU7ecQtF3Zk4o5DZkcC
WmTs7DN3xNyOmNsRcztelx2htiPUdpwtFj07hU4sg3Z2lRZGO7vKHTG33wPVwOwONmM+aQDDvahd
pUXYfr+9tgcItbBQ25GJ+xcP9O3Mxf1j5qJ5LtwvulMyEeF4XWFSgg4GHQw6GMxX0J1gMANCuu9i
DAPwAfgAfAA+AB+AD6AmCBNgySsSYAmwBFgCLBneBE+Cp3Sh9e5gAiwBlgBLgCXAOsC6hw4YHYSd
J3d/BcIOwg7CDsIOws6IdYB1gHWAdYB1gA2ADUZsgGeAZ4BngGeAZ4BngGeAZ4BngGdAqyaJAbAB
sAEdmlomCCcIJ8tF8PYJ1AnUySumn+MfA3XCegE3mfywmttA7lUVwUd+6KOWvFrwarmrxe6AmcLk
Uz/T+B/aKB7aKB7aKB6SZcd3uaUeKaF2SKgdMvQekmWHZNkhWXb8gDtZtYpTDkm3Q9Lt+CO+LTCS
boek26Ed46Ed46Ed4/HndUuyJhSjHdoxHn/BZRHRoa3jIavw8RO+XWiwChYvHjIYH9pDHtpDHtpD
Hn/Hb1kWi12Pv+dvTezxD/zN/JYee2jDeWjDefwT39aU/DN/13hrC3poC3r8C9/WzGovemgvevwb
39ZAa1N6aFN6SBIfSOIDSXwgiQ8k8YEkPtiUHmxKD8Ttgbg9ELcH4vZA3B6I2wNxe7DPPEq4hjV1
K+gHO8+jpGxYZT8QtwfxDwf7TGvzR4nbsFp/IHcP5O6B3D2QuwdGXPYA4T3AcUvizmhYEnc/mQ6e
dLDRncZq23m7VY0OcXRYszOGDfLsDGajy81dNgxYvDOYg+EdDF0DfAOz5fcAz+Clw+8C4eClg+Ed
SNDh5zCqjVFt7g5jOOjpYMCHOwi1WPwPX2FUg1G1+B+MfEAAwbwHvQimMhiEYBC87HrRn34FfZ+8
y4v+9CvoKWuqV0pUhMMLH3Yc75EOdIXDS5gXLXQFUlBeDXqR9ILFx6sOusLh5cYri5cUrx5eKFAR
jpsHzXFmK3NTB48ZxHxhdjCpd/B08JjCTdgdPB08HTwDPCbjAZ4BHtPqAM8AzwDPAI9JdIBngMd0
aKozaQ3wmDYmeCZ4TBKe3AmeCctMmOi+AsIJN02g3g3ToRuAn3DThJsmvZj0675Cvyb8NVlASo2o
KkSOy65F0eHZtRI6SrvsbbUNccx2Gd0I3Q6Hbp9SNc5vc1m9P6VznNI5zu/yrQbglM5xSuc4pXOc
0jlO6RyndI7zB9x50tBAnX/A3+6Qe1JdkDpyym59Sgs5pYWc0kLOH3JLDZbUkVOe6PNHfCtaOWW3
PqV8nD+ub2v9OmW3PqVqnFI1Tqkap1SNU+bqU+bqU+bqU9rDKe3h/Cee+kGj5kkG7FPawynt4ZQB
+5TScP4rt9RUypJ9Smk4/51va0alPZxoDyfaw4n2cKI9nGgPJ9rDifZwoj2caA8n2sOJ9nCiPZxo
Dyfaw4n2cLI1P9EVTnbkJyrCiYpwshE/0QwI4Q+H8J+oCJ8bx6+ebyR8FOBEwzh/yzxVkobDAddX
UGMwCGawYDRgMTSM87fMXeEf85sKteSUwHXFlMHQlfLh4wInqobPDZzm45uBk+GFk827qBGcJLiu
0EHY7+a79JOZ5WbwxgxUmIUt/mn6NtWaQJHx5z2nnouA6jzyHnCPc4DHgxmsauknA8xD5xHz+HgQ
3FPfngBLgCXAEmAJsARYAiwBlgxUgqeDpzPdflcHWAdYB1gHWPePAdY9p74Cwg7C7jmlFx2oHajd
Y+jbwTzAPBjDAdQB1AHUYTqEmzw+A6b2QA0wD4AN3j4AP3y77wLzMGZfAfME8wTzBPME8wTzZHgn
wzsBNgE2ATYBNgE2ATaBUUK6mKpU6+Kj4qLioeKgJnHbtLNvkrJNUrYhZdPdrZskbtvv1OWirSa5
2yR32+/zrQaiSQA3GbCbtvhNMrVJpjbJ1PYn3Mk6VITZ/pS/NYANcVtk2iRum8Rt016/Sco2SdmG
lC2CbpKyTVK2Sco2SdkmKdskZZukbJOUbZKyTVK2ySncJFObZGqTTG2SqU0ytWkj3iRK2y9Bo2lv
2og3idKGKG2I0oYobYjSRuSWTzM1ZGpDpjZkakOmNmRqQ6Y2ZGpDpjZkakOmNmRqQ6Y2ZGpDpjZk
akOmNozbDQna2GQ3fLg+gdXYbTes3A3XbUPONeRcu+Vc564GwgZCC7POAxtQG1AtwzrvamBuYG5g
bkBtfqmf7Ns7DwRzg4c64JvBM7wB+AB8MLwB5gCzFZThu8AcYLY+MfxAwAfggzV6+F30IgAfYA6g
Ji9NnpyM8wBqugHmhCSSFXn4KzAn45xATaAm45yoNV70B31PMHvRGn4y4Ds60PD48C5Lx8FLO8PC
IuTVx8sOLmCO4IWP4DWCc30Wr92CczCqJn6TsWnVBGlCsrwc7g4NU4Kn23PqSfGAD8B76DxQgynw
sHg0BsDcQffL3TGwCZ4JngmeCZ4JngmeCZ4JngmeyXIxmcH7ySCcTMH9LqBOuHKizt5vF/jiilL5
ihGKDYoJArad0F4Bjm/xN1M+mekbdz1f4jYkbkPiNuQUju/xW3ekYGh3G7/L5YIlcRva5sb3+bbQ
StyGxG1I3IbEbUjchrawIeHqE1c+VhU/5O+FxkpDcxaSuyG5G5K7Ibkbf8lv3zR2GprWkNU9fsJl
EV1IJIdEcvwN39YISjaHZHNINodkc0g2h2Rz/BN3Bo0az3/m705j0BAFhwR5SJCHBHlIkIcEeUiQ
h/bEIfkdkt+B/A7kdyC/A/kdbIUDsR2I7UBsB2I7ENuB2A7EdiC2A7EdiO1AbAdiOxDbgdgOxHYg
tgOxHYjtQGwHO9dAWgfSOpDWgbQOpHVg9w6EdCCkw6SGbKbA6BGmMURyIJLDBGSSMXUgksOTzSYy
2ESGZxm5G8jdQO4GcjeQu4Hc5ShfvL+4C4QBid/PAWoAtVxt7y9eAYEG/BX0nZUIkUyxoasx+TEM
FoxPGuFB46TBQCXgE6gJnqTL6S7Hb0J+kie25IkteWJLntiSJ7bkiS15Ykue2JIntuSJLXliS57Y
kie25IkteWJLntiSrzu25CvNafIErjyBK0/gyhO48gSuPIErT+DKE7jyBK48gStP4MoTuPIErjyB
K0/gyhO48rUHrnyNOVBIrR3ve3iSqUhPBQOWTEUyFempgCIS8kkGPv1kP4cfd8ins3J64D26tZUh
jXeQxjve9zB3Br77CvPf6U5nbjtTmv4N3enMbacXnV50etHpRacXg14MMA8oYgBsAGzw0gGwAbDB
8A7wDPAMCNyzMwA2ADYANgA2ATYBNgE2ATYBNgGGUEaLCLSIYEcdlsbsqMOi1sIVOVo6aNFFUUXR
RFFE0UNqR50S8SkRnxLxKRGf2j+nBHpq25yS4/n7jBGEW/Sa2j/nD7isXqQke0qy5x/xbeGViE+J
+JQJPOWIT0ntlNROSe2U1E7tllOiObVJzr/i4TUKEs2p3XJKIqckckoi5z9wS42YRHNKNKe2zalt
c0rapqRt/gt31iBL7KbEbkrspsRuSuymxG4idhOxm4jdROwmYjcRu4nYTcRuInYTsZuI3UTsJql2
nf0+kb+J/E3kbyJ/E/mbyN9E/ibyN5G/ifxN5G8ifxP5m8jfRP4m8jeRv4n8TeRvIn8T+ZvI30T+
JvI3kb+J/E3MuiT8v64ArAHMWlf3S0HYQNhA2HhO8OMAYYAwQBggDBAGCAOEwYgFwAJgwYgFeAI8
AZ4AT4InwZPgSfAkeBI8CZ4ED7xs7jWjmqnMKqb8m7Q8zh7MDp4Ong6eDp4Ong6eDp4Ong6eDp4O
ng6eDp6OnmyBd78dhAMRaDwDqIMfD0SgoQ43wDzAPMA8wDxQZjr6iTs46MWgF4NeDBjWgzAY3gH4
yfBOME8wT7ozgTqBOnn75MkTqJPhnQCbAJsAmwxviZyaiZqHmoWagxLfNdpdIqdL5HSJnC6R0yVy
ukROl8jpEjldIqdr69i/z8AIddfWsUvAdAmYrq1jl1zpkitdcqVLrnTJlS650iVXuuRKl1zpkitd
cqVrp9clTrrESZc46RInXeKka4PXJUW6pEiXFOmSIv1n9EJD3iVOujZv/Rd8W4MrcdIlTvov+bbG
XHKlS6505EpHrnTkSkeudMyxlCEJlyHpSJqOpOnknXWFko7I6YicjsjpiJzOTq8jaTqSpiNpOpKm
I2k6kqYjaTqSpiNpOpKmI2k6kqYjaTqSpiNpOpKmI2k6kqYjaTqSpiNpOpKmI2k6kqYjaTqSprPT
6wiYTgpYarqEa7p09n6d8ABXeemInH5v9Qf6+DAewAcPDG4PwAc/DsB7WzjYvA26443ZoF9Bv4J+
Bf0KxjnoRTDOAfgweD8HzAnmZGkevCIBn4BPQ+XtCeYEavKK9HP8Y6AmMn4wKQPwCfgEfEIkCeYO
5s44d6B2oHbG2Wv94MkdqB2o3hsNXspiYL7HNen6Oh0512+GNVeyzt40Zoq66Qc6nP4N4m36xwz4
pIMmEtOG59QT59nx8E4/mWHxgA9ofvrJdMc9vaHyUmM2VCOcTIHf5SdPCHuyV5lgvq8gpKfBM/KT
Ab/voqf3j5HWFe3ESYjY75Vk0vdKW7vfa8uk7yVTawQ5NHHUsBUt1UjVOJU2MCRcx7e5c6OhwRu/
zd87jYOGujMkicd3f/V8J8eQ/B6S30Pye/weL3K3qj+S6OP7XK7+SaIPSfQhiT4k0Yck+pBEH5Lo
QxJ9SKIPSfQhiT4k0Yck+vgxr6ox/Al/12BKxg/J+CEZPyTjh2T8kIwfkvFDMn5Ixg/J+CEZP7RT
HBLtQ6J9aIM4JNGHJPrQBnFIkA8J8oEgHwjygSAfCPLBBnEgtgdie7BBHEjrgbQeSOuBtB5I60EJ
Fh+Q4TjM9VWRGvHUnIu5rrgB1EoO75MyA4k+kOgDiT6Q6AOJPpDog6gjDtqED9oMoo44cROcuAlO
3Fy/oYMnHSzxPxD/g2AjTuUEp3LCp3IGmsHAUetzOgM2HubWm/mCt8OF6AoDXWGY/diMDrMHmgEn
gMIngAbeAB8FGugKPhM0UBHGPYOeL09KAL6suZwkCp8kGuxcxz286bvoTtAdD10yGh5Dj5iHJZgU
98vdSSYlGcxkDG+ErGXJxCWDafCGajxJd+4H+jlATbpzPxA6THpxN+hO0p2kO0l3OlPQmYIOwg7C
DsIOwu4B5xXdUHlXB2oHaqcXHYTdt/suEHbYPE0/YB5gHgy4ezEAPwA/oB93cNCLwTgPqGWAeYB5
gHnA1B1G8/gM2MEDNeACjxhSkV3yQGkYKA0DpWGgoPi42UB7GGgPA+3BJ9EG++aBQjBQCAb75oGw
H2gPAxk/kPH10/ph/ax+xE/UhSnRPhHtNeFTG+gpsT21gZ4SwFMCeEoAT22gp8TtlIV2SspOSdkp
KTslZaek7JSUnZKyU1J2SspOSdkpKTslZaek7NS+eWrfPCVT518DX4M1JVynhOuUcJ0SrlPCdUq4
zp9yZw2ZpOyUlJ0/49saSYnbKXE7f8G3NcCSu1Nyd0ruTsndKbk7kbuz5G5wnjB8nnBSb80HCydl
1nzCcCKbJ7J5IpsnsnkimyeFW3wucSKkJ0J6YsX1kcXJ3noim+ctm4szJ7J5Ipsnm+yJSJ6I5IlI
nojkSY1gn4qchEP5eOS8hfTw7YA/AV8CeCKAJwJ43gJ4sLoNxqcB3nJ3MGKNXjSAWe7WajKRuxO5
O5G7E7k7kbsTuTtvuevFaNALy91Bdyx3B/1q9CughKAXwRQE4C13h+9iVAPwAfgAfAA+AB+AD6AG
CANgwSsSYAmwBFgCLBnVBE+Cx/Jy+jkAS4AlwBJgCbAEmEXONAwQdp7c+aqDsIOwg7CDsIOwM2Is
ll52vIp4wfDagHScN5ubu83UZk/zoBnNDGK+MDsM8JiwB0w0Iezp54DQ5Df9ZKCa/IbH0C8Fs2fH
wzvB7Hf5yRPemWC+G55uejFZEybdmQwvcg0ROBGBExE4713y9CD8513np/pwv0N/pz66Pnx3XZ76
+JY+vq2P39bHd/TxXX18jzvhYiE5PylGmPOT56ff5e+X/v49ffy+Pr6vjx/o4w/08YfcstBY9cUf
6eOPubzp7z/Rx5/q44d8+9bff6aPP9fHj/TxF/r4S338WB8/4c6dxqEv/oq/T/391/zdaNTo/o0+
/pbLSaPG++/08ff6+Ad9/KM+fqqPf9LHP+vjZ/r4uT7+RR+/0Me/6uPf9PFLffy7Pv5DHyWAr8aL
xkJjpbH9RmQneaI+nqiPJ+rjifp4oj6eqI8n6uOJ+niiPp6ojyfq44n6eKI+nqiPJ+rjifr4aqI+
vtJMJE9IyRNS8oSUPCElT0jJE1LyhJQ8ISVPSMkTUvKElDwhJU9IyRNS8oSUPCEl/7UhJV9h3pAL
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
WLEelUWk4ja62LFLVHVxYf8Od2IS5ckY9HjF9/hbsLsYtItBuxi0i0G7GLT/gFsKjviyiy+7+LKL
L7v4sosvu/iyiy+7+LKLL7v4sosvu/iyiy/7X/HG6rkYtItBu6i8i8q7qLyLyruovIvKu6i8i8r7
z3gqLoYKd+mi+45FuyJcuuRRF933f+NbUVIXA3QxQBcDdBigwwAdBugIpgWj24LRrROAs2Br68Ub
15U3V3YaB42TRqMRNKCk4bs6jUGj6Alu6XBLh1s63NLhlg63dLilwy0dbulwS4dbOtzS4ZaOzOow
ScdWsGD768isMtSVLa6MbmVBq4Rbw/fq1aq00lRgpQ2s3jxJMkuVVpoqrTRVWmmqtNJUaaWpwEpT
gZWmAitNBVaaCqw0FVhpKrDSVGClqcBKU4GVpnIqTeVUmoqnNBVGaSqM0lQYpQ2s1XRWEkolTtrA
28MYiBNUx6QNvKUMjVhCdUya6pg0lS9pKl/SVL6kqXzJdSfW+TIgDliiLIcDmVC2QpU4aSpo0lTH
pKl8SVP5kkb5kuumF1fcWGjAG9NXNhpvGjjuyqpI1ZJGsZJGaZJGaZJGaZJGaZJGkZHrOX5F9RZO
oJJIo5LI9WNgnCA8gXHynNO/2WngFp8GD+YTzCeumOkrgD8Bb9ky6WCxDQVEGgVEWv2i7H6V7m36
frzwfOHB0PBMGKnMfErF35R4vynxflO+/aZ8+0359puS6jcl1W9Kqt+UVL8pqX5TCv2mzPlNCfOb
EuY3JcxvSpjflDC/KWF+U3r8pvT4TVnxm7LiN2XFb0qG35QMvykZflMy/KZk+E3J8JuS4Telvm9K
fd+U6D5XbJkrtkylvm9KfX9d1uwrB35TDvzr8kpjoyFaUHr8pmT4Tcnwm3LgN+XAb5UDfyUx+oqF
U8nwr79FGMqKf/1dU4y0IT1+Iz1+Iz1+Iz1+Ixn+dXvQSL7aaRx81bly0vBLffvgip/ju/zVrEax
FsnwG8nwr+fMaoR/s3DFP2aAg56e9Ku4jjz5jTz5jTz5zXnyV6IOVqIOyJPfnB5/xWpKevxGevxG
evzrN7xUXBdKlRxKlRxKlRxKlRxKjByffC/zXBWMlA/5+vukYbj1vG/rQ3UvlCo5lCo5lBg5KjHy
ikFvLYNeKENyKDFyKB9yKB9yKB9yKB9yKB9yKB9yKB9yKA1yKA1yKA1yKA1yKPtxKPtxKPtxKPtx
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
UL6SUHaSUHaSUHaSaxZMpzVZYl7lK7ku1+SJi5WvJN7wbJmElLjk+ltEqgwmoQwmoQwmoQwm8b5Z
tcOqZVchp8l1BZKWveRqvPmNf7zS2Gj4NzsNWKzMKxvmFfKexPsWmd1XgkbSYJh648qgUSMEq5IA
JUiAEiRAiffNqp0ltPOK0z3tXGHp6LzrpF8nvTjBfALsBHzZIzYsFGRLCbKlBElSPv9mAL74WtlS
QtlSQtlSQtlSQtlSQklSQklSQklSQrlRQrlRQrlRQilRQilRQilRrndqnJQbJZQbJZQbJZQbJZQJ
JZQJJZQJ5bpTA6uUKKGUKKGUKNe3Gm3lRgnlRgnlRgnlRgnlRgnlRgnlRgnlRgnlRgnlRgnlRgnl
RgnlRgnlRgnlRoldrKUCJ6ECJ6ECJ6ECJ6ECJ6ECJ7HDPwNyKEuNSp5ElTzZMMOo5Emo5EnsqJNl
f6H2SVD7JKh9ElQ6CSqdBAVOggIn13NgkjKE7DfblJ2DkifXleCKv/KVpAG3DF9B5o3OlaIe2Iba
J9dvBlfozkl3Trpz0p2T7pyMRvEGJU+CkidByZOg5ElQ8iQoeRKUPAlKnkT1s3pZfawNZy0C1ReV
PIkDCVdmA9U+CdU+CdU+CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6
CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6CVU6iQNVscwbKnkSKnkSKnlyfSvSU+2TUO2TUO2TUO2T
UO2TUO2TUO2TUMmTUMmTUMmTUMmTUMmTUMmTOCD3MpIctwApMwlFUIIiKEERlKAISlAEJY6b7qd/
c9A4aTQaQSNpdBqDRs0zpEw1lKAaSlANJaiGEhRBCYqgBEVQgiIoQRGUoAhKUAQlKIISFEEJiqAE
RVCCIihRN5+InImkKStQPeqEa8v8U8+rp6k+yvWtwKlQSqhQSqhQSqhQSqhQSqhQSpys95M1pEwf
Jzss2TVCpVOuvwuQGEA1VEI1VEI1VEI1VEI1VK5bNAoqphIqphIqphIqphIqphIqphIqphIqphKq
oRKqoRIqnRKqmBKqmBKqmBKqmBKqmBKqmBKqmBKqmHKhqaETA6h0Sqh0Sqh0Sqh0Sqh0Sqh0yue9
gkwtoRoqoRoqoRoqoRoqQQ2VoIZKUEMlqKES1FAJaqgENVSCGipBDZWghkpQQyWooRLUUAlqqAQ1
VIKKKUHFlKBQSlAoJSiUEtRHCeqjBPVRrj6/aPguEJbZ+Y1lidIpQemUoFDK9Ru/AsyQMCxBfZQo
A00ZZJqf8KahsZIRJcqEUlEZb6xHKoISKoISKoISKoISKoISKoJy3aKhVjWUUO2TUF2T69uCo4Vf
BU5CBU6ubwulGEB1TUJ1TULlTELlTELlTEJVTK47NYsqZxIqZxIqZxIqZ3L9qDopTlBdk1AVk1Cp
klCpklCpkuuWQUPjquIloeIlny9HjbKYRMVLrssfNEQnKmdy/a2JV12TUDmTUBWTUPGSUPGS67cr
DU23yplcf4uwVNckVNckVNckVNckVM4kVM4kKGcSLmfyxpZCOZOgnElQzuT6zcGVNw3fdfCbkytu
NBpBI2l0GoMGpFZxL2/iXih5EpQ8CUqeBCVPgpInQcmToORJUPIkKHkS7eaxgA0CPCeYS3a8sdpQ
DSWohhJUQ7l+M7lCo7iurErVlTIe1cuCu8v888b8EwyFLDuhsijX3+qt6qNE/Pavnm0gVEwlVEwl
VEwlVEzlehEUl1CAjDqhOivX3xpUFVwJFVyJKq/yJjAk4GeZe0JVVUJVVUJVVUJVVaKqqrypVvHG
tqOqKtffTFbt4N/s4FVwJVRnJVRn5fpWc6GCKxEwf2e0a+uuyiuhyivX5Rp0LQcqwRIqwXJ9W1Mg
CanKK6GCK6E6K6E6K6E6K6E6K9edjGkFRKjyyvU3S3BHPNSOXUVZQrVYQrVYQrVYQiVYIpCiHZKu
7bqKsoSKsoSKsoSKsgRFWYKiLEFRlqAoS1CUJSjKEhRlCYqyBEVZglosQS2WoBZLUIslqMUS1GIJ
arEEJViCEixBCZag8kpQeSWovBJUXgkqrwSVV4LKK0HllaDySlB5Jai8ElReCSqvRNkki/7Kaiei
iyK5oi0VXAkVXAkVXAmVVwmVVwlVVQlVVQlVVQkVUwkVUwkVU4mEWzpLT1lKVF4lVF7lulxQxD+q
qhIJ/5TpRMVUQsVUQsVUQsVUQsVUQsVUQjVUrjtZd8o0krDEQIoNhEYZHFRwJVRnJVRnJVK8oYNI
kUjIAf3Xzl9HkyIRlbXz1xml0BmlSJikdv46rBQ6rBQ6rBQ6rBQ6rBQ6oxQ6o3TdiYCqvb5OLV1/
1zT/O3/XfItJOMcUnGMKzjEF55gibwlZ+34ONAUHmiJvCVmWAE42BSebgpNN128GV/xA3+Wvivjg
H444BUecrucwl9O/AfzJREymddLB4jGOQQXHoIJjUMExqOAY1HW7nxw0AH8C/gT8Cfhitu6naEwr
2KlIv0i9aLrMejr9FDr9FDr9dD1A4OsY1Ju9nk4/hQ49hc46hc46hc46hc46hc46RYcPJ+txbQB1
6Ck6fFjOeJ1+Cp1+ig4f1pZPx6BCx6BCx6BCx6BCx6BCx6Ciw4cTYqhdYYcPa8unE1LX3zUsYj+d
kAqdkAqdkAqdkAqdkPostGu3paNSoaNSoaNSoaNSoaNSoaNSoYNRoYNRofNQofNQofNQoWNQoWNQ
oWNQwTGo4BhUcAwqOAYVHHoKn3Xacbhz1ik46xScdQrOOgVnnYKzTsERp+CIU3DEKTjiFBxxCo44
BUecgiNOwRGn4IhTcMQpOOIUHHEKjjgFR5yCI07BEafgiFNwxCk42RS1DNXqU+tILRW1GpRZTQea
QgearqESap1sCh1oCh1our5VV3SyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSy
KXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSyKXSgKXSg6UKqsdbJptCBptCBputbTYBONoUONIUONF3f
alZ0sil0sil0sil0sil0sil0jil0fCl0aul6gGZTx5euvzWpOscUOscUOscUnGMKji8Fx5eC40vB
qaXrUY1G8NWbxs5XyZWDxslXncbgKz9wcsVP9nM6Dd81665y6++49TnrdF2hO2WS3tmgcvopOPQU
HHoKDj0Fh56CQ0/X7f4N/Spu4axTcMQpOOIUHHEKTjYFJ5uCk01Rq2rZz2qBrHWxlkMdXwqdWgqd
WgqdWgqdWooJk9SOWseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseX
QseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQseXQoeVQoeVQmeUQmeUQgeR
rm5rvnQiKXQiKSYsURYBHU0KHU2KOoi0YwvQQaTg/FFw/ig4fxScPwrOH8W8l/myFnDsKHzsaCcS
g2NHwbGj4NhRcNooOG0UnDYKThvF/IK4uesE6gnUOmS0E9fBIaPgbFFwtuj6De86wVzEzSGj4JBR
cKQoOFIUnCS6ngPU0w2z6PxNyDbwRAI8kQBPJMATCfBEAjyRAE8kwBMJ8EQCPJEATyTAEwnwRAI8
kQBPJMB/RyTAV5pf4AkzeMIMnjCDJ8zgCTN4wgyeMIMnzOAJM3jCDJ4wgyfM4AkzeMIMnjCD/84w
g68tv8CVjPCovXQ6OQw5YZKcMElOmM8/7uQVOkgk6My1B7m7DnLoOWFtpVI6al9+Ncg4d5AUqzx2
R23Dc72T8jkp5+nbQeiknM5c6xR8J+BP8kCdYD7B7HxjTrjpzHvOs1dzexAaQLqYXO+stJVuaSvP
fjk+3GuPXnmCyvHhHpf3s3zj5fj4Nt+WF0O6sFLKpFLKpFLKpFLK5FaOj9/jzkajAP0+f5en/vv8
XYAqE1PlXarcMuUDL8fHn3CLwRfqcob/sC6PGpFKwFTZZn7Et+VRq9wy0o6VUia3yrukLGVKKZOV
UuZgm6pMMlmZZA5S+yuTzPV3OborE1OllCl3ScWiKEuZEshct2w0KgxCK2qllDlqm5qVSeZg83nU
5vNqMN6jxrvCVMq7XvmbtNhueBkPaHpALgO/WBmJD9LDO7fMwR6Q3DJJbpncbl6dZLixA/IA8sSj
aTe7g1KKaY/aOSbZZvKLbDPm1UmumwM8Jy+1d/3kOSc/dlDKyZBrg3g16IVjUU7AnwbvrwB/At4u
R8ei2Ml4GvNOg6ADB6UUGx94Dt+1ga1NGxM063LZKsuQXLvyshaLe9+1gf0Od3pwy+D5Xf6uZ32P
v+uhZbUt02y5b8TG77LI/ifTfl5YKyVRFtt/nprKud1KIn9+p0zc2enCrI3G50aJATeyxufzk7Vq
d5LJfV67paR2csV1ksJ18r910rl10rl18rh1ErgNEh53MrB1kq11cqd1spx1cpZ1ko51Eop1kmd1
kmd10lp10lp18ll1klF1kkR1ckF1ckF10jp1kjj17YaaPCeBmkCVLfz1+QfLsn/aP/2WMk92ot06
MWgdk3fHlt2xXncM0R27cseu3DEodwzKHYNyxzrcsTF2bIwdu2HHDNgxA3bsfx37X8f+1zHmdcx3
HUtdx57WsY11jFIdo1THBNWx/nS2rZ19X2eL19mqdfZonY1VZxvV2eN8bsheezUGjVmNzm9qnHcG
c2cwdwaTHN8XgZ/fpMcPerpAxa/SND83dNfncdNAjYSyOg9stXZ+ZqCivmTiskbj8wKjfdnnYa/R
mPXAz4xbDDdLMH+eLLHXYKA+X6lpmsUEn99Yt0MSn//Uk8cX3NCh6+4r0HWHnDvk3GGUDqN0kzGc
N+CYwQOLbF61/HSiyjrxXp2grk7AVid2qRPg0wm/6UTddOJnOgElnYCSTqjH9VL/hldoqb2+8l2w
Q4NEa4l6MZWEBnQCATq++o7bv+O07/jnO371jgt95M2wtWjhy75nEKf29fadBs8JEAY/DvAEMO67
4Mr7dl/5z0H4PCbFXzhWO/7Pjr+z4+js+Ao7vsKOb7Dj9uv49LTmHdtndURr3ljv503ungzGBLLH
YP5PLIiRtWMz7dhEO5bOjpnsM3OoowNdu2MIuV7BXcFKUCPHXrmz8e1sUDubxut2lpbwc7iSXpDA
k7wiWWySdyVLXfKuZKnTEHpFua6w5nXu6vxYq/t43+A7y2Fx54uh21nUd5hyZ2HbS1m9Giy0g5cO
P4c1b/LVpMuTJ08we5mfAJu8a9LlSS+MsJ58MKcHvHjAgrPW8s9qsWZwUFRtULrlQjjqNyLwz7MW
LOF6+6TsSqfMW6faUycv/kQL71kr3GecFaUQ5JRM0loO6sMgJa7Gi8ZCY6Wx0XjT2GkcNPzARiNo
JI1OY9CY1ag6LgvlWxaqtqALXg3wBHgCPAGeAE+AJ8AT4AnwBHgCPAGeBE+CJ8GT4EnwJHgSPAme
BE+CJ8GT4EnwJHgSPAmeDp4Ong6eDp6+/i9ka6QsTbI4pOrTpOrTpOrTpOrTpOrT5CcsRKWdV1ka
1Z5J1Z65vpV+ryI0qSI0qSI0ycqTVY1GtWdStWdStWdStWdStWdStWeSpSpZqlLVaK6/tc9SWZpU
WZpUWZpUWZpUWZpUWZpUWZpUWZpUWZpUWZpUWZqssjSqRpOqRpOqRpOqRpOqRpOqRpOqRpOqRpOq
RpOqRpOqRpOqRpOqRpOqRpOqRpOqRpOqRpOqRpOqRpOqRpNUo0mq0STVaJJqNMnynSzfSX2a/HQb
PivBKoVqkkI1+em2/FcIDBVrkoo1ScWapGJNumIN9Wny0234FN0noiI/3eb95PbaeaMnJ4VqkkI1
SaGapFBNUqgmKVSTaNeJdp0uXeNCNTuWPcrSJGVp8tNtHO0M72k89KvY5sOPE9AqS6NqNIkOn+jw
+eFHC30VqkFupgrVpArVpArVpArVpArV5Af+gk53y+BWpWuqUM2ONa0K1ag+Tao+TSKWU4VqUoVq
UoVqsgrVqD5Nqj5NfvwJd7pz6oyqwiTi/Gow/mVUU8GYrIIxqhOTqhOTqhOTqhNz3aJ5UcGYVMGY
rIIxVR5GNWBSNWBSNWBSNWBSNWCyasCo9Euq9Euq9Euq9Euq9Euq9Euq9Euq9Euq9Euq9EuilqRq
wKRqwCQ1YJIaMEkNmKQGTFIDJqkBk9SASWrAJDVgkhowSQ2YpAZMUgMmqQGTrgFDxZd0xRcKvSSF
XtKFXqjvktR3Seq7JPVdkvouSX2XdH0XV3NxERdqtyS1W/LjFikDj0ZZN1XNJV8sBWXBrLIuKuKS
L6iozJovE5NwqppLVjUXFXFJFXHJF7wx4I2ydb4QO2XyfMEkZflUoZesQi+q75Kq75Kq75Iv5M+A
/svuqUIvqUIviTaaqviSqviSL5ikDKFV+kUVX1IVX1IVX1IVX1IVX1IVXxJV9mpomlUDJlFtU8Vg
Eg03VRUmVRUmVRUmVRUmVRUmVRUm0YWvRk2J+Ed1YhIVOVUwJlUwJlUwJtGbsyrHqGBMqmBMqmBM
qmBMqmBMvnDgTeapDJiqHJPo21cDYikLJEVlkqIySVGZpKhMUlQmX7esK4MlRWWSojL5umVdGTGp
LpNUl8nX7RFqfrsf6LtqamFIyswkZWaSMjNJmZlk+5DUm0nqzST1ZpJ6M+l6M5SZScrMJGVmkjIz
+botyA0rfGN8TqDaglz1KJeqMVrVP93rqjJc1UGrFmiVAP0WP6rSpeJM1aS5LmMHrzoQC8bliklY
sClXucmlKk+LRVW35vq2KhWLRRdcQw1vV4Xcq6RNqqTNdblAinurto0q2Xz+tsIQqqSNKtmkKtlk
VbJRAZtUAZtUAZtUAZtUAZtUAZvrcVXB9if8XUVhq0y1GHKp4rxiSJWryQVHUDBXFcavAjZZBWww
0KUK2KQK2GQVsFmqcHVV6a2avFWKV3y4VHVq8aHK1aTK1eRyV+C1JycoL21PTlCg1qV4XZTatahd
gfegrO2BzymghqAA+UFZW3tywleoTn1QltaenKA+7UEh2pOS6Se9cE3ek0LaJ5hPMJ94n4J3nfhb
gpfakxMUwT0B75q8J3hOP8e3G7Oh0qDsDY642oSt5dQtly4kXvuttdy55cytoqBV7UZcpyI3SZEb
vDRUgvwd/i4ndNUyrDJnYi1Vu8mqdlO1baqkzQr/JKtY7cXWqg2F15VykOKotWpD/Rnfln9brKUi
N1lFblTb5vpR+b7FYyusRV3Iqg3111wuvzju19p2qOxNquxNquxNVtmbtWpD/ZRbatSrkm/VhsLr
Sl3IqpJWtaHwsdbGRYVwUoVwsgrhrFUljeK8B2WujtdvRD6Hx1bw2AoeW8FjK3hsBY+t4LEVPLaC
x1bw2AoeW8FjK3hsBY+t4LEV/NpsBV9pFofnYMZzMOM5mPEczHgOZjwHM56DGc/BjOdgxnMw4zmY
8RzMeA5mPAcznoMZz8GM/388mPG15c/49D/+ExfD0xmezvB0hqczPJ3hEaN8Jk+TT2d4OsPTGZ7B
8AyGZzA8g+EZTNcAzwDPAM8AzwDPAM9gugZ4BngGeAZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4
JnikaTXUss9Dl4xhkdhHLTbXjwdfeVTz1x7i8xDHbw5x/HetLb/K83/+v/3F/7a9P338Pz7OY//P
9/z/hrT/a7D93/7vv/vTf/zx//lI/OzHP//pL372Fz/++f/ruvjXf/6zf/zxz3/+//zbn/+XDOD/
9jf/+Jc//uV/1dOqyz/7P3zerzDy/5/H4Wc//qef/uxf/qvf92uOhvy/PLj/lUz5/06Y/9/5aP6P
p+NrQPh/kQO+2kH978X2f+aQ+6z4l17f0Osben1Dr2/o9Q29vqHXN/T6hl7f0Osbej0G4avRaASN
pNFpgCfAk+BJ8CR4EjwJngRPgifBk+BJ8CR4EjwJngRPgifB08HTwdPB08HTwdPB08HTwdPB08HT
wdPB08HTwdPB08EzwDPAM8AzwDPAM8AzwDPAM8AzwDPAM8AzwDPAM8AzwDPBM8EzwVO6UrCFDbaw
wRY22MIGW9hA/Qm2sMEWFgPT1Wg0gkbS6DQGjVmNIvWA1ANSD0g9IPWA1ANSD0g9IPWA1ANSD0g9
IHV29lcDPAGeBE+CJ8GT4EnwJHgSPAmeBE+CJ8GT4EnwJHgSPAmeDp4Ong6eDp4Ong6eDp4Ong6e
Dp4Ong6eDp4Ong6eDp4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngmeCZ4JHpP6BM8E
T20LVrhghQtWuGCFC1a4YIULsEJdjYPGSaPRCBpJo9MYNGY1igtWuGCFC1a4YIULVrhghQtWuGCF
C1a4YIULVrhghQtWuGCFC1a4YIULcJk0jLtXAzwJngRPgifBk+BJ8CR4EjwJngRPgifB08HTwdPB
08HTwdPB08HTwdPB08HTwdPB08HTwdPB08EzwDPAM8AzwDPAM8AzwDPAM8AzwDPAM8AzwDPAM8Az
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
L/WP/Rugeio9g/d8Md2D33gG7ynwXYD3FEyeM30XkzLp8kAiT9/OXAz6Nf1A385oDKZp+i4Icvp2
RsMj5oEaDMLdQeZr+jncNZm4ySoxeY67417cmHnFDZ53uRcGPyE2Yy4YrH7xYR2ogMWH1Z/CE1+s
bPfb9dKXCOKlPr2E/9W5TdT2qt9qZl/f4lvBfUk9ev22Pr7Dt+rDSyrL63v6kKbykqby+j19SEF5
SUF5/YAHqO8vaSqvP+TySaOgS3d5/bE+/kQfUkdeUkdef8YtHqHqqBSU14+4rNF5/YU+pJe8fsy3
NQzSS17SS15/rQ+pIy+pIy+pI6+/585ZjVq/X//A32KE1z/yt+byJZXlJZXlJZXl9TN9/Fwf/8It
muyXNJWXNJXXv/GtJv4lleX17/r4D76t+UVleZXKcjUWGisN//hNY6dx8EB/xSyFf9NoBI2k0WkM
GkVqqCyvUlkCaRRIo+srMEuJCYTQdQXw0mYCaRSWRsiesOx5ofG80HhepfFcDfeLKZV8CsunF6qP
BdWrVJ+wxEI+XV8xCCeDcBoGg9D8CnqRIGy8tHQgZNh1hRlsvKv5drrT/Bzf5a8YXvisuOdqgBl+
MWugqVA6PCw4LS9fJnpTu2nY5HpTpigqLGVfN0UFUE0Jnvfwj4EaQPUsB1ATGvMMeuISYJ6vBJin
wAOeUGby0gSY++5e3L8BWAIsAdY9hpCof9OB2j3vvgvMHcydee/0tAO+A74zmB3MHcwdzB2W6TBj
Z6A6CO+3GyrABm8fgB/cPrhrgHkYs6+AeYB5MOCdSRmAH4AfsJ67PBj5wcgPoA6gTqBOoM7Xb0Ie
nida5omWeaJlnmiZJ1rmiZZ5omWeaJknWuaJlnmiZZ5omSda5omWeaJlnmiZJ1rm1xst85Xn4XlC
cp6QnCck5wnJeUJynpCcJyTnCcl5QnKekJwnJOcJyXlCcp6QnCck5wnJ+dpDcr7ivDUHWSgPchMd
RMccRCUcuGUOzOFXg/GajNdksifDNBkmqQxhlRNN81h08+Kh1lMXPWExabAudv+wfqHxXzT6i6wu
i9SKRWrFglpxE1rd9F3+rru/V38XtS3SOBZpHIs0jkUaxyKNY0HjKLpcpHEsso0s0i8W6ReL9ItF
+sUi/WKRuWORNrHI3LFIiVikRCw/1od0h0W6wyLdYZHusEh3WKQ7LDJlLDJlLDJlLNILFukFi/SC
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
eYJ5ItSFoLl9JuLghppIgVsMVmSXPFk0TBYNk0XDZIFi97PJ6mGyepisHuyZNtk3TxYEkwXBZN88
IfvJ6mHC8ROO75/2D/tn/SN+oiosUfuC2rvDlzbQS7S9tIFeIuAlAl4i4KUN9BLdLmlol1h2iWWX
WHaJZZdYdolll1h2iWWXWHaJZZdYdolll1h2ad+8tG9e4tT1Q+CrsZbIdYlcl8h1iVyXyHWJXNfP
uLObTCy7xLLrS77tlhTdLtHt+hXfdgOLd5d4d4l3l3h3iXcXvLuadwP/wrB/4SJhvR0NF3nq7XG4
4OYFNy+4ecHNC25epLmzn+KCpBckvdDi2oVxsbdecPM6uLklc8HNC25ebLIXlLyg5AUlLyh5kRTH
XpILsyi7S66DpKdvB/wG+CbgBQEvCHgdBDyZ3SbtMwBv3p202KAWA2Dm3Z5NFry74N0F7y54d8G7
C95dB+96MprUwrw7qY55d1KvQb2CkRDUIuiCALx5d/ouWjUAH4APwAfgA/AB+ABqgDAAFrwiAZYA
S4AlwJJWTfAkeMyXy88BWAIsAZYAS4AlwEw5yzBAWDy5+KpAWCAsEBYIC4RFizFZetrxLOIJw3MD
7LgOMbd0W6gtnpZBC5oFxHJhcZjg8cCeCNFiYC8/B4QefstPBqqH33Qb+qVgdu+4eReY/S4/eSE7
C8xHwd1NLRZzwqI6i+aF16DABQUuKHAdu+TlRvi3u7YP/eF6h/5PfZQ+fHdfXvr4ij6+qo8/0cfX
9PF1fXyDO5FiIdk+yFYYf8rtwzf5/6r//0wff66Pb+nj2/r4jj7+gltuFO764i/18Vdcfuj/v9bH
3+jju3z71P9/q4+/08f39PH3+vi+Pr7Qxw+480XhrS/+gf83/f9D/h8UunV/pI9/5HJS6Pb+J338
WB8/0cdP9fEzffxcH/+sjy/18Qt9/FIfv9LHv+jj1/r4jT5+q49/1UcT8F64UrhRuFN4/FFEKzmt
Pk6rj9Pq47T6OK0+TquP0+rjtPo4rT5Oq4/T6uO0+jitPk6rj9Pq47T6+GysPj7zyCSnaclpWnKa
lpymJadpyWlacpqWnKYlp2nJaVpympacpiWnaclpWnKalpymJf+xpiWfcRyRHd8ToC8KbwobhUEh
KCSFohMmhcVXk8Lqr8QzH69sLtCCHUGfcOn7FZpyoym3BwUwb2DewNycT5D1IMj6/hXjKfzA4Iqf
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
RFINIqkGkVTjeYhsMZUWr9hc0+IKU0jxro16bdRiA/MGsA3wrZd4oKkg7GoQdjWItvrxNxPwLd8K
uxoKuxoKuxoKuxoKuxqKthqKthqKthoKshoKshoKshqKrRqKrRqKrbq/U+2kIKuhIKuhIKuhIKuh
kKqhkKqhkKr7nWpYxVYNxVYNxVbdv1VrK8hqKMhqKMhqKMhqKMhqKMhqKMhqKMhqKMhqKMhqKMhq
KMhqKMhqKMhqKMhqvCRaimQaimQaimQaimQaimQaimQaL+RnMhxaY6PYptGxTR+oYxTbNBTbNF4s
K1sPQ5DTIMhpEOQ0CGkahDQNIpkGkUz35yAkrRB5HWLT+g5im+5Xgiv+yleSAtIyfQXum8WVHj2I
DUFO999MrlCdjepsVGejOhvV2WiNlg1imwaxTYPYpkFs0yC2aRDbNIhtGsQ2ja5n17Lr2BvPngS6
LoptGm+YrtUHCnIaCnIaCnIaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmka
CmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkaCmkab5aMreZQbNNQbNNQbNP9Ww09BTkNBTkNBTkN
BTkNBTkNBTkNBTkNxTYNxTYNxTYNxTYNxTYNxTaNN8O9lSXvg0BaXUK00yDaaRDtNIh2GkQ7jfcx
7pd/86awURgUgkJSKAqTQvczQ5mwp0HY0yDsaRD2NIh2GkQ7DaKdBtFOg2inQbTTINppEO00iHYa
RDsNop0G0U6jb96gnAXTtDaoH7Uhta0G6uf10xQIdf9W4BQRNRQRNRQRNRQRNRQRNRQRNTbm+8Uc
0iqQjZ2W9BuhGKn7/w1IAqBgqaFgqaFgqaFgqaFgqfstagVFTQ1FTQ1FTQ1FTQ1FTQ1FTQ1FTQ1F
TQ0FSw0FSw3FSA2FRg2FRg2FRg2FRg2FRg2FRg2FRg2FRt3RdNNJABQjNRQjNRQjNRQjNRQjNRQj
9eOeQSqXULDUULDUULDUULDUIFhqECw1CJYaBEsNgqUGwVKDYKlBsNQgWGoQLDUIlhoESw2CpQbB
UoNgqUFo1CA0ahARNYiIGkREDQKhBoFQg0Coe52vFHwXCFv9/ETDRIzUIEZqEBF1/41fAWaGMCJB
INRoRU0rZoaf8KSgtpIyJVqV0lYaT7RIinYainYainYainYainYaina636KmVtjTUJDTUADT/duG
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
ZcVX3f9XtyrQairQairQairQairQairQairQairQairQairQairQanagVcVXTcVXTcVXTcVXTcVX
TcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTcVXTeKrJvFVk/iqSXzV
vTGYtzswCBFX88Mhsh0qhNCrSejV/HBwVitviMGaxGBNYrAmMVjTMViJuJofDpHV3nsvcJeJKbm9
9zqvVgMloVeT0KtJ6NUk9GoSejUJvbrfzgBtzZCDsTr06qt1RUmg1STQan44xLpo3s14qFeLzcWP
E9AOtKr4qvtluqMNTS5+tNB36NUXmiKFXk2FXk2FXk2FXk2FXs0LTFdUtzVFHYy1Q6++CHLZoVcV
cTUVcXX/tpFKxhR6NRV6NTv0qiKupiKu5uWvudOVU2UU33T/35Wh/We3kqSuQ58q4mkq4mkq4mkq
4ul+i/pFoU9ToU+zQ592oFNFM01FM01FM01FM01FM82OZqogpqkgpqkgpqkgpqkgpqkgpqkgpqkg
pqkgpqkgpjsoDQRFM01FM02imSbRTJNopkk00ySaaRLNNIlmmkQzTaKZJtFMk2imSTTTJJppEs00
Hc2U2KXp2KWELE1ClqZDlhKpNIlUmkQqTSKVJpFKk0il6UiljkvqcKREIU2ikObloJQJF7emSHFJ
88pUIL1RdoBShSPNK6NI6qO8ejAJp+KSZsclVTjSVDjSvCIbE9mQiiiv0M5sCAiJNmmpkKXZIUsV
qTQVqTQVqTSv8M9k/HekR4UsTYUs3S+rAopdmopdmleEpNU4HcRUsUtTsUtTsUtTsUtTsUtTsUs/
3rlo1tbyKJrp/r96W2FN9//V7Ipvmopvmopvmopvmopvmopvut/CPNWH94p4mop4ul/uvpAgKfRp
KvTp/m33jCRKoU9ToU9ToU9ToU9ToU/zytJz0U99eK8YqPv/TKyLwbJ6lCB1hEdNwqMm4VGT8Kh5
PbiuUzUQHjUJj5rXg+s6awNxUpM4qUmc1I9cOvx2P9B3ddcikARMTQKmJgFTk4Cp+wP9FZhbMomc
mkROTUdOJWBqEjA1CZiaBExNAqbur7hRoH02oLasvsmwcOusGZ3PwrXuvDmd76KzW3RSi6/wo07G
IclUdNX98ptCJ1H6Gv/3u77O//3SzqUkEVUE1v3bzr0jEVUo1v1yUWhQEloFZ90vN0hJb0dpVUzW
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
ngmeCZ4JngmeyVj1kJgAmwCbjEOPlgXCBcLFdBG8fQF1AXXxiuXn+MdAXYheIE0efmjRrTD3rAoB
kpbr3VNeT3g93fVk90aYwsOnf6b2f2vD+NaG8a0N41uc9v46t/QjRW5vkdtbCt+3OO0tTnuL097f
5k5mrZaUt1juLZZ7/yXfNhix3Fss99bO8a2d41s7x/ff9S3JnNCC9tbO8f33XNYgemsL+ZZ2+P0D
vr1RYBZsWXxLcfzWXvKtveRbe8n3P/FbpsUW1/eP+V8d+/4J/9O/vZ59a+P51sbz/XO+7S75Z/7v
9tZW9K2t6PuXfNs9qz3pW3vS96/5thtam9O3NqdvMfEbJn7DxG+Y+A0Tv2HiN5vTN5vTN3T7hm7f
0O0bun1Dt2/o9g3dvtlvvptcwyt2L9Tf7EDfzbLhpfsbun1jD/Fmv+lV/bvpNry8f8O7b3j3De++
4d03ylz2AuG9wPtg4qI1zMTlJ1PBjQoOqjOYbYu3e6lRDI5CNIs2HAzPojEHVR6usmEg4kVjTpp3
0nQD8APM5u8JnslLp98FwslLJ807YdDp59Cqg1Ydrg5tOKnppMGnK8hoMf1PX6FVg1Y1/U9aPhgA
Qb8HtQi6MmiEoBE87XrSX34FdV+8y5P+8iuoKXOqZ0qWCG9PfOhzvFd6s1Z4ewrzpMVagcwfe4Fa
JLVg8vGsw1rh7enGM4unFM8enihYIrwPGbTEWawsTQUeC4jlwuLgoV7gKfB4hHtgF3gKPAWeCR4P
4wmeCR6P1QmeCZ4JngkeD9EJngkej0OPOg+tCR6PjQWeBR4PCXfuAs9CZBZCdFwB4UKaFlCPgseh
C4BfSNNCmha1WNTruEK9FvK1mEB6GdFhZ22n3ZOizbV7JrTVduvdehtiG+5WvmHKHTbl3rTU2L7K
ZdV+05pj05pj+zrfqgE2rTk2rTk2rTk2rTk2rTk2rTm2b3PnRkENtX2H/10h16SroOXIJv31plXI
plXIplXI9l1u6cbScmTTifT2Pb7VWNmkv960+Ni+6G97/tqkv9601Ni01Ni01Ni01Niktt6ktt6k
tt60eti0eth+zlMvFLqfpMjetHrYtHrYpMjetGjY/oVbuiul0d60aNh+y7fdo1o9bKweNlYPG6uH
jdXDxuphY/WwsXrYWD1srB42Vg8bq4eN1cPG6mFj9bCxetjYmm+sFTZ25BtLhI0lwsZGfGNlgEl/
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
OrEy32caQR3XCR3XiTycs5JJUEdxQkdxQkdxQkdxQkdxQkdxQgdvPmqnuUrfcpUeeRRny+V56CjO
9bcaUmdyQmdyQkdxQkdxQkdxQkdxrlvU5DqTEzqTE3kmZ8tlfegoTui8Tei8zfWtOkcHb0IHb0IH
b0IHb0LnbULnbSLP22y55A+dtwmdtwmdtwmdtwmdtwmdtwmdtwmdtwmdtwmdtwmdt7meWihkp0pI
dALnupydjLRwFCd8FGdLI0FwFCc4ihMcxQmO4gRHcYKjOMFRnOs5ncLgK7/dr/BvJlf8Y66k/HBK
JzilE5zSCU7pBKd0glM6wSmd4JROcEonOKUTnNIJTukEp3SCUzrBKZ3glE7olE7olE7olE7olE7o
lE7oTE7oTE7oKE7oKE7oKE7oBE7oBE7oBE7oBE7oBM7HxsnzaBu5l3UmJ/JMzkYmZh3FCZ23iQ2R
yPTMOngTOngTOngTOngTOm8TOm8TOm9z3blSUKvqBM71txp3Q0gyhbPO5ITO5ITO5ITO5ITO5ITO
5Fy3nBTUGzqlEzqlc13O5pXY6LhO6LjO9W1QyHaX/OgAT+gAT+gAT+jcTujcznULYy4tFDrJc/09
s9Bo71yM65BP6JBP6JBP6GxP6GxPcLbnuulNYeGrNwVkLJMyc+wnOPYTHPu5fuMrB4WTQqFQKQSF
RoFqNj/QzxlcoRMa80bzA3PsIn4cFgrOCAVnhIIzQtftwCiATznksFBwWCg4LBQcFgoOCwWHhYLD
QsFhoeCwUHBYKHRYKHRYKHRYKHRYKHRYKHRYKHRYKHRY6AKbv5VA6tRQ6NRQ6NRQ6NRQ7N/4c4g9
8PgFPH4Bj1/A4xfw+AU8fgGPX8DjF/D4BTx+AY9fwOMX8PgFPH4Bj1/Af79fwGceg+BxPnicDx7n
g8f54HE+eJwPHueDx/ngcT54nA8e54PH+eBxPnicDx7ng/9O54PPOBZBKJJqKJJqKJJqKJJqKJJq
KJJqKG5qKG5qKFxqKFxqKFxqKEpqKEpqKEpqKEpqKEpqKEpqKEpqKCZqKBRqKAJqKPBpKPBpKPBp
KPBpKMxpKMxpKMzp1Rser9lpEmIFPr0uZydKmhX4NHZkN01EioB6/a3BqlCooVCooVCooVCosd8i
2xHZtK8QHPW6wtCW3eQq7PzGP14pbBT8m4MCopZmlg0zCwFUY7+ps/tKUGgUaKZeuTIoZAshskRS
DSKpBpFUY79FtjOVdl5RXNPOFaaQzrsK9SrUooC5AKwAPu0SG5YKwq4GYVeDaKsffzMAn/KtsKuh
sKuhsKuhsKuhsKuhaKuhaKuhaKuhIKuhIKuhIKuh2Kqh2Kqh2KrXO9VOCrIaCrIaCrIaCrIaCqka
CqkaCql63amGVWzVUGzVUGzV61u1toKshoKshoKshoKshoKshoKshoKshoKshoKshoKshoKshoKs
hoKshoKshoKsxiHRUiTTUCTTUCTTUCTTUCTTUCTTOJCfwXBIi41im0bGNt0wxyi2aSi2aRyolWmH
IchpEOQ0CHIahDQNQpoGkUyDSKbXcxCSNIgct9ikvYPYpteV4Iq/8pVGAWkZvgL3jc6VHD2IDUFO
r98MrlCdQnUK1SlUp1CdQmukbBDbNIhtGsQ2DWKbBrFNg9imQWzTILZpZD2zllnHXHjmJJB1UWzT
OGG6NB8oyGkoyGkoyGkopGkopGkopGkopGkopGkopGkopGkopGkopGkopGkopGkopGkopGkopGko
pGkopGkopGkopGkopGkopGkopGkopGkopGmcqIxp5lBs01Bs01Bs0+tbDT0FOQ0FOQ0FOQ0FOQ0F
OQ0FOQ0FOQ3FNg3FNg3FNg3FNg3FNg3FNo2T4Z7GkvMmkDSXEO00iHYaRDsNop0G0U7jvMf99G9O
CoVCpRAUGoVOYVDIfmYoE/Y0CHsahD0Nwp4G0U6DaKdBtNMg2mkQ7TSIdhpEOw2inQbRToNop0G0
0yDaaeTNBcqZME1ag/JRBalNM1A+L5+mQKjXtwKniKihiKihiKihiKihiKihiKhRmO8nc0iaQAor
Ldk3QjFSr78TkARAwVJDwVJDwVJDwVJDwVKvW9QKipoaipoaipoaipoaipoaipoaipoaipoaCpYa
CpYaipEaCo0aCo0aCo0aCo0aCo0aCo0aCo0aCo16ocmmkwAoRmooRmooRmooRmooRmooRurHNYNM
LqFgqaFgqaFgqaFgqUGw1CBYahAsNQiWGgRLDYKlBsFSg2CpQbDUIFhqECw1CJYaBEsNgqUGwVKD
0KhBaNQgImoQETWIiBoEQg0CoQaBUK86vyn4LhCm+XnHwkSM1CBGahAR9fqNXwFmhjAiQSDUSENN
Gmaqn7BTUFvJmBJpSkkvjR0rkqKdhqKdhqKdhqKdhqKdhqKdXreoqRX2NBTkNBTA9Po24WjiVyTT
UCTT69tEKQFQANNQANNQ3NJQ3NJQ3NJQuNLrTvWi4paG4paG4paG4pZeP8pKShIUwDQUrjQUkzQU
kzQUk/S6ZVBQuypKaShK6cfLka0sIVGU0uvyi4LGieKWXn+r4xXANBS3NBSuNBSlNBSl9PrtSkHd
rbil198aWApgGgpgGgpgGgpgGopbGopbGsQtDcct3bGpELc0iFsaxC29fnNyZafgu05+U7jiQqUQ
FBqFTmFQYKilH8yOHwyxTYPYpkFs0yC2aRDbNIhtGsQ2DWKbBrFNo94yFohBgKeAObljx3pD2NMg
7GkQ9vT6zeQKhZS6tC5lVdKIlC8L7k4z0I4ZKGgKWXhC8U+vv1VbBUKN+MofH30gFDU1FDU1FDU1
FDX1ehEjrjECZNwJBVS9/lajKrJqKLJqZBzVHUeRQJ5l9gmFTw2FTw2FTw2FT40Mn7oTlnLHxqPw
qdffdFau4HdW8IqsGgqoGgqoen2rvlBk1QiEv9PauXRXiNVQiNXrcja6pgPFWg3FWr2+zS4QQyrE
aiiyaiigaiigaiigaiig6nUnbZqOEQqxev3NFNyhh1yxK/pqKOhqKOhqKOhqKNZqBCzaGdK5XFf0
1VD01VD01VD01SD6ahB9NYi+GkRfDaKvBtFXg+irQfTVIPpqEHQ1CLoaBF0Ngq4GQVeDoKtB0NUg
1moQazWItRqEWA1CrAYhVoMQq0GI1SDEahBiNQixGoRYDUKsBiFWgxCrQYjVSNtkjr+03mnQRQ65
HFuKrBqKrBqKrBqKoxqKoxoKnxoKnxoKnxqKmhqKmhqKmhoNaelMPWkpURzVUBzV63JCkfwofGo0
5CdNJ4qaGoqaGoqaGoqaGoqaGoqaGgqWet3JvJOmkYZIDFhsQBppcFBk1VBA1VBA1WiSDR1MigZD
DsZ/rvx1VCkaVJkrf51ZCp1ZioaQ5Mpfh5dCh5dCh5dCh5dCh5dCZ5ZCZ5auOyGoXOvrFNP1d3bz
v/F39reEhHNNwbmm4FxTcK4p2s2Que7ngFNwwCnazZBpCeCkU3DSKTjpdP1mcMUP9F3+Kgcf8sOR
p+DI0/Uc+nL6N4AvdMSkWycVTBnjWFRwLCo4FhUciwqORV23+8lBAfAF8AXwBfApbN1PUZum01MO
/RzqOabTrKfTUKHTUKHTUNcDBD6PRe2s9XQaKnQIKnT2KXT2KXT2KXT2KXT2KTpyOJmPcwGoQ1DR
kcPclNdpqNBpqOjIYS75dCwqdCwqdCwqdCwqdCwqdCwqOnI4GQy5KuzIYS75dGLq+jubReKnE1Oh
E1OhE1OhE1OhE1MfSTtXWzo6FTo6FTo6FTo6FTo6FTo6FTooFTooFTofFTofFTofFToWFToWFToW
FRyLCo5FBceigmNRwSGo8Nmng413zj4FZ5+Cs0/B2afg7FNw9ik48hQceQqOPAVHnoIjT8GRp+DI
U3DkKTjyFBx5Co48BUeegiNPwZGn4MhTcOQpOPIUHHkKjjwFJ50ip6GcfXIeyakiZ4M0q+mAU+iA
09VUQq2TTqEDTqEDTte3qopOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVOOoVO
OoVOOoVOOoVOOoVOOoVOOoVOOoVOOoUOOIUOOF1I1dY66RQ64BQ64HR9qw7QSafQAafQAafrW/WK
TjqFTjqFTjqFTjqFTjqFzjWFjjOFTjFdD1Bv6jjT9bc6VeeaQueaQueagnNNwXGm4DhTcJwpOMV0
PapSCL7aKRx81bhyUih81SkMvvIDJ1f8ZD+nU/BdM+/K7f2D7X3OPl1XqE6apA8WqJyGCg5BBYeg
gkNQwSGo4BDUdbt/Q71SWjj7FBx5Co48BUeegpNOwUmn4KRT5Kya9rOcIHNezOlQx5lCp5hCp5hC
p5hCp5hiIiS5otZxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBx
ptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptBxptDhpdDhpdCZpdCZpdDBpKva
6i+dUAqdUIqJSKRFQEeVQkeVIg8mHdgCdDApOI8UnEcKziMF55GC80gx72k+rQUcQwofQzrwyOAY
UnAMKTiGFJw+Ck4fBaePgtNHMT8Z3NxVgFqAmoeODvw7OHQUnDUKzhpdv+FdBcw5uDl0FBw6Co4Y
BUeMgpNF13OAWlywiM4/h+gDjyfA4wnweAI8ngCPJ8DjCfB4AjyeAI8nwOMJ8HgCPJ4AjyfA4wnw
eAL8d3gCfObxBh53g8fd4HE3eNwNHneDx93gcTd43A0ed4PH3eBxN3jcDR53g8fd4HE3+O90N/ic
4w0QaPUj0DSMKOJqU8TVpoirTRFXmyKutg/UTSaUloFWFU21KZrq9a00V4VVbQqr2hRW9fpW/ZTx
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
Do97x+Pe8bh3PO4dj3vH497xuHc87h2Pe8fj3vG4dzzuHY97x+Pe8bh3PO4d///o3vEZx9O48NFM
nWbqNFOnmTrN1GkmCczHYeph1GmmTjN1mmnQTINmGjTToJkG3TbAM8AzwDPAM8AzwDPotgGeAZ4B
ngGeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCR5pXBX17GPTNdowh9orJ53rx4Ov3KrtT+7y8wyO
P5/B8d89x/xR7/nh9Zb/eMH/M2P7Pwnq//X//savfvmj/3Xdf/Oj3/7qd7/54Y9++/+9Lv7k73/z
yx/99rf/n5/99o+57Tc/+udf/eZf/tc3/29V7Tf/l8/7I1r4fwPC//HTX/7Dj/7wXw3gT+wX+f+r
h/9Lpe4eeP/3dmH+r8fPfyu0/+3R+WeA1gP5vwPr/2rb7WKOkRSSCvkLqn6xLmAFdF0p+ePBbxrE
k1p3gckKTPZmxfFGy32xGHnD9AUixAmjYvuu5/1VEiFm38pirbJYu2D4q0qh5yv8rryr3PXKBULh
rvLJXW+es3LFhY2vdq644KY7uXJypXCFQi6X8CS5vnItgivBFdrZHZfvevOcN+96c9eber2p15u3
Y2u+Cm8KC4WVwkZhp3BQOCn4gZVCUGgUOoVBYWYh10Qkv6uYqCvGwoqxsGIsrKSzq1gNK1bDikWw
kuWsktCsYiOs2AgrpsFKMrBKNq+KsbCSxKtiNaxYDSvpuCo5typ2xErep4pBsWJQrBgUKwbFikGx
YlCsJBGq5Av6OIazuxvDuDFEG+O5MUQbQ7QxMhtjozEAGmOjMVoaktIYLY3B1hiZjcHWWOM31viN
NX5jSmms8TFR18YaHyNGbazxG2v8xhq/scZvrPEbs01D3hsizN5SbQykxkBqDKTGQGoMJOyjtTF+
GusT9rGuAng6eDp4Ong6eAZ4BjAGMAYwBjAGMAYwBu0zwDPAM8AzwDPAM8AzwDPAM8Ez3Sye5ysF
VgjZyy96+UUvv2nDN234Yoy9GGNYr6951TRxQi7Mh5PZbzLlTua6aVJgEp7MdcNPholyaB03pwym
wQHveAb4j7dDDJM5ejI1TybZaRLqFBDsQJ4DeQ6eHshzIM+BPAfyHMhzML8E80vlgZUHVh5YeWDl
gZUHVh5YeaBndver2XrQDW7HHFUvRtUbkXjTVW9k441IvBk6bzC/wfy+OdUDpVqxoDBd4F3BjwMi
H4zFyRBsfg5XKovd6cVup+CvaITJk6ff9eLJjODJlcpzBpLQPfL4TeeuxpMbdR/gGcZDy08afPLA
SWPeT3YB5WMwVgdjdaAeDcbzYPQORu9g9GZj4q9RccqouGBU/CwqzhQVb4iKN8THcTXQ7QZiPBDj
gRgPxHggxgMxHuguA0VnonhNdLKEUYBRgFFuGI0HNh7YeGDngZ0Hdh7YeWDngZ0HdvS2TgU9T3Uq
2Klgp4KdCnbwdPB08AzwDPAM8AzwDPAMtzMqb6MHGz3Y6MFOD3Z60KOl04OdHuyoqp0nd0ZUZ0R1
RlRnRHVGVGdEdfB08HTwDPAM8AyPXvAM8AzwZE3ZA60kW6tshla2LCuboZUsTZV9wMpuZmWftLKN
WEmAVdnfrGyhVnJDVTYWKxudld3VyuZjZTuykpatsvFa2dasbEdWtiMru6KVpFAVj4tK+rZKVrvK
ZmglUVQlUVQlE1rFT6Pip1HZiq3s/1YSRFVSQlWSrVWSklW8OyreHZW93cr2ccXfo+LvUdnSrWQn
q3iAVLb7KzvCld3nSo6ninNIZUe44iVS8RKpbARXsgVV/EYqfiMVv5GK30jFb6TiN1JJ21PZobwm
WLMeE6x1hQYpNM/G0F9jEdWgSCsfNrIOz/zwYPDjMMPCFwNNJXhFQNDddIPGY3KxdbzDKdlib4bo
+yayDuuZsnPYvBlRb8bP+6abxtv9m+AVwbqxcVfQLOEf+xX8uPMbQ+3+ykqnOdfWAZsbIE3bJoIK
WsV004V/TIMHrwiaLuivML/7K1sQ9PYKsAqwCrDKJFOZJSpTSmVOqICvSHdFrCpyUZnrPhb6f2Iz
rjL7Vaa4yhxVmdAqFax3BYNaBLUIahHUIqhFUIugFkEtglpkq1aGRGVIVIZNZTauDOyK6FWGcWUY
VwS2IpUVqazIYEUqK3JakcrKOKyM58oIrwz+yuCvTJWVibEyMVamwco0WJn0KpNeRdAqA7sy+CuD
vzL4K9JdkffKRFSZmiozSWVuqcwblZmkwp4VxayimFUUs4piVhnqFcWsophVFLOKYlZRzCqKGb5k
V0F4AgEJBCQQkEBAAgEJBCQQkEBA8AW6CpVCUGgUOoVBYWYhh3ow1IOhHgz1YKgHQz0Y6sFQD4Z6
MNSDoR4M9WCo44RxFcAT4GngaeBp4GngaeBp4GngaeBp4GngaeBp4GngaeBp4Gng6eDp4Ong6eDp
4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4Jng
meCZ4PFQn+CZ4Mnl24oUrEjBihSsSMGKFKxIAQ5DV+GkUChUCkGhUegUBoWZhZSCFSlYkYIVKViR
ghUpWJGCFSlYkYIVKViRghUpWJGCFSlYkYIVKViRArxbK354VwE8DTwNPA08DTwNPA08DTwNPA08
DTwNPA08HTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwDPAM8AzwDPAM8AzwDPAM8AzwD
PAM8AzwDPAM8AzwDPBM8EzwTPBM8EzwTPJaCCZ4JngmeCZ4JngmeCZ7JwjlYJgfL5GCZHCyTg2Vy
sGwPlu3Bsj28ucKyPVi2B8v2YNnuvatg2e4NoQaeBp4GngaeZrsEeBp4GngaeBp4GniadWOW0sEK
OlhBByvoYAUdrKCDFX2wog9W9MGKPljRByv6YEUfrOiDFb230Bor+gaeBp4GngaeBp5m2wV4Gnga
eGyDbeC5G2GkPTd/jFtqJcBLxS214oFf8ZetZMyqxBCpuKXW435ythjpwip+txXn/IpzfiWMSsUF
thIVpeL+W8n8WPEDriQGrBwfqBwfqCTHqyTHq+TEq5wsqDgNV7LbVZyGK+npKmcWKq74lTMLlfR9
lbxfFafhigNuJfZFxRO3EtGiEiCl4rZbCbNR8Tmu+BxXfI4rwZgqzscV5+OK83ElflLFC7nihVw5
Q1E5Q1E5Q1EJpFM5TFE5TFGJQFOPe6VpqMMN7prywMFC1TUNfjzcYmAOWnXwruEx5udQ07vgBi/p
gT9wCNYwnhhnOmL+8dV5ZGbmlaswOKYRXzy4wS7mxJH34zhXBQc7MR+bND2e2a4bePROLP8+gzXZ
2/Nhk4mBfdAFnQ3768klf5MnrkaOjYnaPJmEP/44PadxIx4ogddzaro1i0EGexyNpVCH34evtE9O
nfS83Uc56vyCu/9g6/QjQg3awUbpwJI8WLYPHBEmOv84Puk4+WR/4CDJ4AyOXbqZxyYG7avuOHDn
aTPsfh+viBBnvV26JQ7Xu/oXz8Xg0j3Y17TT+WCDc2K9vFo1EmqedGZ5cjmmrxTcLNw+PA7xPs82
/MBhNTSriQ7Zl/ucl66Mdp+rU0NNdpcaCnmLuy/Sg/9D/mayBTDYvb5qMemLyo8RhxyZrAI+jsbs
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
DerlWhizgQ3At+54aY1qfPjkyX7g5DcGTyGoRdApxxWqE3RB0AVBFwRQA6itY10+eaCfA/igWYKG
Op5MQwW1CGoRVDAAn4wx40n6InlpAj55RfrHgE/AJ+2cQE3aOQGWAEuAJcASYEUbFngKPAWeAk+B
p8BT4CnwFHgKPEW/B2PeXVAgbHK9dKcMWHbAsgNy3X/DK6Y7jndNwE/AT8BPwE/DMDBgTMTTXTk9
SBiZrSVfuk8HfDkgxWF2u6CYXlBML0cvT7/U76LKMF7z2IDH9tupDhRm7jJpmYPMM2YPE0Vzwv5A
/5ih7sG2XAvfDmZPuT3TXlTzi4behdmpR+lFv770b1W7i4j8IiK/iMgvIvLLV/Uh2r78pT6+ro9v
6EPcfBE3X8TNF3HzRdx8ETdf/hY0rnOjFUlfRNIXkfTlu/oQN1++zy1dM5H0RSR9+YJv1S6XH+pD
JH35Md929X+iD5H0RSR9+ak+xM0XcfPl59zJoGt5vfyi/26xvfySvyW9F/H3Rfx9EX9fxN8X8ffl
t9zCiGw5v4jRL7/nsobTRdR+gdovUPsFar9A7Zem9r3wpPCi8KawURgUgkJSKAqTAlJXvGL7QAFg
G8A2gG0A26CuQvgLYBtQzc0F1M0FMG8ISTGWyleoxeYC1dmozkZ1NlcHUSl+M5jmega8+gUaA1c9
/qqHX3XbtX/bP/lS36Ipc1wlY1fJ2FUydpWMXSVjV8nYVTJ2lYxdJWNXydhVMnaVjF0lY1fJ2PVv
9SGJukqirpKo63dBo466SrSuUnuvkqirJOoqtfcqQbr+iDvVs1epvVcJ0lWCdJUgXSVIVwnSVYJ0
lZJ7lZJ7lZJ7lZBcJSRXCclVQnL91z95dJLT++P0/ji9P07vj9P74/T+OL0/Tu+P0/vj9P44vT9O
74/T++P0/ji9P07vj8/d++NzjVRyOoqcjiKno8jpKHI6ipyOIqejyOkocjqKnI4ip6PI6ShyOoqc
jiKno8jpKPIfdRT5HCOJjKuU7qtE9Cql+yrJvCKZVyTzimRekcwrknlFMq9I5hWz5oXF5gXOvCKr
V3TtCyx6RWivCO21hXb/jV8xKfS4RGivCO0Vob0itNcW2v05CKRIeP8KMZ4A23jXRnU2/9i/GRTA
vIF5M2b/BswbmC2QYvVx009v/RcC3Hx+k0De9JibHnIT190khzfJ4e0r3Nm3SCBvEsibBPImgbxJ
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
NwlFMwkFMQnFLgmFLAmFLAmFLAmFLAkFKAkFKAkFKNm7wQO1e0vSq5Al++XuPYmxQpbEE6Fto5Bi
l+x/a5QqiEkoiEkoiEkoiEk8D1ktZLUNK4Q12a8wpmUw2QtPfuMf3yk8KPg3LwrIWNtXHthXCH0S
z4Mzy1eCQlKgmWpwZVLoFkJWiYESxEAJYqDE85DVYg4tXrG5psUV5o7iXRv12qjFBuYNYBvg2yDx
wERBwJQgYEoQJ+XjbybgW7AVMCUUMCUUMCUUMCUUMCUUJyUUJyUUJyUUHiUUHiUUHiUUFSUUFSUU
FWV/p9pJ4VFC4VFC4VFC4VFCwVBCwVBCwVD2O9WwiooSiooSioqyf6vWVniUUHiUUHiUUHiUUHiU
UHiUUHiUUHiUUHiUUHiUUHiUUHiUUHiUUHiUUHiUeEm0lOQklOQklOQklOQklOQklOQkXsjPZDi0
qUZpT6LTnjywwyjtSSjtSbzQJ9sAQ/6TIP9JkP8kyHYSZDsJkpwESU725yAkbQl5HWLThg7SnuxX
giv+yleSAtIyfQXSm8WVHj2IDflP9t9MrlCdjepsVGejOhvV2WiNlg3SngRpT4K0J0HakyDtSZD2
JEh7EqQ9ia5n17Lr2CvOngS6Lkp7Em8oru0Gyn8Syn8Syn8SynYSynYSynYSynYSynYSynYSynYS
ynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSynYSb3TFtm8o7Uko
7Uko7cn+rYae8p+E8p+E8p+E8p+E8p+E8p+E8p+E0p6E0p6E0p6E0p6E0p6E0p7Em+HeVpL3QSBt
JyERSpAIJUiEEiRCCRKhxPsY98u/eVPYKAwKQSEpFIVJofuZoUxGlCAjSpARJciIEiRCCRKhBIlQ
gkQoQSKUIBFKkAglSIQSJEIJEqEEiVCCRCjRN29QzoJp2gzUj9qQ2rb/9PP6acqRsn8rcEqWEkqW
EkqWEkqWEkqWEkqWEhvz/WIOadvHxhJLho1Q+pT97wYkAVAelVAelVAelVAelVAelf0WtYISqoQS
qoQSqoQSqoQSqoQSqoQSqoQSqoTyqITyqITSp4SypoSypoSypoSypoSypoSypoSypoSypuxouukk
AEqfEkqfEkqfEkqfEkqfEkqf8nGxIFtLKI9KKI9KKI9KKI9KkEclyKMS5FEJ8qgEeVSCPCpBHpUg
j0qQRyXIoxLkUQnyqAR5VII8KkEelSBrSpA1JUiWEiRLCZKlBDlSghwpQY6Uvc5XCr4LhG13fmJa
In1KkD4lSJay/8avADNDGJEgR0q0haYtMsNPeFJQW8mKEm1Dab+MJ+YjJUIJJUIJJUIJJUIJJUIJ
JULZb1FTKyNKKP9JKLfJ/m3D0cSvJCehJCf7t41SAqDcJqHcJqGUJqGUJqGUJqFMJvud6kWlNAml
NAmlNAmlNNl/1JWUJCi3SSiTSShdSShdSShdyX7LpKB2VQKTUAKTj5ejW1lCogQm++ULBY0TpTTZ
/1bHK7dJKKVJKJNJKIFJKIHJ/ts7BXW3Uprsf2tgKbdJKLdJKLdJKLdJKKVJKKVJkNIknNLkiTGF
lCZBSpMgpcn+mzdXnhR815vfbFxxYVAICkmhKEwKDLX2fHni+ULakyDtSZD2JEh7EqQ9CdKeBGlP
grQnQdqTGIeMBWIQ4NnA3NzxxGxDRpQgI0qQEWX/zeIKhZa6Nit1Vdp61C8L7m77zxP7T9AUMu2E
UqPsf6u2ypES8Rd/fLyBUEKVUEKVUEKVUEKV/UWMuGQEyKoTyrWy/61GVdKVUNKV6BQrT1xDAnmW
vSeUWSWUWSWUWSWUWSU6s8qTjBVPjDvKrLL/TWf1Cv7JCl5JV0K5VkK5VvZv1RdKuhKB8Bet3Ut3
ZV8JZV/ZL3ejazpQGpZQGpb92+4CMaSyr4SSroRyrYRyrYRyrYRyrex30qbtEaHsK/vfTMEFPfSK
XYlZQvlYQvlYQvlYQmlYImDRYkj3cl2JWUKJWUKJWUKJWYLELEFiliAxS5CYJUjMEiRmCRKzBIlZ
gsQsQT6WIB9LkI8lyMcS5GMJ8rEE+ViCNCxBGpYgDUuQfSXIvhJkXwmyrwTZV4LsK0H2lSD7SpB9
Jci+EmRfCbKvBNlXoo2SPf7abKdBFz3kemwp6Uoo6Uoo6UooxUooxUoos0oos0oos0oooUoooUoo
oUok0lJMPW0pUYqVUIqV/XJDkfwos0ok8tOmEyVUCSVUCSVUCSVUCSVUCSVUCeVR2e9k3mnTSCIS
ExabkEYbHJR0JZRrJZRrJVKyoaNIkTDkZPz3yl+HkyKhyl7565RS6JRSJELSK38dVwodVwodVwod
VwodVwqdUgqdUtrvhKB6ra9zS/vf3c2/5+/ubwkJJ5mCk0zBSabgJFPkwZC97udIU3CkKfJgyLYE
cLYpONsUnG3afzO54gf6Ln/Vgw/54ZBTcMhpfw59ufwbwG90xKJbFxVsGeMgVHAQKjgIFRyECg5C
7bf7yUEB8BvgN8BvgG9hKz9FbdreTj30e6j3mG6zns4/hc4/hc4/7Q8Q+D4I9WStp/NPoWNPodNO
odNOodNOodNOodNOUcjhYj7uBaCOPUUhh70br/NPofNPUchhL/l0ECp0ECp0ECp0ECp0ECp0ECoK
OVwMhl4VFnLYSz6dkdr/7maR+OmMVOiMVOiMVOiMVOiM1EfS7tWWDkuFDkuFDkuFDkuFDkuFDkuF
jkaFjkaFTkSFTkSFTkSFDkKFDkKFDkIFB6GCg1DBQajgIFRw7Cl82unFjjunnYLTTsFpp+C0U3Da
KTjtFBxyCg45BYecgkNOwSGn4JBTcMgpOOQUHHIKDjkFh5yCQ07BIafgkFNwyCk45BQccgoOOQWH
nIKzTdHTUM8+PY/0VNGzQZvVdKQpdKRpbyqh1tmm0JGm0JGm/VtVRWebQmebQmebQmebQmebQmeb
QmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQmebQkeaQkeadqRqa51t
Ch1pCh1p2r9VB+hsU+hIU+hI0/6tekVnm0Jnm0Jnm0Jnm0Jnm0InmUIHmELnlvYHqDd1gGn/W52q
k0yhk0yhk0zBSabgAFNwgCk4wBScW9ofNSgEXz0pvPgqufKmsPFVUZh85QcurvjJfk5R8F2r7+p9
/Rf7+px22q9QnTZJv1igcv4pOPYUHHsKjj0Fx56CY0/77f4N9Wpp4bRTcMgpOOQUHHIKzjYFZ5uC
s03Rs2rbz3qC7Hmxp0MdYAqdWwqdWwqdWwqdW4qFkPSKWgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeY
QgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeYQgeY
QgeYQgeYQseVQseVQqeUQqeUQkeR9mqrv3QmKXQmKRYi0RYBHU4KHU6KPor0whago0jBCaTgBFJw
Aik4gRScQIp1TPNtLeDgUfjg0QtXDA4eBQePgoNHwXmj4LxRcN4oOG8U65PBzV0bUDeg9jGjF44d
HDMKThcFp4v23/CuDcw9uDlmFBwzCg4VBYeKgrNE+3OAurlgEV1/DvEGTk+A0xPg9AQ4PQFOT4DT
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
AE+AJ8AT4AnwBHgCPAmeBE+CJ8GT4EnwJHgSPAmeBE+CJ8GT4EnwJHgSPAWeAk+Bp8BT988+osNp
tzntNqfd5rTbnHab025z2m1Ou81ptzntNqfd5rTbnHab025z2m1Ou83/n9ptPsuYGucpmfOUzHlK
5jwlc56SOU/JnKdkzlMy5ymZ85TMeUrmPCVznpI5T8mcp2T+pKdkPrsIGh/++78bLrCfFPaTwn5S
2E8K+0lhP9HK4iNP2r5U2E8K+0lhP5nYTyb2k4n9ZGI/mdhzJngmeCZ4JngmeCZ4JvacCZ4Jngme
CZ4FngWeBZ4FngWeBZ4FngWeBZ4FngWeBZ4FHukmg32bj02XtGHboC6tm+w/nnzlVs0/uZPPOTj+
fAbHf6nx8e//8mtf/vj2b33xy998/OL//NUXv/75b371D1/8+v/8wRc//d7v/49f/P7/+7Nf//fb
h48//1+g/F8+4Hc/++l+x6/0xf/nX37ysy9+/nFw/vxfv/jVr37ygy9+/cXvfvGTj7/+P/7x1//7
afCPa4r/4bb4f0b+/qOo/l//76///J+/+N/X/mjT/eKPv/erf/7i13u7/Wc22q/+s573P37yzz/4
4nf/l0/7I9r8f90Ov/riFz//1b/8Z7/vT+yu+b/q4f/cqeF//N+cG/6v2/u/Ftv/7cH95wDXsvNf
AvZ/txk1BvuPg/3Hwf7jYP9xsP842H8c7D8O9h8H+4+D/cfB/iOOa3thUAgKSaEogCfAk+BJ8CR4
EjwJngRPgifBk+BJ8CR4EjwJngRPgifBU+Ap8BR4CjwFngJPgafAU+Ap8BR4CjwFngJPgafAM8Ez
wTPBM8EzwTPBM8EzwTPBM8EzwTPBM8EzwTPBM8GzwLPAs8DTKluw1R5stQdb7cFWe7DVHmhhwVZ7
sNWOI8xeGBSCQlIoCpPC6kIP9WCoB0M9GOrBUA+GejDUg6EeDPVgqAdDPRjqwVDHA2EvgCfAk+BJ
8CR4EjwJngRPgifBk+BJ8CR4EjwJngRPgifBU+Ap8BR4CjwFngJPgafAU+Ap8BR4CjwFngJPgafA
M8EzwTPBM8EzwTPBM8EzwTPBM8EzwTPBM8EzwTPBM8GzwLPAs8Djob7As8DTq5M7UnBHCu5IwR0p
uCMFd6QAb5m98KawURgUgkJSKAqTwupCS8EdKbgjBXek4I4U3JGCO1JwRwruSMEdKbgjBXek4I4U
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
i04p+oKJxVOJZ42eBN4XTwKH9Bc9WLRqAdUTQxmz38VdkxlvuhZUOfwcbkdALZmWtxarYPs62IJ7
YwkNrAMB9wT2pje20fflGL1JG07qntQ9qfv0FboyqWC6gnR3Uq+kXh51k9s9/IoKFhUsquPB5hHl
YeN+n8Aoht9kRBV4yi/1j/0boLor3YNHf9Hdk9+4B48u8F2AdxcsnrN8F52yqPKEkZdvpy8m9Vp+
oG+nNSbdtHwXA3L5dlrDLeaGmjTCUUH6a/k53LXouMUssXiOq+NaHJh5xQGed7kWBr8YbMbcMJj9
4mIdqIHFxepP44lPZrbj7XrpVQPiqjpdhf9a3KbRdu3fqmevX+Jbwb1KPbr+hT6+wreqw1Uqy/Vr
+pCmcpWmcv2GPqSgXKWgXL/FA1T3qzSV619zeaPQ0KW7XP9WH3+nD6kjV6kj1+9yi1uoKyoF5fp9
Lqt1rv+gD+kl1y/4tptBeslVesn1x/qQOnKVOnKVOnL9KXeuLvT8ff0Zf0sQrv/M3+rLq1SWq1SW
q1SW66/08Wt9/Au3qLOv0lSu0lSuv+VbdfxVKsv19/r4N77t/kVlubbKshduFO4U/OMnhReFNw/0
V/RS+DeDQlBICkVhUuihhspybZUlYKOAjfavwCwlJiCh/Qrgpc0EbBRmI7gnzD1XNJ4rGs+1NZ69
4HrRpeKnMD9dUX1MVNdWfcKMBT/tX9EIG42wGQaNMPwKapEgHLy0dSA4bL9CDw7eNXw71Rl+ju/y
VzQvctbSsxfAjLxYNNBUSBEeJk7z5dWD3qPdY9jD9RiZGlFhlr0eIyqA6pHgfg//GKgBVPdyADUZ
Y+5Bd1wCzP2VAHMXuMGTkZm8NAHmursWx28AlgBLgJXbkCHq3xRQy/3uu8BcYC76vahpAb4AXzRm
gbnAXGAuRKYQxqKhCoTH2w0VYJO3T8BPbp/cNcE8jdlXwDzBPGnwolMm4CfgJ6LnKk9aftLyE6gT
qAuoC6jr+ucQe+f0ljm9ZU5vmdNb5vSWOb1lTm+Z01vm9JY5vWVOb5nTW+b0ljm9ZU5vmdNb5vSW
+dN6y3y2sXdOZ5zTGed0xjmdcU5nnNMZ53TGOZ1xTmec0xnndMY5nXFOZ5zTGed0xjmdcT53Z5zP
MlbNm+Clb0JxvvGIeeOJ8GYr5o0JfC/QUouWWnTzooEWDSRlIaxsomO+b7r55kbWU296ws2Dghmx
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
gmeCZ4FngWeBZ4FngWeBZ4FngWeBZ4FngWfFfyAWCuF4N2LubsTc3V56wUvVfelnL/3o1T9RNV8i
vJcI7yXCe4nwXiK8lwjvJcJ7ifBeIryXCO/1TYZSP1zM9xLzvcR8LzHfS8z3EvO9tPR8iedeWnG+
RG8vGSVfIrOXyOwlMnuJzF4is5fI7KX15Usc9tL68iWieomoXiKql4jqJaJ6aRH5+hW16LYRUb1E
VC8R1UtE9RJRvURULxHVS0T1gqheENULonpBVC+I6gVRvSCqF0T1gqheENWL5eCr+SnIZbRfKQqT
QtcDonqxLnzhAhTHLFBA3YC6MXOVr4B5A/PGzFXUawP8BvgN8Bvgm7peUNerqStIoLRfAbwZq3jp
MGZabAB+AHWAZ/DA4dt9F1AHUAdQB1AHUAdQB807QBg0b9C8AZ4AT4AnwBPgCfAEeAI8AZ4AT4An
wBPgCfAkeBI8CZ4ET4InwZPgSfAkeBI8CZ4ET4InwcMcYDE6hmiBx4PNQ8vjxwPA3e1eLvAUeAo8
BZ4CT4GnwFPgmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeCZ4JngmeBZ4FngWeBZ4FngWeBZ4Fng
WeBZ4FngWSgEbsMFsAWwJo+ea3qmaT24J5eeWnpieYs83iKPt8jjLfJ4izzeIo+3yOMt8niLPN4i
jzfk0b36Fnm8RR5vkcdb5PEWebz/jlsaq1jkLRZ5s1rqQfEWnbxFJ+9/4NuumXjlLV55i1fe4pW3
eOUtXnn/I3eysu+h9RbTvMU0bzHNW0zzFtO8xTRvMc1bK6G3COYtgnmLYN4imLcI5i2CeYtg3iKY
NwTzhmDeEMwbgnlDMG8I5g3BvCGYNwTzhmDeEMybBdAbXnnDK2945Q2vvOGVN8udNyzyZrnzhjze
bG2RyS7IZLd/BcKNFe30k4G6AXVjTE+/FMwbmDcwb2AevGvw5AEXTkxAE8y2X03AD0hx0qrDX/kK
tRi08wD8wDo0Ic7p37g6GLImNR3Uyzal6R+jB0x/RZWHC9Q9qHtQdxuObLpZ/g11X9Dt4seLzg0a
KmiEoHOXv6I1bKVYrDgXLRa0T9A+y3cxIINGCGq6aLqgpkFNk1okNU0GSQLeK7NFgy8a3Gtiz5uL
dl4MrQR8AjXBk1Qn/UA/R4pOHsMvqVc7yJLbbbOnLM6vG86vQdq3zf6s9jHFY3Kzx6T9I+0Eie9j
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
TkU8TkU8TkU8TkU8TkU8TkU8TkU8TkU8TkU8TiIeJxGPk4jHScTjJOJxEt84iW+chDVOwhonYY2T
aMZJEOMkiHESxPjqEhiiMgkR1jgd1nghkxDRjPPTLTbNBWg+XYD4E+JPiD8h/oT4E65ryFhzLfiw
MXc0eLe5Oi09aelJSyv9FdGMk2jGV3V/VD32UT/MLTKHpYKRpmKQ5gc91+qyXqtgpKlgpKlgpKlg
pKlgpKlgpFfNTkG0fSA2rd713fpf5rBUwNJUwNJUwNJUwNJUwNJUwNKrioZIkUtTkUvz4we/eeTA
651iTIU5TYU5TYU5ve5qwBXvNBXvNBXmNBXmNBXmNBXdNBXd9KrJWGt1nxXvdCHG5kKc/qUWo6kI
qKkIqKkIqKkIqKkIqPkBimoVmgqFmgp8mop3mgpzmgpzmgpzmgpzmgpzmgpzmgpqmgpqmoplmsQy
TWKZJrFMk1imSSzTJJZpEss0iWWaxDJNYpkmsUyTWKZJLNMklmk6lulC7NCFfKAENU2Cml63eM8J
qSekGtA6nzih+YTmE5pPaD6h+YTmE4npCEflwvq4AW2YMLh/0Icn7TqpVYCmyKWpgKX58quYdLSI
TYUwzRcfrzxVimWaimWaCmF63VUTFcs0Fcs0Fcs0Fcs0Fcs0Fcs0Fcv0qqk+UVDTVFDTVFDTVFDT
6yH1l6KbpqKbpqKbpqKbpqKbpqKbXlXUswpzmopumopumopumopumopumopumopumgpqmgpqmgpq
mgpqmgpqmgpqmgpqmgpqmgpqmgpqmgpqmgpqehGlUVZ001R003xJNuQZlPIMyhcqYmUek4tQ4iKU
uAglLkKJi1DiIpSvWzOsbGX4CiW+QolnUOIZlDgEJQ5BiUNQ4geU+AElfkCJH1DiB5T4ASV+QInX
T+Lskzj7JM4++bpRa/D1E8JOCDt9C8JOCDshrNhdPj4pH5+Uj0/KtSfl2pNy7Um59qRce1KuPSnX
npRHT8qjJ+XRk/LoSXn0pDx6Uh49KY+elEdPvkGSYTmtT4uV5dFzXS5SxNPy6Mk3PF1pz+Tak/Lo
SXn0pDx6Uh49KY+efKOkTSauSoL2Bi4qx9wblKhsr3LtSXn0pDx6Uh49KY+efIMJlddXrj0p156U
a891VyMtH5+Uj0/Kx+e6q+GXs0/K2Sfl7JNy9kk5+6ScfRJnn8TZJ3H2SZx9EmeffN8CUOln8fpJ
vH4Sr5/E6yfx+km8fq7qfqZTGBRqyJAE3H8SZ5/E2Sfx8Ul8fBKPnsSRJ3HkSRx5EkeexJEncdtJ
vHUS35zENyfft0pWSeKW+tE75HeTcrdJednkAgZOwKcSyMndJhfm+0oXKL+blN9NlpfNQsZA+dSk
fGpSPjUpn5qUT03KpyblQfNZO61V+lqr9CyfmrWW5ymfmut/daSca1LONSmfmpRPTcqnJuVTc1VR
l8u5JuVck+Vcs9ayPuVTk3KcSTnOXHc1OPKgSXnQpDxoUh40KceZlONMluPMWkv+lONMynEm5TiT
cpxJOc6kHGdSjjMpx5mU40zKcSblOHO99aRQgyohkSvNdbkGGWnBpybtU7OWkSDxqUl8ahKfmsSn
JvGpSXxqEp+a6z2dwuCWv+5P+JnJFT/MlZIf3G0Sd5vE3SZxt0ncbRJ3m8TdJnG3SdxtEnebxN0m
cbdJ3G0Sd5vE3SZxt0m526TcbVLuNil3m5S7Tcq5JuVck/KpSfnUpHxqUq40KVealCtNypUm5Urz
uXPKsWwlx7Kca7Kca1YyLsunJuU4kysiUWmY5UGT8qBJedCkPGhSjjMpx5mU48xVc6GgXpUrzfW/
OndFSCpVs5xrUs41KeealHNNyrkm5VxzVTkoaDTkbpNyt7kuV/dKbOR3k/K7ue4mhep3yY88cVKe
OClPnJQDTsoB56oCz5WFQi451/+zCo3+rsW4vHVS3jopb52Uk07KSSdx0rkqvSi8ufWigIxV8mX8
dxL/ncR/53rGV3YKB4WTQlBICo0CzWx+od8zuMIgNOaN5hcW7yJ+eP0kzj6Js0/i7HNVh4wT4ksO
8fpJvH4Sr5/E6yfx+km8fhKvn8TrJ/H6Sbx+Ul4/Ka+flNdPyusn5fWT8vpJef2kvH4uYutZCaTc
f1LuPyn3n5T7T27f/e8Qb+DxC3j8Ah6/gMcv4PELePwCHr+Axy/g8Qt4/AIev4DHL+DxC3j8Ah6/
gN+9X8BXG33gcTt43A4et4PH7eBxO3jcDh63g8ft4HE7eNwOHreDx+3gcTt43A4et4PfpdvBVxl/
IBUGJRUGJRUGJRUGJRUGJRUGJRX0JBX0JBXrJBXrJBXrJBXiJBXiJBXiJBXiJBXiJBXiJBXiJBXQ
JBXHJBW+JBW1JBW1JBW1JBW1JBWjJBWjJBWj5BoHc2oNl8RXUUuuyzV8kmNFLckNqS2zkMKXXP+L
TRXHJBXHJBXHJBXHJLdbWDvCWpYVIptcV2BqWUyuwsYzfnihsFLwMzsFhKwMLCsGFqKf5HaDZveV
pNAo0E09uDIoVA8hrIRBScKgJGFQcruFtTOJdj5xuqWdK0wenW+dtOukFSc0nxB2QnxZJFZsFMRM
SWKmJKFSPj8zIL4kWzFTUjFTUjFTUjFTUjFTUqFSUqFSUqFSUhFSUhFSUhFSUoFRUoFRUoFRrm+q
nxQhJRUhJRUhJRUhJRUPJRUPJRUP5aqpjlVglFRglFRglOuuelsRUlIRUlIRUlIRUlIRUlIRUlIR
UlIRUlIRUlIRUlIRUlIRUlIRUlIRUlIRUnKXaCnRSSrRSSrRSSrRSSrRSSrRSe7Iz4Adylaj1CdZ
qU9WDDFKfZJKfZI7CmVZYMiBkuRASXKgJBlPkownSaKTJNHJ9R6EpEwh+y02Zekg9cl1JbniW77S
KCAtw1dAvdG5UtyD2JAD5XpmcIXmnDTnpDknzTlpzklvlGyQ+iRJfZKkPklSnySpT5LUJ0nqkyT1
SVY7q5XVxlpy1iRQbVHqkzzAuDIcKAdKKgdKKgdKKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJ
KuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJKuNJHiiLZeBQ6pNU6pNU6pPr
rlhPOVBSOVBSOVBSOVBSOVBSOVBSOVBSqU9SqU9SqU9SqU9SqU9SqU/ygN3LTHLcAFKGEpKhJMlQ
kmQoSTKUJBlKHjffTz9zUDgpBIWk0Ch0CoNCjTOsTFaUJCtKkhUlyYqSJENJkqEkyVCSZChJMpQk
GUqSDCVJhpIkQ0mSoSTJUJJkKFmVTyBngjRlB6pXnUhtGYDqffU25Um57oo4JUxJJUxJJUxJJUxJ
JUxJJUzJk/l+MoeU8eNkjSXLRiqFyvV/ESQBUC6VVC6VVC6VVC6VVC6Vq4p6QUlVUklVUklVUklV
UklVUklVUklVUklVUrlUUrlUUilUUplTUplTUplTUplTUplTUplTUplTUplTLmqq6yQASqGSSqGS
SqGSSqGSSqGSSqHyebUgY0sql0oql0oql0oql0qSSyXJpZLkUklyqSS5VJJcKkkulSSXSpJLJcml
kuRSSXKpJLlUklwqSS6VJHNKkjklSZiSJExJEqYkeVKSPClJnpSrzS8KrgWFZXjesC2RQiVJoZIk
TLme8SegGRZGJMiTkmWiKZNM+A0bBfWVzChZRpTyzNiwHykZSioZSioZSioZSioZSioZylVFXa2s
KKkcKKn8JtfdIkcTvxKdpBKdXHeLSgmA8puk8puk0pqk0pqk0pqksplcNTWKSmuSSmuSSmuSSmty
PVSNlCQov0kqm0kqZUkqZUkqZclVZVBQvyqJSSqJyefLWb0sIVESk+vyBwXxidKaXP9r4JXfJJXW
JJXNJJXEJJXE5Hp2oaDhVlqT638xlvKbpPKbpPKbpPKbpNKapNKaJGlN0mlNNqwppDVJ0pokaU2u
Zw6ubBRc6+CZkysuBIWk0Ch0CoMCrFa+Lxu+L6Q+SVKfJKlPktQnSeqTJPVJkvokSX2SpD7JuGUs
EYOEnhOaCzs27DZkRUmyoiRZUa5nJlcolNSVXamaUuaj+lhSuwxAGwagpCtk20mlR7n+V2uVJyXz
93/ziAOppCqppCqppCqppCrXh+C4BgfIrJPKt3L9r05V4pVU4pWsNCsbziGJPMvgk8quksquksqu
ksqukpVdZSNrxYZ1R9lVrv8ZrFrBb6zglXgllW8llW/luquxUOKVTIS/09u1dFcGllQGlutydbqm
A6ViSaViue7WEAghlYEllXgllW8llW8llW8llW/lqkmflkuEMrBc/zMFd+ChVuxKzpLKyZLKyZLK
yZJKxZIJinZYupbrSs6SSs6SSs6SSs6SJGdJkrMkyVmS5CxJcpYkOUuSnCVJzpIkZ0lysiQ5WZKc
LElOliQnS5KTJcnJkqRiSVKxJKlYkgwsSQaWJANLkoElycCSZGBJMrAkGViSDCxJBpYkA0uSgSXJ
wJJllSz+K7udmC6L5Yq3lHgllXgllXgllWYllWYllV0llV0llV0llVQllVQllVQlG9LSmXrKUqI0
K6k0K9flIkXyo+wq2ZCfMp0oqUoqqUoqqUoqqUoqqUoqqUoql8pVk3mnTCMNkRig2AA0yuCgxCup
fCupfCvZJBs6jJQNhBzwf638dTwpG1BZK3+dU0qdU8qGkNTKXweWUgeWUgeWUgeWUgeWUueUUueU
rpoAVK31dXLp+r+G+T/5v8ZbQsJZpuQsU3KWKTnLlO1GyFr3c6gpOdSU7UbIsgRwuik53ZScbrqe
GVzxC13Lt4r5kB+OOSXHnK73MJbTz0D8yUBMhnXSwJIxjkIlR6GSo1DJUajkKNRV3W9OChB/QvwJ
8SfEl7B1v0V9Wu5OxfrF6sXTZdbTCajUCajUCajrBSK+jkJtrPV0Aip18Cl13il13il13il13il1
3ik7cjiZj2sBqINP2ZHD2o7XCajUCajsyGEt+XQUKnUUKnUUKnUUKnUUKnUUKjtyOGGGWhV25LCW
fDoldf1f3SLx0ymp1Cmp1Cmp1Cmp1Cmpz6Bdqy0dl0odl0odl0odl0odl0odl0odjkodjkqdiUqd
iUqdiUodhUodhUodhUqOQiVHoZKjUMlRqOTgU/q8086WO+edkvNOyXmn5LxTct4pOe+UHHNKjjkl
x5ySY07JMafkmFNyzCk55pQcc0qOOSXHnJJjTskxp+SYU3LMKTnmlBxzSo45JcecktNNWdNQzT41
j9RUUbNBmdV0qCl1qOnqKlGt002pQ02pQ03XXTVFp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tS
p5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSp5tSh5pSh5ouStXXOt2UOtSUOtR03dUA
6HRT6lBT6lDTdVejotNNqdNNqdNNqdNNqdNNqbNMqSNMqZNL1ws0mjrCdP2vQdVZptRZptRZpuQs
U3KEKTnClBxhSk4uXa8KCsmtjcLOrcaVg8LJrU5hcMsvnFzxm/2eTsG1ZtWqjf2djX3OO11XaE6Z
pHcWqJyASg4+JQefkoNPycGn5ODTVd3P0K6SFs47JceckmNOyTGn5HRTcropOd2UNauW/awmyJoX
azrUEabUyaXUyaXUyaXUyaWcCEmtqHWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWE
KXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXWEKXVgKXVg
KXVOKXVOKXUY6Wq2xkunklKnknIiEmUR0PGk1PGkrMNIO7YAHUZKziAlZ5CSM0jJGaTkDFLOe5ov
awFHj9JHj3Z8MTh6lBw9So4eJSeOkhNHyYmj5MRRzi+Ym1onpJ6QWgeNdjw7OGiUnC9Kzhddz/Ct
E5qLuTlolBw0So4VJceKktNE13sg9XTBIjr/O0QceDwBHk+AxxPg8QR4PAEeT4DHE+DxBHg8AR5P
gMcT4PEEeDwBHk+AxxPgd+EJ8NXGGHgcDR5Hg8fR4HE0eBwNHkeDx9HgcTR4HA0eR4PH0eBxNHgc
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
doQlNk1i0wCicmlpkp8m+Wk//S89DPB/UQDFx2rwWA0eq8FjNXisBo/V4LEaPFaDx2rwWA0eq8Fj
NXisBo/V4LEa/C6sBr+rkwP/R6INPKcHntMDz+mB5/TAc3rgOT3wnB54Tg88pwee0wPP6YHn9MBz
euA5PfCcHvjdnx74KqMOfPq9X1Estld6lVR6lVR6leuu2El5VlJ5VlLpVVLpVVLpVVJZVVJZVa6a
cJJsB1l5VhZyeyzkB1xqqZvKvJLKvJLKvJLKvJLKvJIfYLTWuKkULKmEK6k8K6n0Kqn0Kqn0Kqn0
Kqn0Kqn0KqlkKqlkKqkcKkkOlSSHSpJDJcmhkuRQSXKoJDlUkhwqSQ6VJIdKkkMlyaGS5FBJcqik
c6gs5CxZat2eJFNJkqlct3jPCaknpBouO584ofmE5hOaT2g+ofmE5hN57Ihen9wCZ4YJQ7YGfXjS
rpNaBZfKmJJKlJIvv4opTUvkVOqUfPFxLZhTOVRSOVRSqVOuu2qicqikcqikcqikcqikcqikcqik
cqhcNdUnSqaSSqaSSqaSSqZyPaT+UlaVVFaVVFaVVFaVVFaVVFaVq4p6VulVUllVUllVUllVUllV
UllVUllVUllVUslUUslUUslUUslUUslUUslUUslUUslUUslUUslUUslUUslULqI0ysqqksqqki/J
hgKXpgKX5gsFdNRwSUiIYJpEME0imCYRTJMIpvm69c6RXNkpHBROCkHBDzcKncKgUHyAbBCmNAlT
mv8f9v6uaZanuPYEv8rcyGyuundVZWZlXhwbC/eIAAFCAr0gdDMGEggkJBAISejT95Na/lu5/8ds
+vShT8PGJs227YonqzJzxYuHe3h4LIemNKApDUhJAy7SgIs04CKN56UTB28/AHYA7PBXADsAdgCs
hrsoSEMUpCEK0hDzaIh5NMQ8GmIeDTGPhphHQ8yjIcLREOFoiHA0RDgaIhwNEY6GCEdDhKMhwtF4
oaeG5bReraEswtHzckHRmBbhaLwY07OqpDEtwtEQ4WiIcDREOBoiHI0XJuBk4pIjIF6oCy3644WW
0AI/xDwaIhwNEY6GCEdDhKPxQidoLR9iHg0xj4aYR89v1dOiIA1RkIYoSM9v1f3iIg1xkYa4SENc
pCEu0hAXacBFGnCRBlykARdpwEUar0sAtPYPSEkDUtKAlDQgJQ1ISQNS0vN2/6ZTGBSqy5AE2EkD
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
x9Mf1Hj6YqPAbi/v7eW9vby3l/f28t5e3tvLe3t5by/v7eW9vby3l/f28t5e3tvLe3t5///Uy/t7
jcj76z/51tc/3v7dH/3Lrz8u/u+//NGvfv7rX/7tj371v//dj372g9/8b7/4zf/nn371316fPn36
v+py/LPf/OtPfv7Pf/63v/zpL/71f+h6/C8I//P1/K+6/T/jA/0twfy//t/f/vk//+h/3Nz/U4//
5f/2D7/6Hzzv6q/z4k9+8Mt//tGvfvXLH/3i57/81//Tm3+LJvr//b7/R970f62l/r8fA/5H//G/
GsDvbACdPfy/Tvz/J1y0/+fj5suB9PsC8z85+n6XGP9HLvYPVV6auqGpG5q6oakbmrqhqRuauqGp
G5q6oakbmhoXz1loFIJCUugUwBPgSfAkeBI8CZ4ET4InwZPgSfAkeBI8CZ4ET4InwZPg6eDp4Ong
6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ
4JngmeCZ4KmdsMAoDYzSwCgNjNLAKA2M0sAoDYxSloxnoVEICkmhUxgUZhVqqAdDPRjqwVAPhnow
1IOhHgz1YKgHQz0Y6sFQD4Y6tvpZAE+AJ8GT4EnwJHgSPAmeBE+CJ8GT4EnwJHgSPAmeBE+Cp4On
g6eDp4Ong6eDp4Ong6eDp4Ong6eDp4Ong6eDp4NngGeAZ4BngGeAZ4BngGeAZ4BngGeAZ4BngGeA
Z4BngGeCZ4JngsdDfYJngqc2fRekYEEKFqRgQQoWpGBBClhXnoWdwkGhUQgKSaFTGBRmFUoKFqRg
QQoWpGBBChakYEEKFqRgQQoWpGBBChakYEEKFqRgQQoWpGBBCnCCNtw1ZwE8CZ4ET4InwZPgSfAk
eBI8CZ4ET4InwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdPBM8AzwDPAM8AzwDPAM8Az
wDPAM8AzwDPAM8AzwDPAM8AzwTPBM8EzwTPBM8FjKZjgmeCZ4JngmeCZ4JngqbCGg9GL9/osvCgs
FFYKG4U3hZ3CQaFRCApJoVPw22cVavQejN6D0Xsweg9G78HoPRi9B6P3YPQejN6D0Xsweg9G75Ox
wVHfxhnfxsndxsndhuO/cYq2cXi2cQy2cQy2cei1cbK1cSK1cRC1cf60cZK0cWC0cTa0ccazcbiz
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
edCVHtgevR60g9s9ejvV8cjsVKdTHQ/IDvgOVI8xjygPmw5C93sHWAeYu3uAxx3nbnJfDPC4Ma+m
c+fyLjfmYMwP3u6GcmtctwNsuFWN0Lf7N3w1AW+bYzIOJ9WxzTGpl22OSQUnFZxUcNLgk9EyGVGT
MXb9hr6YVNA2x6Q1Jp0yaaiJDF63q4Jvtc5bd7z1+7da4V0/UQu8pfXfcq2/pezf3+C5QvOWG+At
Zf+Wsn9L2b+l7N9S9m8p+7dW/2+t/t/S32/p77f091v6+y39/dby/S1t/dby/S0l/ZaSfmv5/pZu
fks3v6Wb39LNb+nmt3TzW4v1t1TyWyr5LZX81or8LU38liZ+SxO/f0XtqxWlkt9Sye9/49tqXOnm
t3Tz+zd/CBwrd9zHHfdxx33ccR933Mcd93HHfdxxH3fcxx33ccd93HEfd9zHHfdxx33ccR+/67iP
L41j5I4muaNJ7miSO5rkjia5o0nuaJI7muSOJrmjSe5okjua5I4muaNJ7miSO5rkdxdN8iWxhYS3
e94yFt4YC2+MhTfGwhtj4Y2x8C5jIV6fDbTBVxrUdmi/sSPe2BFv7Ig3dsQbO+KNHfHGjniXHRE4
xsOO8TeWxRsuKLvK35gYb0yMN74Ce9Hf2BpvbI03LoI3LoI3dsQbO+KNi+CN+WBv/BuySrvl3zgN
7J9/Y0e8cRq8r4ZqYHYFmzEfFIDhWpSxYK/++3p7mQb4+cN+/jc2wvuzB/p2+uL6MX3R3BeuF9Wp
RQ37BecVOiWoYFDBoIJBfwXVCRozGEjXXbRhAD4AH4APwAfgA/AB1ARhAix5RQIsAZYAS4AlzZvg
SfCUibpcFUyAJcASYAmwBFgHWHfTAaODsPPk7q9A2EHYQdhB2EHYabEOsA6wDrAOsA6wAbBBiw3w
DPAM8AzwDPAM8AzwDPAM8AzwDMaqh8QA2ADYYBx6tEwQThBOpovg7ROoE6iTV0w/xz8G6kT0Amny
8EMPeMr3rMqKntRae015NeHVdFeT3Y4whYdP/Uztv0sV71LFu1TxrnX3/k1uqUdKFe9SxbtU8S5V
vEsV71LF+3e5k1mrJGWXct6lnPe/5NsCIy29S0vv0tK7tPQuLb3/oG5J5oQStF16e/9bLmsQ7VLg
uxT4/mO+fVFgFixZ3KXbd+n2Xbp9l27f/5HfMi2WuO4/42917P5P/E3/lhm+yxDYZQjsv+Db6pJ/
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
O7bkji25Y0vu2JI7tuSOLbljS+7Ykju25I4tuWNL7tiSO7bkji35smNLvjT+kjti5Y5YuSNW7oiV
O2Lljli5I1buiJU7YuWOWLkjVu6IlTti5Y5YuSNW7oiVLz1i5YtiPYEeKrarXZI+SPcBLZX0QdIH
6T5gKCTjJmnx9JP9HH7cGTedKdMt7matNQxUVAEVVWxX+3ZavPsKHd+pTqdTO32Z/g3V6XRqpxad
WnRq0alFpxaDWgwwD4bCANgA2OClA2ADYIPmHeAZ4BmMbPfOANgA2ADYANgE2ATYBNgE2ATYBBja
GPMhMB+CpXRYDbOUDutYa1UUaBmfNS5qVNSYqBFR4yG1lE7p9pRuT+n2lG5PLZxTmjy1Xk4p8Pwz
2oiBW+M1tXDO73JZtUip9JRKz7/k28Ir3Z7S7Smnd2rrPaWuU+o6pa5T6jq1TE7p5NTqOP+eh1cr
SCenlskpVZxSxSlVnP/ELdVi0skpnZxaL6fWyyk1m1Kz+a/cWY0sfZvStyl9m9K3KX2b0reJvk30
baJvE32b6NtE3yb6NtG3ib5N9G2ibxN9m3Aem8EtUbyJ4k0Ub6J4E8WbKN5E8SaKN1G8ieJNFG+i
eBPFmyjeRPEmijdRvIniTRRvongTxZso3kTxJoo3UbyJ4k38uZDWnVcA1gBmc6v7pSBsIGwgbDwn
+HGAMEAYIAwQBggDhAHCoMUCYAGwoMUCPAGeAE+AJ8GT4EnwJHgSPAmeBE+CB1m29FpQLVQWFY/8
a2i5nd2YHTwdPB08HTwdPB08HTwdPB08HTwdPB08HTwdA9kK73o7CAcq0HgGUAc/HqhAQx0ugHmA
eYB5gHlgxXQME1dwUItBLQa1GAisG2HQvAPwk+adYJ5gnlRnAnUCdfL2yZMnUCfNOwE2ATYBNmne
UjnVE9UP1QvVB6W+q7W7VE6XyulSOV0qp0vldKmcLpXTpXK6VE7XmrF/h4YR6q41Y5eC6VIwXWvG
Lr3SpVe69EqXXunSK116pUuvdOmVLr3SpVe69ErXEq9LnXSpky510qVOutRJ18quS4t0aZEuLdKl
RfovqYWavEuddK3a+q/5thpX6qRLnfT/4Ntqc+mVLr3S0SsdvdLRKx290vHDQqUZptLsaJqOpukk
3zHLZkfldFROR+V0VE5nidfRNB1N09E0HU3T0TQdTdPRNB1N09E0HU3T0TQdTdPRNB1N09E0HU3T
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
eta36295FkJZXkJZXkJZXkJZXkJZXkJZXs5b1EVK9xJK9xKP7/32rALnMzUwlRsmlBsmlBvm/FYd
riQxoSQxodwwodwwodwwoZQwoZQw5530tVb3UUliFhKTLCQ3XGoxGkobE0obE0obE0obE0obEw+0
qFahofwxoWwxoSQxodwwodwwodwwodwwodwwodwwoUwwoUwwoQQwQQKYIAFMkAAmSAATJIAJEsAE
CWCCBDBBApggAUyQACZIABMkgAkSwIQTwCwkXFnIfUEmmCATzPkVzzmAegDVCq3zigPMB5gPMB9g
PsB8gPlAYjrCUbzPj0uhDQNj9A/a8KBeB3eVQlO6l1CWl3j6UUw6WsSG8r7Ek5cXJ7MSwIQSwITy
vpzfqopKABNKABNKABNKABNKABNKABNKAHPeqTZRJphQJphQJphQJpjzR2ovpYQJpYQJpYQJpYQJ
pYQJpYQ5b1HLKjdMKCVMKCVMKCVMKCVMKCVMKCVMKCVMKBNMKBNMKBNMKBNMKBNMKBNMKBNMKBNM
KBNMKBNMKBNMKBPMCUq9rJQwoZQw8ZRs6MhQ6MhQPDERi2VbZ4eCs0PB2aHg7FBwdig4OxTPyzIs
Zm4OEQWHiIIjQ8GRoeCkUHBSKDgpFBwQCg4IBQeEggNCwQGh4IBQcEAoOA4UnAIKTgEFp4DieWmt
wdsPgB0AO/wVwA6AHQCr4a7DP6HDP6HDP6EzP6EzP6EzP6EzP6EzP6EzP6EzP6GjPqGjPqGjPqGj
PqGjPqGjPqGjPqGjPqGjPvFCkwzLab1aQ1lHfc7LBUVjWkd94sWYLopvnfkJHfUJHfUJHfUJHfUJ
HfWJF0baZOIqwu8X6qL41F9oicpsojM/oaM+oaM+oaM+oaM+8UInVA4bnfkJnfkJnfk5v1VP6/BP
6PBP6PDP+a26X6eAQqeAQqeAQqeAQqeAQqeAglNAwSmg4BRQcAooOAUUr0sAKtUKx4GC40DBcaDg
OFBwHCg4DnTe7t90CoNCdRmSwLmg4BRQcAooOPwTHP4JjvoEJ3yCEz7BCZ/ghE9wwic4zxMc4wkO
7QSHduJ1mWRFiL7Uh56hAzmhczih4zexoAMnyqfI0nUOJxbm+6LG14Gc0IGcqOM3C+z4OmwTOmwT
OmwTOmwTOmwTOmwTOlrzYZ3WKn2tVXrUYZu1luehwzbn32pInboJnboJHbYJHbYJHbYJHbY5b1GT
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
AGFjY2Vzc2liaWxpdHkvbWFjL2F0dHJpYnV0ZWQtc3RyaW5nL1VUBQAD7mDRWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALKajUwfWz/GuQAAACkBAABuABgAAAAAAAEAAACkgc6/AwBhY2Nlc3Np
YmlsaXR5L21hYy9hdHRyaWJ1dGVkLXN0cmluZy9hdHRyaWJ1dGVkLXN0cmluZy1kb2VzLW5vdC1p
bmNsdWRlcy1taXNzcGVsbGVkLWZvci1ub24tZWRpdGFibGUtc3RkZXJyLnR4dFVUBQADsGXRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACmYjUwAAAAAAAAAAAAAAAAeABgAAAAAAAAAEADtQS/B
AwBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9VVAUAA+5g0Vp1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACymo1M5m4LO7gAAAApAQAANgAYAAAAAAABAAAApIGHwQMAYWNjZXNzaWJpbGl0
eS9tYWMvc2VsZWN0LXRleHQvc2VsZWN0LXRleHQtMS1zdGRlcnIudHh0VVQFAAOwZdFadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAKpiNTAAAAAAAAAAAAAAAAB8AGAAAAAAAAAAQAO1Br8IDAGFj
Y2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS9VVAUAA+9g0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACymo1MULpG6LkAAAApAQAAUAAYAAAAAAABAAAApIEIwwMAYWNjZXNzaWJpbGl0eS9t
YWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tY29udGVudGVkaXRhYmxlLXN0
ZGVyci50eHRVVAUAA7Bl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqmI1MAAAAAAAAAAAA
AAAAGgAYAAAAAAAAABAA7UFLxAMAYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci9VVAUAA+9g0Vp1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACymo1MwFFGrbkAAAApAQAAVgAYAAAAAAABAAAApIGf
xAMAYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci9jaGFyYWN0ZXItb2Zmc2V0LXZpc2libGUtcG9z
aXRpb24tY29udmVyc2lvbi1oYW5nLXN0ZGVyci50eHRVVAUAA7Bl0Vp1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADGmo1MAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHoxQMAYW5pbWF0aW9ucy9V
VAUAA9Nl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqmI1MAAAAAAAAAAAAAAAADgAYAAAA
AAAAABAA7UEtxgMAYW5pbWF0aW9ucy8zZC9VVAUAA+9g0Vp1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACzmo1Mjz9RA7kAAAApAQAANgAYAAAAAAABAAAApIF1xgMAYW5pbWF0aW9ucy8zZC9jaGFu
Z2UtdHJhbnNmb3JtLWluLWVuZC1ldmVudC1zdGRlcnIudHh0VVQFAAOxZdFadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAspqNTEaL95O5AAAAKQEAADAAGAAAAAAAAQAAAKSBnscDAGFuaW1hdGlv
bnMvQ1NTS2V5ZnJhbWVzUnVsZS1uYW1lLW51bGwtc3RkZXJyLnR4dFVUBQADsGXRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAMaajUxPRpW7KgMAACopAAAiABgAAAAAAAAAAACkgcHIAwBhbmlt
YXRpb25zL25lZWRzLWxheW91dC1hY3R1YWwucG5nVVQFAAPTZdFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAxpqNTMLF98D4AAAAqwkAACAAGAAAAAAAAAAAAKSBR8wDAGFuaW1hdGlvbnMvbmVl
ZHMtbGF5b3V0LWRpZmYucG5nVVQFAAPTZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAxpqN
TFzGsJ+HBQAAExIAACIAGAAAAAAAAQAAAKSBmc0DAGFuaW1hdGlvbnMvbmVlZHMtbGF5b3V0LWRp
ZmZzLmh0bWxVVAUAA9Nl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADGmo1M6HVlPp4AAAAR
AQAAJQAYAAAAAAABAAAApIF80wMAYW5pbWF0aW9ucy9uZWVkcy1sYXlvdXQtZXhwZWN0ZWQuaHRt
bFVUBQAD02XRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMaajUw1vMqiOAIAANQoAAAkABgA
AAAAAAAAAACkgXnUAwBhbmltYXRpb25zL25lZWRzLWxheW91dC1leHBlY3RlZC5wbmdVVAUAA9Nl
0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqmI1MAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA
7UEP1wMAY2FudmFzL1VUBQAD72DRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACqYjUwAAAAA
AAAAAAAAAAAOABgAAAAAAAAAEADtQVDXAwBjYW52YXMvcGhpbGlwL1VUBQAD72DRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAACqYjUwAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQZjXAwBjYW52
YXMvcGhpbGlwL3Rlc3RzL1VUBQAD72DRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALOajUx6
gs0NuAAAACkBAAAxABgAAAAAAAEAAACkgebXAwBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZh
cy5yZWFkb25seS1zdGRlcnIudHh0VVQFAAOxZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
tJqNTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BCdkDAGNvbXBvc2l0aW5nL1VUBQADs2XRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALOajUzJBUuPuQAAACkBAAA4ABgAAAAAAAEAAACkgU/Z
AwBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4ZWQtc3RkZXJyLnR4
dFVUBQADsWXRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACqYjUwAAAAAAAAAAAAAAAAWABgA
AAAAAAAAEADtQXraAwBjb21wb3NpdGluZy9hbmltYXRpb24vVVQFAAPvYNFadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAs5qNTAa1CAK4AAAAKQEAAEIAGAAAAAAAAQAAAKSBytoDAGNvbXBvc2l0
aW5nL2FuaW1hdGlvbi9hbmltYXRlZC1jb21wb3NpdGVkLWluc2lkZS1oaWRkZW4tc3RkZXJyLnR4
dFVUBQADsWXRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACqYjUwAAAAAAAAAAAAAAAAdABgA
AAAAAAAAEADtQf7bAwBjb21wb3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL1VUBQAD8GDRWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIALOajUzg7sDIuAAAACkBAABLABgAAAAAAAEAAACkgVXcAwBj
b21wb3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3ItYWxwaGEtd2l0aC1v
cGFjaXR5LXN0ZGVyci50eHRVVAUAA7Fl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqmI1M
AAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UGS3QMAY29tcG9zaXRpbmcvYmFja2dyb3VuZHMvVVQF
AAPwYNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAs5qNTIQHVUC4AAAAKQEAAEEAGAAAAAAA
AQAAAKSB5N0DAGNvbXBvc2l0aW5nL2JhY2tncm91bmRzL2ZpeGVkLWJhY2tncm91bmQtb24tZGVz
Y2VuZGFudC1zdGRlcnIudHh0VVQFAAOxZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAKpiN
TAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BF98DAGNvbXBvc2l0aW5nL2NhbnZhcy9VVAUAA/Bg
0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzmo1MPjI+x7gAAAApAQAARwAYAAAAAAABAAAA
pIFk3wMAY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZhcy1jb21wb3NpdGluZy1z
aXplLWxpbWl0LXN0ZGVyci50eHRVVAUAA7Jl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAq
mI1MAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UGd4AMAY29tcG9zaXRpbmcvY29sdW1ucy9VVAUA
A/Bg0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzmo1MDxb+ArkAAAApAQAAPAAYAAAAAAAB
AAAApIHr4AMAY29tcG9zaXRpbmcvY29sdW1ucy9hbmNlc3Rvci1jbGlwcGVkLWluLXBhZ2luYXRl
ZC1zdGRlcnIudHh0VVQFAAOyZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAs5qNTAAAAAAA
AAAAAAAAABwAGAAAAAAAAAAQAO1BGuIDAGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9VVAUA
A7Jl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzmo1MsfP5l7gAAAApAQAANgAYAAAAAAAB
AAAApIFw4gMAY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL2JhY2tncm91bmQtY2xpcC1zdGRl
cnIudHh0VVQFAAOyZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAKpiNTAAAAAAAAAAAAAAA
ABsAGAAAAAAAAAAQAO1BmOMDAGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL1VUBQAD8GDRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACqYjUw+e0pjuAAAACkBAAAvABgAAAAAAAEAAACkge3j
AwBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9hbmltYXRpbmctc3RkZXJyLnR4dFVUBQAD8GDR
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACqYjUwAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADt
QQ7lAwBjb21wb3NpdGluZy9maWx0ZXJzL1VUBQAD8GDRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALOajUwrvSaQuAAAACkBAAA0ABgAAAAAAAEAAACkgVzlAwBjb21wb3NpdGluZy9maWx0ZXJz
L2JsZW5kLW1vZGUtc2F0dXJhdGlvbi1zdGRlcnIudHh0VVQFAAOyZdFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAKpiNTAAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BguYDAGNvbXBvc2l0aW5n
L2ZyYW1lc2V0cy9VVAUAA/Bg0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzmo1MRlSIhLkA
AAApAQAAOwAYAAAAAAABAAAApIHS5gMAY29tcG9zaXRpbmcvZnJhbWVzZXRzL2NvbXBvc2l0ZWQt
ZnJhbWUtYWxpZ25tZW50LXN0ZGVyci50eHRVVAUAA7Jl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAArmI1MAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UEA6AMAY29tcG9zaXRpbmcvaWZyYW1l
cy9VVAUAA/Fg0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzmo1M3VEja7gAAAApAQAAPwAY
AAAAAAABAAAApIFO6AMAY29tcG9zaXRpbmcvaWZyYW1lcy9iZWNvbWUtY29tcG9zaXRlZC1uZXN0
ZWQtaWZyYW1lcy1zdGRlcnIudHh0VVQFAAOyZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
K5iNTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1Bf+kDAGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL1VUBQAD8WDRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALOajUx5Wd4auAAAACkBAABF
ABgAAAAAAAEAAACkgdTpAwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9hbmltYXRpb24tb3Zl
cmxhcC13aXRoLWNoaWxkcmVuLXN0ZGVyci50eHRVVAUAA7Jl0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAArmI1MAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UEL6wMAY29tcG9zaXRpbmcvbWFz
a3MvVVQFAAPxYNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtJqNTIHHnZO4AAAAKQEAAC4A
GAAAAAAAAQAAAKSBV+sDAGNvbXBvc2l0aW5nL21hc2tzL2JlY29tZS10aWxlZC1tYXNrLXN0ZGVy
ci50eHRVVAUAA7Nl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAArmI1MAAAAAAAAAAAAAAAA
FQAYAAAAAAAAABAA7UF37AMAY29tcG9zaXRpbmcvb3ZlcmZsb3cvVVQFAAPxYNFadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAs5qNTHTxeka4AAAAKQEAADEAGAAAAAAAAQAAAKSBxuwDAGNvbXBv
c2l0aW5nL292ZXJmbG93L2FuY2VzdG9yLW92ZXJmbG93LXN0ZGVyci50eHRVVAUAA7Jl0Vp1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAArmI1MAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UHp7QMA
Y29tcG9zaXRpbmcvb3ZlcmxhcC1ibGVuZGluZy9VVAUAA/Jg0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAC0mo1MQt1R9LwAAAApAQAAPQAYAAAAAAABAAAApIFA7gMAY29tcG9zaXRpbmcvb3Zl
cmxhcC1ibGVuZGluZy9jaGlsZHJlbi1vcGFjaXR5LWh1Z2Utc3RkZXJyLnR4dFVUBQADs2XRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACuYjUwAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQXPv
AwBjb21wb3NpdGluZy9wYXR0ZXJucy9VVAUAA/Fg0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAArmI1MsBHbwrgAAAApAQAAQwAYAAAAAAABAAAApIHC7wMAY29tcG9zaXRpbmcvcGF0dGVybnMv
ZGlyZWN0LXBhdHRlcm4tY29tcG9zaXRpbmctYWRkLXRleHQtc3RkZXJyLnR4dFVUBQAD8WDRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALSajUwAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQffw
AwBjb21wb3NpdGluZy9wbHVnaW5zL1VUBQADs2XRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ALSajUz8lJOlvAAAACkBAAA0ABgAAAAAAAEAAACkgUXxAwBjb21wb3NpdGluZy9wbHVnaW5zLzF4
MS1jb21wb3NpdGVkLXBsdWdpbi1zdGRlcnIudHh0VVQFAAOzZdFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAMpiNTAAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1Bb/IDAGNyeXB0by9VVAUAA/9g
0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAymI1MAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA
7UGw8gMAY3J5cHRvL3N1YnRsZS9VVAUAA/9g0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAC6
mo1MJeDTCCwAAAAsAAAAPgAYAAAAAAABAAAApIH48gMAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJh
dGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA8Bl0Vp1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAC6mo1MMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIGc8wMAY3J5cHRv
L3N1YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQF
AAPAZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALpiNTAAAAAAAAAAAAAAAAA8AGAAAAAAA
AAAQAO1BXfQDAGNyeXB0by93b3JrZXJzL1VUBQAD+GDRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAC6YjUwAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQab0AwBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvVVQFAAP4YNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAt5qNTCXg0wgsAAAALAAAADEA
GAAAAAAAAQAAAKSB9vQDAGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0
ZGVyci50eHRVVAUAA7ll0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC1mo1MAAAAAAAAAAAA
AAAABQAYAAAAAAAAABAA7UGN9QMAY3NzMy9VVAUAA7Vl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAC1mo1MAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UHM9QMAY3NzMy9maWx0ZXJzL1VUBQAD
tWXRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALWajUwAAAAAAAAAAAAAAAAWABgAAAAAAAAA
EADtQRP2AwBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvVVQFAAO1ZdFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAtZqNTNLpKnSodAAA5pkAAD8AGAAAAAAAAAAAAKSBY/YDAGNzczMvZmlsdGVycy9i
YWNrZHJvcC9hZGQtcmVtb3ZlLWFkZC1iYWNrZHJvcC1maWx0ZXItYWN0dWFsLnBuZ1VUBQADtWXR
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALWajUy1M8rpXgEAAPwIAAA9ABgAAAAAAAAAAACk
gYRrBABjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVy
LWRpZmYucG5nVVQFAAO1ZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtZqNTPRu1SqZBQAA
QhIAAD8AGAAAAAAAAQAAAKSBWW0EAGNzczMvZmlsdGVycy9iYWNrZHJvcC9hZGQtcmVtb3ZlLWFk
ZC1iYWNrZHJvcC1maWx0ZXItZGlmZnMuaHRtbFVUBQADtWXRWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIALWajUzqdKFtbQIAAI4EAABCABgAAAAAAAEAAACkgWtzBABjc3MzL2ZpbHRlcnMvYmFj
a2Ryb3AvYWRkLXJlbW92ZS1hZGQtYmFja2Ryb3AtZmlsdGVyLWV4cGVjdGVkLmh0bWxVVAUAA7Vl
0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC1mo1MKltvU6J0AADimQAAQQAYAAAAAAAAAAAA
pIFUdgQAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2FkZC1yZW1vdmUtYWRkLWJhY2tkcm9wLWZpbHRl
ci1leHBlY3RlZC5wbmdVVAUAA7Vl0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAvmI1MAAAA
AAAAAAAAAAAADQAYAAAAAAAAABAA7UFx6wQAZGlzcGxheWxpc3RzL1VUBQAD+mDRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIALiajUwBacvZVgAAAJQAAAAyABgAAAAAAAEAAACkgbjrBABkaXNw
bGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQADvGXRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAALiajUyxUBLFTAAAAEwAAAApABgAAAAAAAEAAACkgXrs
BABkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQADvGXRWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPybjUynR9vcMQ8AAH6CAAANABgAAAAAAAEAAACkgSntBABl
cnJvcl9sb2cudHh0VVQFAAMcaNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAS5iNTAAAAAAA
AAAAAAAAAAUAGAAAAAAAAAAQAO1BofwEAGZhc3QvVVQFAAMuYdFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAQZiNTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B4PwEAGZhc3QvY2FudmFzL1VU
BQADGmHRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMGajUz/NMmvWAAAALIAAAAmABgAAAAA
AAEAAACkgSb9BABmYXN0L2NhbnZhcy8yZC5jdXJyZW50UG9pbnQtc3RkZXJyLnR4dFVUBQADymXR
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMqajUxFBcwGfgAAAAIBAAAmABgAAAAAAAEAAACk
gd79BABmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUBQAD3GXRWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAADyYjUwAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQbz+BABm
YXN0L2RvbS9VVAUAAxRh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA8mI1MAAAAAAAAAAAA
AAAAGwAYAAAAAAAAABAA7UH//gQAZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvVVQFAAMUYdFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAx5qNTMFyCibFAAAAUgIAADYAGAAAAAAAAQAAAKSB
VP8EAGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L25lc3RlZC1leGVjdXRpb24tc3RkZXJyLnR4
dFVUBQAD1mXRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEuYjUwAAAAAAAAAAAAAAAAMABgA
AAAAAAAAEADtQYkABQBmYXN0L2ltYWdlcy9VVAUAAy1h0Vp1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADUmo1MIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIHPAAUAZmFzdC9pbWFnZXMvcGRmLWFz
LWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA+9l0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABMmI1MAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFnAQUAZmFzdC94c2wvVVQFAAMvYdFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1JqNTE77IPiIAAAA5wAAACUAGAAAAAAAAQAAAKSB
qgEFAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAA/Bl0Vp1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADUmo1M/aIuZI8AAADuAAAAJwAYAAAAAAABAAAApIGRAgUAZmFz
dC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAAPwZdFadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA1JqNTLK7xmeHAAAANAEAACQAGAAAAAAAAQAAAKSBgQMFAGZhc3QveHNs
L3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQAD8GXRWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIANWajUzC6/XGjAAAAGABAAA0ABgAAAAAAAEAAACkgWYEBQBmYXN0L3hzbC94c2x0LXRy
YW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPxZdFadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAE5yNTJ9BRa/IAQAAKQMAABEAGAAAAAAAAQAAAKSBYAUFAGZ1bGxfcmVz
dWx0cy5qc29uVVQFAANGaNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAUpiNTAAAAAAAAAAA
AAAAAAUAGAAAAAAAAAAQAO1BcwcFAGh0dHAvVVQFAAM7YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAbZiNTAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BsgcFAGh0dHAvdGVzdHMvVVQFAANu
YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAUpiNTAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQ
AO1B9wcFAGh0dHAvdGVzdHMvbG9hZGluZy9VVAUAAzth0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAIAAADamo1M6woOXC0AAAAtAAAANwAYAAAAAAABAAAApIFECAUAaHR0cC90ZXN0cy9sb2FkaW5n
L3BkZi1jb21taXQtbG9hZC1jYWxsYmFja3Mtc3RkZXJyLnR4dFVUBQAD+2XRWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAG2YjUwAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQeIIBQBodHRwL3Rl
c3RzL21pc2MvVVQFAANuYdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9ZqNTBU1NZJ6AAAA
vAAAACoAGAAAAAAAAQAAAKSBLAkFAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3Rk
ZXJyLnR4dFVUBQADLmbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGeYjUwAAAAAAAAAAAAA
AAAUABgAAAAAAAAAEADtQQoKBQBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADYWHRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAGKYjUwAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQVgKBQBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA1hh0Vp1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAABUmI1MAAAAAAAAAAAAAAAAQgAYAAAAAAAAABAA7UG8CgUAaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvY2stYWxsLW1peGVkLWNvbnRl
bnQvVVQFAAM/YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3JqNTKy8G3yMAAAAsQAAAGcA
GAAAAAAAAQAAAKSBOAsFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2Jsb2NrLWFsbC1taXhlZC1jb250ZW50L2luc2VjdXJlLWNzcy1pbi1tYWluLWZyYW1lLXN0ZGVy
ci50eHRVVAUAA/9l0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABVmI1MAAAAAAAAAAAAAAAA
RAAYAAAAAAAAABAA7UFlDAUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy9VVAUAA0Jh0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADgmo1MHkSbz30AAACEAAAAfgAYAAAAAAABAAAApIHjDAUAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdy
YWRlLXJlZGlyZWN0LWh0dHBzLXRvLWh0dHAtc2NyaXB0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQF
AAMEZtFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA65qNTGOqrGyCAAAAqAAAAEAAGAAAAAAA
AQAAAKSBGA4FAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1h
bGxvd2VkLXN0ZGVyci50eHRVVAUAAxpm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADsmo1M
Y6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIEUDwUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVU
BQADG2bRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAOaajUx2b5hSRQAAAEUAAABPABgAAAAA
AAEAAACkgSIQBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lLWxvYWRpbmctdmlhLWRvY3VtZW50
LXdyaXRlLWFzeW5jLWRlbGVnYXRlcy1zdGRlcnIudHh0VVQFAAMPZtFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgACAAAA5pqNTG6z8nNGAAAARgAAAD8AGAAAAAAAAQAAAKSB8BAFAGh0dHAvdGVzdHMv
c2VjdXJpdHkvZnJhbWUtbG9hZGluZy12aWEtZG9jdW1lbnQtd3JpdGUtc3RkZXJyLnR4dFVUBQAD
EGbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPGajUxgS2YQkQAAAPsBAABFABgAAAAAAAEA
AACkga8RBQBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3Vy
aXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAAyVm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACu
mo1MWwRYDqIFAABNEAAACgAYAAAAAAABAAAApIG/EgUAaHR0cGQuY29uZlVUBQADp2XRWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAGaYjUwAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQaUYBQBp
bXBvcnRlZC9VVAUAA19h0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABmmI1MAAAAAAAAAAAA
AAAADQAYAAAAAAAAABAA7UHoGAUAaW1wb3J0ZWQvdzNjL1VUBQADX2HRWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAJmYjUwAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQS8ZBQBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADwWHRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AHiYjUwAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQYkZBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9VVAUAA4Nh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB4
mI1Msj+dxnEAAACFAAAASwAYAAAAAAABAAAApIHtGQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1hY3R1YWwudHh0VVQFAAOD
YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeJiNTMgQg9D6AAAACAIAAEkAGAAAAAAAAQAA
AKSB4xoFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNv
cl9kZWxldGVfaW5kZXgtZGlmZi50eHRVVAUAA4Nh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAB4mI1MBw7VykoAAABLAAAATQAYAAAAAAABAAAApIFgHAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleC1leHBlY3RlZC50eHRV
VAUAA4Nh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB4mI1MKdaLaBQIAAC4GwAAUQAYAAAA
AAABAAAApIExHQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
Y3Vyc29yX2RlbGV0ZV9pbmRleC1wcmV0dHktZGlmZi5odG1sVVQFAAODYdFadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAZpiNTAAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1B0CUFAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL1VUBQADX2HRWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAHSYjUwAAAAAAAAAAAAAAAA5ABgAAAAAAAAAEADtQTcmBQBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAUAA3th
0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADumo1MjzQacEQAAACgCQAAYgAYAAAAAAABAAAA
pIGqJgUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJh
dGVLZXkvZmFpbHVyZXNfUlNBLU9BRVAuaHR0cHMud29ya2VyLXN0ZGVyci50eHRVVAUAAyBm0Vp1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADwmo1MVALJsjYAAADAAgAAawAYAAAAAAABAAAApIGK
JwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUuaHR0cHMud29ya2VyLXN0ZGVyci50eHRVVAUA
AyNm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8mo1MjzQacEQAAACgCQAAYAAYAAAAAAAB
AAAApIFlKAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2Vu
ZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC5odHRwcy1zdGRlcnIudHh0VVQFAAM8ZtFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/ZqNTFQCybI2AAAAwAIAAGkAGAAAAAAAAQAAAKSB
QykFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRl
S2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUuaHR0cHMtc3RkZXJyLnR4dFVUBQAD
PmbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHSYjUwAAAAAAAAAAAAAAAAmABgAAAAAAAAA
EADtQRwqBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUBQADe2HRWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHOYjUwAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQXwq
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9VVAUAA3ph0Vp1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABwmI1MAAAAAAAAAAAAAAAAMAAYAAAAAAAAABAA7UHgKgUA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvVVQFAAN0YdFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+ZqNTEpAGSkwAQAAGg8AAE8AGAAAAAAAAQAAAKSB
SisFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Jsb2Nr
LW1pbWUtYXMtc2NyaXB0LXN0ZGVyci50eHRVVAUAAzZm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAB3mI1MAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UEDLQUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9VVAUAA4Jh0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD9mo1MuyBeNggCAAC9DAAASQAYAAAAAAABAAAApIFsLQUAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW9yaWdpbi5hbnktc3RkZXJyLnR4
dFVUBQADPWbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGbjUxE4Ooq2AIAAJgSAABTABgA
AAAAAAEAAACkgfcvBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcHJlZmxpZ2h0LXN0YXR1cy5hbnktc3RkZXJyLnR4dFVUBQADQWbRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAGbjUyENE0ZmgEAAN4FAABMABgAAAAAAAEAAACkgVwzBQBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0
LmFueS1zdGRlcnIudHh0VVQFAANCZtFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAA5uNTMQs
Xp3OAgAAvxMAAFUAGAAAAAAAAQAAAKSBfDUFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRV
VAUAA0Vm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABymI1MAAAAAAAAAAAAAAAAMwAYAAAA
AAAAABAA7UHZOAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVk
aXJlY3QvVVQFAAN4YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/JqNTLBuQqKeAAAAIAMA
AEsAGAAAAAAAAQAAAKSBRjkFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlZGlyZWN0L3JlZGlyZWN0LW1vZGUtc3RkZXJyLnR4dFVUBQADO2bRWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAHSYjUwAAAAAAAAAAAAAAAAuABgAAAAAAAAAEADtQWk6BQBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvVVQFAAN7YdFadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA/JqNTOYPFCWcAAAAzwAAAEgAGAAAAAAAAQAAAKSB0ToFAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYt
c3RkZXJyLnR4dFVUBQADPGbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPyajUyi3zYdwwAA
AK4EAAA/ABgAAAAAAAEAAACkge87BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL25vc25pZmYvc2NyaXB0LXN0ZGVyci50eHRVVAUAAzxm0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD9mo1MbMdUlM8AAAAUCQAAQwAYAAAAAAABAAAApIErPQUAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3N0eWxlc2hlZXQtc3RkZXJyLnR4dFVUBQAD
PWbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJmYjUwAAAAAAAAAAAAAAAAlABgAAAAAAAAA
EADtQXc+BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAAPCYdFadXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeJiNTAAAAAAAAAAAAAAAAC4AGAAAAAAAAAAQAO1B1j4F
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9VVAUAA4Rh0Vp1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB4mI1MAAAAAAAAAAAAAAAANgAYAAAAAAAAABAA7UE+
PwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
VVQFAAOEYdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeZiNTAAAAAAAAAAAAAAAAE0AGAAA
AAAAAAAQAO1Brj8FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvVVQFAAOFYdFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgABJuNTOfreJJOAAAAfwAAAHsAGAAAAAAAAQAAAKSBNUAFAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1p
bnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4tc3RkZXJyLnR4dFVU
BQADSGbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAASbjUwgwGwcQAAAAEAAAACBABgAAAAA
AAEAAACkgThBBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
aGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1u
b24tYnJva2VuLXdlaXJkLXN0ZGVyci50eHRVVAUAA0hm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACZmI1MAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UEzQgUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9VVAUAA8Jh0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACZmI1MAAAAAAAAAAAAAAAAQAAYAAAAAAAAABAA7UGcQgUAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQADwmHR
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJmYjUwAAAAAAAAAAAAAAABTABgAAAAAAAAAEADt
QRZDBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L1VUBQADwmHRWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACSbjUx1vKmiTgEAAMICAAB8ABgAAAAAAAEAAACkgaNDBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlm
cmFtZS1lbGVtZW50L3NhbmRib3gtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS1zdGRlcnIudHh0VVQF
AAOEZtFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmZiNTAAAAAAAAAAAAAAAACkAGAAAAAAA
AAAQAO1Bp0UFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vVVQFAAPB
YdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmZiNTAAAAAAAAAAAAAAAADcAGAAAAAAAAAAQ
AO1BCkYFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlv
LWFwaS9VVAUAA8Fh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACZmI1MAAAAAAAAAAAAAAAA
VwAYAAAAAAAAABAA7UF7RgUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1jaGFubmVsbWVyZ2Vybm9kZS1pbnRlcmZhY2UvVVQFAAPBYdFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJJuNTLC6A3qjAAAA5wAAAH8AGAAAAAAAAQAAAKSB
DEcFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50ZXJmYWNlL2F1ZGlvY2hhbm5lbG1lcmdlci1kaXNj
b25uZWN0LXN0ZGVyci50eHRVVAUAA4Rm0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACdmI1M
AAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFoSAUAaW5zcGVjdG9yL1VUBQADyWHRWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAKCYjUwAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQaxIBQBpbnNw
ZWN0b3IvY29uc29sZS9VVAUAA8xh0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAom41MTb9W
GC8DAABLHwAAPwAYAAAAAAABAAAApIH4SAUAaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5l
LWFwaS1nZXRFdmVudExpc3RlbmVycy1zdGRlcnIudHh0VVQFAAOMZtFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAKpuNTL2gcWe3AAAABwMAACwAGAAAAAAAAQAAAKSBoEwFAGluc3BlY3Rvci9j
b25zb2xlL3dlYmNvcmUtbG9nZ2luZy1zdGRlcnIudHh0VVQFAAOQZtFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAr5iNTAAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BvU0FAG1lZGlhL1VUBQAD
6WHRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADibjUwu1t0IXwAAAGYAAAAiABgAAAAAAAEA
AACkgf1NBQBtZWRpYS9ldmVudC1xdWV1ZS1jcmFzaC1zdGRlcnIudHh0VVQFAAOsZtFadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAOZuNTAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BuE4FAHBs
YXRmb3JtL1VUBQADrmbRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADmbjUwAAAAAAAAAAAAA
AAANABgAAAAAAAAAEADtQftOBQBwbGF0Zm9ybS9tYWMvVVQFAAOuZtFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAOpuNTAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BQk8FAHBsYXRmb3JtL21h
Yy9tZWRpYS9VVAUAA69m0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5m41MEhCp7woBAAD1
AgAARwAYAAAAAAABAAAApIGPTwUAcGxhdGZvcm0vbWFjL21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0
ZWdvcnktdmlkZW8tdHJhY2stY2hhbmdlLWFjdHVhbC50eHRVVAUAA65m0Vp1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA5m41M2t3hCXUBAAANBQAARQAYAAAAAAABAAAApIEaUQUAcGxhdGZvcm0v
bWFjL21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0ZWdvcnktdmlkZW8tdHJhY2stY2hhbmdlLWRpZmYu
dHh0VVQFAAOuZtFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOZuNTHjSLAHyAAAAiQIAAEkA
GAAAAAAAAQAAAKSBDlMFAHBsYXRmb3JtL21hYy9tZWRpYS9hdWRpby1zZXNzaW9uLWNhdGVnb3J5
LXZpZGVvLXRyYWNrLWNoYW5nZS1leHBlY3RlZC50eHRVVAUAA65m0Vp1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA6m41M5BAc2f0IAAB0KQAATQAYAAAAAAABAAAApIGDVAUAcGxhdGZvcm0vbWFj
L21lZGlhL2F1ZGlvLXNlc3Npb24tY2F0ZWdvcnktdmlkZW8tdHJhY2stY2hhbmdlLXByZXR0eS1k
aWZmLmh0bWxVVAUAA69m0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADsmo1MPExRS2sCAACi
FQAAGgAYAAAAAAABAAAApIEHXgUAcHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAUAAxxm0Vp1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADsmo1MvJYssgkBAACPAgAAGgAYAAAAAAABAAAApIHG
YAUAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAUAAxxm0Vp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACvmo1MAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIEjYgUAcHl3ZWJzb2NrZXQud3Nz
LmxvZy1lcnIudHh0VVQFAAOqZdFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAr5qNTAAAAAAA
AAAAAAAAABsAGAAAAAAAAAAAAKSBeGIFAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUBQAD
qWXRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABOcjUyPylJacSkAAMavAAAMABgAAAAAAAEA
AACkgc1iBQByZXN1bHRzLmh0bWxVVAUAA0Zo0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD8
m41MAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UGEjAUAcmV0cmllcy9VVAUAAxto0Vp1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAD8m41MAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UHGjAUAcmV0
cmllcy9hbmltYXRpb25zL1VUBQADG2jRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPybjUxP
RpW7KgMAACopAAAqABgAAAAAAAAAAACkgRONBQByZXRyaWVzL2FuaW1hdGlvbnMvbmVlZHMtbGF5
b3V0LWFjdHVhbC5wbmdVVAUAAxto0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8m41MwsX3
wPgAAACrCQAAKAAYAAAAAAAAAAAApIGhkAUAcmV0cmllcy9hbmltYXRpb25zL25lZWRzLWxheW91
dC1kaWZmLnBuZ1VUBQADG2jRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPybjUxcxrCfhwUA
ABMSAAAqABgAAAAAAAEAAACkgfuRBQByZXRyaWVzL2FuaW1hdGlvbnMvbmVlZHMtbGF5b3V0LWRp
ZmZzLmh0bWxVVAUAAxto0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8m41M6HVlPp4AAAAR
AQAALQAYAAAAAAABAAAApIHmlwUAcmV0cmllcy9hbmltYXRpb25zL25lZWRzLWxheW91dC1leHBl
Y3RlZC5odG1sVVQFAAMbaNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/JuNTDW8yqI4AgAA
1CgAACwAGAAAAAAAAAAAAKSB65gFAHJldHJpZXMvYW5pbWF0aW9ucy9uZWVkcy1sYXlvdXQtZXhw
ZWN0ZWQucG5nVVQFAAMbaNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/JuNTB3Q+aO4AAAA
KQEAACoAGAAAAAAAAQAAAKSBiZsFAHJldHJpZXMvYW5pbWF0aW9ucy9uZWVkcy1sYXlvdXQtc3Rk
ZXJyLnR4dFVUBQADG2jRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHKZjUwAAAAAAAAAAAAA
AAARABgAAAAAAAAAEADtQaWcBQByZXRyaWVzL2ltcG9ydGVkL1VUBQADWGPRWnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAHKZjUwAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQfCcBQByZXRyaWVz
L2ltcG9ydGVkL3czYy9VVAUAA1hj0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABymY1MAAAA
AAAAAAAAAAAAKAAYAAAAAAAAABAA7UE/nQUAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1VUBQADWGPRWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHKZjUwAAAAAAAAA
AAAAAAAyABgAAAAAAAAAEADtQaGdBQByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL1VUBQADWGPRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHKZjUym
5GDDuAAAACkBAABTABgAAAAAAAEAAACkgQ2eBQByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtc3RkZXJyLnR4dFVU
BQADWGPRWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABOcjUyiIsxQe24JAN13MwAKABgAAAAA
AAEAAACkgVKfBQBzdGF0cy5qc29uVVQFAANGaNFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
uJiNTAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BEQ4PAHN0b3JhZ2UvVVQFAAP8YdFadXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAuZiNTAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BUw4PAHN0
b3JhZ2UvZG9tc3RvcmFnZS9VVAUAA/1h0Vp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC5mI1M
AAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UGgDg8Ac3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9VVAUAA/1h0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABEm41MMKDMgcQAAABSAgAA
WAAYAAAAAAABAAAApIH6Dg8Ac3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9jbG9zZS1p
ZGxlLWxvY2Fsc3RvcmFnZS1kYXRhYmFzZXMtaW1tZWRpYXRlbHktc3RkZXJyLnR4dFVUBQADv2bR
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAESbjUxJQu3/xgAAAFICAAA8ABgAAAAAAAEAAACk
gVAQDwBzdG9yYWdlL2RvbXN0b3JhZ2Uvc3RvcmFnZS1jbG9zZS1kYXRhYmFzZS1vbi1pZGxlLXN0
ZGVyci50eHRVVAUAA79m0Vp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD7m41MRYeFuOb9FgB9
F/sAGQAYAAAAAAABAAAApIGMEQ8Ad3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQADGmjRWnV4
CwABBPUBAAAEFAAAAFBLBQYAAAAAzgDOAK1bAADFDyYAAAA=
</data>

          </attachment>
      

    </bug>

</bugzilla>